SlideShare une entreprise Scribd logo
1  sur  58
1
Software Engineering
By
Mobeen Mustafa
2
Course outline
• Unit 1: Software Engineering Basics
 Unit 2: Process Models and Software Life Cycles
• Unit 3: Software Requirements
• Unit 4: Unified Modeling Language (UML)
• Unit 5: Design Basics and Software Architecture
• Unit 6: OO Analysis and Design
• Unit 7: Design Patterns
• Unit 8: Testing and Reliability
• Unit 9: Software Engineering Management and Economics
3
Reference
• These slides are based on:
– Lecture slides by Ian Summerville, see
http://www.comp.lancs.ac.uk/computing/resources/ser/
4
Overview
• Build-and-fix model
• Waterfall model
• Rapid prototyping model
• Incremental model
• Evolutionary
• Synchronize-and-stabilize model
• Spiral model
5
Software Life-Cycle Models
• Life-cycle model (also, process model)
• The software development and operation
activities and their ordering
– Requirements elicitation
– Specification
– Design
– Implementation
– Integration
– Maintenance phase
– Retirement
– …
6
New or changed
requirements
New or changed
system
Software Engineering
Process
What Is a Software Engineering
Process?
A process defines Who is doing What, When and How in
the development of a software system
– Roles and workflows
– Workproducts
– Milestones
– Guideline
– …
7
Process vs. Product
Process
model
Project
Product
People
Tools
Template
Participants
Result
Automation
8
An Effective Process ...
• Provides guidelines for efficient development of
quality software
• Reduces risk and increases predictability
• Captures and presents best practices
– Learn from other’s experiences
– Mentor on your desktop
– Extension of training material
• Promotes common vision and culture
• Provides roadmap for applying tools
• Delivers information on-line, at your finger tips
9
Lightweight vs. Heavyweight
Processes
Document driven
Elaborate workflow definitions
Many different roles
Many checkpoints
High management overhead
Highly bureaucratic
Focus on working code
rather than documentation
Focus on direct communication
(between developers and
between developers and the customer)
Low management overhead
Heavyweight
e.g., V-Process
Customizable
Framework
e.g., Rational
Unified
Process (RUP)
Agile (Lightweight)
e.g., eXtreme
Programming (XP)
10
• Process used should depend on type of
product which is being developed
– For large systems, management is usually the
principal problem so you need a strictly
managed process. For smaller systems, more
informality is possible.
• High costs may be incurred if you force an
inappropriate process on a development
team
Process choice
©Ian Sommerville 1995 [modified]
11
Build and Fix Model
• Properties
– No planning or analysis
– The working program is the
only workproduct
• Advantage
– Appropriate for small programs
written by one person
• Disadvantage
– Understandability and
maintainability decrease rapidly
with increasing program size
– Totally unsatisfactory
– Need a life-cycle model
• “Game plan”
• Phases
• Milestones
12
Waterfall Model
• Characterized by
– Sequential steps (phases)
– Feedback loops (between two phases in
development)
– Documentation-driven
• Advantages
– Documentation
– Maintenance easier
• Disadvantages
– Complete and frozen specification document
up-front often not feasible in practice
– Customer involvement in the first phase only
– Sequential and complete execution of phases
often not desirable
– Process difficult to control
– The product becomes available very late in
the process
13
Rapid Prototyping Model
• Rapid prototyping phase
followed by waterfall
– Do not turn the rapid
prototype into the product
– Rapid prototyping may replace
the specification phase—never
the design phase
• Comparison:
– Waterfall model—try to get it
right the first time
– Rapid prototyping—frequent
change, then discard
14
Advantages and Disadvantages
• Advantages
– Requirements better specified and validated
– Early feasibility analysis
– Strong involvement of the customer in the
prototyping phase
• Disadvantage
– Higher development effort
– Danger that due to schedule slip, the prototype
becomes part of the product
15
Incremental
Design Coding Test Deployment
Design Coding Test Deployment
Design Coding Test Deployment
Requirements
Release 1
Release 2
Release 3
Each release adds more functionality,
i.e., a new increment
(Some call it iterative)
16
Incremental Model (contd)
• Waterfall, rapid prototyping models
– Operational quality complete product at end
• Incremental model
– Operational quality portion of product within weeks
• Less traumatic
• Smaller capital outlay, rapid return on investment
17
Evolutionary
Design Coding Test DeploymentRequirements
Design Coding Test DeploymentRequirements
Design Coding Test DeploymentRequirements
Feedback
Version 1
Version 1
Version 1
New versions implement new and
evolving requirements
(Some call it iterative)
18
Evolutionary Model (contd)
• Advantages
– Constant customer involvement and validation
– Allows for good risk management
• Disadvantages
– Build-and-fix danger
– Contradiction in terms
19
Spiral model
• Waterfall model plus risk analysis preceding each
phase and evaluation following each phase
• Prototyping for high-risk specifications
• Radial dimension: cumulative cost to date
• Angular dimension: progress through the spiral
• If all risks cannot be resolved, the project is
immediately terminated
• Appropriate only for big projects (high
management overhead)
20
Spiral model
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysisProto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Conceptof
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design Detailed
design
Code
Unittest
Integration
testAcceptance
testService Develop, verify
next-levelproduct
Evaluate alternatives
identify, resolve risks
Determine objectives
alternativesand
constraints
Plannextphase
Integration
andtestplan
Development
plan
Requirementsplan
Life-cycle plan
REVIEW
21
Process model risk problems
• Waterfall
– High risk for new systems because of specification
and design problems
– Low risk for well-understood developments using
familiar technology
• Prototyping
– Low risk for new applications because specification
and program stay in step
– High risk because of lack of process visibility
• Evolutionary and Spiral
– Middle ground between waterfall and prototyping
22
Hybrid process models
• Large systems are usually made up of several
sub-systems
• The same process model need not be used for
all subsystems
• Prototyping for high-risk specifications
• Waterfall model for well-understood
developments
• Taylor the process to a problem
23
Use of the Models in Practice
24
• The fundamental problem with software
– The software process is badly managed
• Understanding existing processes
• Introducing process changes to achieve
organisational objectives which are usually
focused on quality improvement, cost
reduction and schedule acceleration
Process improvement
©Ian Sommerville 1995 [modified]
25
Reference
• These slides are based on:
– Lecture slides by Ian Summerville, see
http://www.comp.lancs.ac.uk/computing/resources/ser/
26
Rational Unified Process – Main
Characteristics
• Iterative and incremental
• Use-case-driven
• Architecture-centric
• Uses UML as its modeling notation
• Process framework
– Comprehensive set of document templates, process
workflow templates, and process guidelines
– Distributed by IBM/Rational on a CD
27
Rational Unified Process Is Use-
Case-Driven
• Use cases are concise, simple, and understandable by a
wide range of stakeholders
– End users, developers and acquirers understand functional
requirements of the system
• Use cases drive numerous activities in the process:
– Creation and validation of the design model
– Definition of test cases and procedures of the test model
– Planning of iterations
– Creation of user documentation
– System deployment
• Use cases help synchronize the content of different models
28
Rational Unified Process Is
Architecture-Centric
• Architecture is the focus of the elaboration phase
– Building, validating, and baselining the architecture constitute the
primary objective of elaboration
• The Architectural Prototype validates the architecture and
serves as the baseline for the rest of development
• The Software Architecture Description is the primary
artifact that documents the architecture chosen
• Other artifacts derive from architecture:
– Design guidelines including use of patterns and idioms
– Product structure
– Team structure
29
Representing Architecture: The
4+1 View Model
Process
View
Deployment
View
Logical
View
Implementation
View
Programmers
Software management
Performance
Scalability
Throughput
System Integrators
System topology
Delivery, installation
communication
System Engineering
Use-Case
View
Structure
Analysts/
Designers End-user
Functionality
30
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Process Architecture - Lifecycle
Phases
The Rational Unified Process has four phases:
– Inception - Define the scope of project
– Elaboration - Plan project, specify features, baseline
architecture
– Construction - Build the product
– Transition - Transition the product into end user community
time
31
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Phase Boundaries Mark Major
Milestones
Lifecycle
Objective
Milestone
Lifecycle
Architecture
Milestone
Initial Operational
Capability
Milestone
Product
Release
time
32
Iterations and Phases
AnAn iterationiteration is a distinct sequence of activities with anis a distinct sequence of activities with an
established plan and evaluation criteria, resulting inestablished plan and evaluation criteria, resulting in
an executable release (internal or external)an executable release (internal or external)
PreliminaryPreliminary
IterationIteration
Architect.Architect.
IterationIteration
Architect.Architect.
IterationIteration
Devel.Devel.
IterationIteration
Devel.Devel.
IterationIteration
Devel.Devel.
IterationIteration
TransitionTransition
IterationIteration
TransitionTransition
IterationIteration
InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition
Minor Milestones: Releases
33
Major Workflows Produce Models
Analysis &Analysis &
DesignDesign
Design
Model
Implementation
Model
Test
Model
realized by
implemented by
verified by
RequirementsRequirements
ImplementationImplementation
TestTest
Use-Case
Model
BusinessBusiness
ModelingModeling
Business Model
supported by
34
RUP Overview
Management
Environment
Business Modeling
Implementation
Test
Architecture & Design
Preliminary
Iteration(s)
Iter.
#1
Phases
Process Workflows
Iterations
Supporting
Workflows
Iter.
#2
Iter.
#n
Iter.
#n+1
Iter.
#n+2
Iter.
#m
Iter.
#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
Workflows group
activities logically
In an iteration,
you walk through
all workflows
35
XP Overview
Characteristics
• Evolutionary development
• Collection of 12 „Best
Practices“
• Focus on working code that
implements customer needs
(rather than documents)
• Testing is a crucial element of
the process
• Focus on flexibility and
efficiency of the process
• Designed for small teams (<10)
Write tests
Planning
Test
Pair Programming
+ Refactoring
Integration
Min.
daily
Every 2-3
weeks
Release
36
XP Practices (I)
• The planning game
– Stakeholder meeting to plan the next iteration
– Business people decide on business value of features
– Developers on the technical risk of features and predicted effort
per feature
• Small releases
– Start with the smallest useful feature set; release early and often,
adding a few features each time
• Metaphor
– Each project has an organizing metaphor, a providing easy to
remember naming conventions
37
XP Practices (II)
• Simple Design
– Always use the simplest possible design that gets the job done
(runs the tests and states intentions of the programmer)
– No speculative genericity
• Testing
– Test-first: write test, then implement it
– Programmers write unit tests and customers write acceptance tests
• Refactoring
– Refactoring is done continuously; the code is always kept clean
38
XP Practices (III)
• Pair programming
– All production code written by two programmers
– One programmer is thinking about implementing the current
method, the other is thinking strategically about the whole system
– Pairs are put together dynamically
• Collective code ownership
– Any programmer that sees an opportunity to add value to any
portion of the code is required to do so at any time
• Continuous integration
– Use of version and configuration management (e.g., CVS)
– All changes are integrated into the code-base at least daily
– The tests have to run 100% before and after the integration
39
XP Practices (IV)
• 40-h week
– Programmers go home on time
– Overtime is a symptom of a serious problem
– No errors by tired developers; better motivated developers
• On-site customer
– Development team has continuous access to a real life
customer/user
• Coding standards
– Everyone codes to the same standards
– Ideally, you should not be able to tell by looking at it who has
written a specific piece of code
40
XP Advantages
• Integrated, simple concept
• Low management overhead (no complicated procedures to
follow, no documentation to maintain, direct
communication, pair programming)
• Continuous risk management (early feedback from the
customer)
• Continuous effort estimation
• Emphasis on testing; tests help in evolution and
maintenance
41
XP Disadvantages
• Appropriate for small teams (up to 10 developers)
only (does not scale)
• Large development groups may require more
structures and documents
• If maintainers are not the people that developed
the code, good documentation is necessary
• Generic design may be necessary to enable
expected future development
42
Reading
• RUP
– Craig Larman, Applying UML and Patterns: An Introduction to Object-
Oriented Analysis and Design and the Unified Process, Prentice-Hall,
2002 (2nd edition)
– Kendall Scott. The Unified Process Explained. Addison Wesley, 2001
• Agile development
– Kent Beck, Extreme Programming: Explained, Addison-Wesley, 1999
– R. Jeffries, C. Hendrikson, A. Anderson, Extreme Programming Installed,
Addison-Wesley, 2001
• http://member.netease.com/~wooce/tip/se/
– Alistair Cockburn, Agile Software Development, Addison-Wesley 2002
• Online-Ressourcen
– http://www.xprogramming.com
– http://www.xprogramming.org
– http://groups.yahoo.com/group/extremeprogramming
– http://c2.com
43
Process improvement stages
• Process analysis
– Model and analyse (quantitatively if possible) existing
processes
• Improvement identification
– Identify quality, cost or schedule bottlenecks
• Process change introduction
– Modify the process to remove identified bottlenecks
• Process change training
– Train staff involved in new process proposals
• Change tuning
– Evolve and improve process improvements
©Ian Sommerville 1995
44
Software process improvement
initiatives
• Capability maturity model (CMM)
– http://www.sei.cmu.edu/cmm/cmms/cmms.html
• ISO 9000-series
• ISO/IEC 15504 – Standard for Software
Process Assessment (SPICE)
– http://www-sqi.cit.gu.edu.au/spice/
©Steven Schach 2002 [modified]
45
Capability Maturity Model
• A set of strategies for improving the software
process
– SW–CMM for software
– P–CMM for human resources (“people”)
– SE–CMM for systems engineering
– IPD–CMM for integrated product development
– SA–CMM for software acquisition
• These strategies are being unified into CMMI
(capability maturity model integration)
• Developed by Software Engineering Institute
(SEI)
©Steven Schach 2002 [modified]
46
SW–CMM
• A strategy for improving the software process
• Put forward in 1986 by the SEI
• Fundamental ideas:
– Improving the software process leads to
• Improved software quality
• Delivery on time, within budget
– Improved management leads to
• Improved techniques
• Five levels of “maturity” are defined
• Organization advances stepwise from level to
level
©Steven Schach 2002
47
Level 1. Initial Level
• Ad hoc approach
– Entire process is unpredictable
– Management consists of responses to crises
• Most organizations world-wide are at level 1
©Steven Schach 2002
48
Level 2. Repeatable Level
• Basic software management
– Management decisions should be made on the basis
of previous experience with similar products
– Measurements (“metrics”) are made
– These can be used for making cost and duration
predictions in the next project
– Problems are identified, immediate corrective action
is taken
©Steven Schach 2002
49
Level 3. Defined Level
• The software process is fully documented
– Managerial and technical aspects are clearly defined
– Continual efforts are made to improve quality,
productivity
– Reviews are performed to improve software quality
– CASE tools are applicable now (and not at levels 1 or
2)
©Steven Schach 2002
50
Level 4. Managed Level
• Quality and productivity goals are set for
each project
– Quality, productivity are continually monitored
– Statistical quality controls are in place
©Steven Schach 2002
51
Level 5. Optimizing Level
• Continuous process improvement
– Statistical quality and process controls
– Feedback of knowledge from each project to
the next
©Steven Schach 2002
52
SW–CMM Summary
©Steven Schach 2002
53
• Any type of measurement which relates to a
software system, process or related
documentation
– Lines of code in a program, number of person-days
required to develop a component
• Allow the software and the software process to
be quantified
• Should be captured automatically and monitored
if possible
Software metrics
©Ian Sommerville 1995 [modified]
54
• A quality metric should be a predictor of
product quality
• Most quality metrics are design quality metrics
and are concerned with measuring the coupling
or the complexity of a design
• The relationship between these metrics and
quality has to be judged by a human (no
automatic connection to quality possible)
• Outliers may point to problems
• There are no “magic thresholds,” rather the trend
of metrics over time needs to be monitored
Product quality metrics
©Ian Sommerville 1995 [modified]
55
Traditional Software Metics
• Coupling metrics (associated with a structure chart in Yourdon's
Structured Design)
– High number of calling functions or called functions suggests high
coupling
• Cyclomatic complexity is a measure of control structure complexity
– Metric has two drawbacks
• It is inaccurate for data-driven programs as it is only
concerned with control constructs.
• It places the same weight on nested and non-nested loops.
Deeply nested structures, however, are usually harder to understand.
• Oviedo's metric modifies this to take data
references into account
– C = aE +bN
(with N external data entities, E edges to the data entities and constants
a,b)
©Ian Sommerville 1995 [modified]
56
Metrics for Object-Oriented
Software
• Traditional (still usable)
– Cyclomatic complexity (CC)
• New OO metrics
– Coupling
• Coupling between objects (CBO)
• Depth of inheritance tree (DIT)
• …
– Cohesion
• Lack of cohesion of methods (LCOM)
• …
– Complexity
• Weighted methods per class (WMC)
• …
57
• Time taken for process activities to be
completed
– E.g. Calendar time or effort to complete an activity
or
process
• Resources required for processes or activities
– E.g. Total effort in person-days
• Number of occurrences of a particular event
– E.g. Number of defects discovered
• Process improvement requires process
measurement!
Classes of process measurement
(Process Metrics)
©Ian Sommerville 1995 [modified]
58
• Goals
– What is the organisation trying to achieve? The
objective of process improvement is to satisfy these
goals
• Questions
– Questions about areas of uncertainty related to the
goals. You need process knowledge to derive these
• Metrics
– Measurements to be collected to answer the
questions
Goal-Question-Metric Paradigm
©Ian Sommerville 1995 [modified]

