尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
SRIKRISHNAARTSANDSCIENCECOLLEGE
SOFTWARE ENGINEERING
PROJECT ON :
PROCESS MODELS
Submitted By :Arun.P
13bca005
SoftwareProcess
• A framework for the activities, actions, and
tasks that are required to build high-quality
software.
• SP defines the approach that is taken as
software is engineered.
• Is not equal to software engineering, which
also encompasses technologies that
populate the process– technical methods
and automated tools.
A ProcessGenericModel
As we discussed before, a generic process
framework for software engineering defines
five framework activities-communication,
planning, modeling, construction, and
deployment.
In addition, a set of umbrella activities-
project tracking and control, risk
management, quality assurance,
configuration management, technical
reviews, and others are applied throughout
the process.
Processflow
Linear process flow executes each of the five
activities in sequence.
An iterative process flow repeats one or
more of the activities before proceeding to
the next.
An evolutionary process flow executes the
activities in a circular manner. Each circuit
leads to a more complete version of the
software.
 A parallel process flow executes one or
more activities in parallel with other
activities ( modeling for one aspect of the
software in parallel with construction of
another aspect of the software.
Identifyinga Task Set
Before you can proceed with the process
model, a key question: what actions are
appropriate for a framework activity given
the nature of the problem, the
characteristics of the people and the
stakeholders?
A task set defines the actual work to be done
to accomplish the objectives of a software
engineering action.
A list of the task to be accomplished
A list of the work products to be
produced
A list of the quality assurance filters to
be applied.
For example, a small software project
requested by one person with simple
requirements, the communication activity
might encompass little more than a phone
all with the stakeholder. Therefore, the only
necessary action is phone conversation, the
work tasks of this action are:
1. Make contact with stakeholder via
telephone.
2. Discuss requirements and take notes.
3. Organize notes into a brief written
statement of requirements.
4. E-mail to stakeholder for review and
approval.
Example for identifying a task:
The task sets for Requirements gathering
action for a simple project may include:
1.Make a list of stakeholders for the
project.
2. Invite all stakeholders to an informal
meeting.
3. Ask each stakeholder to make a list
of features and functions required.
4. Discuss requirements and build a
final list.
5.Prioritize requirements.
6. Note areas of uncertainty.
SoftwareProcessModelDescription:
• A software process model is an abstract
representation of a process. It presents a
description of a process.
• When we describe and discuss processes, we
usually talk about the activities in these
processes such as specifying a data model,
designing a user interface, etc. and the
ordering of these activities.
• Process descriptions may also include:
– Products, which are the outcomes of a
process activity;
– Roles, which reflect the responsibilities
of the people involved in the process;
– Pre- and post-conditions, which are
statements that are true before and after
a process activity has been enacted or a
product produced.
– Notation: activities, products
The WaterFallModel
l Requirements analysis and definition
l System and software design
l Implementation and unit testing
l Integration and system testing
l Operation and maintenance
The main drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway. One phase has to be
complete before moving onto the next phase
Waterfallmodelproblems:
Inflexible partitioning of the project into
distinct stages makes it difficult to respond
to changing customer requirements.
Therefore, this model is only appropriate
when the requirements are well-understood
and changes will be fairly limited during the
design process.
Few business systems have stable
requirements.
The waterfall model is mostly used for large
systems engineering projects where a
system is developed at several sites.
The IncrementalModel
• When initial requirements are reasonably
well defined, but the overall scope of the
development effort precludes a purely linear
process. A compelling need to expand a
limited set of new functions to a later
system release.
• It combines elements of linear and parallel
process flows. Each linear sequence
produces deliverable increments of the
software.
• The first increment is often a core product
with many supplementary features. Users
use it and evaluate it with more
modifications to better meet the needs.
V-Model
A variation of waterfall model depicts the
relationship of quality assurance actions to the
actions associated with communication,
modeling and early code construction activates.
Team first moves down the left side of the V to
refine the problem requirements. Once code is
generated, the team moves up the right side of
the V, performing a series of tests that validate
each of the models created as the team moved
down the left side.
Evolutionary Models:
Prototyping:
• When to use: Customer defines a set of
general objectives but does not identify
detailed requirements for functions and
features. Or Developer may be unsure of the
efficiency of an algorithm, the form that
human computer interaction should take.
• What step: Begins with communication by
meeting with stakeholders to define the
objective, identify whatever requirements
are known, outline areas where further
definition is mandatory. A quick plan for
prototyping and modeling (quick design)
occur. Quick design focuses on a
representation of those aspects the software
that will be visible to end users. ( interface
and output). Design leads to the
construction of a prototype which will be
deployed and evaluated. Stakeholder’s
comments will be used to refine
requirements.
• Both stakeholders and software engineers
like the prototyping paradigm. Users get a
feel for the actual system, and developers
get to build something immediately.
However, engineers may make
compromises in order to get a prototype
working quickly. The less-than-ideal choice
may be adopted forever after you get used to
it.
2) Spiral
• It couples the iterative nature of prototyping
with the controlled and systematic aspects
of the waterfall model and is a risk-driven
process model generator that is used to
guide multi-stakeholder concurrent
engineering of software intensive systems.
• Two main distinguishing features: one is
cyclic approach for incrementally growing a
system’s degree of definition and
implementation while decreasing its degree
of risk. The other is a set of anchor point
milestones for ensuring stakeholder
commitment to feasible and mutually
satisfactory system solutions.
• A series of evolutionary releases are
delivered. During the early iterations, the
release might be a model or prototype.
During later iterations, increasingly more
complete version of the engineered system
are produced.
• The first circuit in the clockwise direction
might result in the product specification;
subsequent passes around the spiral might
be used to develop a prototype and then
progressively more sophisticated versions of
the software. Each pass results in
adjustments to the project plan. Cost and
schedule are adjusted based on feedback.
Also, the number of iterations will be
adjusted by project manager.
• Good to develop large-scale system as
software evolves as the process progresses
and risk should be understood and properly
reacted to. Prototyping is used to reduce
risk.
• However, it may be difficult to convince
customers that it is controllable as it
demands considerable risk assessment
expertise.
StillOtherProcessModels
• Component based development—the
process to apply when reuse is a
development objective ( like spiral model)
• Formal methods—emphasizes the
mathematical specification of requirements
( easy to discover and eliminate ambiguity,
incompleteness and inconsistency)
• Aspect Oriented software development
(AOSD)—provides a process and
methodological approach for defining,
specifying, designing, and constructing
aspects
• Unified Process—a “use-case driven,
architecture-centric, iterative and
incremental” software process closely
aligned with the Unified Modeling Language
(UML) to model and develop object-
oriented system iteratively and
incrementally.
The Unified Process (UP):
UP Work Products:
Personal Software Process:
• Planning. This activity isolates
requirements and develops both size and
resource estimates. In addition, a defect
estimate (the number of defects projected
for the work) is made. All metrics are
recorded on worksheets or templates.
Finally, development tasks are identified
and a project schedule is created.
• High-level design. External
specifications for each component to be
constructed are developed and a component
design is created. Prototypes are built when
uncertainty exists. All issues are recorded
and tracked.
• High-level design review. Formal
verification methods (Chapter 21) are
applied to uncover errors in the design.
Metrics are maintained for all important
tasks and work results.
• Development. The component level
design is refined and reviewed. Code is
generated, reviewed, compiled, and tested.
Metrics are maintained for all important
tasks and work results.
• Postmortem. Using the measures and
metrics collected (this is a substantial
amount of data that should be analyzed
statistically), the effectiveness of the process
is determined. Measures and metrics should
provide guidance for modifying the process
to improve its effectiveness.
Team Software Process (TSP):
Build self-directed teams that plan and
track their work, establish goals, and own
their processes and plans. These can be pure
software teams or integrated product teams
(IPT) of three to about 20 engineers.
Show managers how to coach and motivate
their teams and how to help them sustain
peak performance.
Accelerate software process improvement
by making CMM Level 5 behavior normal
and expected.
 The Capability Maturity Model (CMM),
