Professional Documents
Culture Documents
OF
SOFTWARE ENGINEERING
Objectives
► To introduce software engineering and to explain its
importance
► What is software?
► What is software engineering?
► What is the difference between software engineering
and computer science?
► What is the difference between software engineering
and system engineering?
► What is a software process?
► What is a software process model?
FAQs about software engineering
Requirement analysis
and specification
Design
Coding and
unit testing
Integration and
System testing
Maintenance
Relative effort distribution among different phases of a typical product
70
60
50
40
% Effort
30
20
10
Phases
Feasibility Study
• Requirement analysis
• Requirement specification
The goal of the requirements analysis is to collect and analyze all related data
and information with a view to understanding the customer requirements
clearly and weeding out inconsistencies and incompleteness in these
requirements.
During requirements specification, the user requirements are properly
organized and documented in a SRS document. The SRS document addresses
the functional requirements, the nonfunctional requirements and the special
requirements on the maintenance and development of the software product, if
any.
Design
Structured analysis
Architectural design
• Object-oriented design
Coding and Unit Testing
• α-testing
• β-testing, and
• Acceptance testing
Maintenance
Requirement analysis
and specification
Design
Coding and
unit testing
Integration and
System testing
Maintenance
Prototyping Model
Requirements
gathering
Quick design
Customer
evaluation of
the prototype
Maintain
Evolutionary Model
This model is also known as the successive versions model. In this model, the
system is first broken down into several modules or functional units that can be
incrementally implemented and delivered.
A A B A B C
A, B, C are modules of a software product that are incrementally developed and delivered
The Evolutionary model combines the concepts of the linear
model with the concept of iteration. It delivers the software in
small parts called "increments." The first increment is called the
"core product." It is the basic product meeting the requirements
without any added frills. The successive increments then add to
the functionality of the product.
Customer communication
Planning
Risk analysis
Engineering
Construction and release
Customer evaluation
Each task region in turn consists of a number of task sets. The advantage of
this type of model is that both the developer and the customer are better able
to understand the concept of software evolution, thus leading to a better final
product. The disadvantage of such a model is that it requires expertise in the
field of risk assessment for the project to be successful.
The WINWIN Spiral model:
This model is similar to the above mentioned spiral model except that in
this, instead of a single customer communication activity, three sub-activities
are derived, these being:
Identification of stakeholders
Determination of their 'win' condition
Negotiation
Negotiation is the key here. Successful negotiation results in the "win" for
both parties - the customer and the development team. Both try to maintain
a balance between functionality and ease of development. In addition, during
the process, there are three milestones called anchor points: