Skip to content

Ilm o Irfan

Technologies

  • Home
  • Courses
    • Free Courses
  • Motivational Seminars
  • Blog
  • Books
  • Contact
  • Home
  • Courses
    • Free Courses
  • Motivational Seminars
  • Blog
  • Books
  • Contact
Explore Courses

Introduction to Python

  • September 1, 2022
  • Home
  • Free Book

Table of Contents

Chapter 14 - Software Life Cycle

  • Authors
  • Ms. Samavi Salman
  • Dr. Rao Muhammad Adeel Nawab
  • Supporting Material
  • Download Supporting Material (Code): here

Quick Recap

  • Quick Recap – Debugging in Python

In previous Chapter, I presented

  • Software Deployment
    • Definition
      • Software deployment includes all the process required for preparing a software application to run and operate in a specific environment
      • It involves installation, configuration, testing and making changes to optimize the performance of the software. 
      • It can either be carried out manually or through automated systems
  • Steps – Converting a Program into an Executable File
    • Step 01: Write Down System Settings
      • Step 1.1: Select the Operating System for which you want to Create an Executable File
      • Step 1.2: Select the Programming Language for which you want to Create an Executable File
      • Step 1.3: Select the IDE / Framework which you will use to Create an Executable File
    • Step 02: Use your System Settings to Step by Step Convert Program into an Executable File
  • Steps – Deploying the Executable File on Client Machine  
    • Step 01: Check System Settings on Client Machine and ensure they Must be Exactly Same as we had in previous Section i.e., Steps Converting a Python Program into an Executable File
    • Step 02: Deploy Executable File on Client Machine
    • Step 03: Verify the Deployment on Client Machine

Software Life Cycle

  • Software Life Cycle
  • Definition
    • Software Life Cycle is defined as a Step-by-Step process to completely and correctly develop a Software with high-quality to serve the humanity for Raza (رضا) of Allah 
    • Important Note
      • Never ever develop Software which is not beneficial to the mankind (for e.g., Dating Software, Gambling Software, Softwares that are used for Interest (سود) etc.)
  • Purpose
    • The main aim of Software Life Cycle is to 
      • Completely and correctly develop high-quality Softwares with minimum cost, time and effort
  • Importance
    • Software Life Cycle helps us to systematically (simple to complex, step by step approach) develop a Software using a Template-based Approach
    • Software Life Cycle enables multiple Teams to work on various Tasks of Software Life Cycle simultaneously to develop high-quality Softwares with minimum time, effort, and cost (i.e., utilize the Power of Parallel Tasking)
    • Software Life Cycle enables us to completely and correctly check each and every Module of a Software for potential Bugs / Errors to ensure quality of the Software 
  • Applications
    • Since Software Life Cycle is a standard procedure, the Software developed by a Software Developer can be easily understood by any other Software Develop around the world, which increases the understandability and reusability of the Software 
    • Software Life Cycle makes it easier to quickly and efficiently train Software Developers to develop high-quality Softwares
  • Strengths
    • Software Life Cycle is based on Divide and Conquer Approach, which makes it very easy to solve big and complex Real-world Problems using Softwares
  • Weaknesses
    • To completely and correctly execute the Software Life Cycle we need Domain Experts (i.e., people who have high level expertise in the Tasks performed in Software Life Cycle), which may increase the cost of Software 
  • Suitable to Use
    • We MUST use the Software Life Cycle in developing each and every Software 😊
  • TIP
  • Always Remember! Habits Make Your Future 😊
  • Never Ever Adopt Bad Habits and Never Ever Compromise on Your Good Habits 😊

