Software Engineering
Software Engineering
Introduction to S.E.
Software Crisis
It was in late 1960’s
•Many software projects failed.
• Many software projects late, over budget, providing
unreliable software that is expensive to maintain.
• Many software projects produced software which did not
satisfy the requirements of the customer.
•Complexities of software projects increased as hardware
capability increased.
•Larger software system is more difficult and expensive to
maintain.
•Demand of new software increased faster than ability to
generate new software.
• Computer Science
• Management Science
• Economics
• System Engineering &
• Communication Skills
The relationship of software engineering with other disciplines
• No design
• No specifications
Risk
analysis
Risk
analysis
Risk
Project P1
analysis
P1
Prototype3
Prototype2
Prototype1
Requirements Concept of
plan operation Software
System
Requirements Product Detailed
Design Design
Development Requirements
plan validation
P2
Code
Project P2
Cycle 1, Quadrant IV: Determine Objectives, Alternatives
and Constraints
Project
Start
Cycle 1, Quadrant I: Evaluate Alternatives, Identify,
resolve risks
Build
Prototype
Cycle 1, Quadrant II: Develop & Verify Product
Concept of Operation
Activity
Cycle 1, Quadrant III: Prepare for Next Activity
Requirements and
Life cycle Planning
Cycle 2, Quadrant IV: Software Requirements Activity
Start
of Round 2
Spiral Model Strengths
• Provides early indication of insurmountable
risks, without much cost.
• Users see the system early because of rapid
prototyping tools.
• Critical high-risk functions are developed first.
• The design does not have to be perfect.
• Users can be closely tied to all lifecycle steps.
• Early and frequent feedback from users.
• Cumulative costs assessed frequently.
Spiral Model Weaknesses
• Time spent for evaluating risks too large for small or low-
risk projects.
• Time spent planning, resetting objectives, doing risk
analysis and prototyping may be excessive.
• The model is complex.
• Risk assessment expertise is required.
• Spiral may continue indefinitely.
• Developers must be reassigned during non-development
phase activities.
• May be hard to define objective, verifiable milestones
that indicate readiness to proceed through the next
iteration.
4. Evolutionary Model
• Successive versions model.
• Incremental model.
• A simple working system is built, which
subsequently undergoes many functionality
improvements and additions until the desired
system is realized .
• Also sometimes referred to as design a little,
build a little, test a little, deploy a little model.
• That is once the requirements have been
specified, the design, build, test and deployment
activities are interleaved.
• The software requirements is first broken down into
several modules(functional units) that can be
incrementally constructed and delivered.
• The development team first develop the core modules of
the system.
• The Core modules are those that don’t need services
from the other modules.
• The initial product Skelton is refined into increasing
levels of capability by adding new functionalities in the
successive versions.
Life cycle activities
Iterative Model
• An iterative lifecycle model does not attempt to start with
a full specification of requirements.
• Instead, development begins by specifying and
implementing just part of the software, which can then be
reviewed in order to identify further requirements.
• This process is then repeated, producing a new
version of the software for each cycle of the model.
• Consider an iterative lifecycle model which consists of
repeating the following four phases in sequence:
Iterative Model
• A Requirements phase, in which the requirements for
the software are gathered and analysed. Iteration should
eventually result in a requirements phase that produces
a complete and final specification of requirements.
• Best suggestion
– “Mix-and-match” life-cycle model