a measure of the effectiveness of a
software process, is discussed in Chapter
30.
Provide improvement guidance to high-
maturity organizations.
Facilitate university teaching of industrial-
grade team skills.

More Related Content

What's hot

CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
mohamed khalaf alla mohamedain
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
bhadjaashvini1
 
Spiral model
Spiral modelSpiral model
Spiral model
khuram22
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
Dharmalingam Ganesan
 
Waterfall model in SDLC
Waterfall model in SDLCWaterfall model in SDLC
Waterfall model in SDLC
HND Assignment Help
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
KarthigaiSelviS3
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
koolkampus
 
Spiral Model
Spiral ModelSpiral Model
Spiral Model
Saqib Ahmed
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
koolkampus
 
System engineering
System engineeringSystem engineering
System engineering
Lisa Elisa
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
JAYAPRIYAR7
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
deep sharma
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
Delowar hossain
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal183
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
kavitha muneeshwaran
 
Unit 8
Unit 8Unit 8
Unit 8
anuragmbst
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
Atamjitsingh92
 
Software quality
Software qualitySoftware quality
Software quality
Sara Mehmood
 
Prototype model
Prototype modelPrototype model
Prototype model
sadhana8
 

What's hot (20)

CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Waterfall model in SDLC
Waterfall model in SDLCWaterfall model in SDLC
Waterfall model in SDLC
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
Spiral Model
Spiral ModelSpiral Model
Spiral Model
 
