0% found this document useful (0 votes)
2 views

Prologue the Software Process[1]

Uploaded by

Zahra Waheed
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Prologue the Software Process[1]

Uploaded by

Zahra Waheed
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Design & Architecture

Lecture # 01
Prologue: The Software Process
Dr. Khurram Zeeshan Haider
Software Models Requirements Design Coding Testing Maintenance
Process
Main Phases of Software
Process
Software Process: a procedure followed by the
development team to
produce an application.

1. Requirements Analysis (answers “WHAT?”)


 Specifying what the application must do
2. Design (answers “HOW?”)
 Specifying what the parts will be, and how they will fit together
3. Implementation (A.K.A. “CODING”)
 Writing the code
4. Testing (type of VERIFICATION)
 Executing the application with test data for input
5. Maintenance (REPAIR or ENHANCEMENT)
 Repairing defects and adding capability

2
Page 2 of
Software Models Requirements Design Coding Testing Maintenance
Process

Personal Finance Example


Requirements Analysis: Diagrams and text

e.g., “ … The application shall display the


balance in the user’s bank account. …”

Design: Diagrams and text

e.g., “ … The design will consist of the classes


CheckingAccount, SavingsAccount, …”

Implementation: Source code

e.g., … class CheckingAccount{ double balance;


…}…
3
Page 3 of
Software Models Requirements Design Coding Testing Maintenance
Process

Personal Finance Example (Cont’d)


Testing: Test cases and test results

e.g., “… With test case: deposit $44.92 / deposit


$32.00 / withdraw $101.45 / … the balance was
$2938.22, which is correct. …”

Maintenance: Modified design, code, and text

e.g., Defect repair: “Application crashes when


balance is $0 and attempt is made to withdraw
funds. …”
e.g., Enhancement: “Allow operation with Riyal.”

4
Page 4 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Waterfall Process
Basic software process in which
requirements analysis, design, coding,
testing, and maintenance are performed in
sequence, but with some overlap.

5
Page 5 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Waterfall Process (cont.)


 Why a Pure Waterfall Process is Usually Not Practical ?
 Don’t know up front everything wanted and needed
 Usually hard to visualize every detail in advance

 We can only estimate the costs of implementing


requirements
 To gain confidence in an estimate, we need to design and
actually implement parts, especially the riskiest ones
 We will probably need to modify requirements as a result

 We often need to execute intermediate builds


 Stakeholders need to gain confidence
 Designers and developers need confirmation they're building
what’s needed and wanted

 Team members can't be idle while the requirements are


being completed
 Typically put people to work on several phases at once

6
Page 6 of
Software
Models Requirements Design Coding Testing Maintenance
Process

The Spiral Process

7
Page 7 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Common Procedures
 Work Against the Product of Prior Phase
In each phase of the software process, we
design and code within the specifications
produced by the prior phase.

Inspections
An artifact is a document or code.

An inspection of an artifact is the process of


reading through the artifact in a complete
and entirely thorough manner.
8
Page 8 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Requirements Analysis
The process of understanding what’s
needed or wanted, and expressing the
results in writing.

9
Page 9 of
Software
Models Requirements Design Coding Testing Maintenance
Process

The Challenges of Requirements Analysis


Express requirements in ordinary, clear English
Non-technical
From the user’s perspective

Organize the requirements into logical


groupings
Make easy to access and change
Challenging for real applications

Arrange for the management of requirements


A procedure must be developed in advance for
keeping the requirements documents up to date
 Who, how, and when

1
0 Page 10 of
Software
Models Requirements Design Coding Testing Maintenance

Design (The heart of this


Process

course)
The design of an application expresses how
the application is to be constructed.

It describes the parts involved and how


they are to assembled.

It consists of a set of documents (diagrams


and text)

1
1 Page 11 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Tips on Coding
 Code only against a design

 Specify precisely what each method accomplishes

1
2 Page 12 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Tips on Coding (cont.)


 Before compiling, satisfy yourself that the code you have
typed is correct. Read it thoroughly.
 ‘correct’ means that is satisfies what’s required of it
 This is “author-inspection”

 Build-a-little-Test-a-little
1. Add a relatively small amount of code (“build-a-little”)
2. (Again): Read what you have typed and correct it if necessary
until you are totally satisfied it’s correct
3. Compile
4. Test the new functionality (“test-a-little”)

1
3 Page 13 of
Software
Models Requirements Design Coding Testing Maintenance

Author-Inspect Before
Process

Compiling
Inspect and edit the block of code you have
just written until you are convinced it does
exactly what it is meant to do. Only then
compile it.

1
4 Page 14 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Testing
The testing phase consists of supplying
input to the application and comparing the
output with that mandated by the software
requirements specification.

Helps to uncover defects

Proves the presence of defects, but never


their absence

1
5 Page 15 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Types of Testing
 Black-box testing
 Compares the output  Unit Tests

obtained with the output  Tests on parts of an


specified by the application (individual
requirements document methods, classes, etc.)
 Does not take into  Integration Tests
account the manner in  Tests the software units
which the application is work together correctly
designed  System Tests
 Tests of an entire
 White-box testing application
 Based on the design
 Exercise specific design
features such as
branching, loops,
interfaces, etc.

Page 16 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Tips on Testing
Test early and often

Test with extreme values


Very small, very big, etc.
Borderline
“Illegal” values

Vary test cases


Don’t repeat tests with same test data
except when specifically intended

1
7 Page 17 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Testing
Test early and often: Note that “passed all
tests” doesn’t equate to “bug free.”

1
8 Page 18 of
Software
Models Requirements Design Coding Testing Maintenance
Process

Maintenance
Maintenance refers to the work performed on
the application that occurs after it has been
delivered.

Types of maintenance
Corrective (Defect Removal)
 Finding and fixing all inconsistencies with the requirements
document
Perfective (Enhancement)
 Introducing new or improved capability
Adaptive
 Adapts software to new environment
Preventive
 changing some aspect of the system to
prevent failures

1
9 Page 19 of
Software
Models Requirements Design Coding Testing Maintenance

Summary of Software
Process

Process
A way of going about the creation and
upkeep of a software product

Commonly based on the Waterfall process


1.Specify requirements
2.Create design In sequence with
3.Write code some overlap
4.Test
5.Maintain

2
0

You might also like