Chapter 14 - Software Life Cycle
- Authors
- Ms. Samavi Salman
- Dr. Rao Muhammad Adeel Nawab
- Supporting Material
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
- Definition
- 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
- Step 01: Write Down System Settings
- 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
- The main aim of Software Life Cycle is to
- 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)
- Step 1: Completely and Correctly Understand the Real-world Problem
- 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 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)
- Development Phase
|
- 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 1.1: Write Down System Settings
- Step 2: Deploy Executable File (created in Step 1.2) on Client Machine
- Step 3: Verify the Deployment of Software on Client Machine
- Step 1: Convert Software into an Executable File
- 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)
- Step 1: After Software Deployment, take regular Feedback from
- Application Phase
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 |
|
Step 1.2: Real-world Problem Description |
|
Step 1.3: Your Job – As a Software Developer |
|
- 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 |
|
Write Down Input and Output of the Real-world Problem |
|
Example 1 – Input and Output of the Real-world Problem |
|
Example 2 – Input and Output of the Real-world Problem |
|
Example 3 – Input and Output of the Real-world Problem |
|
Conclusion |
|
Step 2.2: Convert Real-world Problem Description (Step 1.2) into Programming Problem Description |
Selection of Suitable Programming Language to Solve Programming Problem |
|
Programming Problem Description |
|
- 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:
|
Step 3.3: Requirements Analysis |
|
- 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 |
|
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
|
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)
|
- 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
|
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?
|
Conclusion |
|
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 1.1: Write Down System Settings
- 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
- In Sha Allah, I will use the following Steps to Convert addition-v1.1.ipynb Software into an Executable File
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
- Stage 1: Convert addition-v1.1.ipynb File into addition-v1.1.py 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
- Step 2: Use your System Settings to Step by Step Convert Program into an Executable File
- 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: Convert addition-v1.1.ipynb File into addition-v1.1.py File
- 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
- Step 2: Search for Command Line Prompt (CMD)
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
- Note
- Step 2: Search for Command Line Prompt (CMD)
- 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
- Step 5: Navigate to the Folder where Python (.py) File is placed using the following command
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
- Step 6: Write the following command on cmd. It will execute the Program in Python (.py) File
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 6.2: The Program will be executed and display the Output on the cmd
- Step 7: Now Install pyinstaller by using the following command
- Step 7.1: Press Enter Key
- Step 7: Now Install pyinstaller by using the following command
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 8.2: The pyinstaller version will be displayed
- 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 😊
- Step 3: Double Click on the addition-v1.1.exe File
- 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
- The four main Phases of Software Life Cycle are
- 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)
- Step 1: Completely and Correctly Understand the Real-world Problem
- 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?
- 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)
- 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 1.1: Write Down System Settings
- Step 2: Deploy Executable File (created in Step 1.2) on Client Machine
- Step 3: Verify the Deployment of Software on Client Machine
- Step 1: Convert Software into an Executable File
- 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)
- Step 1: After Software Deployment, take regular Feedback from
- Development Phase
- Each Phase of Software Life Cycle is further divided into multiple Steps, which are given below:
- 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