Itc SE
Itc SE
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.
Waterfall Model
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
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
Presentation title 7
Software Requirements
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.
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 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
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
Presentation title 20