Lecture 2: Software Development - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Lecture 2: Software Development

Description:

BK - Spring 2006. Lecture 2: Software Development. Software Development Terminology ... BK - Spring 2006. Project Life Cycles. The development process can be ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 19
Provided by: cogsS
Category:

less

Transcript and Presenter's Notes

Title: Lecture 2: Software Development


1
Lecture 2 Software Development
  • Software Development Terminology
  • Design Objectives and Design Problems
  • Why Do Things Go Wrong?
  • Project Life Cycles
  • The waterfall model
  • The spiral model
  • The Unified Process

2
Software DevelopmentTerminology
  • Systems Analysis
  • Process of seeking to understand organization of
    system
  • Investigation and modelling of system
    requirements
  • Software Design
  • Process of producing solution to analysed
    requirements
  • Specifying detail of how system will meet
    requirements
  • Software Engineering
  • Application of a systematic, disciplined approach
  • Adherence to high standards of professional
    ethics

3
What Do We Need?
  • We need software that is
  • Useful and usable fit for purpose
  • Reliable free of bugs
  • Flexible can adapt to changing needs of users
  • Affordable to buy and to maintain
  • Available delivered, portable and maintainable
  • Objectives are
  • Easy to state, but
  • may be hard to achieve in practice!

4
When Programs Go Wrong
  • Total failure of software
  • The London Ambulance Service
  • TAURUS stock trading system
  • ARIANE 5 Launcher
  • August 14th 2003, east coast USA power blackout
  • Failure can be catastrophic and very costly
  • but, its the exception rather than the rule
  • Nature of problem depends on stakeholder you ask
  • The end users
  • The clients
  • The software developers

5
The Stakeholders
End-users
Client
Different stakeholders may have very different,
requirements. Competing needs may not be easy to
satisfy.
?
Software developers
6
Why Do Things Go Wrong?
  • No one reason for failure
  • Complexity of software
  • Complexity of development process
  • Failures broadly due to
  • Unacceptable quality
  • Poor productivity
  • What are the major reasons?

7
Avoiding the Problems
  • We need to
  • Adopt a well-defined development process
  • Clear phases with deliverables
  • Built in verification and validation
  • Effective management
  • Be clear about project requirements
  • Make use of relevant knowledge
  • Make sensible use of tools
  • Communicate!

8
Project Life Cycles
  • The development process can be divided into
    various phases
  • A number of different models
  • The traditional waterfall life cycle
  • The spiral model (Boehm 1988)
  • The unified process

9
The Waterfall Life Cycle
Waterfall model process moves from one stage to
another, but never back!
Analysis
Design
Construction
Testing
Deployment
Maintenance
10
Pros and Cons of the Waterfall
  • Advantages
  • Highly structured with clear phases and
    deliverables
  • Easy to evaluate project progress
  • Can be effective for risk management
  • Disadvantages
  • Requires perfect decision-making
  • Projects rarely follow a simple sequence
  • Iterations and revisions are almost inevitable

11
Waterfall with Iteration
Analysis
Models ability to revise earlier stages in the
process.
Design
Construction
Testing
Deployment
Revision can be costly and difficult to manage
Maintenance
12
The Spiral Model (Boehm 1988)
Evaluate
Design, deploy, test
Analyse risks and plan
Analyse requirements for this iteration
13
Advantages of the Spiral Model
  • Iteration
  • embraces iterative nature of process
  • Prototyping
  • each loop of the spiral leads a system prototype
  • Risk analysis
  • adds notion of risk management as a central
    concept

14
The Rational Unified Process(Booch, Jacobson,
Rumbaugh)
  • Four distinct phases
  • Inception determine scope and purpose of the
    project
  • Elaboration requirements capture and system
    architecture
  • Construction build software system
  • Transition installation
  • Workflows within each phase
  • Requirements, Analysis, Design, Deployment, Test
  • See also The Rational Edge e-Zine

15
The Unified Process
  • Project passes through four stages in a
    sequential manner (phases)
  • Iterations occur within each phase (spiral model)
  • Each iteration involves a series of different
    activities (workflows)
  • Amount of work spent on each activity changes
    between phases/iterations

16
The Rational Unified Process
17
Other Process Models
  • Phased release model
  • Waterfall extended to include incremental
    development
  • The evolutionary model
  • Emphasizes overlap in loops of spiral model
  • Makes explicit differing amounts of effort
    needed
  • Concurrent engineering model
  • Accounts for the divide and conquer principle
  • Extreme programming

18
Summary
  • Software development is a complex process
  • Many possible paths from start to end-product
  • Involves balancing needs of various stakeholders
  • Development has distinct stages (waterfall)
  • Software life cycle iterative (e.g. spiral)
  • Prototyping
  • Risk management
  • There is no one best process model
  • Different methodologies suit different projects
Write a Comment
User Comments (0)
About PowerShow.com