2. Introduction
Software:
Computer programs, procedures and possibly associated
documentation and data pertaining to the operation of a
computer system.
Software Engineering:
Engineering disciple that is concerned with all aspects of
software production.
3. Introduction…
Computer science is concerned with theory and
fundamentals.
Software engineering is concerned with the
practicalities of developing and delivering useful
software.
4. Software Programs
Developed by individuals for their personal use.
Small in size.
Limited functionality.
Lack good user interface and proper documentation.
5. Software Products
Multiple users.
Good user interface.
Proper users’ manual.
Good documentation support.
Systematically designed, carefully implemented and
thoroughly tested.
6. Software Development Life Cycle
A series of identifiable stages that a software product
undergoes during its lifetime.
1) Project planning, feasibility study.
2) Requirement analysis and specification.
3) Design.
4) Coding.
5) Testing.
6) Maintenance.
7. Software Development Life Cycle…
A life cycle model defines entry and exit criteria for
every phase.
A phase can begin only when the phase entry criteria
are satisfied and can be considered to be complete only
when the exit criteria are satisfied.
8. 1. Feasibility Study
To determine whether it would be financially or
technically feasible to develop the product.
Analyze the problem.
Collect all information relating to the product.
9. 2. Requirement Analysis & Specification
To understand the problem.
Identify what is needed from the system, not how the
system will achieve its goals.
Document the requirements in a SRS document.
Two major activities:
Problem understanding or analysis.
Requirement specification.
10. Requirement Analysis & Specification…
Problem analysis:
To understand the problem and its context, and its
requirements of the developing system.
Requirement specification:
Requirements must be specified in the requirement
specification document.
Translates the ideas into a formal document.
11. 3. Design
To plan a solution of the problem specified by the
requirements document.
First step in moving from the problem domain to the
solution domain.
Results in three separate outputs:
Architectural design
High level design
Detailed design
12. 4. Coding
To translate the design of the system into code in a
programming language.
Implement the design in the best possible manner.
Affects both testing and maintenance phases.
13. 5. Testing
Major quality control measure used during software
development.
Detect defects in the software.
Uncover requirement, design and coding errors.
14. Testing…
Unit Testing Different modules or components are tested individually.
Integration
Test the interconnection between modules.
Testing
Tested against the system requirements to see if all
System Testing requirements are met and performs as specified by the
requirements.
Acceptance
Performed to demonstrate to the client.
Testing
15. Testing…
This phase starts with a test plan.
Test plan satisfies:
Conditions that should be tested.
Different units to be tested.
Manner in which the modules will be integrated.
A test case specification document is produced for
different test units.
16. Testing…
The specified test cases are executed and the actual
result is compared with the executed output.
List report and error report are the final outputs of
testing phase.
17. 6. Maintenance
Modification of a software product after delivery.
Performed to correct faults, to improve performance or
other attributes.
18.
19. Software Life Cycle Models
A descriptive and diagrammatic model of a software life
cycle.
Identifies all the activities required to develop and
maintain a software and establishes a precedence ordering
among the different activities.
The main advantages of adhering to a life cycle model is
that it encourages development of software in a systematic
and disciplined manner.
20. Software Life Cycle Models…
Otherwise it leads to a problem called 99% complete
syndrome.
Main models are waterfall model, prototyping model
and spiral model.
21. Classical Waterfall Model
Considered to be a theoretical way of developing
software.
The diagrammatic representation of this model
resembles a cascade of waterfalls.
This justifies the name of this model.
23. Classical Waterfall Model…
Breaks down the life cycle into an intuitive set of phases.
The phases starting from the feasibility study to the
integration and system testing phase are known as the
development phases.
At the end of this phase, the product becomes ready to
be delivered to the customer and the maintenance phase
commences.
24. Classical Waterfall Model…
1) Feasibility Study:
Determine whether it would be financially or technically
feasible.
Involves analysis of the problem and collection of all
relevant documents.
25. Classical Waterfall Model…
The collected data are analyzed to arrive at the
following:
An abstract problem definition.
Formulation of the different strategies for solving the
problem.
Evaluation of the different solution strategies.
26. Classical Waterfall Model…
2) Requirement analysis and specification:
Understand the exact requirements of the customer and
to document them properly.
Two distinct activities:
Requirements gathering and analysis
Requirements specification
27. Classical Waterfall Model…
Requirements gathering and analysis:
Collect all relevant information regarding the product to be
developed from the customer with a view to clearly
understand his requirements.
Weed out the incompleteness and inconsistencies in the
collected requirements.
28. Classical Waterfall Model…
Requirements specification:
Requirements are organized into a SRS document.
It contains the functional requirements, non-functional
requirements and the goals of implementation.
SRS document be reviewed and approved by the customer.
Serves as a contract between the development team and the
customer.
29. Classical Waterfall Model…
3) Design:
Transform the requirements specified in the SRS
document into a structure.
Software architecture is derived from the SRS
document.
Two design approaches: traditional design approach
and object-oriented design approach.
30. Classical Waterfall Model…
Traditional design approach:
Based on the data flow-oriented design approach.
Consists of 2 important activities:
Structured analysis of the requirements specification is
carried out where the detailed structure of the problem is
examined.
During structured design, the results of structured analysis
are transformed into the software design.
31. Classical Waterfall Model…
Structured design consists of 2 main activities:
Architectural design (high-level design) involves decomposing
the system into modules, and representing the interfaces and
the invocation relationships among modules.
Also referred to as the software architecture.
Detailed design (low-level design): Internals of the individual
modules are designed in greater detail.
32. Classical Waterfall Model…
Object-Oriented design approach:
Various objects that occur in the problem domain and
the solution domain are first identified and the different
relationships that exist among these objects are
identified.
Lower development time and effort.
Better maintainability of the product.
33. Classical Waterfall Model…
4) Coding and Unit Testing:
Translate the software design into source code.
Coding phase is also called the implementation
phase.
The end product of this phase is a set of program
modules that have been individually tested.
34. Classical Waterfall Model…
After coding is complete, each module is unit tested.
It determines the correct working of the individual
modules during unit testing.
35. Classical Waterfall Model…
5) Integration and System Testing:
The different modules are integrated in a planned
manner.
Integration is carried out incrementally over a
number of steps.
During each integration step, previously planned
modules are added to the partially integrated system
and the resultant system is tested.
36. Classical Waterfall Model…
After all the modules have been successfully integrated
and tested, system testing is carried out.
Ensures that the developed system conforms to its
requirements laid out in the SRS document.
37. Classical Waterfall Model…
Consists of three different kinds of testing activities.
-testing: Performed by the development team.
β-testing: Performed by a friendly set of customers.
Acceptance testing: Performed by the customer himself
after the product delivery to determine whether to
accept the delivered product or to reject it.
38. Classical Waterfall Model…
Result of this phase are documented in the form of a
test report.
Test report summarizes the outcome of all the testing
that were carried out during this phase.
39. Classical Waterfall Model…
6) Maintenance:
Requires more effort than the effort necessary to
develop the product itself.
Involves performing any one or more of the following
3 kinds of activities:
40. Classical Waterfall Model…
Corrective maintenance: Involves correcting errors that
were not discovered during the product development
phase.
Perfective maintenance: Involves improving the
implementation of the system, and enhancing the
system functionalities according to the customer’s
requirements.
41. Classical Waterfall Model…
Adaptive maintenance: Required for porting the
software to work in a new environment.