Software Development Process and Software Development Models

Tram Ho

What is the software development process?

Software development process

A software development process is a structure that consists of a set of operations and correlation results used in development to produce a software product.

The basic activities of the software development process

  • Software specifications: Define the functions and operating conditions of the software.
  • Software development: The process of building specifications.
  • Software evaluation: Software must be evaluated to make sure that it can at least do what the specification document requires.
  • Software evolution: This is a process of perfecting the functions and interfaces to increasingly improve the software as well as the requirements given by customers.

Software development models

Waterfall model – Waterfall model

Waterfall model (English: waterfall model) is a model of software development process, in which the development process looks like a flow, with phases being done in strict order and without rollback or jump over phases are: requirements analysis, design, implementation, testing, linking, and maintenance.

Stages of a waterfall model

Gathering requirements (Requirement gathering): This is the stage of determining the functional requirements and non-functional system software required. The result of this phase is the required specification document. This document will be the basis for the subsequent phases until the end of the project.

Analysis System (System Analysis): A period how to define software systems meet the requirements of customers. This phase carries out the analysis and design of the software system.

Coding: A product implementation phase based on the required specification and module design document.

Testing: Tester will receive products from dev and perform tests for group of components and system testing. The final stage of testing will be the Acceptance Test, which will also involve the customer.

Implementation: Deploy the system to the customer environment.

Operations & Maintenance: This is the stage of installation, configuration and training for the customer. This phase fixes product defects (if any) and develops new changes requested by customers.

Apply

Typically applied to projects that do not often change requirements.

Characteristics

Advantages:

Easy to use, accessible Clearly defined stages and activities Confirm at each stage, ensuring early detection of errors Disadvantages:

It is difficult to return to the stage when it is finished. It is less flexible and the scope of its adjustment is quite difficult and expensive.

V-shaped pattern – V- Shaped Model

Model V is now one of the most widely used software development processes. In model V, the test is performed right at the request stage. V model is also called verification model and verification model.

To understand the V model, first of all let us understand what is verification and verification in software.

Verification: Verification is a static analysis technique. In testing, this technique is implemented without having to run the code. It includes a number of activities such as review, inspection and inspection from the beginning to the end (walkthrough).

Validation: Validation is a dynamic analysis technique in which testing is performed by executing code. Examples include non-function and non-function testing techniques.

Apply

Software requirements must be clearly defined Software engineering and tools must be thoroughly understood

Characteristics

Advantages:

Simple to use Specific distribution at each stage Perform verification and validation early in each development stage Disadvantages:

The scope of adjustment is quite difficult and expensive. In model V, development and quality assurance activities are carried out simultaneously. There is no discrete phase called testing, instead testing is started at the required stage. Verification and verification activities go hand in hand.

Spiral Model – Spiral Model

A spiral model is a risk-oriented development process for software projects. Combination of strengths of other models and solving difficulties of the previous models exist. Based on the individual risk models of each project, the spiral model provides a way to apply elements of one or more treatment models, such as acceleration models, waterfall models or models. evolutionary prototyping.

Stages of spiral pattern

Planning phase: Planning phase:

Collect, analyze project requirements from customers. Including tasks: estimating cost, scheduling a project (shedule-master), determining the number of human resources, identifying necessary resources and work environment, finding out system requirements (requirements) from which the Bussiness Requirement Specifications and System Requirement specifications to serve for the exchange between customers and later system analysis.

Risk analysis phase:

An analysis will be carried out to identify risks and provide alternatives. A prototype will be created at the end of the risk analysis phase. If any risks are found in this process, alternative solutions will be proposed and implemented.

Technical implementation – Engineering phase:

This is the stage where the project is coded by developers, testers conduct testing and deploying software on the customer’s website.

Evaluation phase:

Customers will participate in this stage to evaluate the work, the product and ensure that the product meets all requirements set forth earlier. If there is any change request from the customer, the stages will be repeated. This is an important stage because there is a need for customer feedback on the product before it is released.

Apply

Often used for large applications and systems built in small stages or in segments

Characteristics

Advantages:

Estimates (ie budget, schedule, etc.) become more realistic as a workflow, because important issues were discovered earlier. Early participation of deverlopers Risk management and system development in phases Cons:

High cost and long time to have the final product. Good skills are required to assess risks and assumptions.

Agile Model – Agile Model

Agile is a set of principles for software development, which encourages adaptive planning, incremental development, early delivery, and continuous improvement. Agile also advocates rapid adaptation to changes. These principles are shared in the Flexible Software Development Declaration and the 12 Principles behind.

Agile does not define a specific method to achieve these, but there are many different software development methods that satisfy and follow those criteria.

The purpose of Agile Methods is to help businesses achieve flexibility (Agility), thereby improving competitiveness and sustainable development. Agile methods have changed the face of the world not only in Software Development but also showing value in other fields such as Marketting (Agile Marketting), education (EduScrum, Lean Edu, etc.), design (Lean UX, Design Thinking), startup (Lean Startup) and Hardware.

Apply

Can be used with any type of project, but it needs customer engagement and interaction. In addition, it can be used when the customer requests the function to be ready in a short period of time (3 weeks).

Characteristics

Advantages:

Reduce the time needed to take advantage of some system features The end result is high quality software in the least amount of time possible and customer satisfaction Cons:

Depends on the skills of the software developer Scalability Documentation is made at a later stage

Scrum model

Scrum is an agile software development process.

Is a flexible software development process (agile). The main principle is to split the software that needs to be produced into small parts for development (these parts must be read and released), collect customer feedback and change accordingly during the process of development. Developed to ensure the release product meets what the customer wants. Scrum divides the project into development loops called sprints. Each sprint usually takes 2-4 weeks (30 days) to complete. It is very suitable for projects that have a lot of changes and require high speed.

Advantages

A person who can do a lot of things, for example, dev, can test Error detection much earlier than traditional methods. Customers quickly see the product and give an early response. Likely to apply to projects where customer requirements were not obvious in the first place.

Defect:

The level of the group is to have a certain skill. Must have an understanding of aglie model. Difficult to determine budget and time. Always listen to feedback from customers and change over time so will last when there are too many requests to change from customers. The role of PO (Product Owner) is very important, PO is product-oriented. If PO does not do well, it will affect the overall result.

Share the news now

Source : Viblo