Sie sind auf Seite 1von 33

Software Engineering Presentation

16. Karan Trehan 17. Karan Vagare 18. Vaibhav Varadkar 19. Akash Agarwal 20. Viraj Mali

Software Engineering
Topic

Incremental Model Rapid Application Development Model Evolutionary Model


1. 2.

Prototyping 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

to the project. An important task in creating a software program is extracting the requirements or requirements analysis. the process where software engineers actually program the code for the project.

- We want to discover things that belong

Implementation

- Implementation is the part of

Software

that defects are recognized as soon as possible.

Testing This phase ensures

Documenting- The internal design of

software for the purpose of future maintenance and enhancement is done throughout development. and sold or otherwise distributed into a production environment.

Deployment- Project is approved for release,

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 Models


Several

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 Models
Model Incremental Model Rapid Application Development Model Evolutionary Model 1. Prototyping 2. Spiral Model 3. Concurrent Development Model Rational Unified Process Model
Waterfall

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
1.

Advantages & Disadvantages


Testing is conducted after each step thus faulty elements of the software can be quickly identified. It is generally easier to test and debug than other methods of software development because relatively smaller changes are made during each iteration. Resulting cost may exceed the cost of the organization. As additional functionality is added to the product, problems may arise related to system architecture which were not evident in earlier prototypes.

2.

1. 2.

Disadvantages :

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

development schedules

projects which have lengthy

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 users 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


Cutover phase As a result, the new system is built,

to participate and can still suggest changes or improvements as actual screens or reports are developed.

delivered, and placed in operation much sooner. Its tasks are data conversion, full-scale testing, system changeover, user training.

Data Flow Diagram

RAD Advantages
Reduced 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 systems Requires a system that can be modularized Developers 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


Prototyping

Spiral

Model Concurrent Development Model

Prototyping
Developers

build a prototype during the requirements phase Prototype is evaluated by end users Users give corrective feedback Developers further refine the prototype When 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 Disadvantages
Managing

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

forever

may continue

When to use Prototyping?


Requirements

are unstable or have to be clarified As the requirements clarification stage of a waterfall model Develop user interfaces New, original development

Spiral Model
The

spiral model is a software development process combining elements of both design and prototypingin-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 Advantages


Provides

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 needs Requirements are complex New 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.

Das könnte Ihnen auch gefallen