SlideShare a Scribd company logo
1 of 24
SOFTWARE
ENGINEERING
(UNDERGRADUATE
)
COURSE NAME
SOFTWARE
ENGINEERING
CSC 3114
(UNDERGRADUATE
)
CHAPTER 2
SOFTWARE DEVELOPMENT PROCESS
MODEL
DR. M. MAHMUDUL HASAN
ASSISTANT PROFESSOR, CS, AIUB
Web: http://cs.aiub.edu/profile/m.hasan
WordPress:
https://wordpress.com/view/mhasansuman.wordpress.com
SOFTWARE
PROCESS
 Process is a way to organize the development of a
software product into distinct phases or stages (entire life
of a software product or can be a sub-process within a life
cycle process.
 Phase: processes are organized into phases. For
Examples:
the lifecycle process is organized as specification, design
and implementation, and verification and validation
phases.
 Activity: each phase is composed of associated
activities.
 Task: an activity is a group of related tasks (low-level
actions)
 Role: and tasks relate to roles, work products, and
resources.
MMH S.2
Practices: practices are guidelines that can be applied
within a process with proven benefits such as increased
communication,
tracking of project progress, risk management, and reduced
waste.
Example: Agile methodologies.
 An Activity (Design) takes a work product as input (Specification) and produce another work product as output
(UI/UX)
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
SOFTWARE DEVELOPMENT PROCESS MODELS
 Completing any given task requires resources to advance or fund it, such as time,
people, technology, knowledge, and money.
 A task consumes resources.
 resources consume by a task
MMH S.3
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
SOFTWARE DEVELOPMENT PROCESS MODELS
 A variety of process models will be presented during this course
 Every process model will have phases; however, there are major differences
between models in terms of what activities constitute their phases and the
sequencing of the phases.
 Three main types of process models are:
 Linear process models – phases that happen sequentially, one after another
 Incremental process models – deliver the software through several increments
 Iterative process models – phases that are repeated in cycles
 Parallel process models – activities that occur concurrently
MMH S.4
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
SOFTWARE DEVELOPMENT PROCESS MODELS
MMH S.5
Q. Why Do You need to Learn all the available Process Models for Software
development?
Project 1: Setup a new
railway network
Project 2: Repair 100-
meter railway track
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
Technology A: Automated
Technology B: Manual
PROJECT ENVIRONMENT: PREDICTIVE VS ADAPTIVE
MMH S.6
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
NO Change in
the development
process
ALLOW
Changes at the
middle of the
development
WATERFALL MODEL : PROCESS
 Define the Waterfall model and its stages
 Waterfall model is a linear sequential model where next phase starts only after
completion of the previous phase
 It is very simple to understand and easy to use because of its systematic well-defined
process description. The product is delivered to the users at ONE shoot (Big bang)
MMH S.7
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
WATERFALL MODEL : IMPACT
 Describe its impacts in various software development context
 Environmental impact: this model is very useful and inexpensive for stable
environment where the requirements are fixed (i.e., predictive environment) and
expensive for dynamic environment where the requirements are frequently changing
(i.e., adaptive environment)
 Scope of change: the use of waterfall
model makes the software system
very rigid for further modification
 Risk lifetime: the risk remains high in
long time the project and addresses
the maximum risk at the later stages
of software development
Figure: Risk profile of Software Development Process Model
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
MMH S.8
WATERFALL MODEL : APPLICABILITY
 Describe the applicability of waterfall model
 Stable Environment (Predictive): this model is applicable where the software
development environment is relatively stable and very little or no scope for any further
changes during the development and after releasing the product
 Well-understood Requirements: this model is only appropriate when the requirements
are
well-understood and no further changes are required in the software descriptions
 Example: in the safety critical product development where the requirements have to
well defined at the beginning of the project development
MMH S.9
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
WATERFALL MODEL : EXAMPLE
 Provide some real-life software development examples where waterfall model can be
used a process model
 Example: Autopilot system, Chemical plant system, Embedded system where
requirements are well understood and no need for further modification of the system
specification
MMH S.10
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
WATERFALL MODEL : LIMITATION
 Describe problems of waterfall model
 No Backtracking: Inflexible partitioning of the project into distinct stages where next
phase starts only after completion of the previous phase, this makes it difficult to
respond to changing customer requirements.
 High Risk: risk remain high longer
period in the project and addresses
maximum risk at the later stages of
software development
 Late Product Visibility: the customer
must have patience. A working version
of the program(s) will not be available
until late in the project time-span.
MMH S.11
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
 Iterative Development: products are visible at an early stage of development. Low
probability of rework in case of defects in the final deliverable product
V - MODEL
 How does V-Model Extends Waterfall Model
 The V-model is a SDLC model where
execution
of processes happens in a sequential manner
in
V-shape. It is also known as Verification and
Validation model.
 V-Model is an extension of the waterfall model
and
is based on association of a testing phase for
each
corresponding development stage. This
means
that for every single phase in the development
cycle there is a directly associated testing
phase.
 This is a highly disciplined model and next
phase
MMH S.12
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
EXTENSION OF WATERFALL MODEL
 How some other models can use waterfall model in its process to adapt changes
 Incremental Model: the development and delivery are broken down into increments
(timeboxes) where each increment may follow the sequential stages of waterfall
model for complete one increment without implementing any change in that
increments
 V-Model: it is an extension of the waterfall model
and is based on association of a testing phase for
each corresponding development stage of
waterfall model.
MMH S.13
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
SAW-TOOTH MODEL
 The Sawtooth process model distinguish the process phases into client side (upper)
and development side (bottom) activities
 Waterfall, V-Model, and Sawtooth models are linear sequential model and has same
kind of drawbacks in software development.
MMH S.14
Client
Interaction
Development
Activities
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
INCREMENTAL DEVELOPMENT
 Rather than deliver the system as a single delivery, the development and delivery is
broken down into increments with each increment delivering part of the required
functionality (SPIRAL). The requirements are relatively certain but there are many
complexities that leads
to frequent changes.
 User requirements are prioritised, and the highest priority requirements are included in
early increments
 Once the development of an increment is started, the requirements are frozen though
requirements for later increments can continue to evolve
Analysis Design Code Test Delivery
increment #1
Calendar time
Analysis Design Code Test
Delivery
increment #2
Analysis Design Code Test Delivery #3
MMH S.15
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
Incremental
and
Parallel
Development
INCREMENTAL DEVELOPMENT
 Advantages of Incremental Development
 Customer value can be delivered with each increment so system functionality is
available earlier
 Deliver the core product first
 The highest priority system services tend to receive the most testing
 Early increments act as a prototype to help elicit requirements for later increments
 Lower risk of overall project failure
 Disadvantages of Incremental Development
 Often need to rework of the components (e.g., time, budget)
MMH S.16
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
INCREMENTAL VS ITERATIVE
 Iterative Development
 Iterative development is the process of repeating and refining a cycle/way of
working. This is called an iteration.
MMH S.17
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
 Incremental Development
 Incremental development slices work into small bite-sized pieces. These are called
increments. Each increment builds on top of what has gone before. Fully functional
modules grow bit-by-bit over time. Each evolution adds to preceding functionality.
 The mini Waterfall Model is a
traditional incremental development
approach. Other models can also be
used in each increments such as V
model, Saw Tooth model
 The Agile Modeling is a typical
iterative approach.
ITERATIVE: RAPID APPLICATION DEVELOPMENT (RAD)
 It is a type of iterative model. The developments are time boxed, delivered and
then assembled into a working prototype
 In RAD model the components or functions are developed in parallel as if they
were mini projects (frozen requirements in each increments)
 This can quickly give the customer something to see and use and to provide
feedback
 Delivers a fully functional system in 90 days, give or take 30 days
 Phases of RAD are:
 Requirements Planning (user requirements)
 User Design (user interact with the system analysts)
 Construction (program and application development)
 Cutover (testing, changeover to new system, user training)
MMH S.18
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
SPIRAL: AN ITERATIVE MODEL
Each quadrant is a phase of an
iteration
1. In Spiral, you begin by producing
the objectives and needs
and generating solutions for the
current iteration.
2. Identify and assess risks and
evaluate those solutions.
3. Move on to developing and testing
the product in the current iteration.
4. Once you have a product that
satisfies the objectives, you move
on to planning the next iteration.
MMH S.19
Gradually build up a product, by repeating the phase
cycle until project has been completed by client
SATISFACTION!
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
Iterative is a continuous and never-
ending process until it reaches its
allocated time and budget
ITERATIVE: RATIONAL UNIFIED PROCESS MODEL (RUP)
MMH S.20
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
COMPONENT BASED DEVELOPMENT MODEL: SOFTWARE
REUSE
 Software reuse is the concept of using developed
software, commercially available software packages,
and others to efficiently develop new software
 It requires standardization in the development phase,
improvement of module independence (low coupling),
and management of module-based units (high
cohesion)
 Modules created as components have high reliability
and can be expected to improve development
productivity
(i.e., shortening of the development period) and
quality.
 The reuse of software packages may require
customization.
 Suitable for re-usable object-oriented classes
 Apply characteristics of incremental and spiral
Identify
component
Construct
nth inter
system
Lookup
components
in library
Exract
components
if available
Build
components
if unavailable
Put new
components
in library
MMH S.21
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
PROTOTYPING
 The prototype model is a development technique that creates a
provisional prototype in a short time and is tested and evaluated
by users, with specifications finalized while changes are
repeated.
 System requirements ALWAYS evolve throughout a project, so
process iteration protypes is useful where earlier stages are
reworked is always part of the process for large systems
 Developing software products through a series of intermediate
prototypes was a theme in both the Spiral and Unified Process
models
 A prototype is not an actual working software product
MMH S.22
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
PROTOTYPING
1. Illustrative prototype: Mock-up, and Wireframe (Non-interactive) to illustrate the idea
which is can be easily disposable. Often pen and paper used to sketch the idea.
2. Throw-away prototype: Objective is to understand the system requirements. Should
start with poorly understood requirements. For example, first version of the product is
just built to get a better understanding of building the second version (e.g., pencil
tool)
3. Exploratory prototype: Objective is to work with customers and to explore a final
system from an initial outline specification. It allows the user to interact with system
functionality (interactive mock-ups) and explore what is feasible (e.g., HTML, CSS)
4. Incremental prototype: When a product is built and released in increments, it is
known an incremental prototype (working software). It use a triage system (the
increments are build based on priorities, e.g., very important feature, important and
optional features)
5. Evolutionary prototype: Develop early version of all the feature until they are fully
mature in the final product. The feature evolves from initial functionalities to more
mature versions.
MMH S.23
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
REFERENCES
 Pressman, R.S. (2005). Software Engineering: A Practitioner’s Approach.
 Kelly, J. C., Sherif, J. S., & Hops, J. (1992). An analysis of defect densities found during
software inspections. Journal of Systems and Software, 17(2), 111-117.
 Bhandari, I., Halliday, M. J., Chaar, J., Chillarege, R., Jones, K., Atkinson, J. S., & Yonezawa,
M. (1994).
In-process improvement through defect data interpretation. IBM Systems Journal, 33(1), 182-
214.
 Wong, K. (2015).Software Processes and Agile Practices. University of Alberta
MMH S.24
Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan

More Related Content

What's hot

Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle ModelJ.T.A.JONES
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering ModelBala Ganesh
 
Agbaje7survey of softwar process
Agbaje7survey of softwar processAgbaje7survey of softwar process
Agbaje7survey of softwar processDr. Michael Agbaje
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process ModelAchmad Solichin
 
SDLC model Lecture 03.ppt
SDLC model Lecture 03.pptSDLC model Lecture 03.ppt
SDLC model Lecture 03.pptPriyanshTan
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
Project on software engineering types of models
Project on software engineering types of modelsProject on software engineering types of models
Project on software engineering types of modelsSoham Nanekar
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4Siddharth Ayer
 
comparison of various sdlc models
comparison of various sdlc modelscomparison of various sdlc models
comparison of various sdlc modelssadaf ateeq
 
SOFTWARE LIFECYLE MODELS
SOFTWARE LIFECYLE MODELSSOFTWARE LIFECYLE MODELS
SOFTWARE LIFECYLE MODELSguest1c0da72
 

What's hot (19)

Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
Ch03-Software Engineering Model
Ch03-Software Engineering ModelCh03-Software Engineering Model
Ch03-Software Engineering Model
 
SDLC
SDLCSDLC
SDLC
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
 
Agbaje7survey of softwar process
Agbaje7survey of softwar processAgbaje7survey of softwar process
Agbaje7survey of softwar process
 
Process model
Process modelProcess model
Process model
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
 
SDLC model Lecture 03.ppt
SDLC model Lecture 03.pptSDLC model Lecture 03.ppt
SDLC model Lecture 03.ppt
 
Software process
Software processSoftware process
Software process
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Project on software engineering types of models
Project on software engineering types of modelsProject on software engineering types of models
Project on software engineering types of models
 
Software Development Life Cycle Part II
Software Development Life Cycle Part IISoftware Development Life Cycle Part II
Software Development Life Cycle Part II
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
comparison of various sdlc models
comparison of various sdlc modelscomparison of various sdlc models
comparison of various sdlc models
 
SOFTWARE LIFECYLE MODELS
SOFTWARE LIFECYLE MODELSSOFTWARE LIFECYLE MODELS
SOFTWARE LIFECYLE MODELS
 

SE - Ch.02 - Software Developmnet Process Model.pptx

  • 1. SOFTWARE ENGINEERING (UNDERGRADUATE ) COURSE NAME SOFTWARE ENGINEERING CSC 3114 (UNDERGRADUATE ) CHAPTER 2 SOFTWARE DEVELOPMENT PROCESS MODEL DR. M. MAHMUDUL HASAN ASSISTANT PROFESSOR, CS, AIUB Web: http://cs.aiub.edu/profile/m.hasan WordPress: https://wordpress.com/view/mhasansuman.wordpress.com
  • 2. SOFTWARE PROCESS  Process is a way to organize the development of a software product into distinct phases or stages (entire life of a software product or can be a sub-process within a life cycle process.  Phase: processes are organized into phases. For Examples: the lifecycle process is organized as specification, design and implementation, and verification and validation phases.  Activity: each phase is composed of associated activities.  Task: an activity is a group of related tasks (low-level actions)  Role: and tasks relate to roles, work products, and resources. MMH S.2 Practices: practices are guidelines that can be applied within a process with proven benefits such as increased communication, tracking of project progress, risk management, and reduced waste. Example: Agile methodologies.  An Activity (Design) takes a work product as input (Specification) and produce another work product as output (UI/UX) Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 3. SOFTWARE DEVELOPMENT PROCESS MODELS  Completing any given task requires resources to advance or fund it, such as time, people, technology, knowledge, and money.  A task consumes resources.  resources consume by a task MMH S.3 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 4. SOFTWARE DEVELOPMENT PROCESS MODELS  A variety of process models will be presented during this course  Every process model will have phases; however, there are major differences between models in terms of what activities constitute their phases and the sequencing of the phases.  Three main types of process models are:  Linear process models – phases that happen sequentially, one after another  Incremental process models – deliver the software through several increments  Iterative process models – phases that are repeated in cycles  Parallel process models – activities that occur concurrently MMH S.4 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 5. SOFTWARE DEVELOPMENT PROCESS MODELS MMH S.5 Q. Why Do You need to Learn all the available Process Models for Software development? Project 1: Setup a new railway network Project 2: Repair 100- meter railway track Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan Technology A: Automated Technology B: Manual
  • 6. PROJECT ENVIRONMENT: PREDICTIVE VS ADAPTIVE MMH S.6 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan NO Change in the development process ALLOW Changes at the middle of the development
  • 7. WATERFALL MODEL : PROCESS  Define the Waterfall model and its stages  Waterfall model is a linear sequential model where next phase starts only after completion of the previous phase  It is very simple to understand and easy to use because of its systematic well-defined process description. The product is delivered to the users at ONE shoot (Big bang) MMH S.7 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 8. WATERFALL MODEL : IMPACT  Describe its impacts in various software development context  Environmental impact: this model is very useful and inexpensive for stable environment where the requirements are fixed (i.e., predictive environment) and expensive for dynamic environment where the requirements are frequently changing (i.e., adaptive environment)  Scope of change: the use of waterfall model makes the software system very rigid for further modification  Risk lifetime: the risk remains high in long time the project and addresses the maximum risk at the later stages of software development Figure: Risk profile of Software Development Process Model Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan MMH S.8
  • 9. WATERFALL MODEL : APPLICABILITY  Describe the applicability of waterfall model  Stable Environment (Predictive): this model is applicable where the software development environment is relatively stable and very little or no scope for any further changes during the development and after releasing the product  Well-understood Requirements: this model is only appropriate when the requirements are well-understood and no further changes are required in the software descriptions  Example: in the safety critical product development where the requirements have to well defined at the beginning of the project development MMH S.9 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 10. WATERFALL MODEL : EXAMPLE  Provide some real-life software development examples where waterfall model can be used a process model  Example: Autopilot system, Chemical plant system, Embedded system where requirements are well understood and no need for further modification of the system specification MMH S.10 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 11. WATERFALL MODEL : LIMITATION  Describe problems of waterfall model  No Backtracking: Inflexible partitioning of the project into distinct stages where next phase starts only after completion of the previous phase, this makes it difficult to respond to changing customer requirements.  High Risk: risk remain high longer period in the project and addresses maximum risk at the later stages of software development  Late Product Visibility: the customer must have patience. A working version of the program(s) will not be available until late in the project time-span. MMH S.11 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan  Iterative Development: products are visible at an early stage of development. Low probability of rework in case of defects in the final deliverable product
  • 12. V - MODEL  How does V-Model Extends Waterfall Model  The V-model is a SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation model.  V-Model is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle there is a directly associated testing phase.  This is a highly disciplined model and next phase MMH S.12 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 13. EXTENSION OF WATERFALL MODEL  How some other models can use waterfall model in its process to adapt changes  Incremental Model: the development and delivery are broken down into increments (timeboxes) where each increment may follow the sequential stages of waterfall model for complete one increment without implementing any change in that increments  V-Model: it is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage of waterfall model. MMH S.13 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 14. SAW-TOOTH MODEL  The Sawtooth process model distinguish the process phases into client side (upper) and development side (bottom) activities  Waterfall, V-Model, and Sawtooth models are linear sequential model and has same kind of drawbacks in software development. MMH S.14 Client Interaction Development Activities Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 15. INCREMENTAL DEVELOPMENT  Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality (SPIRAL). The requirements are relatively certain but there are many complexities that leads to frequent changes.  User requirements are prioritised, and the highest priority requirements are included in early increments  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve Analysis Design Code Test Delivery increment #1 Calendar time Analysis Design Code Test Delivery increment #2 Analysis Design Code Test Delivery #3 MMH S.15 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan Incremental and Parallel Development
  • 16. INCREMENTAL DEVELOPMENT  Advantages of Incremental Development  Customer value can be delivered with each increment so system functionality is available earlier  Deliver the core product first  The highest priority system services tend to receive the most testing  Early increments act as a prototype to help elicit requirements for later increments  Lower risk of overall project failure  Disadvantages of Incremental Development  Often need to rework of the components (e.g., time, budget) MMH S.16 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 17. INCREMENTAL VS ITERATIVE  Iterative Development  Iterative development is the process of repeating and refining a cycle/way of working. This is called an iteration. MMH S.17 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan  Incremental Development  Incremental development slices work into small bite-sized pieces. These are called increments. Each increment builds on top of what has gone before. Fully functional modules grow bit-by-bit over time. Each evolution adds to preceding functionality.  The mini Waterfall Model is a traditional incremental development approach. Other models can also be used in each increments such as V model, Saw Tooth model  The Agile Modeling is a typical iterative approach.
  • 18. ITERATIVE: RAPID APPLICATION DEVELOPMENT (RAD)  It is a type of iterative model. The developments are time boxed, delivered and then assembled into a working prototype  In RAD model the components or functions are developed in parallel as if they were mini projects (frozen requirements in each increments)  This can quickly give the customer something to see and use and to provide feedback  Delivers a fully functional system in 90 days, give or take 30 days  Phases of RAD are:  Requirements Planning (user requirements)  User Design (user interact with the system analysts)  Construction (program and application development)  Cutover (testing, changeover to new system, user training) MMH S.18 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 19. SPIRAL: AN ITERATIVE MODEL Each quadrant is a phase of an iteration 1. In Spiral, you begin by producing the objectives and needs and generating solutions for the current iteration. 2. Identify and assess risks and evaluate those solutions. 3. Move on to developing and testing the product in the current iteration. 4. Once you have a product that satisfies the objectives, you move on to planning the next iteration. MMH S.19 Gradually build up a product, by repeating the phase cycle until project has been completed by client SATISFACTION! Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan Iterative is a continuous and never- ending process until it reaches its allocated time and budget
  • 20. ITERATIVE: RATIONAL UNIFIED PROCESS MODEL (RUP) MMH S.20 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 21. COMPONENT BASED DEVELOPMENT MODEL: SOFTWARE REUSE  Software reuse is the concept of using developed software, commercially available software packages, and others to efficiently develop new software  It requires standardization in the development phase, improvement of module independence (low coupling), and management of module-based units (high cohesion)  Modules created as components have high reliability and can be expected to improve development productivity (i.e., shortening of the development period) and quality.  The reuse of software packages may require customization.  Suitable for re-usable object-oriented classes  Apply characteristics of incremental and spiral Identify component Construct nth inter system Lookup components in library Exract components if available Build components if unavailable Put new components in library MMH S.21 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 22. PROTOTYPING  The prototype model is a development technique that creates a provisional prototype in a short time and is tested and evaluated by users, with specifications finalized while changes are repeated.  System requirements ALWAYS evolve throughout a project, so process iteration protypes is useful where earlier stages are reworked is always part of the process for large systems  Developing software products through a series of intermediate prototypes was a theme in both the Spiral and Unified Process models  A prototype is not an actual working software product MMH S.22 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 23. PROTOTYPING 1. Illustrative prototype: Mock-up, and Wireframe (Non-interactive) to illustrate the idea which is can be easily disposable. Often pen and paper used to sketch the idea. 2. Throw-away prototype: Objective is to understand the system requirements. Should start with poorly understood requirements. For example, first version of the product is just built to get a better understanding of building the second version (e.g., pencil tool) 3. Exploratory prototype: Objective is to work with customers and to explore a final system from an initial outline specification. It allows the user to interact with system functionality (interactive mock-ups) and explore what is feasible (e.g., HTML, CSS) 4. Incremental prototype: When a product is built and released in increments, it is known an incremental prototype (working software). It use a triage system (the increments are build based on priorities, e.g., very important feature, important and optional features) 5. Evolutionary prototype: Develop early version of all the feature until they are fully mature in the final product. The feature evolves from initial functionalities to more mature versions. MMH S.23 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan
  • 24. REFERENCES  Pressman, R.S. (2005). Software Engineering: A Practitioner’s Approach.  Kelly, J. C., Sherif, J. S., & Hops, J. (1992). An analysis of defect densities found during software inspections. Journal of Systems and Software, 17(2), 111-117.  Bhandari, I., Halliday, M. J., Chaar, J., Chillarege, R., Jones, K., Atkinson, J. S., & Yonezawa, M. (1994). In-process improvement through defect data interpretation. IBM Systems Journal, 33(1), 182- 214.  Wong, K. (2015).Software Processes and Agile Practices. University of Alberta MMH S.24 Chapter 2: Software Development Process Model Dr. M. Mahmudul Hasan