Download as pdf or txt
Download as pdf or txt
You are on page 1of 26

Course Title: Software

Engineering and Information


System Design

Course Code: CSE 605

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

• Final Examination 70%


• Tutorial (avg of best marks) 20%
• Class Attendance 10%
• Total 100%

3
Some Important Instructions

• Three tutorial Examinations will be taken.


• Class should be attended regularly and class notes
should be taken.

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)

 SDLC provides a series of steps to be followed to design and develop a


software product efficiently. SDLC framework includes the following steps:

 Communication: user initiates the request for a desired software


product.
 Requirement Gathering: Collection of required information from
various stakeholders.
 Feasibility Study: Analysis of usefulness and no usefulness of
software being made.
 System Analysis: Understanding of software product limitations,
learning system related problems or changes to be done in existing
systems beforehand, identifying and addressing the impact of project on
organization and personnel etc.

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

Based on initial implementation.


Two types: 1. Exploratory development. 2. Throw-away prototyping. 14
Evolutionary Development– 3 major
problems
 The process is not visible
 System are often poorly structured
 Special tools and techniques may be required

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.

• The Evolutionary Development model has the following disadvantages:


– The quality of the software development is compromised in the rush to present a working
version of the software to the client.
– The client look at the working version of the product at the outset and expect the final version
of the product to be deliver immediately. This cause additional pressure over the developers
to adopt shortcut in order to meet the final product deadline.
– It becomes difficult for the developer to convince the client as why the prototype has to be
discarded.
Formal system development
Requirements Formal Formal Integration &
definition Specification Transformation system testing

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.

 Distinction between waterfall and formal approach is:


– Requirement specification is refined in more details and expresses
in mathematical notation.
– Design, implementation and unit testing are replaced with a series of
transformational developments.

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

 In majority of software projects, there is software reuse.

 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

1. Reduce the amount of SW 1. This component reuse


to be developed, so reduce leads to a system that does
cost and risk. not meet the real needs of
the users.

21
Iterative process models

Process
Iteration

Incremental Development: where the


software specification, design and
Spiral Development: where the
development of the system spirals outwards
implementation is broken down into a series
from an initial outline to the final developed
of increments which are developed in turn.
system.

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

You might also like