Professional Documents
Culture Documents
2/14/2022 TChadza2022 2
Intended learning outcomes
By the end of this lesson, the student should be
able to:
• explain the software life cycle activities types;
• discuss the typical software documents that
can be produced when developing software;
and
• describe the main software life cycle models.
2/14/2022 TChadza2022 3
References
2/14/2022 TChadza2022 4
Outline
• Introduction
• Software life cycle activities types
• Typical software documents
• Software life cycle models
• Summary
• Next lesson
2/14/2022 TChadza2022 5
Introduction
• Software life cycle
– sequence of different activities that take place
during software development.
• Different deliverables are produced.
– deliverables can be agreements or evaluations,
but normally deliverables are objects (source code
or user manuals)
• Activities and deliverables are closely related.
2/14/2022 TChadza2022 6
• Milestones
– events that can be used for telling the status of
the project.
– Example: the event of completing the user manual
– Essential for project management as they allow
the manager to assess the software development
process
2/14/2022 TChadza2022 7
Table: Sample milestone
KUWALA HYPOTHERMIA MONITOR
Study Type Milestone End Date
Development Study Order/Buying Materials 1-Jul-18
Paediatric Research Presentation 1-Jul-18
Finishing COMREC 28-May-18
Submitting COMREC 30-May-18
Equipment Lab Testing 1-Jul-18
Nurse Training 9-Jul-18
Data collection 6-Nov-18
Design:
Architectural,
What should Feasibility and
Interface and
be the order? Market analysis
detailed
2/14/2022 TChadza2022 9
3.Project planning: Cost
analysis,
8.Maintenance Scheduling, Software quality
assurance and Work-breakdown
5.Implementation structure
4.Design:
Architectural,
1.Feasibility and
Interface and
Market analysis
detailed
2/14/2022 TChadza2022 10
11
1. Feasibility and Market Analysis
• Feasibility
– Determining if the proposed development is
worthwhile.
• Market analysis
– Determining if there is a potential market for this
product.
2/14/2022 TChadza2022 12
2. Requirements
• Determining what functionality the software
should contain.
• Requirement elicitation:
– Obtaining the user requirements
• Domain analysis:
– Determining what tasks and structures are
common to this problem.
2/14/2022 TChadza2022 13
3. Project planning
• Determining how to develop the software.
• Cost analysis:
– Determining cost estimates.
• Scheduling:
– Building a schedule for the development.
• Software quality assurance:
– Determining activities that will help ensure product quality
• Work-breakdown structure:
– Determining subtasks necessary product development
2/14/2022 TChadza2022 14
4. Design
• Determining how the software should provide the
functionality.
• Architectural :
– Designing the structure of the system.
• Interface :
– Specifying the interfaces between the parts of the
system.
• Detailed:
– Designing the algorithms for the individual parts
2/14/2022 TChadza2022 15
5. Implementation
• Software building
• Coding
2/14/2022 TChadza2022 16
6. Testing
• Executing the software with data to help ensure that
the soft works correctly.
• Unit:
– Testing by the original developer.
• Integration:
– Testing during the integration of the software.
• System:
– Testing the software in an environment that matches the
operational environment.
2/14/2022 TChadza2022 17
6. Testing continued
• Alpha:
– Testing by the customer at the developer’s site.
• Beta:
– Testing by the customer at the customer’s site.
• Acceptance:
– Testing to satisfy the purchaser.
• Regression:
– Saving tests from the previous version to ensure that
the new version retains the previous capabilities
2/14/2022 TChadza2022 18
7. Delivery
• Providing the customer with an effective software
solution.
• Installation:
– Making the software available at the customer’s
operational site.
• Training:
– Teaching the users how to use the software.
• Help desk:
– Answering user questions
2/14/2022 TChadza2022 19
8. Maintenance
• Updating and improving the software to
ensure continued usefulness.
2/14/2022 TChadza2022 20
Typical Software documents
Statement of work User manual
Software
Software quality
requirements
assurance plan
specification
2/14/2022 TChadza2022 21
1. Statement of work
• Preliminary description of desired capabilities,
often produced by the user.
2. Software requirements specification
• Describes what the finished software will do.
• Object model
– Shows main objects/classes
• Use case scenarios
– Show sequences of possible behaviours from the
user’s viewpoint.
2/14/2022 TChadza2022 22
3. Project schedule
• Describes the order of tasks and estimates of
time and effort necessary
4. Software test plan
• Describes how the software will be tested to
ensure proper behaviour.
• Acceptance tests
– designated by the customer to determine
acceptability of the system
2/14/2022 TChadza2022 23
5. Software design
• Describes the structure of the software.
• Architectural
– high-level structure with the interconnections.
• Detailed
– design of low-level modules or objects.
2/14/2022 TChadza2022 24
6. Software quality assurance (SQA) plan
• Describes the activities that will be done to
ensure quality.
7. User manual
• Describes how to use the finished software.
8. Source code
• The actual product code.
2/14/2022 TChadza2022 25
9. Test report
• Describes what tests were done and how the
system behaved.
10. Defect report
• Describes dissatisfaction of the customer with
specific behaviour of the system; usually,
these are software failures or errors.
2/14/2022 TChadza2022 26
Software life cycle models
• Most common software life cycle models:
– Linear sequential
– Prototyping
– Incremental
– Boehm’s spiral
2/14/2022 TChadza2022 27
Linear sequential
• Also called classic life cycle or waterfall model, as
looks like a series of cascades.
• First described by Royce in 1970
• First realization of a standard sequence of tasks.
• Many Waterfall model versions exist.
• Although specific development tasks occur in
almost every development, there are many ways
to divide them into phases.
2/14/2022 TChadza2022 28
In this version:
• Project planning activities are included in the
requirements phase.
• Delivery and maintenance phases have been
left off.
2/14/2022 TChadza2022 29
2/14/2022 TChadza2022 30
• System/information engineering and modeling.
• Because software is always part of a larger system (or
business), work begins by establishing requirements for
all system elements and then allocating some subset of
these requirements to software.
• This system view is essential when software must
interact with other elements
• such as hardware, people, and databases. System
engineering and analysis encompass
• requirements gathering at the system level with a small
amount of top level
2/14/2022 TChadza2022 31
• Problems
– Real projects rarely follow the sequential flow that the
model proposes.
• changes can cause confusion as the project team proceeds.
– Often difficult for the customer to state all
requirements explicitly.
• difficulty accommodating the natural uncertainty that exists
at the beginning of many projects.
– customer must have patience.
• major blunder if undetected until the working program is
reviewed, can be disastrous.
2/14/2022 TChadza2022 32
Prototyping Model
• Builds a throwaway version (or prototype)
intended to test concepts and requirements.
• Prototype demonstrates the proposed behaviour
to customers.
• After customer agreement, software
development usually follows the same phases as
the linear sequential model.
• Effort spent on the prototype usually pays for
itself by not developing unnecessary features.
2/14/2022 TChadza2022 33
• Prototyping paradigm begins with requirements
gathering.
• Developer and customer meet and define the
overall software objectives, identify known
requirements, and outline areas where further
definition is mandatory.
• A "quick design" then occurs
2/14/2022 TChadza2022 34
• Problems
– Customer sees what appears to be a working
version of the software,
• Unaware that the prototype is held together “with
chewing gum and baling wire,” hence overall software
quality or long-term maintainability was not considered
– Developer often makes implementation
compromises in order to get a prototype working
quickly.
2/14/2022 TChadza2022 35
Incremental model
• Proposed by D. L. Parnas
• Goal was to design and deliver to the customer a
minimal subset of the whole system that was still
a useful system.
• Process will continue to iterate through the
whole life cycle with additional minimal
increments.
• Advantages include giving the customer a
working system early and working increments.
2/14/2022 TChadza2022 36
2/14/2022 TChadza2022 37
Boehm’s spiral model
• The image of the model is a spiral that starts
in the middle and continually revisits the basic
tasks of customer communication, planning,
risk analysis, engineering, construction and
release, and customer evaluation.
2/14/2022 TChadza2022 38
2/14/2022 TChadza2022 39
Summary
In this lesson, we have:
• explained the software life cycle activities
types;
• discussed the typical software documents that
can be produced when developing software;
and
• described the main software life cycle models.
2/14/2022 TChadza2022 40
Reading Assignment
• Read on the software life cycle types. Chapter
2.4, 2.5, 2.7.1, 2.7.2
2/14/2022 TChadza2022 41
Next Lesson
• In the next lesson, we will discuss the
software process and other models
2/14/2022 TChadza2022 42
Thank you!
Src: IFC 2002
2/14/2022 TChadza2022 43