Você está na página 1de 16

Unit_I_T2_W14-15

Process Models

CSE325 Software Engineering


Unit I

Topic II: Process, Process Models

Software Lifecycle Models


A software lifecycle model is a standardised
format for
planning
organising, and
running
a new development project.
Hundreds of different kinds of models are known and used.

Many are minor variations on just a small number of basic models.

Planning with Models


SE projects usually live with a fixed financial budget. (An exception is maintainance?)
Additionally, time-to-market places a strong time constraint.
There will be other project constraints such as staff.
Project planning is the art of scheduling the necessary activities, in time, space and
across staff in order to optimise:
project risk [low]
profit [high]
customer satisfaction [high]
worker satisfaction [high]
long-term company goals
A project plan contains much information, but must at least describe:
resources needed (people, money, equipment, etc)
dependency & timing of work (flow graph, work packages)
rate of delivery (reports, code, etc)

It is impossible to measure rate of progress except with reference to a plan.

In addition to project members, the following may need access to parts of the project plan:

Management,
Customers
Subcontractors
Suppliers
Investors

1
Unit_I_T2_W14-15
Process Models
Banks

Project Visibility
Unlike other engineers (e.g. civil, electronic, chemical etc.) software engineers do not
produce anything physical.
It is inherently difficult to monitor an SE project due to lack of visibility.

SE projects must produce additional deliverables (artifacts) which are visible, such as:

Design documents/ prototypes


Reports
Project/status meetings
Client surveys (e.g. satisfaction level)

A Lifecycle Model?

Definition.
A (software/system) lifecycle model is a description of the sequence of activities
carried out in an SE project, and the relative order of these activities.
It provides a fixed generic framework that can be tailored to a specific project.
Project specific parameters will include:
Size, (person-years)
Budget,
Duration.
project plan = lifecycle model + project parameters

Different lifecycle models


Waterfall,
V shaped
Code-and-fix
Spiral
Rapid prototyping
Unified process (up)
Agile methods, extreme programming (xp)
Cots
but many are minor variations on a smaller number of basic models.
By changing the lifecycle model, improvement and/or tradeoff can be made towrads

Development speed (time to market)


Product quality

2
Unit_I_T2_W14-15
Process Models
Project visibility
Administrative overhead
Risk exposure
Customer relations, etc, etc.
Waterfall Model
The waterfall model is the classic lifecycle model it is widely known, understood
and (commonly?) used.
In some respect, waterfall is the common sense approach.
Introduced by Royce 1970.

Waterfall Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or schedule

Waterfall Deficiencies
All requirements must be known upfront
Deliverables created for each phase are considered frozen inhibits flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of software development iterations of phases
Integration is one big bang at the end
Little opportunity for customer to preview the system (until it may be too late)

When to use the Waterfall Model


Requirements are very well known
Product definition is stable

3
Unit_I_T2_W14-15
Process Models
Technology is understood
New version of an existing product
Porting an existing product to a new platform.

V-Shaped SDLC Model

A variant of the Waterfall that emphasizes the verification and validation of the product.
Testing of the product is planned in parallel with a corresponding phase of development

V-Shaped Steps
Project and Requirements Planning allocate resources
Product Requirements and Specification Analysis complete specification of the
software system
Architecture or High-Level Design defines how software functions fulfill the design
Detailed Design develop algorithms for each architectural component
Production, operation and maintenance provide for enhancement and corrections
System and acceptance testing check the entire software system in its environment
Integration and Testing check that modules interconnect correctly
Unit testing check that each module acts as expected
Coding transform algorithms into software

V-Shaped Strengths

4
Unit_I_T2_W14-15
Process Models
Emphasize planning for verification and validation of the product in early stages of
product development
Each deliverable must be testable
Project management can track progress by milestones
Easy to use

V-Shaped Weaknesses
Does not easily handle concurrent events
Does not handle iterations or phases
Does not easily handle dynamic changes in requirements
Does not contain risk analysis activities

When to use the V-Shaped Model


Excellent choice for systems requiring high reliability hospital patient control
applications
All requirements are known up-front
When it can be modified to handle changing requirements beyond analysis phase
Solution and technology are known

Code-and-Fix
This model starts with an informal general product idea and just develops code until a
product is ready (or money or time runs out).
Work is in random order.
Advantages
No administrative overhead
Signs of progress (code) early.
Low expertise, anyone can use it!
Useful for small proof of concept projects, e.g. as part of risk reduction.

Disadvantages
Dangerous!
o No visibility/control
o No resource planning
o No deadlines
o Mistakes hard to detect/correct
Impossible for large projects,
o communication breakdown, chaos.

Incremental SDLC Model


Construct a partial implementation of a total system
Then slowly add increased functionality

5
Unit_I_T2_W14-15
Process Models

The incremental model prioritizes requirements of the system and then implements them in
groups.
Each subsequent release of the system adds function to the previous release, until all
designed functionality has been implemented.