System Models in Software Engineering SE7
System Models in Software Engineering SE7System Models in Software Engineering SE7
System Models in Software Engineering SE7
 
System engineering
System engineeringSystem engineering
System engineering
 
1.1 The nature of software.ppt
1.1 The nature of software.ppt1.1 The nature of software.ppt
1.1 The nature of software.ppt
 
Risk management in software engineering
Risk management in software engineeringRisk management in software engineering
Risk management in software engineering
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Unit 8
Unit 8Unit 8
Unit 8
 
Software Engineering concept
Software Engineering concept Software Engineering concept
Software Engineering concept
 
Software quality
Software qualitySoftware quality
Software quality
 
Prototype model
Prototype modelPrototype model
Prototype model
 

Similar to process models- software engineering

SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
RAVALCHIRAG1
 
software engineering
software engineering software engineering
software engineering
bharati vidhyapeeth uni.-pune
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
eshtiyak
 
ppt2.pptx
ppt2.pptxppt2.pptx
ppt2.pptx
JOHNNYGALLA2
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
Raheel Aslam
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
Siva Ayyakutti
 
SE Lecture 2.ppt
SE Lecture 2.pptSE Lecture 2.ppt
SE Lecture 2.ppt
ssusere16bd9
 
System Development
System  DevelopmentSystem  Development
System Development
Sharad Patel
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
HaiderAli252366
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
Badar Waseer
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
Noor Ul Hudda Memon
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
Azhar Shaik
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
ethiouniverse
 
DITEC - Software Engineering
DITEC - Software EngineeringDITEC - Software Engineering
DITEC - Software Engineering
Rasan Samarasinghe
 
Software models
Software modelsSoftware models
Software models
MOULA HUSSAIN KHATTHEWALE
 
Week_02.pptx
Week_02.pptxWeek_02.pptx
Week_02.pptx
MaryamChouhdry
 
The process
The processThe process
The process
prakashvs7
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
Dr. Anthony Vincent. B
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
Arid Agriculture university rawalpindi
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
Rasan Samarasinghe
 

Similar to process models- software engineering (20)

SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
software engineering
software engineering software engineering
software engineering
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
ppt2.pptx
ppt2.pptxppt2.pptx
ppt2.pptx
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
SE Lecture 2.ppt
SE Lecture 2.pptSE Lecture 2.ppt
SE Lecture 2.ppt
 
System Development
System  DevelopmentSystem  Development
System Development
 
SE-03.pptx
SE-03.pptxSE-03.pptx
SE-03.pptx
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Software engineering jwfiles 3
Software engineering jwfiles 3Software engineering jwfiles 3
Software engineering jwfiles 3
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
DITEC - Software Engineering
DITEC - Software EngineeringDITEC - Software Engineering
DITEC - Software Engineering
 
Software models
Software modelsSoftware models
Software models
 
Week_02.pptx
Week_02.pptxWeek_02.pptx
Week_02.pptx
 
The process
The processThe process
The process
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 
Process Models IN software Engineering
Process Models IN software EngineeringProcess Models IN software Engineering
Process Models IN software Engineering
 
DISE - Introduction to Software Engineering
DISE - Introduction to Software EngineeringDISE - Introduction to Software Engineering
DISE - Introduction to Software Engineering
 

More from Arun Nair

SAP in PRECOT MERIDIAN Ltd.
SAP in PRECOT MERIDIAN Ltd.SAP in PRECOT MERIDIAN Ltd.
SAP in PRECOT MERIDIAN Ltd.
Arun Nair
 
