Over 2 years we help companies reach their financial and branding goals. Woftek is a values-driven technology agency dedicated.

Gallery

Contacts

G2 Vinhomes Green Bay, Me Tri, Nam Tu Liem, Hanoi, Vietnam

(+84) 972 781 395

Software development

Software Development Models

Software development life cycle (SDLC) models show the ways to navigate through the complex and demanding process of software building. A project’s quality, timeframes, budget, and ability to meet the stakeholders’ expectations largely depend on the chosen model.

1. Waterfall model

Describe

  • This is considered as the first software development model used.
  • This model sequentially applies the phases of software development.
  • The output of the previous stage is the input of the latter. The latter stage is carried out only when the previous one has ended. In particular, do not return to the previous stage to handle requests when you want to change.

Model analysis

  • Requirement gathering: Requirements collection and analysis are recorded into the requirements specification document during this phase.
  • System Analysis: Analyze the design of software systems, determine the overall system architecture of the software.
  • Coding: The system is developed in units and integrated in the next phase. Each unit developed and tested by the dev is called Unit Test.
  • Testing: Software installation and testing. The main job of this stage is to check and correct all errors found so that the software works correctly and in accordance with the required specification documentation.
  • Implementation: Deploy the system in the customer environment and bring it to market.
  • Operations and Maintenance: Maintain the system when there are any changes from customers, users.

Application

The model typically applied to software projects is as follows:

  • Small, short-term projects.
  • Projects have little change in requirements and no unclear requirements.

Advantage

  • Easy to use, accessible, easy to manage.
  • Products develop in clearly defined stages.
  • Validation at each stage, ensuring early detection of errors.

Shortcoming

  • Little flexibility, limited scope of adjustment.
  • It is difficult to measure development in each stage.
  • The model is not suitable for long, ongoing, or complex projects that have many changes in requirements during the development lifecycle.
  • It is difficult to return when a certain period has ended.

2. Spiral Model

Describe

  • It is a model that combines the features of the prototyping model and the waterfall model.
  • Spiral models are preferred for large, expensive and complex projects.
  • This model uses the same stages as the waterfall model, in terms of order, plan, risk assessment, etc.

Model analysis

The phases in the spiral development process include:

  • Objective identification: define goals and objects for each phase of the project.
  • Alternate evaluation: assessing risks and taking actions to mitigate them.
  • Product development: Select the right model for system development.
  • Next phase planning: evaluating the project and planning for the next phase.

Application

This model is often used for large applications and systems that are built in small stages or in segments.

Advantage

  • Good for large-scale software systems.
  • Easy to control risks at each evolutionary level.
  • More realistic assessment as a workflow, because critical problems were discovered earlier.

Shortcoming

  • Managers need to have good skills to manage projects, assess risks in time.
  • The cost is high and takes a long time to complete the project.
  • Complex and not suitable for small and low-risk projects.
  • Frequent change requirements result in infinite iteration.
  • Not widely used.

3. Agile model

Agile is a flexible software development methodology that gets products to users as quickly as possible and is seen as an improvement over older models such as the “waterfall” or “CMMI” models. An Agile software development methodology is a set of iterative and incremental development methods in which requirements and solutions are developed through collaborative alignment between autonomous and cross-functional teams.

Describe

  • Based on iterative and incremental models.
  • Development requirements and solutions are based on a combination of functions.
  • In Agile, tasks are broken down into small time frames to provide specific features for the final release.

Application

  • Can be used with any type of project, but requires customer involvement and interaction.
  • Use when customers require functionality to be ready in a short period of time.

Advantage

  • Enhance teamwork and effective work exchange.
  • The functions are built quickly and clearly, cricket management.
  • Easy to add, change requirements.
  • Minimum rules, easy-to-understand, easy-to-use documentation.

Shortcoming

The agile model is widely used in the world but is not synonymous with suitable for all software projects.

  • Not suitable for handling complex dependencies.
  • There are many sustainability, maintainability, and scalability risks.
  • It takes an experienced team.
  • Relies a lot on clear customer interaction.
  • Transferring technology to new team members can be quite difficult due to lack of documentation.

4. Iterative model

Describe

  • A pattern is repeated from the start until the full spec is made. This process is then repeated, creating a new version of the software at the end of each iteration of the model.
  • Instead of developing software from spec specifications and then starting to execute, this model can be reviewed gradually to arrive at the final requirement.

Application

  • The main requirement must be determined; However, some functions or improvement requirements may evolve over time.
  • A new technology is being used and is being learned by the development team while working on the project.
  • Suitable for large projects and important tasks.

Advantage

  • Build and perfect product steps step by step.
  • Documentation time will be less than design time.
  • Some working functions can be developed quickly and early in the life cycle.
  • It is less expensive to replace scopes and requirements.
  • Easy to manage risk.
  • Throughout the lifecycle, software is produced early to facilitate customer evaluation and feedback.