Contenu connexe

Tendances

Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
Introduction and life cycle models
Introduction and life cycle modelsIntroduction and life cycle models
Introduction and life cycle modelsthemobiforest
 
Unified Process
Unified ProcessUnified Process
Unified Processguy_davis
 
Software life cycle
Software life cycleSoftware life cycle
Software life cyclekingseif
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)NavneetKumar383
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Mohamed Sami El-Tahawy
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesTEJVEER SINGH
 
Software management framework
Software management frameworkSoftware management framework
Software management frameworkKuppusamy P
 
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop introBeit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop introbabak danyal
 
Software engineering 25 models details
Software engineering 25 models detailsSoftware engineering 25 models details
Software engineering 25 models detailsSamiul Hossaini
 

Tendances (20)

Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Introduction and life cycle models
Introduction and life cycle modelsIntroduction and life cycle models
Introduction and life cycle models
 
Software models
Software modelsSoftware models
Software models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Process model
Process modelProcess model
Process model
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Software life cycle
Software life cycleSoftware life cycle
Software life cycle
 
SDLC
SDLCSDLC
SDLC
 
Software Processes
Software Processes Software Processes
Software Processes
 
sdlc life cycle
sdlc life cyclesdlc life cycle
sdlc life cycle
 
Process models
Process modelsProcess models
Process models
 
