Software Models Overview
Software Models Overview
Fundamental Assumption:
Good processes lead to good software
Good processes reduce risk
The Software Process
(Simplified)
1. Software specification (or requirements
engineering): Define the main functionalities
of the software and the constrains around
them.
•Pre and post conditions: The conditions that must be true before and after
an activity.
• The pre condition of the architectural design is the requirements have been
approved by the customer
• The post condition is the diagrams describing the architectural have been
reviewed.
Software Process Models
• The models specify the various stages of the process and the order
in which they are carried out.
The Waterfall Model
Example of Waterfall method
• System Design
• The architect work on the software architecture, high level and low level
design and document
• Any special requirement?
Example of Waterfall method
• Implementation
• The development team works on coding the project
• Any special requirement?
• Testing
• The testing team tests the complete application and identifies any defects in
the application.
Example of Waterfall method
Assume, the Citibank is planning to have a new banking application developed
and they have approached your organization in the 1990’s.
• Deployment
• The team builds and installs the application on the servers which were
procured for the banking application
• Also co-ordinate with network and IT administrative teams to finally get the
application up and running on the production servers.
• Maintenance
• During the maintenance phase, the team ensures that the application is
running smoothly on the servers without any downtime.
Discussion on Waterfall Model
• Once the product is developed and if any failure occurs then the
cost of fixing such issues are very high
• The project can easily get taken off track if the customer representative
is not clear what final outcome that they want.
Time Line Comparison
Adobe is working on project to come up with a competing product for Microsoft
Word, that provides all the features provided by Microsoft Word and any other
features requested by the marketing team. The final product needs to be ready in 10
months of time.
• Waterfall model
• Spend 15% of time on requirements
and analysis (1.5 months)
• 20% of time on design (2 months)
• 40% on coding (4 months) and unit
testing
• 20% on System and Integration
testing (2 months)
• The project may also have 2 weeks
of User Acceptance
Time Line Comparison
Adobe is working on project to come up with a competing product for Microsoft
Word, that provides all the features provided by Microsoft Word and any other
features requested by the marketing team. The final product needs to be ready in 10
months of time.
• Agile model
• In the Agile methodology, each
project is broken up into several
‘Iterations’
• All Iterations should be of the same
time duration (between 2 to 8
weeks)
• At the end of the first iterations, the
team will deliver a working software
that were finalized for that iteration
V-model
• Requirements
• before development is started, a system test plan is created
• focuses on meeting the functionality of requirements gathering
• Advantages of V-model
• Simple and easy to use
• Testing activities happens well before coding. This saves a lot of time.
• Higher chance of success over the waterfall model.
• Disadvantages of V-model
• Very rigid and least flexible
• Software is developed during the implementation phase, so no early prototypes of the software
are produced
• Any changes happen in midway, then the test documents along with requirement documents has
to be updated
When to use the V-model
• Application generation
• The actual system is built
• Disadvantage of RAD
• Customer involvement is compulsory during the entire life cycle
• Projects incapable of modularization can’t be developed
• Requires highly skilled developers/designers
Rapid Application Development (RAD)
model
• When to use RAD model
• There is a need to create a system that can be modularized in 2-3 months of
time
• High availability of designers for modeling and the budget is high enough to
afford their cost
• Planning Phase
• Requirements are gathered during the planning phase
• Risk Analysis
• a process is undertaken to identify risk and alternate solutions.
• A prototype is produced at the end of the risk analysis phase
• If any risk is found, then alternate solutions are suggested and implemented
• Engineering Phase
• software is developed, along with testing
• Evaluation phase
• allows the customer to evaluate the output of the project
Spiral model