Phases of Software Life Cycle

  • Phases of Software Life Cycle
  • The four main Phases of Software Life Cycle are
    • Development Phase
    • Testing Phase
    • Application Phase 
    • Feedback Phase
  • Phases of Software Life Cycle Cont…
  • Each Phase of Software Life Cycle is further divided into multiple Steps, which are given below:
    • Development Phase
      • Step 1: Completely and Correctly Understand the Real-world Problem
        • Step 1.1: Real-world Problem
        • Step 1.2: Real-world Problem Description
        • Step 1.3: Your Job – As a Software Developer
      • Step 2: Can we treat the Real-world Problem (Step 1.2) as a Programming Problem?
        • Step 2.1: Check Whether the Real-world Problem can be treated as a Programming Problem?
        • Step 2.2: Convert Real-world Problem Description (Step 1.2) into Programming Problem Description
      • Step 3: Completely and Correctly Understand the Programming Problem
        • Step 3.1: Completely and Correctly Understand the Programming Problem Description 
        • Step 3.2: Requirements Gathering 
        • Step 3.3: Requirements Analysis 
      • Step 4: Plan and Design Solution to the Programming Problem
        • Step 4.1: Identify Input-Processing-Output (from Step 3.1, 3.2 and 3.3)
        • Step 4.2: Write down Algorithm for Software to be Developed (based on Step 4.1)
        • Step 4.3: Write Down Pseudo Code for Software to be Developed (based on Step 4.2)
        • Step 4.4: Design and Draw Flow Chart(s) for Software to be Developed (based on Step 4.3)
        • Step 4.5: Select Suitable Programming Environment to Write Software (Code)
      • Step 5: Implementation Phase 
        • Step 5.1: Write Software (based on Step 4.2, 4.3 and 4.4)
    • Testing Phase
      • Step 1: Check the Quality of Software (Developed in Step 5.1 of the Development Phase) before Deploying it in the Real-world (i.e., Application Phase) 
        • Step 1.1: Extract Input and Output from your Software (implemented in Step 5.1 of the Development Phase)
      • Step 2: Write Suitable and High-Quality Test Cases
        • Step 2.1: Write Test Cases for Correct Normal Input
        • Step 2.2: Write Test Cases for Wrong Input
        • Step 2.3: Write Test Cases for Correct Exceptional Input
      • Step 3: Write Output Values to be produced against Input of each Test Case (called Actual Output Values)
      • Step 4: Run Software for each Test Case Separately
        • Step 4.1: Give Input (of each Test Case) to Software and Execute it to produce Output against each Test Case (called Software Output Values)
        • Step 4.2: Record the Software Output Values for all Test Cases 
      • Step 5: Check the Performance of Software for all Test Cases
        • Step 5.1: For each Test Case, compare Actual Output Value with Software Output Value
  • If (Actual Output Value = Software Output Value)
    • THEN
      • Test Case has Passed 
    • ELSE
      • Test Case has Failed
      • Step 6: Check Quality of Software i.e., Whether Software is Working Correctly or Not?
  • If (All Test Cases are Passed)
    • THEN
      • Software is Working Correctly
      • Software is ready for Deployment
      • Go to Application Phase
    • ELSE
      • Software is NOT Working Correctly
        • Option 1: Debug your Software OR 
        • Option 1: Debug your Software to Identify Potential Problems and Update your Software, so that it works Correctly for all Test Cases OR
        • Option 2: Go to Development Phase and Update your Software, so that it works Correctly for all Test Cases
    • Application Phase
      • Step 1: Convert Software into an Executable File
        • Step 1.1: Write Down System Settings
          • Step 1.1.1: Select the Operating System for which you want to Create an Executable File
          • Step 1.1.2: Select the Programming Language for which you want to Create an Executable File
          • Step 1.1.3: Select the IDE / Framework which you will use to Create an Executable File
        • Step 1.2: Use your System Settings to Step by Step Convert Software into an Executable File
      • Step 2: Deploy Executable File (created in Step 1.2) on Client Machine
      • Step 3: Verify the Deployment of Software on Client Machine
    • Feedback Phase
      • Step 1: After Software Deployment, take regular Feedback from 
        • Domain Experts and Users on Deployed Software 
      • Step 2: Make a List of Possible Improvements based on Feedback received
      • Step 3: Improve your Software based on List of Possible Improvements (made in Step 2)

Execute the Software Life Cycle – Step by Step Examples

  • Example 1 - Software Life Cycle
  • In Sha Allah, in the next Slides, I will execute the Software Life Cycle using the four Phases discussed above i.e., 
    • Development Phase
    • Testing Phase
    • Applications Phase
    • Feedback Phase 
  • Example 1 - Software Life Cycle (Development Phase)
  • Step 1: Completely and Correctly Understand the Real-world Problem
    • Step 1.1: Real-world Problem
    • Step 1.2: Real-world Problem Description
    • Step 1.3: Your Job – As a Software Developer
