Software Engineering Perspective Models ppt.
-
Upload
viraj-mali -
Category
Documents
-
view
271 -
download
7
description
Transcript of Software Engineering Perspective Models ppt.
Software EngineeringPresentation
16. Karan Trehan17. Karan Vagare18. Vaibhav Varadkar19. Akash Agarwal20. Viraj Mali
Software Engineering
Topic –Incremental ModelRapid Application Development Model
Evolutionary Model1. Prototyping2. Spiral Model
What is Software Engineering?
Software Engineering is a systematic, scientific & disciplined approach towards the development, functioning & maintenance of the software.
Primary goal of software engineering is to provide the Quality Software at low cost.
It involves Communication, Planning, Modeling, Construction & deployment.
Software Development Process
A software development process is a structure imposed on the development of a software product.
There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.
Software Development Activities
Planning - We want to discover things that belong to the project. An important task in creating a software program is extracting the requirements or requirements analysis.
Implementation - Implementation is the part of the process where software engineers actually program the code for the project.
Software Testing – This phase ensures that defects are recognized as soon as possible.
Documenting- The internal design of software for the purpose of future maintenance and enhancement is done throughout development.
Deployment- Project is approved for release, and sold or otherwise distributed into a production environment.
Maintaining- Enhancing software to cope with newly discovered faults or requirements can take substantial time and effort, as missed requirements may force redesign of the software.
Software Development ModelsSeveral models exist to
streamline the development process.
Each one has its pros and cons, and it is up to the development team to adopt the most appropriate one for the project.
Sometimes a combination of the models may be more suitable.
List of ModelsWaterfall ModelIncremental ModelRapid Application
Development ModelEvolutionary Model1. Prototyping2. Spiral Model3. Concurrent Development
Model Rational Unified Process
Model
Incremental Model The incremental build model is a
method of software development where the model is designed, implemented and tested incrementally (a little more is added each time) until the product is finished.
It involves both development and maintenance.
The product is defined as finished when it satisfies all of its requirements.
This model combines the elements of the waterfall model with the iterative philosophy of prototyping.
Incremental Model Steps
The series of releases is referred to as “increments”, with each increment providing more functionality to the customers.
After the first increment, a core product is delivered, which can already be used by the customer.
Based on customer feedback, a plan is developed for the next increments, and modifications are made accordingly.
This process continues, with increments being delivered until the complete product is delivered.
Incremental Model - Diagram
Advantages & Disadvantages Advantages :1. Testing is conducted after each step thus
faulty elements of the software can be quickly identified.
2. It is generally easier to test and debug than other methods of software development because relatively smaller changes are made during each iteration.
Disadvantages :1. Resulting cost may exceed the cost of the
organization.2. As additional functionality is added to the
product, problems may arise related to system architecture which were not evident in earlier prototypes.
When to use? Requirements of the complete system are
clearly defined and understood. Major requirements must be defined;
however, some details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used Resources with needed skill set are not
available
On projects which have lengthy development schedules
Rapid Application Development Model (RAD) Rapid application
development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping.
In rapid application development, structured techniques and prototyping are especially used to define user’s requirements and to design the final system.
Four phases of RAD Requirements Planning phase - Users,
managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements.
User design phase – During this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs.
Construction phase – In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed.
Cutover phase – As a result, the new system is built, delivered, and placed in operation much sooner. Its tasks are data conversion, full-scale testing, system changeover, user training.
Data Flow Diagram
RAD AdvantagesReduced cycle time and
improved productivity with fewer people means lower costs
Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
Focus moves from documentation to code
Uses modeling concepts to capture information about business, data, and processes.
RAD Disadvantages
Accelerated development process must give quick responses to the user
Risk of never achieving closure Hard to use with legacy systemsRequires a system that can be
modularizedDevelopers and customers must be
committed to rapid-fire activities in an abbreviated time frame.
May compromise functionality and performance in exchange for faster development and better application maintenance.
When to use RAD? When requirements are not fully
understood. User involved throughout the life
cycle Functionality delivered in
increments High performance not required System can be modularized Requires quick release and
implementation.
Evolutionary Process Model
Allows the software to evolve as need grows or become better understood, or become defined
Each delivery becomes more complex, with addition of new features/functions
Goal of Evolutionary Model is Extensibility
Some Evolutionary Models are
PrototypingSpiral ModelConcurrent Development
Model
Prototyping
Developers build a prototype during the requirements phase
Prototype is evaluated by end users
Users give corrective feedbackDevelopers further refine the
prototypeWhen the user is satisfied, the
prototype code is brought up to the standards needed for a final product.
Prototype Model - Diagram
Prototyping Advantages Customers can “see” the system
requirements as they are being gathered Developers learn from customers A more accurate end product Unexpected requirements accommodated Allows for flexible design and development Steady, visible signs of progress produced Interaction with the prototype stimulates
awareness of additional needed functionality Delivers a working system early and cheaply
Prototype DisadvantagesManaging the prototyping
process is difficult because of its rapid, iterative nature
Requires feedback on the prototype
Incomplete prototypes may be regarded as complete systems
Process may continue forever
When to use Prototyping?
Requirements are unstable or have to be clarified
As the requirements clarification stage of a waterfall model
Develop user interfacesNew, original development
Spiral Model
The spiral model is a software development process combining elements of both design and prototyping-in-stages
This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.
Spiral Model Steps
The spiral model combines the idea of iterative development (prototyping) with the systematic, controlled aspects of the waterfall model.
It allows for incremental releases of the product, or incremental refinement through each time around the spiral.
The spiral model also explicitly includes risk management within software development. Identifying major risks, both technical and managerial, and determining how to lessen the risk helps keep the software development process under control.
The Phases Explained
Spiral Model AdvantagesProvides early indication of
insurmountable risks, without much cost
Users see the system early because of rapid prototyping tools
Critical high-risk functions are developed first
Users can be closely tied to all lifecycle steps
Early and frequent feedback from users.
Spiral Model Disadvantages
Time spent for evaluating risks too large for small or low-risk projects
Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive
The model is complex Risk assessment expertise is
required Spiral may continue indefinitely Developers must be reassigned
during non-development phase activities.
When to use Spiral Model
When creation of a prototype is appropriate
When costs and risk evaluation is important
For medium to high-risk projects
Users are unsure of their needsRequirements are complexNew product line Significant changes are
expected
Conclusion Quality – the degree to which the software
satisfies stated and implied requirements. Quality must be controlled because it lowers
production speed, increases maintenance costs and can adversely affect business
Waterfall and V-Shaped and Incremental models need requirements to be known up-front. E.g. when creating new versions of existing
systems. Prototyping, RAD and Spiral models do not need
all requirements to be known E.g. New systems. Uses series of prototypes that evolve into the
finished system.