The unified process
The unified processThe unified process
The unified process
 
Software development life cycle (sdlc)
Software development life cycle (sdlc)Software development life cycle (sdlc)
Software development life cycle (sdlc)
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software management framework
Software management frameworkSoftware management framework
Software management framework
 
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop introBeit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Software engineering 25 models details
Software engineering 25 models detailsSoftware engineering 25 models details
Software engineering 25 models details
 

En vedette

SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1Amr E. Mohamed
 
Lecture 17 design concepts (2)
Lecture 17   design concepts (2)Lecture 17   design concepts (2)
Lecture 17 design concepts (2)IIUI
 
Lecture 15 requirements modeling - scenario, information and analysis class...
Lecture 15   requirements modeling - scenario, information and analysis class...Lecture 15   requirements modeling - scenario, information and analysis class...
Lecture 15 requirements modeling - scenario, information and analysis class...IIUI
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRupesh Vaishnav
 
Lecture 16 requirements modeling - scenario, information and analysis classes
Lecture 16   requirements modeling - scenario, information and analysis classesLecture 16   requirements modeling - scenario, information and analysis classes
Lecture 16 requirements modeling - scenario, information and analysis classesIIUI
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behaviorIIUI
 
Lecture 20 software testing (2)
Lecture 20   software testing (2)Lecture 20   software testing (2)
Lecture 20 software testing (2)IIUI
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)IIUI
 
