Software Engineering Lecture2
Software Engineering Lecture2
Software Engineering Lecture2
Observation:
• Introduced by Winston W. Royce in 1970
• Linear Sequential Approach
• Next phase can be started only after
completing the current phase.
• No path to go back
1. Requirements Gathering and Analysis: Gathering
requirements from stakeholders and analyzing to understand the
scope and objectives of the project.
2. Feasibility Study: Evaluate the feasibility of a proposed project
or an existing software used by the business. Business case is
generated as an output.
3. Design Phase: Creating a detailed design document that
Phases of outlines the software architecture, user interface, and system
components.
Waterfall 4. Implementation and Unit Testing: Coding the software and
Model unit testing to ensure that each component of the software is
working as expected.
5. Integration and System Testing: Tested to ensure that it meets
the requirements and is free from defects.
6. Deployment: Deployed to the production environment.
7. Maintenance: Fixing any issues that arise after the software has
been deployed and ensuring that it continues to meet the
requirements over time.
Requirement Analysis
System testing:
• After integration of all the modules, system
testing is carried out
• Ensure the developed system works according to
the SRS documentation
Maintenance
3. Quality Control: High emphasis on quality control and testing at each phase to ensure
that the final product meets the requirements and expectations of the stakeholders.
4. Rigorous Planning: The project scope, timelines, and deliverables are carefully defined
and monitored throughout the project lifecycle.
Pros and Cons : Waterfall model
Advantages Disadvantages
Easy to Understand No Feedback Path
Individual Processing: Processed one at a time. Difficult to accommodate Change Requests
Properly Defined No Overlapping of Phases
Clear Milestones: Clear and well-understood Limited Flexibility: Rigid and linear approach, not for
milestones. uncertain requirements.
• Easy to understand, easy to use. • All requirements must be known • Requirements are well known
• Provides a reference for upfront. and stable.
inexperienced staff. • Deliverables created for each • Technology is understood.
• Milestones are well understood phase are considered frozen. • Experienced development team.
by the team. • It can give a false impression of
• It provides requirements progress as there is no output
stability. until the project’s completion.
• Facilitates strong management • Integration is one big bang at
controls. the end.
• Little opportunity for the
customer to preview the system.
V Model (Verification
& Validation model)
• An extension of the waterfall model.
• Association of a testing phase for each
corresponding development stage.
• Corresponding testing phase of the development
phase is planned in parallel.
• There are Verification phases on one side of the ‘V’
and Validation phases on the other side.
• The Coding Phase joins the two sides of the V-
Model.
Sommerville, I. (2004). Software engineering. Pearson Education India
Verification phase
The goal of the verification phase is to find and fix defects as early as
possible in the development process, in order to reduce the overall cost
of fixing those defects
Sommerville, I. (2004). Software engineering. Pearson Education India
Verification Phases
Business Requirement Specification
System Design
• The system will have the understanding and detailing the complete hardware and
communication setup for the product under development.
• The system test plan is developed based on the system design. Doing this at an earlier
stage leaves more time for the actual test execution later
Sommerville, I. (2004). Software engineering. Pearson Education India
Verification phases
Architectural Design
• The system design is broken down according to different functionality and referred as High-Level Design
(HLD)
• The data transfer and communication between the internal modules and with the outside world (other
systems) is understood and integration tests can be designed and documented during this stage.
Detailed Design
Implementation
Good for small project Can not be use for large project.
Very simple, easy and useful. Not good if customer’s requirements are
Can track the process of project not clear.
management. Not easy for complex projects .
Saves a lot of time and efforts. Client have no prototype and involvement
Testing at the initial phase reduces the during the software development.
possibilities of bugs Contains less flexibility.
It is hard to go back and alter the working
of the system if new requirements are met
Prototyping Model
• Prototyping
• Creating a working miniature model of
Actual Product to be developed.
• Useful to capture customer feedback.
• Useful if customer is not sure about
requirements in initial stage.
• Enhancement Types
• Vertical (DFS)
• Horizontal (BFS)
Prototyping
model
https://www.geeksforgeeks.org/software-engineering-prototyping-model/
Types of Prototyping Model
Uses a very little requirement analysis for the first prototype
Rapid-Throwaway Throwaway first prototype after the actual requirement identified
Work starts on the actual Software
Evolutionary Building actual functional prototypes with minimal functionality in the beginning
Well-understood requirements are included in the prototype and the requirements are added in the software as
Prototyping and when they are understood
Require new technological updates Initial product delivery is faster. Because of its continuous iterations
Customers gets important the cost increases.
Customer ready for continues
communication functionality early.
Lowers initial delivery cost.
Customer will have a working
product at hand all the time.
Spiral Model
• Based on iterative
development.
Development phases
• Requirements gathering
• Design the requirements: user flow diagram or the high-level UML
diagram
• Construction/ iteration: Designers and developers start working on their
project
• Testing: Quality Assurance team examines the product's performance and
looks for the bug.
• Deployment: A product is issued for the user's work environment.
• Feedback: The team receives feedback about the product and works on it.
How is agility achieved?
• Users must be actively connected, and teams have been given the right to make decisions.
Incremental release of
working software
Agile documentation
• Very less documented
• Documents:
• Concise
• Add info that is very less likely to change
• Add “good things to know”
• Sufficiently accurate, consistent, and detailed
• Needs valid reason to document:
• Request from stakeholder
• For a communication with external group
• For thorough understanding
Disadvantages
1. Due to the shortage of formal documents, it creates confusion and crucial decisions taken
throughout various phases can be misinterpreted at any time by different team members.
2. Due to the lack of proper documentation, once the project completes and the developers
allotted to another project, maintenance of the finished project can become a difficulty.