0% found this document useful (0 votes)
7 views17 pages

Software Process Models Overview

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views17 pages

Software Process Models Overview

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

INTRODUCTION

THE SOFTWARE PROCESSES

Software Design Patterns

FAKHRELDIN ALI
[Link]@[Link]
OBJECTIVES

 To introduce software process models and the software processes


 To know where, in the software processes, software design and design patterns
applied

2
TOPICS COVERED

 Introduction to software processes


 Software process models

 The waterfall model


 Incremental model
 Evolutionary development
 Specialized process models
 Agile processes
3
SOFTWARE PROCESSES

 Software Process: “a set of activities, practices,


and transformations that people use to develop
and maintain software and the associated
products, e.g., project plans, design documents,
code, test cases, and user manual” -IEEE

4
SOFTWARE PROCESSES

 Software process is the roadmap to building high quality software


products.
 A software process provides a framework for managing activities
that can very easily get out of control.
 Different types of projects require different software processes.
 The software engineer's work products (programs,
documentation, data) are produced as a consequence of the
activities defined by the software process.
 The best indicators of how well a software process has worked
are the quality, timeliness, and long-term viability of the resulting
software product.
5
MAIN PHASES OF SOFTWARE PROCESS

 Requirements Analysis (answers “WHAT?”)


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

6
MAIN PHASES OF SOFTWARE PROCESS (CONT...)

 Requirements Analysis: Text produced


 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 and object code
 e.g., … class CheckingAccount{ double balance; … } …
 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. …”

Design only from requirements 7


Code only from design
WHAT IS DESIGN?

 The purpose of design is to produce a solution to a problem:


 The problem: requirements specification.
 The solution: your description of how the requirements are to be met.
 The creative process of describing and transforming a problem into a
solution.
 A set of documents on whose basis a software can be fully programmed.
 Software design describe the system well enough that coders can
build it and deploy it without serious problems:
 All the parts of the system and how they fit together (architecture, high-
level design)
 Each part in detail so that it can be coded.

8
DO WE NEED DESIGN AND DESIGN NOTATION?

 An extremely useful notation for design documentation is the UML (Unified


Modeling Language)

 Why do we need design and design notation?

Communication

 Why not just think about it and then start coding?

Different conceptual level


9
SOFTWARE PROCESS MODELS

 A software process model is an abstract representation of a process. It presents a


description of a process from some particular perspective.

 Software process models


 The Waterfall model
 Incremental model
 Evolutionary development-Prototyping
 Specialized process models
 Agile processes [e.g. Extreme Programming]

10
WATERFALL MODEL

11
INCREMENTAL DEVELOPMENT
EVOLUTIONARY DEVELOPMENT-
PROTOTYPING
Quick
plan
communication
Qu ick p lan
Modeling
Communicat ion Quick design

Mo d e lin g
Qu ick d e sig n

Deployment
delivery &
feedback Construction
of prototype
Deployment
De live ry
& Fe e dback Const r uct ion
of
prot ot ype
13
OTHER PROCESS MODELS

 Component based development


 Unified Process

14
REUSE-ORIENTED DEVELOPMENT

Requirements Component Requirements System design


specification analysis modification with reuse

Development System
and integration validation

15
UNIFIED PROCESS
elaboration
Elab o r at io n

inception
 Inception
Incep t io n
 Establish the business
case for the system.
 Elaboration
 Develop an
understanding of the
problem domain and the
system architecture.
 Construction
 System design,
programming and co nst r uct io n
testing.
Release
 Transition soft ware increment
t r ansit io n

 Deploy the system in its


operating environment. 16
p r o d uct io n
SUMMARY

 Software processes are the activities involved in producing and evolving a


software system.
 Software process models:
 Abstract representations of these processes.
 Describe the organisation of software processes.
 Software processes general activities are: specification, design and
implementation, validation and evolution.
 The design of an application expresses how the application is to be constructed
 Design is performed in different way in different software processes.

17

You might also like