Chapter 09 io devices
Chapter 09 io devicesChapter 09 io devices
Chapter 09 io devicesIIUI
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Chapter 08 secondary storage
Chapter 08 secondary storageChapter 08 secondary storage
Chapter 08 secondary storageIIUI
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
 
Chapter 04 computer codes
Chapter 04 computer codesChapter 04 computer codes
Chapter 04 computer codesIIUI
 
Introduction to Software Engineering 1
Introduction to Software Engineering 1Introduction to Software Engineering 1
Introduction to Software Engineering 1IIUI
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software DevelopmentZeeshan MIrza
 

En vedette (16)

SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1
 
Lecture 17 design concepts (2)
Lecture 17   design concepts (2)Lecture 17   design concepts (2)
Lecture 17 design concepts (2)
 
Lecture 15 requirements modeling - scenario, information and analysis class...
Lecture 15   requirements modeling - scenario, information and analysis class...Lecture 15   requirements modeling - scenario, information and analysis class...
Lecture 15 requirements modeling - scenario, information and analysis class...
 
Requirement analysis and specification, software engineering
Requirement analysis and specification, software engineeringRequirement analysis and specification, software engineering
Requirement analysis and specification, software engineering
 
Lecture 16 requirements modeling - scenario, information and analysis classes
Lecture 16   requirements modeling - scenario, information and analysis classesLecture 16   requirements modeling - scenario, information and analysis classes
Lecture 16 requirements modeling - scenario, information and analysis classes
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behavior
 
Lecture 20 software testing (2)
Lecture 20   software testing (2)Lecture 20   software testing (2)
Lecture 20 software testing (2)
 
Lecture 13 requirements modeling - flow & behavior (2)
Lecture 13   requirements modeling - flow &  behavior (2)Lecture 13   requirements modeling - flow &  behavior (2)
Lecture 13 requirements modeling - flow & behavior (2)
 
Chapter 09 io devices
Chapter 09 io devicesChapter 09 io devices
Chapter 09 io devices
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Chapter 08 secondary storage
Chapter 08 secondary storageChapter 08 secondary storage
Chapter 08 secondary storage
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 
Chapter 04 computer codes
Chapter 04 computer codesChapter 04 computer codes
Chapter 04 computer codes
 
Introduction to Software Engineering 1
Introduction to Software Engineering 1Introduction to Software Engineering 1
Introduction to Software Engineering 1
 
Introduction to Software Development
Introduction to Software DevelopmentIntroduction to Software Development
Introduction to Software Development
 
Layered Software Architecture
Layered Software ArchitectureLayered Software Architecture
Layered Software Architecture
 

Similaire à Lect3 ch15-unit2

Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
Software development life cycle (SDLC) Models
Software development life cycle (SDLC) ModelsSoftware development life cycle (SDLC) Models
Software development life cycle (SDLC) ModelsAOmaAli
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.pptNyamburaKinyua
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.pptchandrasekarnatraj
 
Session2.ppt
Session2.pptSession2.ppt
Session2.pptMehuk1
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)EveryThing68
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptMahiDivya
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.pptloloka1
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleRIKSOF
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMMubashir Ali
 

Similaire à Lect3 ch15-unit2 (20)

Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software development life cycle (SDLC) Models
Software development life cycle (SDLC) ModelsSoftware development life cycle (SDLC) Models
Software development life cycle (SDLC) Models
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
 
SDLC.PPT
SDLC.PPTSDLC.PPT
SDLC.PPT
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)
 