basic programs in C++
basic programs in C++ basic programs in C++
basic programs in C++
Arun Nair
 
c++
c++ c++
c++
Arun Nair
 
remote method invocation
remote method invocationremote method invocation
remote method invocation
Arun Nair
 
retrieving data using SQL statements
retrieving data using SQL statementsretrieving data using SQL statements
retrieving data using SQL statements
Arun Nair
 
BITCOIN TECHNOLOGY(AAappZZ)
BITCOIN TECHNOLOGY(AAappZZ)BITCOIN TECHNOLOGY(AAappZZ)
BITCOIN TECHNOLOGY(AAappZZ)
Arun Nair
 

More from Arun Nair (6)

SAP in PRECOT MERIDIAN Ltd.
SAP in PRECOT MERIDIAN Ltd.SAP in PRECOT MERIDIAN Ltd.
SAP in PRECOT MERIDIAN Ltd.
 
basic programs in C++
basic programs in C++ basic programs in C++
basic programs in C++
 
c++
c++ c++
c++
 
remote method invocation
remote method invocationremote method invocation
remote method invocation
 
retrieving data using SQL statements
retrieving data using SQL statementsretrieving data using SQL statements
retrieving data using SQL statements
 
BITCOIN TECHNOLOGY(AAappZZ)
BITCOIN TECHNOLOGY(AAappZZ)BITCOIN TECHNOLOGY(AAappZZ)
BITCOIN TECHNOLOGY(AAappZZ)
 

