Chapter 1 The Product
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
1
What is Software?
Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
2
What is Software? ❏ software is engineered ❏ software doesn’t wear out ❏ software is complex ❏ software is a ‘differentiator’ ❏ software is like an ‘aging factory’
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
3
Wear vs. Deterioration
in c re a s e d fa ilu re ra te d u e to s id e e ffe c ts
F a ilu re ra te
c h a n g e a c tu a lc u rv e
id e a liz e d c u rv e T im e These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
4
The Cost of Change 60-100x
1.5-6x 1x
Definition
Development
After release
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
5
Software Applications ❏ system software ❏ realtime software ❏ business software ❏ engineering/scientific software ❏ embedded software ❏ PC software ❏ AI software ❏ WebApps (Web applications)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
6
Software Poses Challenges How do we ensure the quality of the software that we produce? How do we meet growing demand and still maintain budget control? How do we upgrade an aging "software plant?" How do we avoid disastrous time delays? How do we successfully institute new software technologies? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
7
Software Engineering: A Practitioner’s Approach, 6/e
Chapter 2 Process: A Generic View
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
8
A L a Software Engineering y tools er methods e process model d a “quality” focus T e c h n
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
9
A Pr o Process framework c Framework activities e work tasks ss work products Fr milestones & deliverables QA checkpoints a Umbrella Activities m e w or
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
10
Fr a ❏ Communication m ❏ Planning e ❏ Modelingw ➯ Analysis of requirements ➯ Design or ❏ Construction k ➯ Code generation A ➯ Testing cti ❏ Deployment vit ie s
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
11
U m ❏ Software project management br ❏ Formal technical reviews el ❏ Software quality assurance la ❏ Software configuration management A ❏ Work product preparation and production ct ❏ Reusability management ❏ Measurement ivi ❏ Risk management ti es These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
12
The Process Model: Adaptability ❏ the framework activities will always be applied on every project ... BUT ❏ the tasks (and degree of rigor) for each activity will vary based on: ➯ the type of project ➯ characteristics of the project ➯ common sense judgment; concurrence of the project team
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
13
T h ❏ The CMMI defines each process area in terms of e “specific goals” and the “specific practices” required to achieve these goals. ❏ Specific goals establish the characteristics that must C exist if the activities implied by a process area are to M be effective. M ❏ Specific practices refine a goal into a set of process related activities. I
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
14
Pr o ❏ Process patterns define a set of activities, actions, c work tasks, work products and/or related behaviors e ❏ A template is used to define a pattern ss ❏ Typical examples: ➯ Customer communication (a process activity) P ➯ Analysis (an action) a ➯ Requirements gathering (a process task) tt ➯ Reviewing a work product (a process task) ➯ Design model (a work product) e rn s These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
15
Pr o ❏ The process should be assessed to ensure c that it meets a set of basic process criteria es that have been shown to be essential for a successful software engineering . s ❏ Many different assessment options are As available: se ➯ SCAMPI ➯ CBA IPI ss ➯ SPICE m ➯ ISO 9001:2000 e nt
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
16
Assessment and Improvement Software Process
is examined by
identifies modifications to
identifies capabilities and risk of
Software Process Assessment
Software Process Improvement
leads to
leads to
Capability Determination
motivates
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
17
Per so ❏ Recommends five framework activities: nal ➯ Planning ➯ Highlevel design Sof ➯ Highlevel design review tw ➯ Development ar ➯ Postmortem e ❏ stresses the need for each software engineer to identify errors early and as important, to Pro understand the types of errors ce ss (PS
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
18
Tea m ❏ Each project is “launched” using a “script” Soft that defines the tasks to be accomplished war ❏ Teams are selfdirected e ❏ Measurement is encouraged Pro ❏ Measures are analyzed with the intent of ces improving the team process s (TS P) These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
19
Primary Goal of Any Software Process: High Qua
Remember: High quality = project timeliness Why? Less rework!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
20
Communication project initiation requirement gathering
Planning estimating scheduling tracking
T h e W a t e rf al l M o
Modeling analysis design
Construction code test
Deployment delivery support f eedback
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
21
The Incremental Model increment #n Communic at ion Planning Modeling analys is des ign
C o n s t ru c t i o n c ode t es t
De p l o y m e n t d e l i v e ry fe e db ac k
delivery of nt h increment
increment # 2 Communic at ion Pl a n ni ng Modeling analys is des ign
C o n s t ru c t i o n c ode
De p l o y m e n t
t es t
d e l i v e ry fe e dba c k
increment # 1
delivery of 2nd increment
Communic at ion Planning Modeling analys is des ign
C o n s t ru c t i o n c ode
De p l o y m e n t
t es t
d e l i v e ry fe e db a c k
delivery of 1st increment
project calendar time These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
22
The RAD Model Team # n Mo d e lin g business modeling data modeling process modeling
C o n st ru ct io n component reuse automatic code generation testing
Team # 2
Communication
Modeling business modeling dat a modeling process modeling
Planning Construction
Team # 1
component reuse aut omat ic code generat ion t est ing
Modeling
Deployment int egrat ion delivery feedback
business modeling dat a modeling process modeling
Construction
component reuse aut omat ic code generat ion t est ing
60 - 90 days These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
23
Evolutionary Models: Prototyping Quick plan Quick
Communication
plan
communication Modeling Modeling Quick design
Quick design
Deployment Deployment Delivery delivery & & Feedback
feedback
Construction
Construction of of prototype prototype
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
24
Evolutionary Models: The Spiral planning estimation scheduling risk analysis
communication modeling analysis design start
deployment delivery feedback
construction code test
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
25
Evolutionary Models: Concurrent none Modeling activity
represents the state of a software engineering activity or task
Under development
Awaiting changes
Under review Under revision Baselined
Done
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
26
Sti ll ❏ Component based development—the process to Ot apply when reuse is a development objective ❏ Formal methods—emphasizes the mathematical he specification of requirements r ❏ AOSD—provides a process and methodological Pr approach for defining, specifying, designing, and constructing aspects o ❏ Unified Process—a “usecase driven, architecture c centric, iterative and incremental” software process es closely aligned with the Unified Modeling Language (UML) s M o These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
27
The Unified Process (UP) Elaboration elaboration Inception inception
inception
construction Release software increment
transition
production These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
28
UP Phases UP Phases Inception
Elaboration
Construction
Transition
Production
Workflows Requirements Analysis Design Implementation Test Support Iterations
#1
#2
#n-1
#n
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
29
UP Work Products Inception phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment . Project plan, phases and it erat ions. Business model, if necessary. One or more prot ot ypes I nc ept i o n
Elaboration phase Use-case model Supplement ary requirements including non-funct ional Analysis model Soft ware archit ect ure Descript ion. Execut able archit ect ural prot ot ype. Preliminary design model Revised risk list Project plan including it erat ion plan adapt ed workflows milest ones t echnical work product s Preliminary user manual
Construction phase Design model Soft ware component s Int egrated soft ware increment Test plan and procedure Test cases Support document at ion user manuals installat ion manuals descript ion of current increment
Transition phase Delivered soft ware increment Beta t est report s General user feedback
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
30
Chapter 4
Agile Development These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
31
The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: •Individuals and interactions over processes and tools •Working software over comprehensive documentation •Customer collaboration over contract negotiation •Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” Kent Beck et al These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
32
W h ❏ Effective (rapid and adaptive) response to at change is ❏ Effective communication among all “ stakeholders A ❏ Drawing the customer onto the team ❏ Organizing a team so that it is in control of the gi work performed lit Yielding … y ❏ Rapid, incremental delivery of software ” ? These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
33
A n ❏ Is driven by customer descriptions of what is A required (scenarios) gi ❏ Recognizes that plans are shortlived le ❏ Develops software iteratively with a heavy Pr emphasis on construction activities o ❏ Delivers multiple ‘software increments’ ❏ Adapts as changes occur c e ss These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
34
Extr em ❏ The most widely used agile process, e originally proposed by Kent Beck Pro ❏ XP Planning grauser stories” ➯ Begins with the creation of “ ➯ Agile team assesses each story and assigns a cost m ➯ Stories are grouped to for a deliverable increment mi ➯ A commitment is made on delivery date ➯ After the first increment “ project velocity” is used to help ng define subsequent delivery dates for other increments (XP ) These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
35
❏ XP Design
Extr em e Pro gra m mi ng (XP )
➯ Follows the KIS principle ➯ Encourage the use of CRC cards (see Chapter 8) ➯ For difficult design problems, suggests the creation of “spike solutions”—a design prototype ➯ Encourages “refactoring”—an iterative refinement of the internal program design
❏ XP Coding
➯ Recommends the construction of a unit test for a store before coding commences ➯ Encourages “pair programming”
❏ XP Testing
➯ All unit tests are executed daily ➯ “Acceptance tests” are defined by the customer and excuted to assess customer visible functionality
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
36
Extreme Programming (XP) user stories values acceptance test criteria iteration plan
simple design CRC cards
spike solutions prototypes
refactoring pair programming
Release software increment project velocity computed
unit test continuous integration
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, acceptance testing 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
37
Ad ap ❏ Originally proposed by Jim Highsmith tiv ❏ ASD — distinguishing features ➯ Missiondriven planninge ➯ Componentbased focus Sof ➯ Uses “timeboxing” (See Chapter 24) tw ➯ Explicit consideration of risks ➯ Emphasizes collaboration ar for requirements gathering ➯ Emphasizes “learning” throughout the process e De vel op
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
38
Adaptive Software Development
adaptive cycle planning uses mission statement project constraints basic requirements
Requirements gathering J AD mini-specs
time-boxed release plan
Release software increment adjustments for subsequent cycles
components implemented/ tested focus groups for feedback formal technical reviews These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, postmortems 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
39
Dynamic Systems Development Method ❏ Promoted by the DSDM Consortium (www.dsdm.org) ❏ DSDM—distinguishing features ➯ Similar in most respects to XP and/or ASD ➯ Nine guiding principles ❏ Active user involvement is imperative. ❏ DSDM teams must be empowered to make decisions. ❏ The focus is on frequent delivery of products. ❏ Fitness for business purpose is the essential criterion for acceptance of deliverables. ❏ Iterative and incremental development is necessary to converge on an accurate business solution. ❏ All changes during development are reversible. ❏ Requirements are baselined at a high level ❏ Testing is integrated throughout the lifecycle.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
40
Dynamic Systems Development Method
DSDM Life Cycle (with permission of the DSDM consortium) These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
41
S c ❏ Originally proposed by Schwaber and Beedle r ❏ Scrum—distinguishing features u packets” ➯ Development work is partitioned into “ ➯ Testing and documentation are ongoing as the product is m constructed ➯ Work occurs in “sprints” and is derived from a “backlog” of existing requirements ➯ Meetings are very short and sometimes conducted without chairs ➯ “demos” are delivered to the customer with the timebox allocated
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
42
C r ❏ Proposed by Cockburn and Highsmith y ❏ Crystal—distinguishing features s ➯ Actually a family of process models that allow t “maneuverability” based on problem characteristics ➯ Facetoface communication is emphasized a ➯ Suggests the use of “reflection workshops” to review the work habits of the team l
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
43
A g ❏ Originally proposed by Scott Ambler il ❏ Suggests a set of agile modeling principles e ➯ Model with a purpose ➯ Use multiple models M ➯ Travel light o ➯ Content is more important than representation d ➯ Know the models and the tools you use to create them ➯ Adapt locally e li n g
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
44
– Thanks
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001
45