1.3 Perspective and Specialized Process
1.3 Perspective and Specialized Process
1.3 Perspective and Specialized Process
UNIT NO 1
CS8494
SOFTWARE ENGINEERING
CS8494
SOFTWARE ENGINEERING
PROCESS MODELS
SOFTWARE ENGINEERING
WATERFALL MODEL
SOFTWARE ENGINEERING
The principal stages of the waterfall model directly reflect the fundamental
development activities:
2. System and software design The systems design process allocates the
requirements to either hardware or software systems by establishing an overall
system architecture. Software design involves identifying and describing the
fundamental software system abstractions and their relationships.
3. Implementation and unit testing During this stage, the software design is
realized as a set of programs or program units. Unit testing involves verifying that
each unit meets its specification.
CS8494
SOFTWARE ENGINEERING
4. Integration and system testing The individual program units or programs are
integrated and tested as a complete system to ensure that the software
requirements have been met.
WATERFALL MODEL
● In principle, the result of each phase is one or more documents that are approved
(‘signed off’). The following phase should not start until the previous phase has
finished.
● In practice, these stages overlap and feed information to each other. During
design, problems with requirements are identified. During coding, design problems
are found and so on.
● The software process is not a simple linear model but involves feedback from one
phase to another.
● Documents produced in each phase may then have to be modified to reflect the
changes made.
● Because of the costs of producing and approving documents, iterations can be
costly and involve significant rework.
CS8494
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
DRAWBACKS
1. Real projects rarely follow the sequential fl ow that the model proposes. Although
the linear model can accommodate iteration, it does so indirectly. As a result, changes
can cause confusion as the project team proceeds.
2. It is often difficult for the customer to state all requirements explicitly. The waterfall
model requires this and has difficulty accommodating the natural uncertainty that
exists at the beginning of many projects.
3. The customer must have patience. A working version of the program(s) will not be
available until late in the project time span. A major blunder, if undetected until the
working program is reviewed, can be disastrous.
4. The linear nature of the classic life cycle leads to “blocking states” in which some
project team members must wait for other members of the team to complete
dependent tasks.
CS8494
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
V- MODEL
● The V-model depicts the relationship of quality assurance actions to the actions
associated with communication, modeling, and early construction activities
● As a software team moves down the left side of the V, basic problem requirements are
refined into progressively more detailed and technical representations of the problem
and its solution.
● Once code has been generated, the team moves up the right side of the V, essentially
performing a series of tests (quality assurance actions) that validate each of the models
created as the team moves down the left side.
● In reality, there is no fundamental difference between the classic life cycle and the
V-model. The V-model provides a way of visualizing how verification and validation
actions are applied to earlier engineering work.
CS8494
SOFTWARE ENGINEERING
• This model combines elements of both linear sequential model with the
iterative philosophy of prototyping
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
• The core product is used by the customer (or undergoes detailed review). As a
result of use and/or evaluation, a plan is developed for the next increment.
• The plan addresses the modification of the core product to better meet the
needs of the customer and the delivery of additional features and functionality.
This process is repeated following the delivery of each increment, until the
complete product is produced.
SOFTWARE ENGINEERING
● Early increments can be implemented with fewer people. If the core product is
well received, then additional staff (if required) can be added to implement the
next increment.
CS8494
SOFTWARE ENGINEERING
It should be noted that the process flow for any increment can incorporate the
prototyping paradigm
CS8494
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
3. Process modeling: The data objects defined in the data modeling phase
are transformed to achieve the information flow necessary to implement a
business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.
SOFTWARE ENGINEERING
Advantages
SOFTWARE ENGINEERING
Disadvantages
• If developers and customers are not committed to the rapid-fire activities, then
SOFTWARE ENGINEERING
o Prototyping
o Spiral models.
CS8494
SOFTWARE ENGINEERING
PROTOTYPING
SOFTWARE ENGINEERING
PROTOTYPING
CS8494
SOFTWARE ENGINEERING
PROTOTYPING
● The prototyping paradigm begins with communication. You meet with other
stakeholders to define the overall objectives for the software, identify whatever
requirements are known, and outline areas where further defi nition is mandatory.
● A prototyping iteration is planned quickly, and modeling (in the form of a “quick
design”) occurs.
SOFTWARE ENGINEERING
PROTOTYPING
SOFTWARE ENGINEERING
PROTOTYPING
● It is then discarded (at least in part), and the actual software is engineered
with an eye toward quality.
CS8494
SOFTWARE ENGINEERING
SPIRAL MODEL
SOFTWARE ENGINEERING
SPIRAL MODEL
CS8494
SOFTWARE ENGINEERING
SPIRAL MODEL
• The first circuit around the spiral might result in the development of a product
specification; subsequent passes around the spiral might be used to develop
a prototype and then progressively more sophisticated versions of the
software.
• Each pass through the planning region results in adjustments to the project
plan.
• Cost and schedule are adjusted based on feedback derived from the
customer after delivery.
• In addition, the project manager adjusts the planned number of iterations
required to complete the software.
CS8494
SOFTWARE ENGINEERING
SPIRAL MODEL
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
Component-Based Development
SOFTWARE ENGINEERING
Component-Based Development
SOFTWARE ENGINEERING
Component-Based Development
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
● Advantages:
○ Provides better modularization support of software designs,
reducing software design, development and maintenance
costs
○ Because concerns are encapsulated into different modules,
localization of crosscutting concerns is better promoted and
handled.
○ Promotes reusability of code
○ Smaller code size, due to tackling cross cutting concerns
CS8494
SOFTWARE ENGINEERING
SOFTWARE ENGINEERING
Video URL:
https://www.youtube.com/watch?time_continue=1190&v=i7f075xlCoc&fe
ature=emb_logo