Incremental Model Strengths


Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Uses divide and conquer breakdown of tasks
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early
Risk of changing requirements is reduced

6
Unit_I_T2_W14-15
Process Models

Incremental Model Weaknesses


Requires good planning and design
Requires early definition of a complete and fully functional system to allow for the definition
of increments
Well-defined module interfaces are required (some will be developed long before others)
Total cost of the complete system is not lower

When to use the Incremental Model

Risk, funding, schedule, program complexity, or need for early realization of benefits.
Most of the requirements are known up-front but are expected to evolve over time
A need to get basic functionality to the market early
On projects which have lengthy development schedules
On a project with new technology

Rapid Application Model (RAD)


Requirements planning phase (a workshop utilizing structured discussion of business
problems)
User description phase automated tools capture information from users
Construction phase productivity tools, such as code generators, screen generators, etc.
inside a time-box. (Do until done)
Cutover phase -- installation of the system, user acceptance testing and user training
T e am # n
M o d e li n g
b u s in e s s m o d e lin g
d a t a m o d e lin g
p r o c e s s m o d e lin g

C o n s t r u c t io n
c o m p on e n t re u s e
T e am # 2 a u t o m a t ic c o d e
C o m m u n ic a t io n g e n e r a t io n
t e s t in g
M o d e ling
b u si n e s s m o d e l i n g
d a t a m o d e lin g
p ro c e s s m o d e l i n g

P la n n in g
C o ns t r uc t io n D e p lo y m e n t
T e am # 1 co m p o n e n t re u se i n t e g r at io n
a u t o m a t i c co d e
g e n e ra t i o n
d e liv e r y
M o d e li n g t e st i n g f e e d b ack
b u s in e s s m o d e lin g
d a t a m o d e lin g
p r o c e s s m o d e lin g

C o n s t r u c t io n
c o m p o n e n t re u s e
a u t o m at i c c o d e
g e n e r at i o n
t e s t in g

6 0 - 9 0 days

7
Unit_I_T2_W14-15
Process Models
RAD Strengths

Reduced cycle time and improved productivity with fewer people means lower costs
Time-box approach mitigates cost and schedule risk
Customer involved throughout the complete cycle minimizes risk of not achieving customer
satisfaction and business needs
Focus moves from documentation to code (WYSIWYG).
Uses modeling concepts to capture information about business, data, and processes.

RAD Weaknesses
Accelerated development process must give quick responses to the user
Risk of never achieving closure
Hard to use with legacy systems
Requires a system that can be modularized
Developers and customers must be committed to rapid-fire activities in an abbreviated
time frame.

When to use RAD


Reasonably well-known requirements
User involved throughout the life cycle
Project can be time-boxed
Functionality delivered in increments
High performance not required
Low technical risks
System can be modularized
Evolutionary development
Problems in Traditional Models
Lack of process visibility
Systems are often poorly structured
Special skills (e.g. in languages for rapid prototyping) may be required
Applicability
For small or medium-size interactive systems
For parts of large systems (e.g. the user interface)
For short-lifetime systems

Spiral Model

Build some software


See if it meets customer requirements
Repeat Process.
This loop approach gives rise to structured

8
Unit_I_T2_W14-15
Process Models
iterative lifecycle models.

In 1988 Boehm developed the spiral model as an iterative model which includes risk
analysis and risk management.

Key idea: on each iteration identify and solve the sub-problems with the highest risk.

Each cycle follows a waterfall model by:


o Determining objectives
o Specifying constraints
o Generating alternatives
o Identifying risks
o Resolving risks
o Developing next-level product
o Planning next cycle

Advantages
Realism: the model accurately reflects the iterative nature of software development on
projects with unclear requirements
Flexible: incoporates the advantages of the waterfal and rapid prototyping methods
Comprehensive model decreases risk
Good project visibility.
Disadvantages
Needs technical expertise in risk analysis to really work
Model is poorly understood by non-technical management, hence not so widely used

9
Unit_I_T2_W14-15
Process Models
Complicated model, needs competent professional management. High administrative
overhead.
Rapid Prototyping
Idea: Customers are non-technical and usually dont know what they want/can have.
Prototypes are built when goals are general and not specific.
Prototyping can be used as a standalone process or by one of the processes presented.
The prototype serves as the first system. Users get a feel for the actual system and
developers get something built quickly.
A prototype is intended for short term use but too often they are used much longer.
Rapid prototyping emphasises requirements analysis and validation, also called:
o Customer Oriented development,
o Evolutionary prototyping

Advantages
Reduces risk of incorrect user requirements
Good where requirements are changing/uncommitted
Regular visible progress aids management
Supports early product marketing
Disadvantages
An unstable/badly implemented prototype often becomes the final product.
Requires extensive customer collaboration
Costs customers money
Needs committed customers
Difficult to finish if customer withdraws
May be too customer specific, no broad market

10
Unit_I_T2_W14-15
Process Models

Difficult to know how long project will last


Easy to fall back into code-and-fix without proper requirements analysis, design,
Customer evaluation and feedback.

