Software Engineering Perspective Models ppt.

33
Software Engineering Presentation 16. Karan Trehan 17. Karan Vagare 18. Vaibhav Varadkar 19. Akash Agarwal 20. Viraj Mali

description

This power point presentation is of the topic Software Engineering, it covers the brief information of various software engineering models that are used for developing a software product. The models are Incremental Model, Rapid Application Development Model (RAD), Evolutionary Model, Spiral Model, Prototyping.

Transcript of Software Engineering Perspective Models ppt.

Page 1: Software Engineering Perspective Models ppt.

Software EngineeringPresentation

16. Karan Trehan17. Karan Vagare18. Vaibhav Varadkar19. Akash Agarwal20. Viraj Mali

Page 2: Software Engineering Perspective Models ppt.

Software Engineering

Topic –Incremental ModelRapid Application Development Model

Evolutionary Model1. Prototyping2. Spiral Model

Page 3: Software Engineering Perspective Models ppt.

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.

Page 4: Software Engineering Perspective Models ppt.

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.

Page 5: Software Engineering Perspective Models ppt.

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.

Page 6: Software Engineering Perspective Models ppt.

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.

Page 7: Software Engineering Perspective Models ppt.

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.

Page 8: Software Engineering Perspective Models ppt.

List of ModelsWaterfall ModelIncremental ModelRapid Application

Development ModelEvolutionary Model1. Prototyping2. Spiral Model3. Concurrent Development

Model Rational Unified Process

Model

Page 9: Software Engineering Perspective Models ppt.

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.

Page 10: Software Engineering Perspective Models ppt.

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.

Page 11: Software Engineering Perspective Models ppt.

Incremental Model - Diagram

Page 12: Software Engineering Perspective Models ppt.

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.

Page 13: Software Engineering Perspective Models ppt.

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

Page 14: Software Engineering Perspective Models ppt.

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.

Page 15: Software Engineering Perspective Models ppt.

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.

Page 16: Software Engineering Perspective Models ppt.

Data Flow Diagram

Page 17: Software Engineering Perspective Models ppt.

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.

Page 18: Software Engineering Perspective Models ppt.

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.

Page 19: Software Engineering Perspective Models ppt.

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.

Page 20: Software Engineering Perspective Models ppt.

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

Page 21: Software Engineering Perspective Models ppt.

Some Evolutionary Models are

PrototypingSpiral ModelConcurrent Development

Model

Page 22: Software Engineering Perspective Models ppt.

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.

Page 23: Software Engineering Perspective Models ppt.

Prototype Model - Diagram

Page 24: Software Engineering Perspective Models ppt.

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

Page 25: Software Engineering Perspective Models ppt.

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

Page 26: Software Engineering Perspective Models ppt.

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

Page 27: Software Engineering Perspective Models ppt.

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.

Page 28: Software Engineering Perspective Models ppt.

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.

Page 29: Software Engineering Perspective Models ppt.

The Phases Explained

Page 30: Software Engineering Perspective Models ppt.

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.

Page 31: Software Engineering Perspective Models ppt.

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.

Page 32: Software Engineering Perspective Models ppt.

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

Page 33: Software Engineering Perspective Models ppt.

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.