Completely and Correctly Understand the Real-world Problem
Step 1.1: Real-world Problem
  • Addition of Two Integer Number
Step 1.2: Real-world Problem Description
  • Ms. Samavi is running IlmOIrfan School. She is teaching Math to Grade II students. She needs a Software which can add two Integer Numbers, so that her students can practice and strengthen their Math Concepts of adding two Integer Numbers.
Step 1.3: Your Job – As a Software Developer
  • As a Software Developer, your job is to help Ms. Samavi by developing and deploying a high-quality Software using Software Life Cycle, which can be used by her students to practice and strengthen their Math Concepts of adding two Integer Numbers. 
  • Example 1 - Software Life Cycle (Development Phase)
  • Step 2: Can we treat the Real-world Problem (Step 1.2) as a Programming Problem?
    • Step 2.1: Check Whether the Real-world Problem can be treated as a Programming Problem?
    • Step 2.2: Convert Real-world Problem Description (Step 1.2) into Programming Problem Description
Can we Treat the Real-world Problem as a Programming Problem?
Step 2.1: Check Whether a Real-world Problem can be Treated as a Programming Problem
  • If (Real-world Problem can be Broken into Input and Output)
    • THEN 
      • We MAY Treat Real-world Problem as a Programming Problem 
    • ELSE
      • We CANNOT Treat Real-world Problem as a Programming Problem
Write Down Input and Output of the Real-world Problem
  • Input
    • Integer Number 01
    • Integer Number 02
  • Output
    • Integer Number 01 + Integer Number 02
Example 1 – Input and Output of the Real-world Problem
  • Example 1 – Input and Output
    • Input
      • Number 01 = 10
      • Number 02 = 15
    • Output
      • 10 + 15 = 25
Example 2 – Input and Output of the Real-world Problem
  • Example 2 – Input and Output
    • Input
      • Number 01 = 3.86
      • Number 02 = 2.59
    • Output
      • 3.86 + 2.59 = 6.45
Example 3 – Input and Output of the Real-world Problem
  • Example 3 – Input and Output
    • Input
      • Number 01 = 3.86
      • Number 02 = 7
    • Output
      • 3.86 + 7 = 10.86
Conclusion
  • Yes, we MAY Treat Real-world Problem as a Programming Problem 
Step 2.2: Convert Real-world Problem Description (Step 1.2) into Programming Problem Description
Selection of Suitable Programming Language to Solve Programming Problem
  • There are many Programming Languages which are suitable to solve the above Real-world Problem, for example C, C++, Java, Python etc.
  • In Sha Allah, I will use Python 3.8.3
Programming Problem Description
  • Write a Software in Python, which takes Two Integer Numbers as Input from a User and displays their Sum on the Output Screen

 

  • Example 1 - Software Life Cycle (Development Phase)
  • Step 3: Completely and Correctly Understand the Programming Problem
    • Step 3.1: Completely and Correctly Understand the Programming Problem Description 
    • Step 3.2: Requirements Gathering 
    • Step 3.3: Requirements Analysis 
Completely and Correctly Understand the Programming Problem
Step 3.1: Completely and Correctly Understand the Programming Problem Description 

The two main objectives of this Software are: (1) add two Integer Numbers. and (2) display the sum of Integer Numbers on the Output Screen. 

Step 3.2: Requirements Gathering 

The main Requirements of this Software are as follows:

  • Take Two Integer Numbers as Input from User
  • Add Two Integer Numbers 
  • Display the Sum of Two Integer Numbers on the Output Screen
