Software Engineering Presentation
16. Karan Trehan 17. Karan Vagare 18. Vaibhav Varadkar 19. Akash Agarwal 20. Viraj Mali
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.
Flow chart
Incremental Model Diagram
Advantages & Disadvantages
Advantages
1.
2.
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.
1.
Disadvantages :
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.
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. As soon as the user requirement are known, instead of spending a large amount of time planning, the teams start preparing Prototypes. The aim of this model is to create a working model depending upon user requirements ASAP.
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 . Requires a system that can be modularized. Developers and customers must be committed to rapid-fire activities. 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. Updates of the software are acceptable. 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.
THANK YOU FOR LISTENING. Do not forget to visit www.karantrehan.com www.virajmali.com