software engineering SOFTWARE PROCESS MODELS.pptx

pushpa73 47 views 27 slides Jul 05, 2024
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

process models


Slide Content

Software Process, Perspective and Specialized Process Models

PROCESS MODELS

1. Waterfall Model called as the classic life cycle model suggests a systematic, sequential approach to software development characterized by their linear and sequential nature, where each phase must be completed before moving on to the next. used for developing projects where the requirements are well defined and reasonably stable , it leads to a linear fashion.

1. Waterfall Model Requirement Gathering and analysis  − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document. System Design  − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture. Implementation  − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase.

1. Waterfall Model Testing  − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. Deployment of system  − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market. Maintenance  − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.

Projects based on the waterfall model are well defined, predictable and have specific documentation. They also have the following characteristics: fixed requirements; ample resources; an established timeline; well-understood technology; and unlikely to require significant changes.

Advantages Simple and easy to understand Phases do not overlap each other Maintenance is easy Work well for small projects Drawbacks Real projects rarely follow the sequential flow that the model proposes; Not suitable for long and ongoing projects It is often difficult for the customer to state all requirements explicitly. The customer must have patience Linear nature leads to blocking states

2. Incremental Models delivers a series of releases, called increments , that provide progressively more functionality for the customer as each increment is delivered Incremental models construct a partial implementation of a total system and then slowly add increased functionality prioritizes requirements of the system and then implements them in groups.

Incremental Models also known as the successive version model or Iterative Enhancement Model.   Each iteration passes through the  requirements, design, coding and testing phases . And each subsequent release of the system adds function to the previous release until all designed functionality has been implemented. For example, word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more sophisticated editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment.

When to use Incremental models? Requirements of the system are clearly understood When demand for an early release of a product arises When software engineering team are not very well skilled or trained When high-risk features and goals are involved Such methodology is more in use for web application and product based companies

Types of Incremental Model Staged Delivery Model Parallel Development Model:  

Advantages of incremental model The software will be generated quickly during the software life cycle It is flexible and less expensive to change requirements and scope Throughout the development stages changes can be done A customer can respond to each building block Errors are easy to be identified Disadvantages of incremental model It requires a good planning designing Problems might cause due to system architecture as such not all requirements collected up front for the entire software lifecycle Each iteration phase is rigid and does not overlap each other Rectifying a problem in one unit requires correction in all the units and consumes a lot of time

3. RAD (Rapid Application Development) Model type of incremental process model in which there is extremely short development cycle . When the requirements are fully understood and the component-based construction approach is adopted then the RAD model is used. Is developed within 60 to 90 days Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or Construction, and finally Deployment . A software project can be implemented using this model if the project can be broken down into small modules where in each module can be assigned independently to separate teams. These modules can finally be combined to form the final product.

Business Modelling:  The information flow among business functions is defined by answering questions like what data drives the business process, what data is generated, who generates it, where does the information go, who process it and so on. Data Modelling:  The data collected from business modeling is refined into a set of data objects (entities) that are needed to support the business. The attributes (character of each entity) are identified, and the relation between these data objects (entities) is defined. Process Modelling:  The information object defined in the data modeling phase are transformed to achieve the data flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object.

Construction –  In this phase, refinement of the prototype and delivery takes place. It includes the actual use of powerful automated tools to transform processes and data models into the final working product . All the required modifications and enhancements are too done in this phase. Cutover – All the interfaces between the independent modules developed by separate teams have to be tested properly. The use of powerfully automated tools and subparts makes testing easier. This is followed by acceptance testing by the user. The process involves building a rapid prototype, delivering it to the customer, and taking feedback. After validation by the customer, the SRS document is developed and the design is finalized. 

Advantages Use of reusable components helps to reduce the cycle time of the projec t. Encourages user involvement Reduced cost. Flexible and adaptable to changes Disadvantages For large scalable projects, RAD requires sufficient human resources to create the right number of RAD teams. It is suitable where technical risls are not high. If developers and customers are not committed to the rapid-fire activities, then project will fail. If a system cannot properly be modularized, building the components necessary for RAD will be problematic. The use of powerful and efficient tools requires highly skilled professionals. Customer involvement is required throughout the life cycle.

Evolutionary Process Models Evolutionary process models are iterative models that produce an increasingly more complete version of the software with each iteration. Two types of evolutionary approaches are there namely Prototyping Spiral models.

Prototyping Model Prototyping Model  is a software development model in which prototype is built, tested, and reworked until an acceptable prototype is achieved. It works best in scenarios where the project’s requirements are not known in detail. It is an iterative, trial and error method which takes place between developer and client.

Advantages of Prototype Model The customer gets to see partial products early in the lifecycle The developed prototype can be   reused  for bigger projects in the future. Errors and missing functionalities  can be identified much early in the lifecycle because the users are actively involved. The model is very straightforward and does not require skilled experts to implement. Disadvantages of Prototype Model Prototyping is a  slow and time taking process . Documentation is poor as the requirements  change frequently . When the customer evaluates the prototype, there may be much too many variances in software needs. There is a risk of inadequate requirement analysis owing to too much dependency on the prototype.

Types of Prototyping Models Rapid Throwaway Prototyping- useful method of exploring ideas and getting customer feedback Evolutionary Prototyping- prototype developed initially is refined Incremental Prototyping- expected outcome is broken into small prototypes and merged finally Extreme Prototyping- mainly used for web development

Spiral Model proposed by Barry Boehm the spiral model is an evolutionary software process model that posses the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model . It provides the potential for rapid development of increasingly more complete versions of the software Two main distinguishing features: Cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. Set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.

Spiral Model The Spiral Model is a  Software Development Life Cycle (SDLC)  model that provides a systematic and iterative approach to software development. In its diagrammatic representation, looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a  Phase of the  software development process. The exact number of phases needed to develop the product can be varied by the project manager depending upon the project risks. It is based on the idea of a spiral, with each iteration of the spiral representing a complete software development cycle, from requirements gathering and analysis to design, implementation, testing, and maintenance.

Spiral Model The Spiral Model is a risk-driven model , meaning that the focus is on managing risk through multiple iterations of the software development process. It consists of the following phases: 1. Planning : The first phase of the Spiral Model is the planning phase, where the scope of the project is determined and a plan is created for the next iteration of the spiral. 2. Risk Analysis : In the risk analysis phase, the risks associated with the project are identified and evaluated. 3. Engineering : In the engineering phase, the software is developed based on the requirements gathered in the previous iteration. 4. Evaluation : In the evaluation phase, the software is evaluated to determine if it meets the customer’s requirements and if it is of high quality. 5. Planning : The next iteration of the spiral begins with a new planning phase, based on the results of the evaluation.

Specialised Process Models Specialized process models take on many of the characteristics of one or more of the traditional models However, these models tend to be applied when a specialized or narrowly defined software engineering approach is chosen. There are 3 types of specialized process models: Component Based Development Formal Methods Model Aspect Oriented Software development

Component Based Development Commercial off-the-shelf (COTS) software components, developed by vendors who offer them as products, provide targeted functionality with well-defined interfaces that enable the component to be integrated into the software that is to be built. The component-based development model incorporates many of the characteristics of the spiral model. It is evolutionary in nature, demanding an iterative approach to the creation of software. However, the component-based development model constructs applications from prepackaged software component.

Component Based Development Modeling and construction activities begin with the identification of candidate components. These components can be designed as either conventional software modules or object oriented classes or packages of classes. Regardless of the technology that is used to create the components, the component-based development model incorporates the following steps: 1. Available component-based products are researched and evaluated for the application domain in question. 2. Component integration issues are considered. 3. A software architecture is designed to accommodate the components. 4. Components are integrated into the architecture. 5. Comprehensive testing is conducted to ensure proper functionality