When to use
Structured Evolutionary Prototyping
Requirements are unstable or have to be clarified
As the requirements clarification stage of a waterfall model
Develop user interfaces
Short-lived demonstrations
New, original development
With the analysis and design portions of object-oriented development.

Agile (XP) Manifesto

XP = Extreme Programming emphasizes:


Individuals and interactions
o Over processes and tools
Working software
o Over documentation
Customer collaboration
o Over contract negotiation
Responding to change
o Over following a plan

Agile Principles
Continuous delivery of software
Continuous collaboration with customer
Continuous update according to changes
Value participants and their interaction
Simplicity in code, satisfy the spec.
An Agile method?

Focus on the code rather than the design.


Based on an iterative approach to software development.
Intended to deliver working software quickly.
Evolve quickly to meet changing requirements.

11
Unit_I_T2_W14-15
Process Models

XP Practices
Programming in pairs
Test driven development
Continuous planning, change , delivery
Shared project metaphors, coding standards and ownership of code
Advantages
Lightweight methods suit small-medium size projects
Produces good team cohesion
Emphasises final product
Iterative
Test based approach to requirements and quality assurance
Disadvantages
Difficult to scale up to large projects where documentation is essential
Needs experience and skill if not to degenerate into code-and-fix
Programming pairs is costly
Test case construction is a difficult and specialised skill.

Unified Process (UP)


Booch, Jacobson, Rumbaugh 1999.
Lifetime of a software product in cycles:

12
Unit_I_T2_W14-15
Process Models
Each cycle has phases, culiminating in a new release (c.f. Spiral model)
Inception identify core use cases, and use to make architecture and design tradeoffs.
Estimate and schedule project from derived knowledge.
Elaboration capture detailed user requirements. Make detailed design, decide on build vs.
buy.
Construction components are bought or built, and integrated.
Transition release a mature version that satisfies acceptance criteria.

Reuse-oriented development
Based on systematic reuse where systems are integrated from existing components or
COTS (Commercial-off-the-shelf) systems
Process stages
o Component analysis
o Requirements modification
o System design with reuse
o Development and integration
This approach is becoming more important but still limited experience with it
COTS
COTS = Commercial Off-The-Shelf software
Engineer together a solution from existing commercial software packages using minimal
software glue.
E.g. using databases, spread sheets, word proccessors, graphics software, web browsers, etc.
Advantages
Fast, cheap solution
May give all the basic functionality
Well defined project, easy to run
Disadvantages
Limited functionality
Licensing problems, freeware, shareware, etc.
License fees, maintainance fees, upgrade compatibility problems

Formal Methods Development Model


Formal mathematical specification of the software.
Specify, develop and verify by rigorous math notation.
Eliminates ambiguity, incompleteness, and inconsistency.
Used more where safety-critical software is developed, e.g., aircraft avionics, medical
devices, etc.

13
Unit_I_T2_W14-15
Process Models

Formal systems development

Based on the transformation of a mathematical specification through different


representations to an executable program
Transformations are correctness-preserving so it is straightforward to show that the
program conforms to its specification
Embodied in the Clean room approach to software development
Problems
Need for specialised skills and training to apply the technique
Difficult to formally specify some aspects of the system such as the user interface
Applicability
Critical systems especially those where a safety or security case must be made before
the system is put into operation

Life Cycle Model Selection


Based on Requirement Characteristics
Based on development Team
Based on Users Participation
Based on Type of risk

Based on Requirement Characteristics

Requirements Waterfall Prototype Iterative Evolutionary Spiral RAD

Easily Yes No No No No Yes


Understandable
and defined

Change Quite No Yes No No Yes No


often

Defined in Early Yes No Yes Yes No Yes


Cycle

Indicating No Yes Yes Yes Yes No


Complexity of
system

14
Unit_I_T2_W14-15
Process Models
Team Waterfall Prototype Iterative Evolutionary Spiral RAD

Less No Yes No No Yes No


Experience
on similar
Projects

Less Yes No Yes Yes Yes No


domain
Knowledge

Less Yes No No No Yes No


experience
on tools

Availability No No Yes Yes No Yes


of training

Users Waterfall Prototype Iterative Evolutionary Spiral RAD


Participation

In All Phases No Yes No No No Yes

Limited Yes Yes Yes Yes

No Previous No Yes Yes Yes Yes No


experience of
participation

Experts of No Yes Yes Yes No No


problem
domain

15
Unit_I_T2_W14-15
Process Models

Type of risk Waterfall Prototype Iterative Evolutionary Spiral RAD

Enhancement No No Yes Yes No Yes


of existing
system

Funding is Yes Yes No No No Yes


stable for
project

High No No Yes Yes Yes No


Reliability
Requirements

Tight Project No Yes Yes Yes Yes Yes


schedule

Use of No Yes No No Yes Yes


reusable
components

Resource No Yes No No Yes No


[Time, Cost,
People)scarcity

16

Você também pode gostar