Step 3.3: Requirements Analysis
  • Analysis of Requirement 01 – Take Two Integer Numbers as Input from User
    • User should not be allowed to enter Float, Character or String etc.
    • Input must be a valid Integer Number
  • Analysis of Requirement 02 – Add Two Integer Numbers 
    • Only one Arithmetic Operation will be performed on Two Integer Numbers i.e., 
      • +
  • Analysis of Requirement 03 – Display the Sum of Two Integer Numbers on the Output Screen
    • No need to Print or Save Output in any Format
    • Just Display it on the Output Screen

 

  • Example 1 - Software Life Cycle (Development Phase)
  • Step 4: Plan and Design Solution to the Programming Problem
    • Step 4.1: Identify Input-Processing-Output (from Step 3.1, 3.2 and 3.3)
    • Step 4.2: Write down Algorithm for Software to be Developed (based on Step 4.1)
    • Step 4.3: Write Down Pseudo Code for Software to be Developed (based on Step 4.2)
    • Step 4.4: Design and Draw Flow Chart(s) for Software to be Developed (based on Step 4.3)
    • Step 4.5: Select Suitable Programming Environment to Write Software (Code)
      • Linux 18.04.1 LTS 64-bit Operating System
      • Jupyter Notebook 5.5.0
      • Python 3.8.3
Plan and Design Solution to the Programming Problem
Step 4.1: Input-Processing-Output
  • Input
    • Data
      • Two Integer Numbers
        • Integer Number 01 (called number1)
        • Integer Number 02 (called number2)
    • Instruction(s)
      • Calculate Sum of two Integer Numbers
        • number1 + number2
  • Output
    • To Display Sum of two Integer Number on the Output Screen
  • Input-Processing-Output
    • Use input() Function – To take Input (Two Integer Numbers) form User
    • Use + Arithmetic Operator – To add Two Integer Numbers (i.e., Process Input to Generate Output)
    • Use print() Function – To Display Sum of two Integer Number on the Output Screen (i.e., Show Output to the User)
Algorithm
Step 4.1: Algorithm
Step 1: Declare an Integer Variable (number1) and store Integer Value in it Step 2: Declare an Integer Variable (number2) and store Integer Value in it Step 3: Add number1 and number2 (i.e., Processing) and store result (i.e., Output) in an Integer Variable (sum)  Step 4: Print sum on the Output Screen
Pseudo Code and Flow Chart
Step 4.2: Pseudo Code
Step 1: Start Step 2: Input – An Integer Number (number1) Step 3: Input – An Integer Number (number2) Step 4: sum = number1 + number2 Step 5: Print – sum Step 6: Stop Note
  • In the above Pseudo Code
  • Step 3 and Step 3 represent Input
  • Step 4 represents Processing
  • Step 5 represents Output
