Advantages of Hiring UIUX Design Service Providers for Your Business
Types of models
1. By : G.S. Rahul Nagda MLSU
The ‘Waterfall’ Model
The waterfall model - the linear sequential model, also called
the “classic life cycle”
---> a systematic, sequential approach to software development that begins at
the system level and progress through analysis, design, coding, testing,
and maintenance.
2. By : G.S. Rahul Nagda MLSU
Software requirements analysis. Requirements for both the system and the
software are documented and reviewed with the customer.
Design. focuses on four distinct attributes of a program: data structure, software
architecture, interface representations ,and procedural detail.
The design process translates requirements into a representation of the
software that can be assessed for quality before coding begins.
Code generation. The design must be translated into a machine-readable form.
Testing. The testing process focuses on the logical internals of the software, ensuring
that all statements have been tested
Conduct tests to uncover errors and ensure that defined input will produce
actual results that agree with required results.
Support (maintenance) . Software will undoubtedly undergo change after it is delivered
to the customer software must be adapted to accommodate changes in its
external environment or because the customer requires functional or
performance enhancements.
Steps of waterfall Model
3. By : G.S. Rahul Nagda MLSU
The Waterfall Model
The waterfall model is the oldest and most widely used paradigm for software
engineering.
Advantages: Simple, step-by-step, focused, and easy to follow..
Problems:
- Inflexible because real projects rarely follow the sequential flow that the
model proposes.
- It is often difficult for the customers to state all requirements explicitly.
- The customer must have patience to wait to validate the software product in
the late phases. (until programs are implemented)
-unnecessary delays, “blocking states”
- Difficult to respond to changing customer requirements
4. By : G.S. Rahul Nagda MLSU
Prototype
Listen to
customer
Customer
test-drives
Prototype
Build/revise
Prototype
6. By : G.S. Rahul Nagda MLSU
Steps of Prototype
• Identify basic requirements
– Determine basic requirements including the input and output
information desired.
• Develop Initial Prototype
– The initial prototype is developed that includes only user
interfaces.
• Review
– The customers, including end-users, examine the prototype and
provide feedback on additions or changes.
• Revise and Enhance the Prototype
– Using the feedback both the specifications and the prototype can
be improved. Negotiation about what is within the scope of the
contract/product may be necessary.
7. By : G.S. Rahul Nagda MLSU
Types of prototyping
• Throwaway prototyping :- Also called close ended prototyping or Rapid
Prototyping .
Throwaway refers to the creation of a model that will eventually be discarded rather
than becoming part of the final delivered software.
After preliminary requirements gathering is accomplished, a simple working model
of the system is constructed to visually show the users what their requirements may
look like when they are implemented into a finished system.
The method used in building it is usually quite informal, the most important factor
being the speed with which the model is provided.
The most obvious reason for using Throwaway Prototyping is that it can be done
quickly
8. By : G.S. Rahul Nagda MLSU
• Evolutionary prototyping :- builds a very robust prototype in a
structured manner and is constantly refined .
• The Evolutionary prototype, when built, forms the heart of the new
system, and the improvements and further requirements will be built.
• When developing a system using Evolutionary Prototyping, the
system is continually refined and rebuilt.
• Evolutionary Prototypes have an advantage over Throwaway
Prototypes in that they are functional systems. Although they may
not have all the features the users have planned, they may be used
until the final system is delivered.
9. By : G.S. Rahul Nagda MLSU
• Incremental prototyping :- The final
product is built as separate prototypes. At
the end the separate prototypes are
merged in an overall design.
10. By : G.S. Rahul Nagda MLSU
Advantages
• Reduced time and costs: Prototyping can improve the quality of
requirements and specifications provided to developers. Because
changes cost exponentially more to implement as they are detected later
in development, the early determination of what the user really wants can
result in faster and less expensive software
• Customers can validate the prototype at the earlier stage and provide
their inputs and feedback
• Improved and increased user involvement: Prototyping requires user
involvement and allows them to see and interact with a prototype allowing
them to provide better and more complete feedback and specifications
11. By : G.S. Rahul Nagda MLSU
• Good to deal with the following cases:
– Customer can not provide the detailed
requirements
– Very complicated system-user interactions
– Use new technologies, hardware and algorithm
– Develop new domain application systems
12. By : G.S. Rahul Nagda MLSU
Drawbacks
• Insufficient analysis: The focus on a limited
prototype can distract developers from properly
analyzing the complete project.
• User confusion of prototype and finished system:
Users can begin to think that a prototype, intended to
be thrown away, is actually a final system that merely
needs to be finished or polished
13. By : G.S. Rahul Nagda MLSU
• Developer attachment to prototype: Developers can
also become attached to prototypes they have spent a
great deal of effort producing it.
• Excessive development time of the prototype: A
key property to prototyping is the fact that it is
supposed to be done quickly. If the developers lose
sight of this fact, they very well may try to develop a
prototype that is too complex. When the prototype is
thrown away the time spent is wasted
14. By : G.S. Rahul Nagda MLSU
The RAD Model
Rapid Application Development (RAD) is an incremental software
development process model that emphasize on extremely short
development cycle.
- A “high-speed” adaptation of linear sequential model
- Rapid development is achieved by using Component-based construction
-Effective when requirements are well understood and project scope is
constrained.
-If requirements are well understood and project scope is constrained,
the RAD process enables a development team to create a “fully functional
system” within very short time periods (e.g., 60 to 90 days)
15. By : G.S. Rahul Nagda MLSU
Phases Of The RAD Model
Business
Modeling
Data
Modeling
Process
Modeling
Application
Generation
Testing &
Turnover
60-90 days
Team # i
Modeling information
flow among functions
Modeling information
flow in terms of business
data and objects
Defining functional
processes by mapping the
two previous results
Use fourth generation
techniques or automatic
tools to construct software
Testing new components
perform integration tests
16. By : G.S. Rahul Nagda MLSU
If a business application can be modularized in a way
that enables each major function to be completed in
less than three months (using the approach described
previously), it is a candidate for RAD.
Each major function can be addressed by a separate
RAD team and then integrated to form a whole.
18. By : G.S. Rahul Nagda MLSU
Business modeling. What information drives the business process?
What information is generated?
Who generates it?
Where does the information go?
Who processes it?
Data modeling. The information flow defined as part of the business modeling phase
is refined into a set of data objects that are needed to support the
business.
The characteristics (called attributes) of each object are identified
and the relationships between these objects defined.
Process modeling. The data objects defined in the data modeling phase are
transformed to achieve the information flow necessary to implement
business function.
Processing descriptions are created for adding, modifying,
deleting, or retrieving a data object.
19. By : G.S. Rahul Nagda MLSU
Application generation. - RAD assumes the use of fourth generation techniques.
- RAD process works to reuse existing program components
or create reusable components.
- Automated tools are used to facilitate construction of the
software.
Testing and turnover. Since the RAD process emphasizes reuse, many of the
program components have already been tested. This
reduces overall testing time.
However, new components must be tested and all interfaces
must be fully exercised.
20. By : G.S. Rahul Nagda MLSU
The RAD Model
Advantages:
- Short development time
- Cost reduction due to software reuse and component-based
construction
Problems:
- For large, but scalable projects, RAD requires sufficient resources
(human).
- RAD requires developers and customers who are committed to the
schedule. If commitment is lacking from either constituency, RAD
projects will fail.
- Not all types of applications are appropriate for RAD. If a system
cannot be properly modularized, building the components necessary for
RAD will be problematic.
- Not appropriate for projects with high technical risk and new
technologies.
21. By : G.S. Rahul Nagda MLSU
Evolutionary Software Process Models
Classic process models are not designed to deliver a production system
due to their assumptions on:
- A complete system will be delivered after the linear sequence
is completed.
- Customer knows what they want at the early stage.
The realty in a software production process -->
- A lot of requirements changes during the production course
- A lot of iterative activities and work occurs because of the
evolutionary nature of software production
To cope with the product evolution, several evolution process models
are proposed:
- the incremental model
- the spiral model
- the component assembly model
- the concurrent development model
22. By : G.S. Rahul Nagda MLSU
The Incremental Model
• The Incremental Model combines elements of the linear sequential model
with the iterative philosophy of prototyping.
• The first increment is a core product.
• Each linear sequence produces a deliverable “increment” of the software
• Example: - word-processing software
• User requirements are prioritised and the highest priority requirements are
included in early increments
• Once the development of an increment is started, the requirements are frozen ,
though requirements for later increments can continue to evolve.
• The incremental process model:
- Iterative in nature, like prototyping.
- Focus on the delivery of a operational product with each increment.
- Particularly useful when staffing is unavailable for a complete
implementation by the business deadline.
23. By : G.S. Rahul Nagda MLSU
The Incremental Model
Increment 2
analysis design code test
analysis design code test
analysis design code test
analysis design code test
delivery of 1st
increment
Increment 3
Increment 4
System/Information engineering
24. By : G.S. Rahul Nagda MLSU
The incremental process model, like prototyping is iterative in nature.
But unlike prototyping, the incremental model focuses on the delivery of an
operational product with each increment.
Early increments are stripped down versions of the final product, but they
do provide capability that serves the user and also provide a platform for
evaluation by the user.
Incremental development is particularly useful when staffing is unavailable
for a complete implementation by the business deadline that has been
established for the project.
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.
In addition, increments can be planned to manage technical risks.
For example, a major system might require the availability of new hardware that
is under development and whose delivery date is uncertain. It might be possible
to plan early increments in a way that avoids the use of this hardware, thereby
enabling partial functionality to be delivered to end-users without inordinate
delay.
25. By : G.S. Rahul Nagda MLSU
Incremental development
advantages
• Customer value can be delivered with each increment so
system functionality is available earlier
• Early increments act as a prototype to help elicit
requirements for later increments
• Lower risk of overall project failure
• The highest priority system services tend to receive the
most testing