0% found this document useful (0 votes)
8 views156 pages

Software Development Lifecycle Overview

Uploaded by

Manjur Laskar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views156 pages

Software Development Lifecycle Overview

Uploaded by

Manjur Laskar
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Feasibility Study

Feasibility report

Requirements Analysis
and Specification
Software Requirements Specification (SRS) document

Design
Design document

Coding and
Unit Testing
Documented code

Integration and
System Testing
Test document

Maintenance
60 1: Requirements Analysis and Specification
2: Design
50 3: Coding and Unit Testing
4: Testing
5: Maintenace
40

30

20 %Effort

10

1 2 3 4 5 Phases
Effort Cost
Estimation Estimation

Size
Estimation

Duration Project Scheduling


Estimation Staffing
Traditional code Object−oriented code

if(shape==Circle) then
draw_circle();
[Link]();
else if(shape==Rectangle) then

draw_rectangle();
Order 1 * Item Item order
Item name vendor−addr
quantity unit−price
date manufacturer
User

Window Application
Manager Program

Window
Management Window
System System
(WMS)
Applications

Xtoolkit (Xt)

X Library (Xlib)

Network Interface
X Protocol

Network Interface

X Server

Display Hardware
int find−maximum(int i,int j,int k){ 1

int max;
2 5
1 if(i>j) then
2 if(i>k) then
3 max=i; 3 6 7
else max=k; 4
4
5 else if(j>k)
6 max=j;
7 else max=k;
8 return(max);
8
}
Burn in
Wear out
Useful life Useful life

Failure rate Testing


Obsolete
Failure rate

Time Time

(a) Hardware product (b) Software product


Quality Assurance Method Quality Paradigm
Inspection Product Assurance

Quality Control

Quality Assurance

Total Quality Management (TQM) Process Assurance


User Interface

Tool Set

Object Management System (OMS)

Repository
Gather Change Requirements

Analyze Change Requirements

Devise Code Change Strategies

Apply Code Change Strategies


to the Old Code

Update Documents Integrate and Test


Change Requirements

Requirements Specification New Requirements


Specification

Reverse Forward
Engineering Engineering

Design Design

Module Specification
Module Specification

Code
Code
Requirements Specification

Design

Module Specification

Code

Common questions

Powered by AI

The document contrasted traditional code, which uses explicit conditional statements like 'if(shape==Circle) then draw_circle(); else if(shape==Rectangle) then draw_rectangle();' with object-oriented code which encapsulates behavior in the shape object with 'shape.draw();'. This approach reduces conditional complexity by leveraging polymorphism .

Strategic management of code changes involves devising code change strategies, applying them to the old code, and updating documents to reflect changes. These strategies are crucial to maintain software stability and meet evolving requirements, ensuring continuity and integrity of the software product .

Integration and maintenance phases contribute significantly by ensuring that all software components function cohesively and that the software remains effective and relevant through regular updates and bug fixes. This phase helps to extend the software's useful life and adaptability to new requirements .

Effort, cost, and duration estimation are critical for project planning as they enable accurate resource allocation, budget forecasting, and scheduling. This ensures the project remains on track and under budget, and helps anticipate and mitigate potential risks associated with project execution .

User Interface Tool Sets and Object Management Systems (OMS) in software engineering are emphasized for their roles in facilitating communication between user and system components, and organizing and managing data resources effectively. These tools enhance the development process by streamlining design and implementation efforts .

Hardware products experience 'burn in', 'useful life', and 'wear out', characterized by failure rates decreasing initially and increasing at the end of the lifecycle. In contrast, software products mainly experience 'useful life' where functionality needs are met, with failure rates remaining more constant unless affected by changes in operating environments or requirements .

'Forward reverse engineering' refers to the bi-directional process where new requirements and designs are incorporated into existing code, while existing systems are analyzed and updated based on current standards and technologies. It serves to enhance software utility by ensuring ongoing alignment with user needs and technological advances .

Quality assurance practices such as Quality Control, Total Quality Management (TQM), Inspection, Product Assurance, and Process Assurance ensure the reliability, effectiveness, and efficiency of the software product. These practices help identify defects, improve processes, and ensure adherence to standards throughout development .

The process of change management in software development involves gathering and analyzing change requirements, devising and applying code change strategies to the old code, updating documents, and integrating and testing the changes. It ensures that any alterations align with project goals and maintain code integrity .

The essential phases of software development include Requirements Analysis and Specification, Design, Coding and Unit Testing, System Testing, Integration and Maintenance. The effort distribution across these phases is approximately 10% for Requirements Analysis and Specification, 20% for Design, 30% for Coding and Unit Testing, 40% for Testing, and 50% for Maintenance .

You might also like