You are on page 1of 43

Bachelor of Electrical and

Electronics Engineering Year 3 -


Evening (BEEE3E) – Honours

Lesson 2: Software Life Cycle

Introduction to Software Engineering (ISE-311)


Prepared by:
T. Chadza, Lecturer in Telecommunications
School of Engineering – Department of Electrical Engineering
Malawi University of Business and Applied Sciences (MUBAS)
Last Lesson
• In the last lesson, we developed a good
understanding of the course content and
requirements.

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

• Kamwendo, L.Y. 2021. Introduction to Software Engineering Lecturer Notes. MUBAS

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

Data analysis & Formula Generation 27-Nov-18

Prototyping & Pilot Study Order/Buying Materials 1-Jan-19


Design 1-Jan-19
Final Prototype 1-Mar-19
Tests 1-Mar-19
Trainings 20-Mar-19
Monitoting and Data collection 19-Jul-19
Final Assesment 28-Jul-19
MOH presentation 7-Aug-19
Software life cycle activities types
Project planning: Cost analysis,
Maintenance Scheduling, Software quality
assurance and Work-breakdown
structure
Implementation

Requirements: Testing: Unit,


Requirement Delivery: Integration, System,
elicitation and Installation, Alpha, Beta,
Domain analysis Training and Help Acceptance and
desk Regression

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

2.Requirements 6. Testing: Unit,


: Requirement 7.Delivery: Integration, System,
elicitation and Installation, Alpha, Beta,
Domain analysis Training and Help Acceptance and
desk Regression

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

Project schedule Source code

Software test plan Test report

Software design Defect report

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

You might also like