0% found this document useful (0 votes)
24 views20 pages

Itc SE

The document discusses the software development lifecycle (SDLC) which includes requirements gathering, design, implementation, testing and maintenance. It covers the different phases and activities of SDLC like waterfall model, requirements engineering, software design, implementation challenges, types of testing and an overview of software maintenance.

Uploaded by

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

Itc SE

The document discusses the software development lifecycle (SDLC) which includes requirements gathering, design, implementation, testing and maintenance. It covers the different phases and activities of SDLC like waterfall model, requirements engineering, software design, implementation challenges, types of testing and an overview of software maintenance.

Uploaded by

Azzam Qureshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Introduction to Computing

Ms. Qurat ul ain Alvi


Software Engineering is an engineering branch
associated with development of software
product using well-defined scientific principles,
methods and procedures. The outcome of
software engineering is an efficient and reliable
software product.

Software Engineering
2
Software Development Life Cycle,
SDLC for short, is a well-defined,
structured sequence of stages in
software engineering to develop the
intended software product.

Software Development Life Cycle


3
SDLC Activities
Software
Development
Paradigm

Waterfall Model

Waterfall model is the simplest model of


software development paradigm. It says the
all the phases of SDLC will function one
after another in linear manner. That is,
when the first phase is finished then only
the second phase will start and so on.
Software Requirements

The software requirements are description of features and functionalities of the target system.
Requirements convey the expectations of users from the software product. The requirements can
be obvious or hidden, known or unknown, expected or unexpected from client’s point of view.

Requirement Engineering
The process to gather the software requirements from client, analyze and document them is
known as requirement engineering.

The goal of requirement engineering is to develop and maintain sophisticated and descriptive
‘System Requirements Specification’ document.

Presentation title 6
Requirement Engineering Process

It is a four step process, which includes –

 Feasibility Study
 Requirement Gathering
 Software Requirement Specification
 Software Requirement Validation

Presentation title 7
Software Requirements

Broadly software requirements should be Non-Functional Requirements


categorized in two categories: Requirements, which are not related to
functional aspect of software, fall into this
Functional Requirements category. They are implicit or expected
Requirements, which are related to functional characteristics of software, which users make
aspect of software fall into this category. assumption of.
They define functions and functionality Non-functional requirements include -
within and from the software system.  Security
Examples  Logging
•Search option given to user to search from  Storage
various invoices.  Configuration
•User should be able to mail any report to  Performance
management.  Cost
 Interoperability 8
Software System Analyst

System analyst in an IT organization is a person, who analyzes the requirement of proposed


system and ensures that requirements are conceived and documented properly & correctly. Role
of an analyst starts during Software Analysis Phase of SDLC. It is the responsibility of analyst to
make sure that the developed software meets the requirements of the client.

System Analysts have the following responsibilities:


 Analyzing and understanding requirements of intended software
 Understanding how the project will contribute in the organization objectives
 Identify sources of requirement
 Validation of requirement
 Develop and implement requirement management plan

Presentation title 9
Software design is a process to
transform user requirements into some
suitable form, which helps the
programmer in software coding and
implementation.

Software Design Basics


Presentation title 10
Software Design Levels

Software design yields three levels of results:


 Architectural Design
 High-level Design
 Detailed Design

Presentation title 11
Structured Programming
In the process of coding, the lines of
code keep multiplying, thus, size of the
software increases. Gradually, it becomes
next to impossible to remember the flow
of program. If one forgets how software
and its underlying programs, files,
procedures are constructed it then
becomes very difficult to share, debug
and modify the program. The solution to
this is structured programming.

Software Implementation
Presentation title 12
Software Implementation Challenges

There are some challenges faced by the development team while implementing the software.
Some of them are mentioned below:
 Code-reuse
 Version Management
 Target-Host

Presentation title 13
Software Testing is evaluation of the software
against requirements gathered from users and
system specifications. Testing is conducted at
the phase level in software development life
cycle or at module level in program code.
Software testing comprises of Validation and
Verification.

Software Testing Overview


Presentation title 14
Software Testing Overview

 Software Validation

Validation is process of examining whether or not the software satisfies the user requirements. It is carried
out at the end of the SDLC. If the software matches requirements for which it was made, it is validated.

 Software Verification

Verification is the process of confirming if the software is meeting the business requirements, and is
developed adhering to the proper specifications and methodologies.

Presentation title 15
Software Testing Overview

Manual Vs Automated Testing


Testing can either be done manually or using an automated testing tool:

 Manual
This testing is performed without taking help of automated testing tools. The software tester
prepares test cases for different sections and levels of the code, executes the tests and reports the
result to the manager.
Manual testing is time and resource consuming. The tester needs to confirm whether or not right
test cases are used. Major portion of testing involves manual testing.

 Automated
This testing is a testing procedure done with aid of automated testing tools. The limitations with
manual testing can be overcome using automated test tools.
Presentation title 16
Software Testing Overview

Black-box testing

It is carried out to test functionality of the program. It is also called ‘Behavioral’ testing. The
tester in this case, has a set of input values and respective desired results. On providing input, if
the output matches with the desired results, the program is tested ‘ok’, and problematic
otherwise.
White-box testing

It is conducted to test program and its implementation, in order to improve code efficiency or
structure. It is also known as ‘Structural’ testing.

Presentation title 17
Software Testing Overview

Testing Levels

Testing itself may be defined at various levels of SDLC. The testing process runs parallel to
software development. Before jumping on the next stage, a stage is tested, validated and
verified.
Testing separately is done just to make sure that there are no hidden bugs or issues left in the
software. Software is tested on various levels -
 Unit Testing
 Integration Testing
 System Testing

Presentation title 18
Software Maintenance Overview
Software maintenance is widely accepted part of SDLC now a days. It stands for all the
modifications and updating done after the delivery of software product. There are number
of reasons, why modifications are required, some of them are briefly mentioned below:
• Market Conditions
• Client Requirements
• Host Modifications
• Organization Changes
• Cost of Maintenance
Reports suggest that the cost of maintenance is high. A study on estimating software
maintenance found that the cost of maintenance is as high as 67% of the cost of entire
software process cycle.

Presentation title 19
Summary

The software development lifecycle


(SDLC) is the cost-effective and
time-efficient process that
development teams use to design
and build high-quality software. The
goal of SDLC is to minimize project
risks through forward planning so
that software meets customer
expectations during production and
beyond.

Presentation title 20

You might also like