Software Engineering Models PDF

You might also like

You are on page 1of 17

IT601-Software Engineering

Topic:
Software Engineering Models

By Team Black

Members:
17bce010-Bharat Adhyar
17bce014-Khodidas Chauhan
17bce015-Chinmaya Kapopara
17bce051-Maitri Mistry
17bce052-Ishan Makadia
17bce053-Sahil Makvana
17bce055-Manasi Shah
17bce057-Darshan Maradia
17bce059-Mayank Agal
18bce351-Arham Shah
18bce358-Romit Gandhi
18bce360-Nimit Kansagra
18bce364-Manali Patel

1
Table of Content

Sr. Topic Page No.


No.

1 Waterfall 3

2 Incremental 5

3 RAD 7

4 Software Prototyping 9

5 Spiral Model 11

6 Win/win Spiral Model 13

7 Concurrent Development Model 14

8 Component Based Development 16

2
Waterfall Model

Advantages
● Works well for smaller projects where requirements are very well understood.
● Simple and easy to understand and use.
● Easy to manage due to the rigidity of the model – each phase has specific deliverables
and a review process
● It allows for departmentalization and managerial control

Disadvantages
● Here the requirement needs to be frozen before the project development starts so we
can’t add or remove the requirements later, which cause we cannot add any new
features soon.
● Some teams sit ideal for other teams to finish
● We can’t do parallel activities in the waterfall model

3
Case Studies
● Canteen Bill Generator: Here requirements are small and fixed, nothing new
requirements will be added
● Bill Splitter: Description same as above
● Calculator: Description same as above

4
Incremental

Advantages
● Requires Small Team
● More flexible – less costly to change scope and requirements.
● Requirements are broken down into multiple independent modules
● After Each iteration customers give feedback that can be incorporated in the next
increment.
● Each iteration is an easily managed milestone.

Disadvantages
● It requires a good planning designing
● Each iteration phase is rigid and does not overlap each other
● Rectifying a problem in one unit requires correction in all the units and consumes a lot of
time

5
Case Studies
● Social Media Website: In one iteration can implement basic functionalities like profile ,
personal chat , feeds etc . After getting feedback from users in next increment other
features like group chats , pages etc.
● Cab booking app: Initially, increment simple taxi booking feature for car. After feedback
from customers, do another increment of Ride sharing & Future booking.

6
RAD-Rapid Application Development

Advantages
● Used to build software in a very short amount of time
● Used when component base construction. i.e. multiple teams are working on the
non-overlapping discrete component in parallel and they are following the sequential
flow through the multiple different phases.

Disadvantages
● Requires sufficient human resources
● Not appropriate when technical risks are high (heavy use of new technology)
● Problematic if system cannot be modularized

Case Studies
● ​Assistance App: Library & APIs is already available for speech-to-text
conversion and interactions with different apps. Different teams will be working
on different modules like app interactions, speech to text, UI Design, Testing etc.

7
● Food Delivery System: API is available for live tracking and payment gateways,
so Different teams will be working on modules like order delivery , live tracking ,
integrating payment gateways etc.

8
Software Prototyping

Introduction
The Prototyping Model is a systems development method (SDM) in which a prototype (an early
draft of a final system or product) is built, tested and then reworked as necessary until an
acceptable prototype is finally achieved from which the complete system or product can be
developed. A prototype serves as a throwaway model made to understand the requirements of
a project before design and coding begins. In essence, prototyping is a project test run.

Here’s the general prototype industry process step-by-step:

● Requirement Gathering
● Quick Design
● Building Prototype
● Engineer Product
● Refining Prototype
● Customer Evaluation

But for projects demanding trial and error, prototyping is an essential component to guarantee
optimum success. But you must ensure you have the budget and time a prototype-built project
demands.

9
Advantages
● Prototyping improves the quality of the specifications and requirements provided to
customers
● Strong Prototyping can ensure savings for years
● More involvement of customers as they can give immediate feedback.
● Prototyping most importantly helps eliminate misunderstandings and miscommunications
during the development process.
● With prototyping, you can determine early what the end user wants with faster and less
expensive software.
● Results in high user satisfaction.
● Encourages innovation and flexible design
● Missing functionality can be identified easily
● It is flexible and easy to modify the model

Disadvantages
● A focus on a limited prototype can distract developers from properly analysing the
complete project.
● User Confusion: The worst-case scenario of any prototype is customers mistaking it for
the finished project.
● Excessive Development Time: If a developer spends too much time developing a
complex prototype, the project can run into roadblocks (especially if there are
disagreements over prototype details) and run over both time and cost budgets.
● Design of the system may suffer as it is built using layers without considering integration
of all the other components

Case Study
● Movie Ticket Booking For Client
● It involves high user requirements.
● By developing for single theatre in a city.
● When client agrees implementing in huge scale
● Hackathon Website for Client
● It requires Interactive website with registration ,login and many other forms
● Testing after making a small part of a website will help clients to review.

10
Spiral Model

Advantages
● Additional functionality or changes can be done at a later stage
● Continuous or repeated development helps in risk management
● Good for large and mission-critical projects
● Strong approval and documentation control
● There is always a space for customer feedback
● Development is fast and features are added in a systematic way

Disadvantages
● Can be a costly model to use
● Risk analysis requires highly specific expertise
● Doesn’t work well for smaller projects
● It is not suitable for low risk projects
● May be hard to define objective, verifiable milestones
● Spiral may continue indefinitely
● Documentation is more as it has intermediate phases

11
Case Study
● In the Railway reservation system: It reserves and cancels seats for the
passenger,contains information about trains and can update for uptime and downtime.
● Spiral development in the global hawk unmanned aerial vehicle program was
implemented with proper risk analysis.

12
Win/win Spiral Model

Advantages
● High amount of risk analysis and hence, avoidance of risk is enhanced
● Good for large and mission critical projects
● Strong approval

Disadvantages
● Can be a costly model to use
● Risk analysis requires highly specific expertise
● Projects success highly depends on the risk analysis phase

Case Study
● The model was used to develop USC's Integrated Library System to access multimedia
archives, including films, maps, and videos.
● Win win negotiation case study which was pursued using mind mapping.

13
Concurrent Development Model

Advantages
● This model is applicable to all types of software development processes.
● It is easy to understand and use.
● It gives immediate feedback from testing.
● It provides an accurate picture of the current state of a project.

Disadvantages
● It needs better communication between the team members. This may not be achieved
all the time.

14
● It requires remembering the status of the different activities.

Case Study

● Inter-organizational concurrent engineering: This model was used for development of


PCB.
● Concurrent Design Systems for Automotive Part Dies and Integrated Development
Environment of Glass Products are two more computer aided engineering system where
this mode was useful.

15
Component Based Development

Advantages
● Increase productivity
● Reduce development time
● Reduction in cost of development
● Reliability is increased
● Flexibility
● Management of complacity

Disadvantage
● Quality of component is questionable
● Development of components
● Component maintenance costs
● Sensitive to changes

16
Case study
● These technologies are widely used in local desktop GUI application design such as
graphic JavaBean components, MS ActiveX components, and COM components which
can be reused by simply drag and drop operation.
● The breathless headlines about exciting new technologies such as augmented reality,
robotics lure product companies and their IT departments to attempt to exploit these
technologies in future products.

17

You might also like