Professional Documents
Culture Documents
Acfrogacm4483xyaze5jn Mpxc4qtcmneugufbxfopgadwjziy3u0unvapdn8qzml8zejrkkg JH Cpbi7adhjgiecvzzegdkkeolj Rgf31 Lgymvxlwswy0lfufxomib0m6ucrt 5brad7j51r
Acfrogacm4483xyaze5jn Mpxc4qtcmneugufbxfopgadwjziy3u0unvapdn8qzml8zejrkkg JH Cpbi7adhjgiecvzzegdkkeolj Rgf31 Lgymvxlwswy0lfufxomib0m6ucrt 5brad7j51r
1
Course Materials
• Main Text
– “Software Engineering”; by Ian Sommerville.
• Reference
– “Software Engineering, A practitioner’s
approach”; by Roger S. Pressman.
– Any appropriate material from Internet
2
Marks Distribution
3
Some Important Instructions
4
What is Software?
A software is instructions (computer program) that when
executed provide desired functions and performance, data
structures that enables the programs to sufficiently
manipulate information, and documents that describe the
operation and use of programs.
OR
Software is not just a computer program but also all
associated documentation and configuration data/files
which is needed to make these programs operate correctly.
There are two types of SW products:
1) Generic Products
2) Bespoke (customized) products.
5
Software Applications
i. System Software
ii. Real-time Software
iii. Business Software
iv. Engineering Software
v. Embedded Software
vi. Personal computer Software
vii. Web-based Software
viii. Artificial Intelligence Software
6
What is Software Engineering?
Software Engineering is an engineering
discipline which is concerned with all
aspects of software production from the
early stages of system specification through
to maintaining the system after it has gone
into use.
7
Software Development Life Cycle (SDLC)
8
Software Design: Designing the software product
Coding: Coding the software with suitable programming language
Testing: Test the software for making the error free reliable
software
Integration: Integration of libraries, databases and other programs
Implementation: Installing the software on user machines
Operation and Maintenance: Confirms the software operation
in terms of more efficiency and less errors.
Disposition: Archiving data and required software components,
closing down the system, planning disposition activity and
terminating system at appropriate end-of-system time.
9
The Software Process
When you build a product or system it is important to go through a
series of predictable steps – a road map that helps you to create a
timely, high-quality result. The road map that you follow is called a
‘software process’.
• A set of activities whose goal is the development or evolution
of software
Although there are many different software process there are
fundamental activities which are common to all software processes.
They are:
Generic activities in all software processes are:
– Software specification
– Software design and implementation
– Software validation
– Software evaluation.
10
Software Process model
A process model is an abstract representation of
a software process.
– Waterfall model
– Evolutionary development model
– Formal system model
– Reuse-oriented model
11
The Waterfall Model
Requirements
Definition
System &
Software design
Implementation
& unit testing
Integration &
system testing
Operation &
Maintenances
12
The Waterfall Model– Advantages &
Disadvantages
Advantages Disadvantages
1. Each stage is performed 1. Inflexible partitioning of the project
one after another. into these distinct stages.
2. Errors occurred in 2. Errors in stages close to final state
previous stage is identified are more costly to solve.
in current stage. 3. Waterfall model should only be
used when the requirements are
well understood.
13
Evolutionary Development
Concurrent Activities
Concurrent Activities
Initial
Initial
Specification Version
Version
Outline
Outline
description Development Intermediate
Intermediate
description Versions
Versions
Final
Final
Validation Version
Version
15
Advantages and Disadvantages of Evolutionary
Development Model
• The following are the advantages of Evolutionary Development model:
– Due the interaction between the client and developer right from the beginning , the objectives
and requirements of the software is well established.
– Suitable for the projects when client has not clear idea about his requirements.
– The client can provide its input during development of the prototype.
– The prototype serves as an aid for the development of the final product.
Formal Transformation
T1 T2 T3 T4
Formal
Executable
Specification R1
R1 R2
R2 R3
R3 Program
P1
P1 P2
P2 P3
P3 P4
P4
17
Formal system development --
Description
Formal development has common features with waterfall model
but the development process is based on formal mathematical
transformation of a system specification to an executable
program.
18
Formal system development –
Advantages & Disadvantages
Advantages Disadvantages
1. Program meets is specification 1. The development of formal
if the distance between each models are currently is quite
transformation is less than the time consuming and expensive.
distance between a specification 2. Because few SW developers
and a program. have the necessary background
2. A transformational approach to apply formal methods,
with smaller steps is more extensive training is required.
traceable. 3. It is difficult to use this model
as a communication mechanism
for technically unsophisticated
customers.
19
Reuse-oriented development
Requirements
Requirements Component
Component Requirements
Requirements System
Systemdesign
design
Specification
Specification Analysis
Analysis modification
modification with reuse
with reuse
Development
Development System
System
&&integration
integration validation
validation
When developers use existing designs or codes in a new software project after
necessary modification, this development relies on a large base of reusable
software components which can be accessed and some integrating framework
for these components.
20
Reuse-oriented development– Advantages
& disadvantages
Advantages Disadvantages
21
Iterative process models
Process
Iteration
22
Incremental Development
Increment 1
Analysis Design
Design Code
Code Test Delivery of 1st
Analysis Test
Increment
Increment 1
Delivery of
Analysis Design Code Test
Test 2 Increment
nd
Analysis Design Code
Increment 2
Analysis
Analysis Design
Design Code Test
Test Delivery of 3rd
Code
Increment
Increment 3
Design
Test Delivery
Design Code Test of
Code th
4
Increment
Increment 4
23
Incremental Development -- Advantages
& disadvantages
Advantages Disadvantages
1. Customers don’t need to wait 1. It is difficult to identify the
until the entire system to right size of increments.
build. 2. It is difficult to identify the
2. Customers can use the common facilities of each
prototypes and gain increment.
experience about the system.
3. There is lower risk of overall
project failure.
24
Spiral Development Model
25
Spiral Development Model—cont..
Each loop of a spiral model is split into four sectors:
1. Objectives setting.
2. Risk assessment and reduction
3. Development & Validation.
4. Planning
Advantages Disadvantages
1. There is explicit 1. There is no fixed phase
consideration of risk in such as specification and
this model. design.
26