Shortcoming

  • Requires many resources.
  • System design or architecture issues can arise at any time.
  • Management requirements are more complex.
  • The progress of the project is highly dependent on the stage of risk analysis.

5. Incremental model

Describe

  • The spec is divided into several parts.
  • The cycle is divided into small, easy-to-manage modules.
  • Each module will go through the requirements of design, implementation, … as 1 normal development life cycle.

Application

  • Applicable to projects whose requirements have been clearly described, defined and understood.
  • Khahcs has demand for products early.

Advantage

  • Rapid development.
  • This model is more flexible, less expensive when changing the range and requirements.
  • Easier to check and fix errors.

Shortcoming

  • It takes good planning and design.
  • The total cost is higher than the waterfall model.

6. V- Shaped Model

Describe

  • The V-model is an extension of the waterfall model and is based on a combination of a test phase for each respective development phase. This is a highly disciplined model and the next stage begins only after the completion of the previous one.
  • With V model, the testing work is involved from the beginning.

Application

  • The requirement is clearly defined.
  • Identify stable products.
  • The technology is unchanged and is well understood by the project team.
  • There are no unclear or unspecified requirements.
  • The project is short.

Advantage

  • This is a highly disciplined model and stages are completed at the same time.
  • Works well for small projects, when the requirements are very well understood.
  • Simple and straightforward and easy to use, easy to manage.

Shortcoming

  • Difficult to manage and control risks, high risks.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for projects with medium to high risk of changing requirements.

7. Scrum model

Describe

  • Divide the requirements into stages. Each stage (sprint) only does a certain number of requests.
  • Each sprint usually lasts from 1 week to 4 weeks (no longer than 1 month).
  • At the beginning of the sprint, what requirements will be planned. After that, will execute the code and test. At the end of the sprint is 1 finished product both code and test that can be demo and run.
  • Complete sprint 1, continue to do sprint 2, sprint… until all requirements are completed.
  • In each 1 sprint, there will be a daily meeting from 15 to 20 minutes. Each member will report: What did I do yesterday? What am I going to do today? Are there any difficulties?
  • Scrum is a customer-oriented model.

Elements that make up the Scrum process

There are 3 important components that make up SCRUM:

Organization

  • Project Team Organization and Roles: A Few Roles.
  • Product Owner: The person who owns the product.
  • Scrum Master: The Facilitator.
  • Development Team: Development Team.

Atifacts: these are the outputs.

  • Product Backlog: A list of functions to develop of the product.
  • Sprint Backlog: A list of functions to develop for each stage.
  • Estimation: The result of the team’s estimation.

Process: Regulates how SCRUM works.

  • Sprint Planning meeting: Plan for each phase.
  • Review: Summary for each stage.
  • Daily Scrum Meeting: Daily Review.

Project organization

Product Owner

  • The Product Owner is the person who owns the product, who decides what functions the product has and who decides the Product Backlog.
  • Usually this role is assumed by the client or the client’s representative.

ScrumMaster

  • The Scrum Master is the one who ensures that the Scrum processes are carried out properly and smoothly.

Development Team

  • A team of 4-7 software engineers is responsible for product development.
  • The project team must work with the Product Owner to decide what to do in this Sprint and what the results will be.
  • Discuss to come up with solutions, estimate the time to perform work, meet to evaluate work results.

Product Backlog

  • The Product Backlog is a list of functions that need to be developed by a product.
  • This list is decided by the Product Owner.
  • Regularly updated to meet the changing needs of customers and projects.

Advantage

  • A person can do many things, for example, dev can test.
  • Detect errors early.
  • Applicable to projects where customer requirements were not clear from the start.

Shortcoming

  • The level of the team requires a certain skill.
  • There must be an understanding of the aglie model.
  • Difficulty in determining budget and time.
  • Always hear feedback from customers and change accordingly, so the time will last.
  • The role of PO is very important, PO is product oriented. If the PO does not do well, it will affect the overall result.

8. RAD model

Describe

  • The RAD model is a software development methodology that uses minimal planning in favor of rapid prototyping.
  • The functional modules are developed in parallel as prototypes and integrated to create the finished product for faster product delivery.
  • Ensure that the developed prototypes are reusable.

Application

The RAD model can be successfully applied to projects that:

  • Clear modularization. If the project cannot be divided into modules, RAD may fail.
  • RAD should be used when there is a need to create a system whose customer requirements change in small periods of 2-3 months.
  • Should be used when there is already a designer for the model and the cost is high.

Advantage

  • Reduce development time.
  • Increase the reusability of components.
  • Make a quick initial assessment.
  • Encourage customers to give feedback.

Shortcoming

  • The level of the team requires a certain skill.
  • Only systems with modules can use this model.

Author

Dung Dang