Posts

Showing posts with the label software process model

FORMAL METHODS

In software engineering, formal methods are the same as the system development life cycle that we have discussed in system analysis and design. Recognization of the need for change: First of all we have to understand what is our need, motive, and expectations behind changing a system partially or fully. Feasibility study: Here we understand our limitations that till where we can go in a particular dimension it may be in terms of cost, change, people’s resistance, etc. Analysis of the present system: Then we have to understand the present system first so that we can know the consecutive which might cause by changes made by us. Design of a candidate system: Finally we have to design the new candidate system for which we have gathered so much pre-requisite knowledge. Testing and Implementation of the system: Before implementation, we have to test our new system so that we can rectify the bugs and make the system more efficient. The suggestions that we get in testing will be followed ...

FOURTH GENERATION TECHNIQUES (4GT)

This model used fourth-generation technologies to develop software linearly. It has the same stages as in the linear sequential or waterfall model. CHARACTERISTICS: Use of software tools that allow software engineers to specify software characteristics at a higher level. The tools generate codes based on specifications. More time in design and testing increases productivity. Tools may not be easy to use, and codes generated may not be efficient. ADVANTAGES: More advanced technologies are used. The software will be more adaptable to future technological changes. Developers find ease in application generation. Time and cost-efficient. DISADVANTAGES: Much more qualified and experienced developers are needed. We have to depend on third parties to support our system. Codes generated may not be easy to use. Tools may not be easy to use

COMPONENT ASSEMBLY MODEL

This model follows an object-oriented methodology where the whole system is divided into components, if they are already available in the library then we import them else we have to build them and at last, we construct the system by integrating them. CHARACTERISTICS: Use of object-oriented technology. Component-class that encapsulates both data and algorithm. Component delivered to be reusable. Paradigm similar to spiral model, but engineering activity involves components. The system is produced by assembling the correct components. ADVANTAGES: Time and resource conservative. Having object-oriented methodology. Components are built once and then they can be reused further. Suitable for small to large object-oriented projects. Very low cost in the construction of the system. DISADVANTAGES: Can’t use it for pioneering projects. Needs good planning and design. Needs a clear and complete definition of the whole system before dividing it into components. Need experts to divide the syst...

INCREMENTAL MODEL

The whole system is broken down into independent deliveries and then each of them gets designed, developed, tested, and implemented separately. CHARACTERISTICS: It is used when requirements are well understood. Multiple independent deliveries are identified. Workflow in a linear fashion. Iterative in nature. Focuses on an operational product with each increment. ADVANTAGES: Lower initial delivery cost. Easier to manage risk. It is easier to test and debug during a smaller iteration. customer can respond to each build. Development is easier, more efficient, and cost-reducing. DISADVANTAGES: Needs good planning and design. The total cost is higher than the waterfall. Software gets created at later stages of the development cycle. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.

EVOLUTIONARY MODEL

Software gets developed in three phases- initial, intermediate, and final. Each of them has further divided into three stages- specification, development, and validation. CHARACTERISTICS: It evolves in three phases initial, intermediate and final. Each version follows a linear trend in itself like specification, development, and validation. It is generally used for large projects. Due to its lengthy process, it costs too much. WHERE TO USE: Very useful for large projects. Well suited for projects using object-oriented development. When the client prefers the project in an incremental order rather than the entire thing to be manufactured and delivered. ADVANTAGES: Risk analysis is better. It supports changing environment. Initial operating time is less. Better suited for large mission-critical projects. During the life cycle software is produced early which facilitates customer evaluation and feedback. DISADVANTAGES: Management complexity is more. Not suitable for smaller projects. High...

RAD (RAPID APPLICATION DEVELOPMENT) MODEL

It is an incremental model that emphasizes an extremely short development cycle (60-90 days). We first divided the whole project into different independent deliveries which can be developed in a linear trend alone. CHARACTERISTICS: It uses component-based construction. Uses multiple teams on a scalable project. Needs good planning and design. It first gets broken down and built independently. ADVANTAGES: Develops software in very less amount of time. It is very time-conservative. Cretes effective and reliable software. Suitable for small and low-risk projects. DISADVANTAGES: It requires heavy resources. Heavily committed developers and customers are needed. Performance can be a problem. Difficult to use new technologies. download notes

SPIRAL MODEL

In this model, the whole development process goes in an iterative or we can say in a looping order where we complete each phase of the development cycle like communication, planning, modeling, construction, and deployment again and again until our customer gets satisfied with the final software. CHARACTERISTICS: It is a combination of the waterfall model and the iterative model. Each phase in the spiral model begins with the design goal and ends with the client reviewing. Software is developed in a series of incremental series. WHEN TO USE THE SPIRAL MODEL: When the project is large. When releases are required to be frequent. When risk & cost evaluation is important. When changes may require at any time. For medium to high-risk projects. ADVANTAGES: Additional functionality changes can be done at later stages. Cost estimation becomes easy. Development is fast & features are added in a systematic way. There is always space for customer feedback. DISADVANTAGES: Risk is not meetin...

PROTOTYPING MODEL

CHARACTERISTICS: The process of design, prototyping, customer evaluation, and review & updation repeats again and again in a loop until the customer gets satisfied with the prototype. It is iterative in nature. It is a combination of linear sequential and spiral models. Generally, its deadlines are not clear. Used when customer satisfaction is our topmost priority. ADVANTAGES: Customers can see steady progress. This is useful when requirements are changing rapidly. Higher chances of customer satisfaction. The developed software is highly efficient and reliable. Real development start later after the prototype which makes it easy for developers that what they have to do. DISADVANTAGES It is impossible to know how long it will take. There is no way to know the number of iterations that will be taken. Hard for cost estimation. Unclear customers can cause too much cost to the firm. Can’t predict anything about the customer’s choice which changes very rapidly. download notes