SDLC.ppt
SDLC.pptSDLC.ppt
SDLC.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2 (1).ppt
Session2 (1).pptSession2 (1).ppt
Session2 (1).ppt
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.ppt
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
Software Process Model
Software Process ModelSoftware Process Model
Software Process Model
 
SDLC
SDLCSDLC
SDLC
 

Plus de Mobeen Mustafa

Plus de Mobeen Mustafa (11)

Theory of automata
Theory of automataTheory of automata
Theory of automata
 
FInite Automata
FInite AutomataFInite Automata
FInite Automata
 
Language
LanguageLanguage
Language
 
Mathematical preliminaries in Automata
Mathematical preliminaries in AutomataMathematical preliminaries in Automata
Mathematical preliminaries in Automata
 
Kleene's theorem
Kleene's theoremKleene's theorem
Kleene's theorem
 
Incremental Model
Incremental ModelIncremental Model
Incremental Model
 
RAD
RADRAD
RAD
 
Types of graphics cards
Types of graphics cardsTypes of graphics cards
Types of graphics cards
 
convert number to string
convert number to string convert number to string
convert number to string
 
Process or preparing effective b.m
Process or preparing effective b.mProcess or preparing effective b.m
Process or preparing effective b.m
 
Lecture1
Lecture1Lecture1
Lecture1
 

Dernier

