chapter 2 the process
DESCRIPTION
Chapter 2 The Process. What is Software Process?. A framework for the tasks that are required to build high-quality software. Is Process synonym with SE?. The answer is “yes” and “no”. A software process defines the approach that is taken as software is engineered. - PowerPoint PPT PresentationTRANSCRIPT
Chapter 2Chapter 2The ProcessThe Process
What is Software Process?What is Software Process?
A framework for the tasks that are A framework for the tasks that are required to build high-quality required to build high-quality software.software.
Is Process synonym with SE?Is Process synonym with SE?
The answer is “yes” and “no”.The answer is “yes” and “no”. A software process defines the A software process defines the
approach that is taken as software is approach that is taken as software is engineered.engineered.
But software engineering also But software engineering also encompasses technologies that encompasses technologies that populates the process – technical populates the process – technical methods and automated tools.methods and automated tools.
2.1 Software Engineering: 2.1 Software Engineering: A Layered TechnologyA Layered Technology
““Software engineering is the Software engineering is the establishment and use of sound establishment and use of sound engineering principles in order to engineering principles in order to obtain economically software that is obtain economically software that is reliable and works efficiently on real reliable and works efficiently on real machines.”machines.” [Fritz Beuer] [Fritz Beuer]
Lack ofLack of software qualitysoftware quality, , customer customer satisfactionsatisfaction, , timely product deliverytimely product delivery, , importance of measurement and metricsimportance of measurement and metrics, , and and mature processmature process..
SE: A Layered TechnologySE: A Layered Technology
““Software engineering: (1) The Software engineering: (1) The application of a systematic, application of a systematic, disciplined, quantifiable approach to disciplined, quantifiable approach to the development , operation, and the development , operation, and maintenance of software; that is, the maintenance of software; that is, the application of engineering to application of engineering to software. (2) The study of approach software. (2) The study of approach as in (1).”as in (1).” [IEEE] [IEEE]
Software EngineeringSoftware Engineering
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
A Layered TechnologyA Layered Technology
A “quality” focusA “quality” focus
Continuous process improvementContinuous process improvement Bedrock that supports software Bedrock that supports software
engineeringengineering
ProcessProcess
Is the foundation of software Is the foundation of software engineeringengineering
Defines a framework for a set of key Defines a framework for a set of key process areas (KPAs) process areas (KPAs) – Effective delivery of SE technologyEffective delivery of SE technology– Management control of software projectManagement control of software project– Context of technical methods appliedContext of technical methods applied– Work productsWork products– Milestones, Quality ensuredMilestones, Quality ensured– Proper change managementProper change management
MethodsMethods
Provide technical how-to’s for building Provide technical how-to’s for building software.software.
Encompass a broad array of tasks that Encompass a broad array of tasks that include requirements analysis, program include requirements analysis, program construction, testing, and support.construction, testing, and support.
Rely on a set of basic principles that Rely on a set of basic principles that govern each area of the technology govern each area of the technology and include modeling activities and and include modeling activities and other descriptive techniquesother descriptive techniques
ToolsTools
Provide automated or semi-Provide automated or semi-automated support for the process automated support for the process and the methods.and the methods.
CASE: computer-aided software CASE: computer-aided software engineering is a system for the engineering is a system for the support of software development.support of software development.– Combines SW, HW, and a SE database Combines SW, HW, and a SE database
(a repository containing important (a repository containing important information aboutinformation about analysis, design, analysis, design, program construction, and testing)program construction, and testing)
A Generic View of SEA Generic View of SE
Engineering is analysis, design, Engineering is analysis, design, construction, verification, and construction, verification, and management of technical (or social) management of technical (or social) entities.entities.
Entity Entity computer software computer software A software engineering process must A software engineering process must
be defined: definition phase, be defined: definition phase, development phase, and support development phase, and support phase.phase.
Definition PhaseDefinition Phase
Focuses on “what”Focuses on “what” What What informationinformation is to be processed? is to be processed? What What functionfunction and performance are and performance are
desired?desired? What What system behaviorsystem behavior can be can be
expected?expected? InterfaceInterface, , design constraintsdesign constraints, ,
validation criteriavalidation criteria identify key identify key requirements of the system and SW.requirements of the system and SW.
Development PhaseDevelopment Phase
Focuses on “how”Focuses on “how” How data are to be constructed?How data are to be constructed? How function is to be implemented How function is to be implemented
within a software architecture?within a software architecture? Procedural details, interfaces, design Procedural details, interfaces, design
programming, testing. programming, testing.
Three technical tasks: software design, Three technical tasks: software design, code generation, software testing.code generation, software testing.
Support PhaseSupport Phase
Focuses on “change” associated with Focuses on “change” associated with error correction, adaptations, changes.error correction, adaptations, changes.
Four types of changes:Four types of changes:– Correction Correction Corrective maintenance Corrective maintenance– Adaptation Adaptation Adaptive maintenance Adaptive maintenance– Enhancement Enhancement Perfective maintenance Perfective maintenance– Prevention Prevention Preventive maintenance, Preventive maintenance,
often called often called Software EngineeringSoftware Engineering more more easily corrected, adapted, and enhance.easily corrected, adapted, and enhance.
Umbrella ActivitiesUmbrella Activities
Software project tracking and controlSoftware project tracking and control Formal technical reviewFormal technical review Software quality assuranceSoftware quality assurance Software configuration managementSoftware configuration management Document preparation and Document preparation and
productionproduction Reusability managementReusability management MeasurementMeasurement Risk managementRisk management
A Common Process A Common Process FrameworkFramework
Framework activitiesFramework activities
Common process frameworkCommon process framework
Umbrella ActivitiesUmbrella Activities
work taskswork taskswork productswork productsmilestones & milestones & deliverablesdeliverablesSQA checkpointsSQA checkpoints
Process MaturityProcess Maturity
Software Engineering Institute (SEI) Software Engineering Institute (SEI) has developed a comprehensive has developed a comprehensive model predicated on a software model predicated on a software engineering capabilities that should engineering capabilities that should be present as organization reach be present as organization reach different levels of process maturity.different levels of process maturity.
Called Called Capability Maturity ModelCapability Maturity Model (CMM).(CMM).
CMMCMM
Level 1: InitialLevel 1: Initial– The software process is characterized ad hoc and The software process is characterized ad hoc and
occasionally chaotic.occasionally chaotic. Level 2: RepeatableLevel 2: Repeatable
– Basic project management process are Basic project management process are established to track cost, schedule, and established to track cost, schedule, and functionality.functionality.
Level 3: DefinedLevel 3: Defined– the software process for both management and the software process for both management and
engineering activities is documented, engineering activities is documented, standardized and integrated into an standardized and integrated into an organizationwide software process.organizationwide software process.
CMM (Cont’d)CMM (Cont’d)
Level 4: ManagedLevel 4: Managed– Detailed measures of the software process Detailed measures of the software process
and product quality are collected.and product quality are collected.– Both SW process and product are Both SW process and product are
quantitatively understood and controlled quantitatively understood and controlled using detailed measures.using detailed measures.
Level 5: OptimizingLevel 5: Optimizing– Continuous process improvement is Continuous process improvement is
enabled by quantitative feedback from the enabled by quantitative feedback from the process and from testing innovative ideas process and from testing innovative ideas and technologies.and technologies.
Key Process Areas (KPAs)Key Process Areas (KPAs)
Each KPA is described by identifying the Each KPA is described by identifying the following characteristics:following characteristics:
GoalsGoals CommitmentsCommitments AbilitiesAbilities ActivitiesActivities Methods for monitoring implementationMethods for monitoring implementation Methods for verifying implementationMethods for verifying implementation
KPA (Cont’d)KPA (Cont’d)
Each of the KPAs is defined by a set Each of the KPAs is defined by a set of key practices that contribute to of key practices that contribute to satisfying its goals.satisfying its goals.
The key practices are policies, The key practices are policies, procedures, and activities.procedures, and activities.
Key indicators: those of key practices Key indicators: those of key practices or components of key practices that or components of key practices that offer the greatest insight into offer the greatest insight into whether the goals of a key process whether the goals of a key process have been achieved.have been achieved.
2.3 Software Process Models2.3 Software Process Models A software engineer must incorporate a A software engineer must incorporate a
development strategy that development strategy that encompasses the process methods, and encompasses the process methods, and tools layers.tools layers.
This strategy is often referred to as a This strategy is often referred to as a process modelprocess model or a or a software software engineering paradigmengineering paradigm..
A process model is chosen based on the A process model is chosen based on the nature of project and application, the nature of project and application, the methods and tools to be used, and the methods and tools to be used, and the controls and deliverables that are controls and deliverables that are required.required.
Process as Problem SolvingProcess as Problem Solving
statusquo
problemdefinition
technicaldevelopment
solutionintegration
2.4 The Linear Sequential 2.4 The Linear Sequential ModelModel
Sometimes called the Sometimes called the classic life classic life cyclecycle or the or the waterfall modelwaterfall model..
analysis design code test
System/informationengineering
The Linear Sequential ModelThe Linear Sequential Model
Activities:Activities: System/information engineering and System/information engineering and
modelingmodeling– Requirements gatheringRequirements gathering– Interface with other elements: HW, SW, Interface with other elements: HW, SW,
databasedatabase Software requirement analysisSoftware requirement analysis
– Understand nature of SW to be builtUnderstand nature of SW to be builtFunction, behavior, performance and interface.Function, behavior, performance and interface.
– Documented and reviewed with the Documented and reviewed with the customercustomer
The Linear Sequential ModelThe Linear Sequential Model
Design: Design: – A multi-step process focuses on data A multi-step process focuses on data
structure, SW architecture, interface structure, SW architecture, interface representations, and procedural representations, and procedural (algorithmic) detail.(algorithmic) detail.
– The design process translates The design process translates requirements into a representation of requirements into a representation of the SW that can be assessed for quality the SW that can be assessed for quality before coding begins.before coding begins.
– DocumentedDocumented
The Linear Sequential ModelThe Linear Sequential Model
Code generationCode generation– Design Design machine readable form machine readable form
TestingTesting– Test all functions, both internal/externalTest all functions, both internal/external– Uncover errorsUncover errors
Support/maintenanceSupport/maintenance– Deal with all kinds of changes that may Deal with all kinds of changes that may
be occurred after SW deliverybe occurred after SW delivery
2.5 The Prototyping Model2.5 The Prototyping Model
The prototype can serve as “the first The prototype can serve as “the first system”system”
Users get a feel for the actual system Users get a feel for the actual system and developers get to build and developers get to build something immediatelysomething immediately
A customer defines a set of general A customer defines a set of general objectives for SW but does not objectives for SW but does not identify detailed input, processing, or identify detailed input, processing, or output requirements.output requirements.
The Prototyping ModelThe Prototyping Model
listento
customerbuild/revise
mock-up
customertest-drivesmock-up
Prototyping
The Prototyping ModelThe Prototyping Model
This approach can be problematic:This approach can be problematic: The customer misunderstands as a The customer misunderstands as a
working version with a few fixes.working version with a few fixes. The developer often makes The developer often makes
implementation compromises in order implementation compromises in order to get a prototype to work quickly.to get a prototype to work quickly.
The customer and developer must The customer and developer must agree that the prototype is built to agree that the prototype is built to serve as a mechanism for defining serve as a mechanism for defining requirements.requirements.
2.6 The RAD Model2.6 The RAD Model
Is a “high-speed” adaptation of the Is a “high-speed” adaptation of the linear sequential model in which linear sequential model in which rapid development is achieved by rapid development is achieved by using component-based construction.using component-based construction.
Is an incremental software Is an incremental software development process model that development process model that emphasizes an extremely short emphasizes an extremely short development cycle.development cycle.
The RAD ModelThe RAD Model
Phases:Phases: Business modelingBusiness modeling Data modelingData modeling Process modelingProcess modeling Application generation: 4GTApplication generation: 4GT Testing and turnoverTesting and turnover
The RAD ModelThe RAD Model
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
team #1
team #2team #3
60 - 90 days
RAD
The RAD ModelThe RAD Model
Drawbacks:Drawbacks: RAD requires sufficient human RAD requires sufficient human
resources to create the right number resources to create the right number of RAD team, for a large project.of RAD team, for a large project.
RAD requires strong commitment from RAD requires strong commitment from developers and customers in much developers and customers in much abbreviated time frame.abbreviated time frame.
A system must be properly A system must be properly modularized.modularized.
RAD is not appropriate when technical RAD is not appropriate when technical risks are high.risks are high.
Evolutionary Software Process Evolutionary Software Process ModelModel
Business and product requirements Business and product requirements often change as development often change as development proceeds.proceeds.
Tight market deadlines, etc..Tight market deadlines, etc..
2.7.1 The Incremental Model2.7.1 The Incremental Model
analysis design code test
System/informationengineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of1st increment
delivery of2nd increment
delivery of3rd increment
delivery of4th increment
calendar time
2.7.2 The Spiral Model2.7.2 The Spiral Model
Proposed by Boehm.Proposed by Boehm. It provides the potential for rapid It provides the potential for rapid
development of incremental versions development of incremental versions of the software.of the software.
A spiral model is divided into a A spiral model is divided into a number of framework activities, also number of framework activities, also called called task regions.task regions.
Each of the regions is populated by a Each of the regions is populated by a set of work tasks, called a set of work tasks, called a task set.task set.
The Spiral ModelThe Spiral Model
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
2.7.3 The WINWIN Spiral Model2.7.3 The WINWIN Spiral Model
Addresses more on customer Addresses more on customer communication, the following communication, the following activities are defined:activities are defined:
1.1. Identification of the system or Identification of the system or subsystem’s key “stakeholder”.subsystem’s key “stakeholder”.
2.2. Determination of the stakeholders’ Determination of the stakeholders’ “win conditions”.“win conditions”.
3.3. Negotiation of the stakeholders’ win Negotiation of the stakeholders’ win conditions to reconcile them into a conditions to reconcile them into a set of win-win conditions for all set of win-win conditions for all concerned.concerned.
2.8 Component-Based 2.8 Component-Based DevelopmentDevelopment
OO technologies provide the OO technologies provide the technical framework for a technical framework for a component-based process model for component-based process model for SE.SE.
The process to apply when reuse is a The process to apply when reuse is a development objective.development objective.
2.9 The Formal Methods Model2.9 The Formal Methods Model
The process to apply when a The process to apply when a mathematical specification is to be mathematical specification is to be developeddeveloped
Cleanroom software engineeringCleanroom software engineering—emphasizes error detection —emphasizes error detection beforebefore testingtesting
Homework #1Homework #1
Problem 2.11-2.13Problem 2.11-2.13 Due next Friday 5 July.Due next Friday 5 July.