SlideShare a Scribd company logo
Software Process
1
The IEEE definition:
Software Engineering: (1) The application of a systematic, disciplined,
quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software. (2) The study
of approaches as in (1).
The seminal definition:
[Software engineering is] the establishment and use of
sound engineering principles in order to obtain
economically software that is reliable and works efficiently
on real machines.
Software Engineering Definition
A Layered Technology
3
Software Engineering
a
a “
“quality
quality”
” focus
focus
process model
process model
methods
methods
tools
tools
 Organizational commitment to quality fosters a continuous process improvement culture.
 Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report, and
forms) are produced, milestone are established, quality is ensured and change is managed.
 Method provides technical how-to’s for building software. (Communication, requirement
analysis, design modeling, program construction, testing and support).
 Tools provide automated or semi-automated support for the process and methods.
Software Process
4
 A process is a collection of activities, actions and tasks that are
performed when some work product is to be created. It is not a
rigid prescription for how to build computer software.
Rather, it is an adaptable approach that enables the people doing
the work to pick and choose the appropriate set of work
actions and tasks.
 Purpose of process is to deliver software in a timely manner and
with sufficient quality to satisfy those who have sponsored its
creation and those who will use it.
Umbrella Activities
5
Complement the five process framework activities and help team manage and control
progress, quality, change, and risk.
 Software project tracking and control: assess progress against the plan and take
actions to maintain the schedule.
 Risk management: assesses risks that may affect the outcome and quality.
 Software quality assurance: defines and conduct activities to ensure quality.
 Technical reviews: assesses work products to uncover and remove errors before
going to the next activity.
 Measurement: define and collects process, project, and product measures to ensure
stakeholder’s needs are met.
 Software configuration management: manage the effects of change throughout the
software process.
 Reusability management: defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
 Work product preparation and production: create work products such as models,
documents, logs, forms and lists.
Definition of Software Process
6
 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 Generic Process Model
7
Process Flow
8
Identifying a Task Set
9
 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
Identifying a Task Set
10
 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 of a Task Set for Elicitation
11
 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.
Example of a Task Set for Elicitation
12
 The task sets for Requirements gathering action for a big project
may include:
1. Make a list of stakeholders for the project.
2. Interview each stakeholders separately to determine overall wants and needs.
3. Build a preliminary list of functions and features based on stakeholder input.
4. Schedule a series of facilitated application specification meetings.
5. Conduct meetings.
6. Produce informal user scenarios as part of each meeting.
7. Refine user scenarios based on stakeholder feedback.
8. Build a revised list of stakeholder requirements.
9. Use quality function deployment techniques to prioritize requirements.
10. Package requirements so that they can be delivered incrementally.
11. Note constraints and restrictions that will be placed on the system.
12. Discuss methods for validating the system.
 Both do the same work with different depth and formality. Choose
the task sets that achieve the goal and still maintain quality and
agility.
Process Patterns
13
 A process pattern
 describes a process-related problem that is encountered during
software engineering work,
 identifies the environment in which the problem has been
encountered, and
 suggests one or more proven solutions to the problem.
 Stated in more general terms, a process pattern provides you
with a template [Amb98]—a consistent method for describing
problem solutions within the context of the software process.
( defined at different levels of abstraction)
1. Problems and solutions associated with a complete process
model (e.g. prototyping).
2. Problems and solutions associated with a framework activity
(e.g. planning)
3. an action with a framework activity (e.g. project estimating).
14
Process Pattern Types
15
 Stage patterns—defines a problem associated with a framework activity
for the process. It includes multiple task patterns as well. For example,
EstablishingCommunication would incorporate the task pattern
RequirementsGathering and others.
 Task patterns—defines a problem associated with a software engineering
action or work task and relevant to successful software engineering
practice
 Phase patterns—define the sequence of framework activities that occur
with the process, even when the overall flow of activities is iterative in
nature. Example includes SprialModel or Prototyping.
An Example of Process Pattern
16
 Describes an approach that may be applicable when stakeholders have a general idea of what
must be done but are unsure of specific software requirements.
 Pattern name. RequiremetnsUnclear
 Intent. This pattern describes an approach for building a model that can be assessed iteratively by
stakeholders in an effort to identify or solidify software requirements.
 Type. Phase pattern
 Initial context. Conditions must be met (1) stakeholders have been identified; (2) a mode of
communication between stakeholders and the software team has been established; (3) the
overriding software problem to be solved has been identified by stakeholders ; (4) an initial
understanding of project scope, basic business requirements and project constraints has been
developed.
 Problem. Requirements are hazy or nonexistent. stakeholders are unsure of what they want.
 Solution. A description of the prototyping process would be presented here.
 Resulting context. A software prototype that identifies basic requirements. (modes of interaction,
computational features, processing functions) is approved by stakeholders. Following this, 1. This
prototype may evolve through a series of increments to become the production software or 2. the
prototype may be discarded.
 Related patterns. CustomerCommunication, IterativeDesign, IterativeDevelopment,
CustomerAssessment, RequirementExtraction.
Process Assessment and Improvement
17
SP cannot guarantee that software will be delivered on time, meet the needs, or has the desired
technical characteristics. However, the process can be assessed to ensure that it meets a set of
basic process criteria that have been shown to be essential for a successful software engineering.
Standard CMMI Assessment Method for Process Improvement (SCAMPI) — provides a five step
process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and learning.
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—provides a
diagnostic technique for assessing the relative maturity of a software organization; uses the
SEI CMM as the basis for the assessment [Dun01]
SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for software
process assessment. The intent of the standard is to assist organizations in developing an
objective evaluation of the efficacy of any defined software process. [ISO08]
ISO 9001:2000 for Software—a generic standard that applies to any organization that
wants to improve the overall quality of the products, systems, or services that it provides.
Therefore, the standard is directly applicable to software organizations and companies.
[Ant06]
Assessment and Improvement
These courseware
materials are to be used in
conjunction with Software
Engineering: A
Practitioner’s Approach,
6/e and are provided with
permission by R.S.
18
Software Process
Software Process
Assessment
is examined by identifies capabilities
and risk of
identifies
modifications to
Software Process
Improvement
Capability
Determination
leads to leads to
motivates
Personal Software Process
(PSP)
19
 Recommends five framework activities:
 Planning
 High-level design
 High-level design review
 Development
 Postmortem
 Stresses the need for each software engineer to identify
errors early and as important, to understand the types
of errors
Team Software Process (TSP)
20
 Each project is “launched” using a “script” that defines the
tasks to be accomplished
 Teams (of 2 to 20 engineers) are self-directed:
 Plan and track work, set goals, own processes and plans
 Measurement is encouraged
 Measures are analyzed with the intent of improving the
team process (through coaching, motivation, …)
The Primary Goal of Any Software Process: High
Quality
21
Remember:
Remember:
High quality = project timeliness
High quality = project timeliness
Why?
Why?
Less rework!
Less rework!
Ad

More Related Content

Similar to Lecture 1-4.ppt Introduction to Software Engineering: The evolving role of software, Changing Nature of Software, Industry 4.0 and Digital Transformation, Software myths. (20)

software engineering
software engineering software engineering
software engineering
bharati vidhyapeeth uni.-pune
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
Delowar hossain
 
Software Process in software engineering
Software Process in software engineeringSoftware Process in software engineering
Software Process in software engineering
MuhammadTalha436
 
Software models
Software modelsSoftware models
Software models
MOULA HUSSAIN KHATTHEWALE
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
Pratik Devmurari
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
DhanashriAmbre
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
Priyanka Shetty
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
VikasRai405977
 
A generic view of software engineering
A generic view of software engineeringA generic view of software engineering
A generic view of software engineering
Inocentshuja Ahmad
 
SDLC comprises seven different stages: planning, analysis, design, developmen...
SDLC comprises seven different stages: planning, analysis, design, developmen...SDLC comprises seven different stages: planning, analysis, design, developmen...
SDLC comprises seven different stages: planning, analysis, design, developmen...
abhitiw321
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
Kalpna Saharan
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software Project
Anas Bilal
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
UMA PARAMESWARI
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)
pawanonline83
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
dsffdfddv
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
Sharbani Bhattacharya
 
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
 
Software Process in software engineering
Software Process in software engineeringSoftware Process in software engineering
Software Process in software engineering
MuhammadTalha436
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
Pratik Devmurari
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
smumbahelp
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
DhanashriAmbre
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
VikasRai405977
 
A generic view of software engineering
A generic view of software engineeringA generic view of software engineering
A generic view of software engineering
Inocentshuja Ahmad
 
SDLC comprises seven different stages: planning, analysis, design, developmen...
SDLC comprises seven different stages: planning, analysis, design, developmen...SDLC comprises seven different stages: planning, analysis, design, developmen...
SDLC comprises seven different stages: planning, analysis, design, developmen...
abhitiw321
 
Soft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptxSoft.Engg. UNIT 1.pptx
Soft.Engg. UNIT 1.pptx
Kalpna Saharan
 
Managing Software Project
Managing Software ProjectManaging Software Project
Managing Software Project
Anas Bilal
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)
pawanonline83
 
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
 

Recently uploaded (20)

Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Modelling of Concrete Compressive Strength Admixed with GGBFS Using Gene Expr...
Journal of Soft Computing in Civil Engineering
 
Water Industry Process Automation & Control Monthly May 2025
Water Industry Process Automation & Control Monthly May 2025Water Industry Process Automation & Control Monthly May 2025
Water Industry Process Automation & Control Monthly May 2025
Water Industry Process Automation & Control
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdfML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
rameshwarchintamani
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
acid base ppt and their specific application in food
acid base ppt and their specific application in foodacid base ppt and their specific application in food
acid base ppt and their specific application in food
Fatehatun Noor
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
22PCOAM16 ML Unit 3 Full notes PDF & QB.pdf
Guru Nanak Technical Institutions
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Prediction of Flexural Strength of Concrete Produced by Using Pozzolanic Mate...
Journal of Soft Computing in Civil Engineering
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning ModelsMode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Mode-Wise Corridor Level Travel-Time Estimation Using Machine Learning Models
Journal of Soft Computing in Civil Engineering
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
Artificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptxArtificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptx
rakshanatarajan005
 
Nanometer Metal-Organic-Framework Literature Comparison
Nanometer Metal-Organic-Framework  Literature ComparisonNanometer Metal-Organic-Framework  Literature Comparison
Nanometer Metal-Organic-Framework Literature Comparison
Chris Harding
 
Personal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.pptPersonal Protective Efsgfgsffquipment.ppt
Personal Protective Efsgfgsffquipment.ppt
ganjangbegu579
 
twin tower attack 2001 new york city
twin  tower  attack  2001 new  york citytwin  tower  attack  2001 new  york city
twin tower attack 2001 new york city
harishreemavs
 
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
Empowering Electric Vehicle Charging Infrastructure with Renewable Energy Int...
AI Publications
 
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdfML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
ML_Unit_V_RDC_ASSOCIATION AND DIMENSIONALITY REDUCTION.pdf
rameshwarchintamani
 
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdfSmart City is the Future EN - 2024 Thailand Modify V1.0.pdf
Smart City is the Future EN - 2024 Thailand Modify V1.0.pdf
PawachMetharattanara
 
acid base ppt and their specific application in food
acid base ppt and their specific application in foodacid base ppt and their specific application in food
acid base ppt and their specific application in food
Fatehatun Noor
 
Frontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend EngineersFrontend Architecture Diagram/Guide For Frontend Engineers
Frontend Architecture Diagram/Guide For Frontend Engineers
Michael Hertzberg
 
Evonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdfEvonik Overview Visiomer Specialty Methacrylates.pdf
Evonik Overview Visiomer Specialty Methacrylates.pdf
szhang13
 
Slide share PPT of NOx control technologies.pptx
Slide share PPT of  NOx control technologies.pptxSlide share PPT of  NOx control technologies.pptx
Slide share PPT of NOx control technologies.pptx
vvsasane
 
SICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introductionSICPA: Fabien Keller - background introduction
SICPA: Fabien Keller - background introduction
fabienklr
 
Autodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User InterfaceAutodesk Fusion 2025 Tutorial: User Interface
Autodesk Fusion 2025 Tutorial: User Interface
Atif Razi
 
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
sss1.pptxsss1.pptxsss1.pptxsss1.pptxsss1.pptx
ajayrm685
 
Slide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptxSlide share PPT of SOx control technologies.pptx
Slide share PPT of SOx control technologies.pptx
vvsasane
 
Artificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptxArtificial intelligence and machine learning.pptx
Artificial intelligence and machine learning.pptx
rakshanatarajan005
 
Nanometer Metal-Organic-Framework Literature Comparison
Nanometer Metal-Organic-Framework  Literature ComparisonNanometer Metal-Organic-Framework  Literature Comparison
Nanometer Metal-Organic-Framework Literature Comparison
Chris Harding
 
Ad

Lecture 1-4.ppt Introduction to Software Engineering: The evolving role of software, Changing Nature of Software, Industry 4.0 and Digital Transformation, Software myths.

  • 2. The IEEE definition: Software Engineering: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). The seminal definition: [Software engineering is] the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. Software Engineering Definition
  • 3. A Layered Technology 3 Software Engineering a a “ “quality quality” ” focus focus process model process model methods methods tools tools  Organizational commitment to quality fosters a continuous process improvement culture.  Process layer as the foundation defines a framework with activities for effective delivery of software engineering technology. Establish the context where products (model, data, report, and forms) are produced, milestone are established, quality is ensured and change is managed.  Method provides technical how-to’s for building software. (Communication, requirement analysis, design modeling, program construction, testing and support).  Tools provide automated or semi-automated support for the process and methods.
  • 4. Software Process 4  A process is a collection of activities, actions and tasks that are performed when some work product is to be created. It is not a rigid prescription for how to build computer software. Rather, it is an adaptable approach that enables the people doing the work to pick and choose the appropriate set of work actions and tasks.  Purpose of process is to deliver software in a timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it.
  • 5. Umbrella Activities 5 Complement the five process framework activities and help team manage and control progress, quality, change, and risk.  Software project tracking and control: assess progress against the plan and take actions to maintain the schedule.  Risk management: assesses risks that may affect the outcome and quality.  Software quality assurance: defines and conduct activities to ensure quality.  Technical reviews: assesses work products to uncover and remove errors before going to the next activity.  Measurement: define and collects process, project, and product measures to ensure stakeholder’s needs are met.  Software configuration management: manage the effects of change throughout the software process.  Reusability management: defines criteria for work product reuse and establishes mechanism to achieve reusable components.  Work product preparation and production: create work products such as models, documents, logs, forms and lists.
  • 6. Definition of Software Process 6  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.
  • 9. Identifying a Task Set 9  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
  • 10. Identifying a Task Set 10  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.
  • 11. Example of a Task Set for Elicitation 11  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.
  • 12. Example of a Task Set for Elicitation 12  The task sets for Requirements gathering action for a big project may include: 1. Make a list of stakeholders for the project. 2. Interview each stakeholders separately to determine overall wants and needs. 3. Build a preliminary list of functions and features based on stakeholder input. 4. Schedule a series of facilitated application specification meetings. 5. Conduct meetings. 6. Produce informal user scenarios as part of each meeting. 7. Refine user scenarios based on stakeholder feedback. 8. Build a revised list of stakeholder requirements. 9. Use quality function deployment techniques to prioritize requirements. 10. Package requirements so that they can be delivered incrementally. 11. Note constraints and restrictions that will be placed on the system. 12. Discuss methods for validating the system.  Both do the same work with different depth and formality. Choose the task sets that achieve the goal and still maintain quality and agility.
  • 13. Process Patterns 13  A process pattern  describes a process-related problem that is encountered during software engineering work,  identifies the environment in which the problem has been encountered, and  suggests one or more proven solutions to the problem.  Stated in more general terms, a process pattern provides you with a template [Amb98]—a consistent method for describing problem solutions within the context of the software process. ( defined at different levels of abstraction)
  • 14. 1. Problems and solutions associated with a complete process model (e.g. prototyping). 2. Problems and solutions associated with a framework activity (e.g. planning) 3. an action with a framework activity (e.g. project estimating). 14
  • 15. Process Pattern Types 15  Stage patterns—defines a problem associated with a framework activity for the process. It includes multiple task patterns as well. For example, EstablishingCommunication would incorporate the task pattern RequirementsGathering and others.  Task patterns—defines a problem associated with a software engineering action or work task and relevant to successful software engineering practice  Phase patterns—define the sequence of framework activities that occur with the process, even when the overall flow of activities is iterative in nature. Example includes SprialModel or Prototyping.
  • 16. An Example of Process Pattern 16  Describes an approach that may be applicable when stakeholders have a general idea of what must be done but are unsure of specific software requirements.  Pattern name. RequiremetnsUnclear  Intent. This pattern describes an approach for building a model that can be assessed iteratively by stakeholders in an effort to identify or solidify software requirements.  Type. Phase pattern  Initial context. Conditions must be met (1) stakeholders have been identified; (2) a mode of communication between stakeholders and the software team has been established; (3) the overriding software problem to be solved has been identified by stakeholders ; (4) an initial understanding of project scope, basic business requirements and project constraints has been developed.  Problem. Requirements are hazy or nonexistent. stakeholders are unsure of what they want.  Solution. A description of the prototyping process would be presented here.  Resulting context. A software prototype that identifies basic requirements. (modes of interaction, computational features, processing functions) is approved by stakeholders. Following this, 1. This prototype may evolve through a series of increments to become the production software or 2. the prototype may be discarded.  Related patterns. CustomerCommunication, IterativeDesign, IterativeDevelopment, CustomerAssessment, RequirementExtraction.
  • 17. Process Assessment and Improvement 17 SP cannot guarantee that software will be delivered on time, meet the needs, or has the desired technical characteristics. However, the process can be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering. Standard CMMI Assessment Method for Process Improvement (SCAMPI) — provides a five step process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and learning. CMM-Based Appraisal for Internal Process Improvement (CBA IPI)—provides a diagnostic technique for assessing the relative maturity of a software organization; uses the SEI CMM as the basis for the assessment [Dun01] SPICE—The SPICE (ISO/IEC15504) standard defines a set of requirements for software process assessment. The intent of the standard is to assist organizations in developing an objective evaluation of the efficacy of any defined software process. [ISO08] ISO 9001:2000 for Software—a generic standard that applies to any organization that wants to improve the overall quality of the products, systems, or services that it provides. Therefore, the standard is directly applicable to software organizations and companies. [Ant06]
  • 18. Assessment and Improvement These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. 18 Software Process Software Process Assessment is examined by identifies capabilities and risk of identifies modifications to Software Process Improvement Capability Determination leads to leads to motivates
  • 19. Personal Software Process (PSP) 19  Recommends five framework activities:  Planning  High-level design  High-level design review  Development  Postmortem  Stresses the need for each software engineer to identify errors early and as important, to understand the types of errors
  • 20. Team Software Process (TSP) 20  Each project is “launched” using a “script” that defines the tasks to be accomplished  Teams (of 2 to 20 engineers) are self-directed:  Plan and track work, set goals, own processes and plans  Measurement is encouraged  Measures are analyzed with the intent of improving the team process (through coaching, motivation, …)
  • 21. The Primary Goal of Any Software Process: High Quality 21 Remember: Remember: High quality = project timeliness High quality = project timeliness Why? Why? Less rework! Less rework!
  翻译: