Professional Documents
Culture Documents
Fse CH2
Fse CH2
➢ In addition, the people who have requested the software have a role to
play in the process of defining, building, and testing it.
Cont’d…
➢ Why is it important?
• Because it provides stability, control, and organization to an activity
that can, if left uncontrolled, become quite chaotic.
• At a detailed level, the process that you adopt depends on the software
that you’re building.
• From the point of view of a software engineer, the work products are
the programs, documents, and data that are produced as a consequence
of the activities and tasks defined by the process.
Cont’d…
➢ How do you ensure that you have done it right?
• There are a number of software process assessment mechanisms that
enable organizations to determine the “maturity” of their software
process.
• However, the quality, timeliness, and long-term viability of the
product you build are the best indicators of the efficacy of the process
that you use.
Cont’d…
❑ Software process: organizing a structured set of activities
to develop software systems.
• These processes help in performing different software
engineering activities in an organized manner.
Characteristics of processes
• Produces intermediate and final products.
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear.
• Each process has guiding principles including goals of each
activity.
• Uses resources, subject to set of constraints (such as
schedule, no. of people working )
• May be composed of sub-processes with hierarchy or links
Cont’d…
❑There are many different software processes but all must
include four activities.
I. Software specification: the functionality of the software
and constraints on its operation must be defined.
II. Software design and implementation: the software to
meet the specification must be produced.
III.Software validation: the software must be validated to
ensure that it does what the customer wants.
IV.Software evolution: the software must evolve to meet
changing customer needs.
Sequential Software Process models
• Sequential models such as Waterfall or V-Model rely on
intensive periods of collecting and refining requirements for
a product before design and development activity can take
place.
• Products developed using these models are intended to be
complete when released to customers.
• Central to the approach is an assumption that by adhering to
the requirements captured at the beginning, the product will
fulfil the wishes of those customers.
Cont’d…
➢ Technical Feasibility
➢ Operational Feasibility
➢ Schedule Feasibility
➢ Political Feasibility
Cont’d…
III. Project Analysis: a detailed study of the various operations
performed by a system and their relationships within and outside the
system.
• Examine and document the relevant aspects of the existing system,
its shortcomings and problems.
• Analyze the findings and record the results.
• Define and document the proposed system.
• Test the proposed design against the known facts.
• Produce a detailed report to support the proposals.
• Estimate the resources required to design and implement the
system.
Cont’d…
• The objective is to provide solutions to stated problems, usually in
the form of specifications to meet the users requirements and to make
recommendations for a new computer-based system.
•Analysis is iterative and progressive process.
IV. System Design: it is the most creative and challenging phase.
▪ Determining data required to produce the output
▪ Determining processing methods and using software
▪ Determining methods of data capture
▪ Defining detailed critical procedures
▪ Calculating timings of processing
Cont’d…
V. Coding: the goal of the coding phase is to translate the
design of the system into code in a given programming
language.
• affects both testing and maintenance
VI.Testing: testing is the major quality-control measure used
during software development.
• Its basic function is to detect errors in the software
VII.Implementation: it is mainly concerned with user
training, site selection, and preparation and file conversion.
Cont’d…
VIII.Maintenance: it is an important part of the SDLC.
▪ But it has some problems:
• Availability of a few maintenance tools.
• User may not accept the cost of maintenance.
• Standards and guidelines of project may be poorly
defined.
• A good test plan is lacking.
Classifications of SDLC Model
▪ There are a number of different models for software development
lifecycles which describe the interrelationships between software
development phases.
✓ Waterfall model
✓ prototype model
✓ incremental model
✓ V-shaped model
✓ Spiral model
Waterfall model
❑ Organize the activities in linear fashion.
• Each phase is end up with expected output in the forms of document.
• Waterfall model is the simplest model.
• All the phases of SDLC will function one after another in linear
manner.
• That is, when the first phase is finished then only the second phase
will start and so on.
Classical Waterfall Model
Cont’d…
▪ Classical waterfall model is idealistic:
• Assumes that no defect is introduced during any
development activity.
• In practice developers commit errors:
• Defects do get introduced in almost every phase of
the life cycle.
Iterative Waterfall Model
Cont’d…
▪ Defects usually get detected much later in the life cycle:
• For example, a design defect might go unnoticed till the coding or
testing phase.
▪ Once a defect is detected:
• The phase in which it occurred and parts of the work already
completed subsequent phases needs to be reworked.
▪ Therefore need feedback paths in the classical waterfall model.
Cont’d…
Waterfall model Strengths
• Easy to understand, easy to use
• Provides a reference to inexperienced staff
• Provides requirements stability
• Facilitates strong management control (plan, staff, track)
Waterfall Deficiencies
• All requirements must be known upfront
• Does not accommodate any change.
• There is no risk analysis.
• Can give a false impression of progress.
• Little opportunity for customer to pre-view the system.
Cont’d…
When to use the Waterfall Model
• Requirements are very well known and stable
• Technology is understood
• Experienced Development team
• When it is possible to produce a stable design
E.g. a new version of an existing product
• E.g. porting an existing product to a new platform.
Prototype process model
• It is model implementation of the project with limited
functionalities.
• The prototype model suggests that before development of
the actual software, a working prototype of the system
should be built first.
What is a Prototype?
• It is a quickly developed, easily modifiable and extendible
working model of the required application.
Cont’d…
Reasons for prototyping
• learning by doing: useful where requirements are only partially known
• improved communication
• reduces maintenance costs i.e. changes after the application goes live
Cont’d…
Cont’d…
Prototyping: advantages
• The resulting software is more usable
• User needs are better accommodated
• The design is of higher quality
• The resulting software is easier to maintain
• Overall, the development incurs less effort
Prototyping Weaknesses
• Sometimes expensive
• Overall maintainability may be overlooked
• Process may continue forever (scope creep)
Cont’d…
What is the main goal of prototyping model?
• To avoid early freezing of the requirements.
V Model Weaknesses
• Does not support overlapping of phases