process models- software engineering

  • 3. SoftwareProcess • A framework for the activities, actions, and tasks that are required to build high-quality software. • SP defines the approach that is taken as software is engineered. • Is not equal to software engineering, which also encompasses technologies that populate the process– technical methods and automated tools.
  • 4. A ProcessGenericModel As we discussed before, a generic process framework for software engineering defines five framework activities-communication, planning, modeling, construction, and deployment.
  • 5. In addition, a set of umbrella activities- project tracking and control, risk management, quality assurance, configuration management, technical reviews, and others are applied throughout the process.
  • 6. Processflow Linear process flow executes each of the five activities in sequence. An iterative process flow repeats one or more of the activities before proceeding to the next.
  • 7. An evolutionary process flow executes the activities in a circular manner. Each circuit leads to a more complete version of the software.  A parallel process flow executes one or more activities in parallel with other activities ( modeling for one aspect of the software in parallel with construction of another aspect of the software.
  • 8. Identifyinga Task Set Before you can proceed with the process model, a key question: what actions are appropriate for a framework activity given the nature of the problem, the characteristics of the people and the stakeholders? A task set defines the actual work to be done to accomplish the objectives of a software engineering action. A list of the task to be accomplished A list of the work products to be produced A list of the quality assurance filters to be applied.
  • 9. For example, a small software project requested by one person with simple requirements, the communication activity might encompass little more than a phone all with the stakeholder. Therefore, the only necessary action is phone conversation, the work tasks of this action are: 1. Make contact with stakeholder via telephone. 2. Discuss requirements and take notes. 3. Organize notes into a brief written statement of requirements. 4. E-mail to stakeholder for review and approval. Example for identifying a task:
  • 10. The task sets for Requirements gathering action for a simple project may include: 1.Make a list of stakeholders for the project. 2. Invite all stakeholders to an informal meeting. 3. Ask each stakeholder to make a list of features and functions required. 4. Discuss requirements and build a final list. 5.Prioritize requirements. 6. Note areas of uncertainty.
  • 11. SoftwareProcessModelDescription: • A software process model is an abstract representation of a process. It presents a description of a process. • When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities. • Process descriptions may also include: – Products, which are the outcomes of a process activity; – Roles, which reflect the responsibilities of the people involved in the process; – Pre- and post-conditions, which are statements that are true before and after a process activity has been enacted or a product produced. – Notation: activities, products
  • 12.
  • 13. The WaterFallModel l Requirements analysis and definition l System and software design l Implementation and unit testing l Integration and system testing l Operation and maintenance The main drawback of the waterfall model is the difficulty of accommodating change after the
  • 14. process is underway. One phase has to be complete before moving onto the next phase Waterfallmodelproblems: Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. The IncrementalModel
  • 15. • When initial requirements are reasonably well defined, but the overall scope of the development effort precludes a purely linear process. A compelling need to expand a limited set of new functions to a later system release.
  • 16. • It combines elements of linear and parallel process flows. Each linear sequence produces deliverable increments of the software. • The first increment is often a core product with many supplementary features. Users use it and evaluate it with more modifications to better meet the needs. V-Model
  • 17. A variation of waterfall model depicts the relationship of quality assurance actions to the actions associated with communication, modeling and early code construction activates. Team first moves down the left side of the V to refine the problem requirements. Once code is generated, the team moves up the right side of
  • 18. the V, performing a series of tests that validate each of the models created as the team moved down the left side.
  • 19. Evolutionary Models: Prototyping: • When to use: Customer defines a set of general objectives but does not identify detailed requirements for functions and features. Or Developer may be unsure of the efficiency of an algorithm, the form that human computer interaction should take. • What step: Begins with communication by meeting with stakeholders to define the objective, identify whatever requirements are known, outline areas where further definition is mandatory. A quick plan for prototyping and modeling (quick design) occur. Quick design focuses on a representation of those aspects the software that will be visible to end users. ( interface and output). Design leads to the construction of a prototype which will be
  • 20. deployed and evaluated. Stakeholder’s comments will be used to refine requirements. • Both stakeholders and software engineers like the prototyping paradigm. Users get a feel for the actual system, and developers get to build something immediately. However, engineers may make compromises in order to get a prototype working quickly. The less-than-ideal choice may be adopted forever after you get used to it.
  • 21. 2) Spiral • It couples the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model and is a risk-driven process model generator that is used to
  • 22. guide multi-stakeholder concurrent engineering of software intensive systems. • Two main distinguishing features: one is cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.
  • 23. • A series of evolutionary releases are delivered. During the early iterations, the release might be a model or prototype. During later iterations, increasingly more complete version of the engineered system are produced. • The first circuit in the clockwise direction might result in the product specification; subsequent passes around the spiral might be used to develop a prototype and then progressively more sophisticated versions of the software. Each pass results in adjustments to the project plan. Cost and schedule are adjusted based on feedback. Also, the number of iterations will be adjusted by project manager. • Good to develop large-scale system as software evolves as the process progresses and risk should be understood and properly reacted to. Prototyping is used to reduce risk.
  • 24. • However, it may be difficult to convince customers that it is controllable as it demands considerable risk assessment expertise. StillOtherProcessModels • Component based development—the process to apply when reuse is a development objective ( like spiral model)
  • 25. • Formal methods—emphasizes the mathematical specification of requirements ( easy to discover and eliminate ambiguity, incompleteness and inconsistency) • Aspect Oriented software development (AOSD)—provides a process and methodological approach for defining, specifying, designing, and constructing aspects • Unified Process—a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) to model and develop object- oriented system iteratively and incrementally. The Unified Process (UP):
  • 26.
  • 27. UP Work Products: Personal Software Process: • Planning. This activity isolates requirements and develops both size and resource estimates. In addition, a defect estimate (the number of defects projected for the work) is made. All metrics are recorded on worksheets or templates.
  • 28. Finally, development tasks are identified and a project schedule is created. • High-level design. External specifications for each component to be constructed are developed and a component design is created. Prototypes are built when uncertainty exists. All issues are recorded and tracked. • High-level design review. Formal verification methods (Chapter 21) are applied to uncover errors in the design. Metrics are maintained for all important tasks and work results. • Development. The component level design is refined and reviewed. Code is generated, reviewed, compiled, and tested. Metrics are maintained for all important tasks and work results. • Postmortem. Using the measures and metrics collected (this is a substantial amount of data that should be analyzed
  • 29. statistically), the effectiveness of the process is determined. Measures and metrics should provide guidance for modifying the process to improve its effectiveness. Team Software Process (TSP): Build self-directed teams that plan and track their work, establish goals, and own their processes and plans. These can be pure software teams or integrated product teams (IPT) of three to about 20 engineers. Show managers how to coach and motivate their teams and how to help them sustain peak performance. Accelerate software process improvement by making CMM Level 5 behavior normal and expected.  The Capability Maturity Model (CMM), a measure of the effectiveness of a
  • 30. software process, is discussed in Chapter 30. Provide improvement guidance to high- maturity organizations. Facilitate university teaching of industrial- grade team skills.
  翻译: