3. Evolutionary Prototyping
Advantages of Evolutionary prototyping
- Effort of prototype is not wasted
- Faster than the Waterfall model
- High level of user involvement from the start
- Technical or other problems discovered early – risk reduced
- Mainly suitable for projects with vague and unstable requirements.
- Prototype usually evolve so quickly that it is not cost- effective to produce great deal of documentation
- Continual change tends to corrupt the structure of the prototype system. Maintenance is therefore likely to be difficult and costly.
- It is not clear how the range of skills which is normal in software engineering teams can be used effectively for this mode of development.
- Languages which are good for prototyping not always best for final product.
4. The Spiral Model
- This model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.
- Using the spiral model software is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype.
- The spiral model is divided into four main task regions
- Determine goals, alternatives, constraints
- Evaluate alternatives and risks
- Develop and test
- Plan
5. Formal Development Model
- Formal software specifications are mathematical entities and may be analyzed using mathematical methods. Specification consistency and completeness can be proved mathematically.
- Formal specifications may be automatically processed. Software tools can be used to build programs from formal specifications.
- The development of a formal specification provides insights into and an understanding of the software requirements and the software design.
Problems with formal development methods
- Many software engineers have not been trained in the techniques required to develop formal specifications.
- Customers may be unwilling to fund development activities that they cannot easily monitor.
- Software management is inherently conservative and is unwilling to adopt new techniques for which payoff is not obvious.
- Most of the effort in specification research has been concerned with the development of languages and their theoretical aspects rather than tools and methods.
6. Incremental development
The Incremental development model involves developing the
system in an incremental fashion. The most important part of the system is fist
delivered and the other parts of the system are then delivered according to
their importance.
Incremental development avoids the problems of constant
change which characterize evolutionary prototyping. An overall system
architecture is established early in the process to act as a framework.
Incremental development is more manageable than evolutionary
prototyping as the normal software process standards is followed. Plans and
documentation must be produced
7. Rapid Application Development
Rapid Application Development (RAD) is an incremental
software development process model that emphasizes an extremely short
development cycle.
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)
Processes in the RAD model
Business modelling
The information flow in a business system considering its
functionality.
Data Modelling
The information flow defined as part of the business
modelling phase is refined into a set of data objects that are needed to
support the business
Process Modelling
The data objects
defined in the data modelling phase are transformed to achieve the information
flow necessary to implement business functions.
Application generation
RAD assumes the use of 4GL or visual tools to generate the
system using reusable components.
Testing and turnover
New components must be tested and all interfaces must be
fully exercised
Problems with the RAD model
- RAD requires sufficient human resources to create right number of RAD teams
- RAD requires developers and customers who are committed to the rapid-fire activities necessary to get a system completed in a much-abbreviated time frame.
- If a system cannot be properly modularized, building the components necessary for RAD will be problematic.
- RAD is not applicable when technical risks are high. This occurs when a new application makes heavy use of new technology or when the new software requires a high degree of interoperability with existing computer programs.
8. Unified Process
The Unified Process or Rational Unified Process (RUP) is a
framework for object-oriented software engineering using UML. This is a use-case driven, architecture
centric, iterative and incremental software development model.
Inception Phase
The Inception Phase of UP includes both customer
communication and planning activities. By collaborating with the customer and
end-users, business requirements for the software are identified, a rough
architecture for the system is proposed, and a plan for the iterative,
incremental nature of the project is developed.
Elaboration Phase
The Elaboration Phase encompasses the planning and modeling
activities of the generic process model. Elaboration refines and expands the
primary use-cases that were developed as part of the inception phase and
expands the architectural representation to include five different views of the
software – the use-case model, the analysis model, the design model, the
implementation model and the deployment model.
Transition Phase
The Transition
Phase of the UP encompasses the later stages of the generic construction
activity and the first part of the generic deployment activity. Software is given to end-users for beta
testing. The software team creates necessary support information (user manual,
installation manual etc.). At the end of transition phase, the software
increment becomes a usable software release.
Production Phase
The production phase of the UP coincides with the
deployment activity of the generic process.
During this phase, the ongoing use of the software is monitored, support
for operating environment is provided, and defect reports and requests for
change are submitted and evaluated.
It is likely that at the same time the construction,
transition and production phases are being conducted, work may have already
begun on the next software increment. This means that the unified process do
not occur in a sequence, but rather with staggered concurrency.
Major work products produced for each UP phases.
Inception Phase
Vision document
Initial use-case model
Initial risk assessment
Project Plan
Business model
Prototypes
Elaboration Phase
Use-case model
Requirements functional, non-functional
Analysis model
Software architecture
Preliminary design model
Revised risk list, revised prototypes
Construction Phase
Design model
Software components
Integrated software increment
Test cases
Test Plan and Procedures
Support documentation
Transition Phase
Delivered software increment
Beta test reports
General user feedback
9. Agile model
Click here to read Agile Software Development Process (Model) Article






0 Comments
Post a Comment