Step 4.3: Flow Chart
  • Example 1 - Software Life Cycle (Development Phase)
  • Step 5: Implementation Phase 
    • Step 5.1: Write Software (based on Step 4.2, 4.3 and 4.4)
				
					"""
Author Details
--------------
__author__           = Ms. Samavi Suleman
__copyright__           = Copyright (C) 2020 Ms. Samavi Suleman
__license__           = Public Domain
System Settings 
---------------
__program__name__        = addition
__program__version__     = 1.1
__programing__language__ = python 3.8.3
__operating__system__    = Linux 18.04.1 LTS 64-bit Operating System
__ide__                  = jupyter notebook 5.5.0
__start__date__          = 15-01-2021
__end__date__            = 18-01-2021
Purpose of Program
------------------
The main purpose of this Program is to take two Integer numbers as input from the User and display their sum on the Output Screen.
'''
try:
    # Input
    # Take Two Integer Numbers as Input form User
    print("Enter First Integer Number: ")
    number1 = int(input())
    print("Enter Second Integer Number: ")
    number2 = int(input())
    # Processing + Output
    # Adding number1 and number2 and storing the Output (i.e., sum of two integer numbers) in a variable (called sum)
    sum = number1 + number2
    # Displaying Output
    print(number1, "+", number2, "=", sum)
except:
    print("Please enter Integer Numbers as Input")

				
			
  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 1: Check the Quality of Software (Developed in Step 5.1 of the Development Phase) before Deploying it in the Real-world (i.e., Application Phase) 
    • Step 1.1: Extract Input and Output from your Software (implemented in Step 5.1 of the Development Phase)
  • Input 
    • Integer Number 01 (called number1)
    • Integer Number 02 (called number2)
  • Output 
    • number1 + number2 
  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 2: Write Suitable and High-Quality Test Cases
    • Step 2.1: Write Test Cases for Correct Normal Input
Test Case No.
Test Cases
Input
Actual Output Value

TC01

number1 = 10

number2 = 30

 

TC02

number1 = -50

number2 = -30

 

TC03

number1 = -10

number2 = 30

 

TC04

number1 = 10

number2 = -30

 

TC 05

number1 = 3.5

number2 = -4.9

  

TC 06

number1 = 3.5

number2 = -4

  

TC 07

number1 = 3

number2 = -4.9

  
     
    • Step 2.2: Write Test Cases for Wrong Input
Test Case No.
Test Cases
Input
Actual Output Value

TC 01

number1 = ten

number2 = four

 

TC 02

number1 = 5 

number2 = six

 

TC 03

number1 = six

number2 = 9

 
    • Step 2.3: Write Test Cases for Correct Exceptional Input
No.
Test Case Category
Test Cases
Input
Actual Output Value

TC 01

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 100000000

 

TC 02

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = -100000000

 

TC 03

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 9

 

TC 04

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = 9

 

 

  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 3: Write Output Values to be produced against Input of each Test Case (called Actual Output Values)
No.
Test Case Category
Test Cases
Input
Actual Output Value

TC01

Correct Input

number1 = 10

number2 = 30

40

TC02

Correct Input

number1 = -50

number2 = -30

-80

TC03

Correct Input

number1 = -10

number2 = 30

20

TC04

Correct Input

number1 = 10

number2 = -30

-20

TC 05

Wrong Input

number1 = 3.5

number2 = -4.9

Error Message

TC 06

Wrong Input

number1 = 3.5

number2 = -4

Error Message

TC 07

Wrong Input

number1 = 3

number2 = -4.9

Error Message

TC 08

Wrong Input

number1 = ten

number2 = four

Error Message

TC 09

(Correct) 

Exceptional Input 

number1 = 5

number2 = six

Error Message

TC 10

(Correct) 

Exceptional Input 

number1 = six

number2 = 9

Error Message

TC 11

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 100000000

200000000

TC 12

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = -100000000

-200000000

TC 13

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 9

100000009

TC 14

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = 9

-99999991

  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 4: Run Software for each Test Case Separately
    • Step 4.1: Give Input (of each Test Case) to Software and Execute it to produce Output against each Test Case (called Software Output Values)
Executing Test Cases (for Correct Normal Input) in Jupyter Notebook

See Test-Case-Addition-v-1.1.html File

Executing Test Case (for Wrong Input) in Jupyter Notebook

See Test-Case-Addition-v-1.1.html File

Executing Test Case (for Correct Exceptional Input) in Jupyter Notebook

See Test-Case-Addition-v-1.1.html File

    • Step 4.2: Record the Software Output Values for all Test Cases
No.
Test Case Category
Test Cases
Software Output Value
Input
Actual Output Value

TC01

Correct Input

number1 = 10

number2 = 30

40

40

TC02

Correct Input

number1 = -50

number2 = -30

-80

-80

TC03

Correct Input

number1 = -10

number2 = 30

20

20

TC04

Correct Input

number1 = 10

number2 = -30

-20

-20

TC 05

Wrong Input

number1 = 3.5

number2 = -4.9

Error Message

Error Message

TC 06

Wrong Input

number1 = 3.5

number2 = -4

Error Message

Error Message

TC 07

Wrong Input

number1 = 3

number2 = -4.9

Error Message

Error Message

TC 08

Wrong Input

number1 = ten

number2 = four

Error Message

Error Message

TC 09

(Correct) 

Exceptional Input 

number1 = 5

number2 = six

Error Message

Error Message

TC 10

(Correct) 

Exceptional Input 

number1 = six

number2 = 9

Error Message

Error Message

TC 11

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 100000000

200000000

200000000

TC 12

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = -100000000

-200000000

-200000000

TC 13

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 9

100000009

100000009

TC 14

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = 9

-99999991

-99999991

  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 5: Check the Performance of Software for all Test Cases
    • Step 5.1: For each Test Case, compare Actual Output Value with Software Output Value
  • If (Actual Output Value = Software Output Value)
    • THEN
      • Test Case has Passed 
    • ELSE
      • Test Case has Failed
No.
Test Case Category
Test Cases
Software Output Value
Outcome of Test Case
Input
Actual Output Value

TC01

Correct Input

number1 = 10

number2 = 30

40

40

Passed

TC02

Correct Input

number1 = -50

number2 = -30

-80

-80

Passed

TC03

Correct Input

number1 = -10

number2 = 30

20

20

Passed

TC04

Correct Input

number1 = 10

number2 = -30

-20

-20

Passed

TC 05

Wrong Input

number1 = 3.5

number2 = -4.9

Error Message

Error Message

Passed

TC 06

Wrong Input

number1 = 3.5

number2 = -4

Error Message

Error Message

Passed

TC 07

Wrong Input

number1 = 3

number2 = -4.9

Error Message

Error Message

Passed

TC 08

Wrong Input

number1 = ten

number2 = four

Error Message

Error Message

Passed

TC 09

(Correct) 

Exceptional Input 

number1 = 5

number2 = six

Error Message

Error Message

Passed

TC 10

(Correct) 

Exceptional Input 

number1 = six

number2 = 9

Error Message

Error Message

Passed

TC 11

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 100000000

200000000

200000000

Passed

TC 12

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = -100000000

-200000000

-200000000

Passed

TC 13

(Correct) 

Exceptional Input 

number1 = 100000000

number2 = 9

100000009

100000009

Passed

TC 14

(Correct) 

Exceptional Input 

number1 = -100000000

number2 = 9

-99999991

-99999991

Passed

  • Example 1 - Software Life Cycle (Testing Phase)
  • Step 6: Check Quality of Software i.e., Whether Software is Working Correctly or Not?
  • If (All Test Cases are Passed)
    • THEN
      • Software is Working Correctly
      • Software is ready for Deployment
      • Go to Application Phase
    • ELSE
      • Software is NOT Working Correctly
        • Option 1: Debug your Software OR 
        • Option 1: Debug your Software to Identify Potential Problems and Update your Software, so that it works Correctly for all Test Cases OR
        • Option 2: Go to Development Phase and Update your Software, so that it works Correctly for all Test Cases
Conclusion
  • الحمدلله, all Test Cases are Passed and Software is ready to be Deployed in the Real-world (i.e., Application Phase)

Note 

  • For details on How to Debug a Python Program
    • See Chapter 12 – Debugging in Python
  • Example 1 - Software Life Cycle (Application Phase)
  • Step 1: Convert Software into an Executable File
    • Step 1.1: Write Down System Settings
      • Step 1.1.1: Select the Operating System for which you want to Create an Executable File
      • Step 1.1.2: Select the Programming Language for which you want to Create an Executable File
      • Step 1.1.3: Select the IDE / Framework which you will use to Create an Executable File
    • Step 1.2: Use your System Settings to Step by Step Convert Software into an Executable File
  • Step 2: Deploy Executable File (created in Step 1.2) on Client Machine
  • Step 3: Verify the Deployment of Software on Client Machine
  • Example 1 - Software Life Cycle (Application Phase)
  • Steps – Converting addition-v1.1.ipynb Software into an Executable File
    • In Sha Allah, I will use the following Steps to Convert addition-v1.1.ipynb Software into an Executable File
      • Step 1: Write Down System Settings
System Settings

Programming Language

Python 3.8.3

IDE

Jupyter Notebook – 5.5.0

Browser Version

Firefox Version 76.0.1

Operating System

Linux 18.04.1 LTS 64-bit Operating System

Date

28-Jan-2021

  • Example 1 - Software Life Cycle (Application Phase)
  • Steps – Converting addition-v1.1.ipynb Software into an Executable File 
    • Step 2: Use your System Settings to Step by Step Convert Program into an Executable File
      • In Sha Allah, in the next Slides, I will follow the following Two Stage Process to show how addition-v1.1.ipynb Software will be converted into an Executable File 
        • Stage 1: Convert addition-v1.1.ipynb File into addition-v1.1.py File
          • Step 1: Open Jupyter Notebook 5.5.0 IDE

          • Step 2: Open addition-v1.1.ipynb

          • Step 3: Convert addition-v1.1.ipynb File into addition-v1.1.py File
            • Step 3.1: Click on File on extreme left, A drop-down menu will be displayed

            • Step 3.2: From the drop down, click on Download as

 

            • Step 3.3: A side menu appears. Click on Python (.py)

            • Step 3.4: A new tab will open and the File starts downloading
          • Stage 2: Convert addition-v1.1.py File into addition-v1.1.exe File
              • Step 1: Click on the Start button in the Task Bar

 

              • Step 2: Search for Command Line Prompt (CMD)
                • If you are using Windows 8/8.1 Pro, Search button will appear as shown below 

                                                                                       OR

    • Step 2: Search for Command Line Prompt (CMD) 
      • Note
        • If you are using Windows 10, Search button will appear as shown in below figure

    • Step 3: Click on Command Prompt
    • Step 4: Command Prompt window will appear on your Computer Screen

    • Step 5: Navigate to the Folder where Python (.py) File is placed using the following command
      • In my case, it is placed on Desktop
      • Step 5.1: Click on Enter key

cd Desktop

      • Step 5.2: The cmd will enter to the Desktop

    • Step 6: Write the following command on cmd. It will execute the Program in Python (.py) File 
      • Step 6.1: Press Enter key

python addition-v1.1.py

      • Step 6.2: The Program will be executed and display the Output on the cmd
        • In my case, my program is named as Addition of Two Integer Numbers

      • Step 7: Now Install pyinstaller by using the following command
        • Step 7.1: Press Enter Key

pip install pyinstaller

  • Step 8: Verify installation of pyinstaller by using the following command
    • Step 8.1: Press Enter Key

pyinstaller –version

    • Step 8.2: The pyinstaller version will be displayed
      • In my case, it is 4.2

  • Step 9: To convert a Python (.py) File to an Executable (.exe) File write following command
    • Step 9.1: Press Enter key

pyinstaller addition-v1.1.py

      • It starts Building Analysis

  • Step 10: After successful Analysis, Following Folders will be displayed on the navigated Folder (where .py File is placed)
    • build
    • dist
    • addition-v1.1.spec

  • Step 11: Click on dist Folder
    • The addition-v1.1.exe Folder will be located

  • Step 12: Click on addition-v1.1 Folder
    • Step 12.1: Inside addition-v1.1 Folder, there are almost 54 items

  • Step 13: Double Click on addition-v1.1.exe

    • Step 13.1: A new cmd will be displayed which is executing the Program

  • Example 1 - Software Life Cycle (Application Phase)
Steps – Deploying the Executable File on Client Machine
  • Alhamdulillah, I have converted the .py file to .exe File and saved in my Laptop. In Sha Allah, now I will deploy the .exe File on the Client Machine in the following Steps 
    • Step 1: I will copy the addition-v1.1.exe File from my Laptop into a USB Drive 

 

    • Step 2: From my USB, I will copy addition-v1.1.exe File on Client’s Machine at the following Path: D:\Software Deployment\addition-v1.1.exe

 

    • Step 3: Double Click on the addition-v1.1.exe File
      • A Command Line Prompt will Open and Deployed Software will be executed In Sha Allah 😊 

  • Example 1 - Software Life Cycle (Feedback Phase)
  • Step 1: After Software Deployment, take regular Feedback from 
    • Domain Experts and Users on Deployed Software 
  • Step 2: Make a List of Possible Improvements based on Feedback received
  • Step 3: Improve your Software based on List of Possible Improvements (made in Step 2)
  • Chapter Summary

In this Chapter, I presented the following main concepts:

  • Software Life Cycle
    • Software Life Cycle is defined as a Step-by-Step process to completely and correctly develop a Software with high-quality to serve the humanity for Raza (رضا) of Allah 
  • Phases of Software Life Cycle
    • The four main Phases of Software Life Cycle are
      • Development Phase
      • Testing Phase
      • Application Phase 
      • Feedback Phase
  • Phases of Software Life Cycle Cont…
    • Each Phase of Software Life Cycle is further divided into multiple Steps, which are given below:
      • Development Phase
        • Step 1: Completely and Correctly Understand the Real-world Problem
          • Step 1.1: Real-world Problem
          • Step 1.2: Real-world Problem Description
          • Step 1.3: Your Job – As a Software Developer
        • Step 2: Can we treat the Real-world Problem (Step 1.2) as a Programming Problem?
          • Step 2.1: Check Whether the Real-world Problem can be treated as a Programming Problem?
          • Step 2.2: Convert Real-world Problem Description (Step 1.2) into Programming Problem Description
        • Step 3: Completely and Correctly Understand the Programming Problem
          • Step 3.1: Completely and Correctly Understand the Programming Problem Description 
          • Step 3.2: Requirements Gathering 
          • Step 3.3: Requirements Analysis 
        • Step 4: Plan and Design Solution to the Programming Problem
          • Step 4.1: Identify Input-Processing-Output (from Step 3.1, 3.2 and 3.3)
          • Step 4.2: Write down Algorithm for Software to be Developed (based on Step 4.1)
          • Step 4.3: Write Down Pseudo Code for Software to be Developed (based on Step 4.2)
          • Step 4.4: Design and Draw Flow Chart(s) for Software to be Developed (based on Step 4.3)
          • Step 4.5: Select Suitable Programming Environment to Write Software (Code)
        • Step 5: Implementation Phase 
          • Step 5.1: Write Software (based on Step 4.2, 4.3 and 4.4)
      • Testing Phase
        • Step 1: Check the Quality of Software (Developed in Step 5.1 of the Development Phase) before Deploying it in the Real-world (i.e., Application Phase) 
          • Step 1.1: Extract Input and Output from your Software (implemented in Step 5.1 of the Development Phase)
        • Step 2: Write Suitable and High-Quality Test Cases
          • Step 2.1: Write Test Cases for Correct Normal Input
          • Step 2.2: Write Test Cases for Wrong Input
          • Step 2.3: Write Test Cases for Correct Exceptional Input
        • Step 3: Write Output Values to be produced against Input of each Test Case (called Actual Output Values)
        • Step 4: Run Software for each Test Case Separately
          • Step 4.1: Give Input (of each Test Case) to Software and Execute it to produce Output against each Test Case (called Software Output Values)
          • Step 4.2: Record the Software Output Values for all Test Cases 
        • Step 5: Check the Performance of Software for all Test Cases
          • Step 5.1: For each Test Case, compare Actual Output Value with Software Output Value
        • Step 6: Check Quality of Software i.e., Whether Software is Working Correctly or Not?
      • Application Phase
        • Step 1: Convert Software into an Executable File
          • Step 1.1: Write Down System Settings
            • Step 1.1.1: Select the Operating System for which you want to Create an Executable File
            • Step 1.1.2: Select the Programming Language for which you want to Create an Executable File
            • Step 1.1.3: Select the IDE / Framework which you will use to Create an Executable File
          • Step 1.2: Use your System Settings to Step by Step Convert Software into an Executable File
        • Step 2: Deploy Executable File (created in Step 1.2) on Client Machine
        • Step 3: Verify the Deployment of Software on Client Machine
      • Feedback Phase
        • Step 1: After Software Deployment, take regular Feedback from 
          • Domain Experts and Users on Deployed Software 
        • Step 2: Make a List of Possible Improvements based on Feedback received
        • Step 3: Improve your Software based on List of Possible Improvements (made in Step 2)
  • In Next Chapter
  • In Sha Allah, in the next Chapter, I will present a detailed discussion on
  • Main concepts related to Selection Structures for Decision Making
Chapter 13 - Software Deployment
  • Previous
Chapter 15 - Selection Structures for Decision Making
  • Next
Share this article!
Facebook
Twitter
LinkedIn
About Us

Ilm O Irfan Technologies believes that honest dedicated hard work with the ethical approach of commitment true to every word, and trust-building is the road to success in any field of business or life.

Quick Links
  • About Us
  • Contact
Useful Links
  • Privacy Policy
  • Terms and Conditions
  • Disclaimer
  • Support
  • FAQ
Subscribe Our Newsletter
Facebook Twitter Linkedin Instagram Youtube

© 2022 Ilmo Irfan. All Rights Reserved.