(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 

Dernier (20)

(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 

Lect3 ch15-unit2

  • 2. 2 Course outline • Unit 1: Software Engineering Basics  Unit 2: Process Models and Software Life Cycles • Unit 3: Software Requirements • Unit 4: Unified Modeling Language (UML) • Unit 5: Design Basics and Software Architecture • Unit 6: OO Analysis and Design • Unit 7: Design Patterns • Unit 8: Testing and Reliability • Unit 9: Software Engineering Management and Economics
  • 3. 3 Reference • These slides are based on: – Lecture slides by Ian Summerville, see http://www.comp.lancs.ac.uk/computing/resources/ser/
  • 4. 4 Overview • Build-and-fix model • Waterfall model • Rapid prototyping model • Incremental model • Evolutionary • Synchronize-and-stabilize model • Spiral model
  • 5. 5 Software Life-Cycle Models • Life-cycle model (also, process model) • The software development and operation activities and their ordering – Requirements elicitation – Specification – Design – Implementation – Integration – Maintenance phase – Retirement – …
  • 6. 6 New or changed requirements New or changed system Software Engineering Process What Is a Software Engineering Process? A process defines Who is doing What, When and How in the development of a software system – Roles and workflows – Workproducts – Milestones – Guideline – …
  • 8. 8 An Effective Process ... • Provides guidelines for efficient development of quality software • Reduces risk and increases predictability • Captures and presents best practices – Learn from other’s experiences – Mentor on your desktop – Extension of training material • Promotes common vision and culture • Provides roadmap for applying tools • Delivers information on-line, at your finger tips
  • 9. 9 Lightweight vs. Heavyweight Processes Document driven Elaborate workflow definitions Many different roles Many checkpoints High management overhead Highly bureaucratic Focus on working code rather than documentation Focus on direct communication (between developers and between developers and the customer) Low management overhead Heavyweight e.g., V-Process Customizable Framework e.g., Rational Unified Process (RUP) Agile (Lightweight) e.g., eXtreme Programming (XP)
  • 10. 10 • Process used should depend on type of product which is being developed – For large systems, management is usually the principal problem so you need a strictly managed process. For smaller systems, more informality is possible. • High costs may be incurred if you force an inappropriate process on a development team Process choice ©Ian Sommerville 1995 [modified]
  • 11. 11 Build and Fix Model • Properties – No planning or analysis – The working program is the only workproduct • Advantage – Appropriate for small programs written by one person • Disadvantage – Understandability and maintainability decrease rapidly with increasing program size – Totally unsatisfactory – Need a life-cycle model • “Game plan” • Phases • Milestones
  • 12. 12 Waterfall Model • Characterized by – Sequential steps (phases) – Feedback loops (between two phases in development) – Documentation-driven • Advantages – Documentation – Maintenance easier • Disadvantages – Complete and frozen specification document up-front often not feasible in practice – Customer involvement in the first phase only – Sequential and complete execution of phases often not desirable – Process difficult to control – The product becomes available very late in the process
  • 13. 13 Rapid Prototyping Model • Rapid prototyping phase followed by waterfall – Do not turn the rapid prototype into the product – Rapid prototyping may replace the specification phase—never the design phase • Comparison: – Waterfall model—try to get it right the first time – Rapid prototyping—frequent change, then discard
  • 14. 14 Advantages and Disadvantages • Advantages – Requirements better specified and validated – Early feasibility analysis – Strong involvement of the customer in the prototyping phase • Disadvantage – Higher development effort – Danger that due to schedule slip, the prototype becomes part of the product
  • 15. 15 Incremental Design Coding Test Deployment Design Coding Test Deployment Design Coding Test Deployment Requirements Release 1 Release 2 Release 3 Each release adds more functionality, i.e., a new increment (Some call it iterative)
  • 16. 16 Incremental Model (contd) • Waterfall, rapid prototyping models – Operational quality complete product at end • Incremental model – Operational quality portion of product within weeks • Less traumatic • Smaller capital outlay, rapid return on investment
  • 17. 17 Evolutionary Design Coding Test DeploymentRequirements Design Coding Test DeploymentRequirements Design Coding Test DeploymentRequirements Feedback Version 1 Version 1 Version 1 New versions implement new and evolving requirements (Some call it iterative)
  • 18. 18 Evolutionary Model (contd) • Advantages – Constant customer involvement and validation – Allows for good risk management • Disadvantages – Build-and-fix danger – Contradiction in terms
  • 19. 19 Spiral model • Waterfall model plus risk analysis preceding each phase and evaluation following each phase • Prototyping for high-risk specifications • Radial dimension: cumulative cost to date • Angular dimension: progress through the spiral • If all risks cannot be resolved, the project is immediately terminated • Appropriate only for big projects (high management overhead)
  • 20. 20 Spiral model Risk analysis Risk analysis Risk analysis Risk analysisProto- type 1 Prototype 2 Prototype 3 Opera- tional protoype Conceptof Operation Simulations, models, benchmarks S/W requirements Requirement validation Design V&V Product design Detailed design Code Unittest Integration testAcceptance testService Develop, verify next-levelproduct Evaluate alternatives identify, resolve risks Determine objectives alternativesand constraints Plannextphase Integration andtestplan Development plan Requirementsplan Life-cycle plan REVIEW
  • 21. 21 Process model risk problems • Waterfall – High risk for new systems because of specification and design problems – Low risk for well-understood developments using familiar technology • Prototyping – Low risk for new applications because specification and program stay in step – High risk because of lack of process visibility • Evolutionary and Spiral – Middle ground between waterfall and prototyping
  • 22. 22 Hybrid process models • Large systems are usually made up of several sub-systems • The same process model need not be used for all subsystems • Prototyping for high-risk specifications • Waterfall model for well-understood developments • Taylor the process to a problem
  • 23. 23 Use of the Models in Practice
  • 24. 24 • The fundamental problem with software – The software process is badly managed • Understanding existing processes • Introducing process changes to achieve organisational objectives which are usually focused on quality improvement, cost reduction and schedule acceleration Process improvement ©Ian Sommerville 1995 [modified]
  • 25. 25 Reference • These slides are based on: – Lecture slides by Ian Summerville, see http://www.comp.lancs.ac.uk/computing/resources/ser/
  • 26. 26 Rational Unified Process – Main Characteristics • Iterative and incremental • Use-case-driven • Architecture-centric • Uses UML as its modeling notation • Process framework – Comprehensive set of document templates, process workflow templates, and process guidelines – Distributed by IBM/Rational on a CD
  • 27. 27 Rational Unified Process Is Use- Case-Driven • Use cases are concise, simple, and understandable by a wide range of stakeholders – End users, developers and acquirers understand functional requirements of the system • Use cases drive numerous activities in the process: – Creation and validation of the design model – Definition of test cases and procedures of the test model – Planning of iterations – Creation of user documentation – System deployment • Use cases help synchronize the content of different models
  • 28. 28 Rational Unified Process Is Architecture-Centric • Architecture is the focus of the elaboration phase – Building, validating, and baselining the architecture constitute the primary objective of elaboration • The Architectural Prototype validates the architecture and serves as the baseline for the rest of development • The Software Architecture Description is the primary artifact that documents the architecture chosen • Other artifacts derive from architecture: – Design guidelines including use of patterns and idioms – Product structure – Team structure
  • 29. 29 Representing Architecture: The 4+1 View Model Process View Deployment View Logical View Implementation View Programmers Software management Performance Scalability Throughput System Integrators System topology Delivery, installation communication System Engineering Use-Case View Structure Analysts/ Designers End-user Functionality
  • 30. 30 InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition Process Architecture - Lifecycle Phases The Rational Unified Process has four phases: – Inception - Define the scope of project – Elaboration - Plan project, specify features, baseline architecture – Construction - Build the product – Transition - Transition the product into end user community time
  • 31. 31 InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition Phase Boundaries Mark Major Milestones Lifecycle Objective Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Product Release time
  • 32. 32 Iterations and Phases AnAn iterationiteration is a distinct sequence of activities with anis a distinct sequence of activities with an established plan and evaluation criteria, resulting inestablished plan and evaluation criteria, resulting in an executable release (internal or external)an executable release (internal or external) PreliminaryPreliminary IterationIteration Architect.Architect. IterationIteration Architect.Architect. IterationIteration Devel.Devel. IterationIteration Devel.Devel. IterationIteration Devel.Devel. IterationIteration TransitionTransition IterationIteration TransitionTransition IterationIteration InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition Minor Milestones: Releases
  • 33. 33 Major Workflows Produce Models Analysis &Analysis & DesignDesign Design Model Implementation Model Test Model realized by implemented by verified by RequirementsRequirements ImplementationImplementation TestTest Use-Case Model BusinessBusiness ModelingModeling Business Model supported by
  • 34. 34 RUP Overview Management Environment Business Modeling Implementation Test Architecture & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements Elaboration TransitionInception Construction Workflows group activities logically In an iteration, you walk through all workflows
  • 35. 35 XP Overview Characteristics • Evolutionary development • Collection of 12 „Best Practices“ • Focus on working code that implements customer needs (rather than documents) • Testing is a crucial element of the process • Focus on flexibility and efficiency of the process • Designed for small teams (<10) Write tests Planning Test Pair Programming + Refactoring Integration Min. daily Every 2-3 weeks Release
  • 36. 36 XP Practices (I) • The planning game – Stakeholder meeting to plan the next iteration – Business people decide on business value of features – Developers on the technical risk of features and predicted effort per feature • Small releases – Start with the smallest useful feature set; release early and often, adding a few features each time • Metaphor – Each project has an organizing metaphor, a providing easy to remember naming conventions
  • 37. 37 XP Practices (II) • Simple Design – Always use the simplest possible design that gets the job done (runs the tests and states intentions of the programmer) – No speculative genericity • Testing – Test-first: write test, then implement it – Programmers write unit tests and customers write acceptance tests • Refactoring – Refactoring is done continuously; the code is always kept clean
  • 38. 38 XP Practices (III) • Pair programming – All production code written by two programmers – One programmer is thinking about implementing the current method, the other is thinking strategically about the whole system – Pairs are put together dynamically • Collective code ownership – Any programmer that sees an opportunity to add value to any portion of the code is required to do so at any time • Continuous integration – Use of version and configuration management (e.g., CVS) – All changes are integrated into the code-base at least daily – The tests have to run 100% before and after the integration
  • 39. 39 XP Practices (IV) • 40-h week – Programmers go home on time – Overtime is a symptom of a serious problem – No errors by tired developers; better motivated developers • On-site customer – Development team has continuous access to a real life customer/user • Coding standards – Everyone codes to the same standards – Ideally, you should not be able to tell by looking at it who has written a specific piece of code
  • 40. 40 XP Advantages • Integrated, simple concept • Low management overhead (no complicated procedures to follow, no documentation to maintain, direct communication, pair programming) • Continuous risk management (early feedback from the customer) • Continuous effort estimation • Emphasis on testing; tests help in evolution and maintenance
  • 41. 41 XP Disadvantages • Appropriate for small teams (up to 10 developers) only (does not scale) • Large development groups may require more structures and documents • If maintainers are not the people that developed the code, good documentation is necessary • Generic design may be necessary to enable expected future development
  • 42. 42 Reading • RUP – Craig Larman, Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and the Unified Process, Prentice-Hall, 2002 (2nd edition) – Kendall Scott. The Unified Process Explained. Addison Wesley, 2001 • Agile development – Kent Beck, Extreme Programming: Explained, Addison-Wesley, 1999 – R. Jeffries, C. Hendrikson, A. Anderson, Extreme Programming Installed, Addison-Wesley, 2001 • http://member.netease.com/~wooce/tip/se/ – Alistair Cockburn, Agile Software Development, Addison-Wesley 2002 • Online-Ressourcen – http://www.xprogramming.com – http://www.xprogramming.org – http://groups.yahoo.com/group/extremeprogramming – http://c2.com
  • 43. 43 Process improvement stages • Process analysis – Model and analyse (quantitatively if possible) existing processes • Improvement identification – Identify quality, cost or schedule bottlenecks • Process change introduction – Modify the process to remove identified bottlenecks • Process change training – Train staff involved in new process proposals • Change tuning – Evolve and improve process improvements ©Ian Sommerville 1995
  • 44. 44 Software process improvement initiatives • Capability maturity model (CMM) – http://www.sei.cmu.edu/cmm/cmms/cmms.html • ISO 9000-series • ISO/IEC 15504 – Standard for Software Process Assessment (SPICE) – http://www-sqi.cit.gu.edu.au/spice/ ©Steven Schach 2002 [modified]
  • 45. 45 Capability Maturity Model • A set of strategies for improving the software process – SW–CMM for software – P–CMM for human resources (“people”) – SE–CMM for systems engineering – IPD–CMM for integrated product development – SA–CMM for software acquisition • These strategies are being unified into CMMI (capability maturity model integration) • Developed by Software Engineering Institute (SEI) ©Steven Schach 2002 [modified]
  • 46. 46 SW–CMM • A strategy for improving the software process • Put forward in 1986 by the SEI • Fundamental ideas: – Improving the software process leads to • Improved software quality • Delivery on time, within budget – Improved management leads to • Improved techniques • Five levels of “maturity” are defined • Organization advances stepwise from level to level ©Steven Schach 2002
  • 47. 47 Level 1. Initial Level • Ad hoc approach – Entire process is unpredictable – Management consists of responses to crises • Most organizations world-wide are at level 1 ©Steven Schach 2002
  • 48. 48 Level 2. Repeatable Level • Basic software management – Management decisions should be made on the basis of previous experience with similar products – Measurements (“metrics”) are made – These can be used for making cost and duration predictions in the next project – Problems are identified, immediate corrective action is taken ©Steven Schach 2002
  • 49. 49 Level 3. Defined Level • The software process is fully documented – Managerial and technical aspects are clearly defined – Continual efforts are made to improve quality, productivity – Reviews are performed to improve software quality – CASE tools are applicable now (and not at levels 1 or 2) ©Steven Schach 2002
  • 50. 50 Level 4. Managed Level • Quality and productivity goals are set for each project – Quality, productivity are continually monitored – Statistical quality controls are in place ©Steven Schach 2002
  • 51. 51 Level 5. Optimizing Level • Continuous process improvement – Statistical quality and process controls – Feedback of knowledge from each project to the next ©Steven Schach 2002
  • 53. 53 • Any type of measurement which relates to a software system, process or related documentation – Lines of code in a program, number of person-days required to develop a component • Allow the software and the software process to be quantified • Should be captured automatically and monitored if possible Software metrics ©Ian Sommerville 1995 [modified]
  • 54. 54 • A quality metric should be a predictor of product quality • Most quality metrics are design quality metrics and are concerned with measuring the coupling or the complexity of a design • The relationship between these metrics and quality has to be judged by a human (no automatic connection to quality possible) • Outliers may point to problems • There are no “magic thresholds,” rather the trend of metrics over time needs to be monitored Product quality metrics ©Ian Sommerville 1995 [modified]
  • 55. 55 Traditional Software Metics • Coupling metrics (associated with a structure chart in Yourdon's Structured Design) – High number of calling functions or called functions suggests high coupling • Cyclomatic complexity is a measure of control structure complexity – Metric has two drawbacks • It is inaccurate for data-driven programs as it is only concerned with control constructs. • It places the same weight on nested and non-nested loops. Deeply nested structures, however, are usually harder to understand. • Oviedo's metric modifies this to take data references into account – C = aE +bN (with N external data entities, E edges to the data entities and constants a,b) ©Ian Sommerville 1995 [modified]
  • 56. 56 Metrics for Object-Oriented Software • Traditional (still usable) – Cyclomatic complexity (CC) • New OO metrics – Coupling • Coupling between objects (CBO) • Depth of inheritance tree (DIT) • … – Cohesion • Lack of cohesion of methods (LCOM) • … – Complexity • Weighted methods per class (WMC) • …
  • 57. 57 • Time taken for process activities to be completed – E.g. Calendar time or effort to complete an activity or process • Resources required for processes or activities – E.g. Total effort in person-days • Number of occurrences of a particular event – E.g. Number of defects discovered • Process improvement requires process measurement! Classes of process measurement (Process Metrics) ©Ian Sommerville 1995 [modified]
  • 58. 58 • Goals – What is the organisation trying to achieve? The objective of process improvement is to satisfy these goals • Questions – Questions about areas of uncertainty related to the goals. You need process knowledge to derive these • Metrics – Measurements to be collected to answer the questions Goal-Question-Metric Paradigm ©Ian Sommerville 1995 [modified]

Notes de l'éditeur

  1. The UML is a generic modeling language. With UML, you can produce blueprints for any kind of software system. The Rational Unified Process (RUP) is a generic process that uses UML as a modeling language. RUP can be used for any kind of software system.
  2. The focus of the process is the production of high-quality executables with a minimum of overhead, rather than what documents to produce. By providing a “written-down”, very detailed set of procedures for developing software according to Rational’s six best practices, the process is easier to apply and repeatable. This results in software projects that are more predicable and successful. Another feature of the Rational Unified Process is that it is not just theory. It instructs the developer on how to implement the activities using the tools the developer is using. Finally, the process is available on-line as a Website. While hardcopy books have their place, most developers prefer to reference the process from their desktops when they need help. Both hardcopy and on-line versions are available.
  3. Use of component-based architectures is one of the six best practices already discussed. Architecture is used in the Rational Unified Process as a primary artifact for conceptualizing, constructing, managing, and evolving the system under development. The Rational Unified Process emphasizes early development and validation of software architecture as a core concept. It defines two primary artifacts related to architecture: the Software Architecture Description (SAD) which describes the architectural views relevant to the project and the Architectural Prototype. The Rational Unified Process also defines a worker, called the Architect, who is responsible for the architecture. The bulk of the activities related to architectural design are described in the analysis and design workflow, but it spills over to the requirements workflow, the implementation workflow, and the project management workflow.
  4. Many different parties are interested in the architecture (e.g., the system analyst, the designers, the end uses, etc.). To allow these parties or stakeholders to communicate, discuss and reason about architecture, we need to have an architectural representation that they understand. Because different stakeholders have different concerns and because architecture is quite complex, multiple views are required to represent architecture adequately. An architectural view is a simplified description (an abstraction) of a system from a particular perspective or vantage point, covering particular concerns,and omitting entities that are not relevant to this perspective. While many views of architecture can be useful, the Rational Unified Process identifies 4+1 views as a standard set: The logical view addresses the functional requirements of the system. It is an abstraction of the design model, identifying major design packages, subsystems and classes. The implementation view describes the organization of static software modules in the development environment, in terms of packaging, layering, and configuration management. The process view addresses the concurrent aspect of the system at run-time: tasks, threads or processes, and their interactions. The deployment view shows how the various executables and other run-time components are mapped onto the underlying platforms or computing nodes. The use-case view contains a few key scenarios or use cases that are used to drive the architecture and to validate it.
  5. During Inception, we define the scope of the project, what is included, and what is not. This is done by identifying all the actors and use cases, and by drafting the most essential use cases (usually approximately 20% of the complete model). A business plan is developed to determine whether resources should be committed to the project. During Elaboration, we focus on two things: get a good grasp of the requirements (90% complete) and establish an architectural baseline. If we have a good grasp of the requirements and the architecture, we can eliminate a lot of the risks and will have a good idea what amount of work remains to be done. Detailed cost/resource estimations can be made at the end of Elaboration. During Construction, we build the product in several iterations up to a beta release. During Transition, we transition the product to the end user and focus on end user training, installation, and support. The amount of time spent in each phase varies. For a very complex project with a lot of technical unknowns and unclear requirements, Elaboration may include 3-5 iterations. For a very simple project where requirements are known and the architecture is simple, Elaboration may include only a single iteration.
  6. At each of the major milestones,the project is reviewed and a decision made as to whether to proceed with the project as planned, to abort the project, or to revise it. The criteria used to make this decision vary by phase. The evaluation criteria for the inception phase (LCO) include: stakeholder concurrence on scope definition and cost/schedule estimates; requirements understanding as evidenced by the fidelity of the primary use cases; credibility of cost/schedule estimates, priorities, risks, and development process; depth and breadth of any architectural prototype; actual expenditures versus planned expenditures. The evaluation criteria for the elaboration phase (LCA) include: stability of the product vision and architecture; resolution of major risk elements; adequate planning and reasonable estimates for project completion; stakeholder acceptance of the product vision and project plan; acceptable expenditure level. The evaluation criteria for the construction phase (IOC) include: stability and maturity of the product release (I.e., is it ready to be deployed?); readiness of the stakeholders for the transition; acceptable expenditure level. At the end of the transition phase, a decision is made whether to release the product. This will be based primarily on the level of user satisfaction achieved during the transition phase. Often this milestone coincides with the initiation of another development cycle to improve or enhance the product. In many cases, this new development cycle by already be underway.
  7. Within each phase, there is a series of iterations. The number of iterations per phase will vary. Each iteration results in an executable release encompassing larger and larger subsets of the final application. An internal release is kept within the development environment and (optionally) demonstrated to the stakeholder community. An external release is provided to stakeholders (usually users) for installation in their own environment. External releases are much more expensive (they require user documentation and technical support) and normally occur only during the transition phase. The end of an iteration marks a minor milestone. It is a point in time when technical results are assessed and future plans revised as necessary.
  8. The Rational Unified Process is a model-driven approach. Several models are needed to fully describe the evolving system. Each major workflow produces one of those models. The models are developed incrementally across iterations. The Business Model is a model of what the business processes are and the business environment. It can be used to generate requirements on supporting information systems. The Use-Case Model is a model of what the system is supposed to do and the system environment. The Design Model is an object model describing the realization of use cases. It serves as an abstraction of the implementation model and its source code. The Implementation Model is a collection of components, and the implementation subsystems that contain them. The Test Model encompasses all of the test cases and procedures required to test the system.
  9. This graphic illustrates how phases and iterations, or the time dimension, relates to the development activities performed, or the workflow dimension. The relative size of the color area indicates how much of the activity is performed in each phase/iteration. Each iteration involves activities from all workflows. The relative amount of work related to the workflows changes between iterations. For instance, during late Construction, the main work is related to Implementation and Test and very little work on Requirements is done. Note that requirements are not necessarily complete by the end of Elaboration. It is acceptable to delay the analysis and design of well-understood portions of the system until Construction because they are low in risk.