What is Software Development Life Cycle

0
217

I. Overview of Software Development Life Cycle

A good and reasonable process always produces standardized products. It enables the interaction of activities and factors with each other in a smooth, effective way.

It can be said that the software process brings the quality, productivity and price of the software, thus increasing the competitiveness and profitability of enterprises.

1. Concepts

Software development process is a set of organizational activities whose purpose is to build and develop software.

  • Where are the questions:
    • HR: Who will do? Who do?
    • Time: When do? How long does it take?
    • Method: How to do?
    • Tool: What tools do you use to do this job?
    • Cost: How much does it cost? How much? (estimate)
    • Goal: What is the goal?
  • Different types of systems require different development processes.

2. Basic operations of the software development process

  • There are four operations that are the foundation of most software development processes:
    • Software specification: Define the functions and conditions of the software.
    • Software Development: Is the process of building the specification.
    • Software evaluation: The software must be evaluated to make sure that at least the specifications that are required can be met.
    • Software evolution: This is the process of finishing the functions as well as the interface to improve the software as well as requirements from the customer.

II. Models developed in software projects

1. Waterfall model

  • Describe:
    • Waterfall model is a model applied in the sequence of software development stages
    • This means that the next phase is only done when the previous phase has ended
    • Do not go back to the previous stage to handle the changes in the request
  • This is considered to be the first software development model.
  • Apply:
    • Often applied to projects that are not frequently changed on request.
  • Characteristics
    • Advantages:
      • Easy to use, easy to access
      • The stages and activities are clearly defined
      • Confirmation at each stage, ensuring early detection of errors
  • Defect:
    • It is difficult to return to any stage when it is over
    • Its limited flexibility and scope of adjustment is quite difficult, costly.

Read more: https://melsatar.wordpress.com/2012/03/15/software-development-life-cycle-models-and-methodologies/

2. V- Shaped Model

  • Describe:
    • This is an extended model from the waterfall model
    • Instead of moving down sequentially, the steps will follow in the V shape
  • Apply:
    • Software requirements must be clearly defined
    • Software engineering and tools must be thoroughly explored
  • Characteristics:
    • Advantages:
      • Simple, easy to use
      • Specific distribution in each stage
      • Perform verification and validation early in each development phase
    • Defect:
      • The adjustment range is quite difficult and expensive.

Learn more: https://melsatar.wordpress.com/2012/03/15/software-development-life-cycle-models-and-methodologies/

3. Spiral Model – Spiral model

  • Describe:
    • The model combines the features of the prototyping model and the waterfall model.
    • Spiral model is preferred for large, expensive and complex projects.
    • This model uses many stages similar to the waterfall model, in order, plan, risk assessment, …
  • Apply:
    • Often used for large applications and systems built in small phases or under segments
  • Characteristics:
    • Advantages:
      • Estimates (i.e. budget, schedule, etc.) become more practical as a workflow, because important issues were discovered earlier.
      • Early involvement of deverlopers
      • Risk management and system development by phase
    • Defect:
      • High cost and long time to have final product
      • Must have good skills to assess risk and assumptions.

More: https://melsatar.wordpress.com/2012/03/15/software-development-life-cycle-models-and-methodologies/

4. Iterative Model

Diagram:

Describe:

  • A pattern is repeated from start to full spec
  • Instead of developing software from spec specs and then starting to execute, this model can be reviewed progressively to reach the final requirement.
  • The development process is repeated for each version of the product in each cycle.
    • Apply:
      • The requirements of the system are complete, clearly defined and understandable
      • Key requirements need to be defined, and some details may be renewed over time
    • Characteristics
      • Advantages:
        • Build and complete step by step products
        • Get user feedback from the sketches
        • Document time will be less than design time
      • Defect:
        • Each repetition phase is rigid
        • Having a system architecture or design problem may arise but not all of it happens throughout the life cycle.

    Learn more: http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-and-when-to-use-it/ https://melsatar.wordpress.com/2012/03/15/ software-development-life-cycle-models-and-methodologies /

    5. Incremental Model

Example:

Diagram:

![6.png](/uploads/ed4f64c3-97ed-424e-82ff-fc767d001645.png)
    • Describe:
      • In this model, the spec is divided into sections.
      • The cycle is divided into small modules, easy to manage.
      • Each module will go through the requirements of design, implementation, … as a normal development life cycle.
    • Apply:
      • Applies to projects whose requirements have been described, defined and understood explicitly
      • There is demand for the product soon
    • Characteristics:
      • Advantages:
        • Software works quickly throughout the development lifecycle
        • This model is more flexible, less expensive to change the scope and requirements
        • Easier to check and fix with smaller repetition
      • Defect:
        • Good planning and design
        • Need a clear and complete definition of the whole system before it can be broken down and built step by step
        • The total cost is higher than the waterfall.

    Learn more: https://melsatar.wordpress.com/2012/03/15/software-development-life-cycle-models-and-methodologies/

    6. RAD Model (Rapid Application Development)

  • Describe:
    • Is a form of incremental model
    • In the RAD model, components or functions are developed in parallel as if they were small projects
    • Development of this over time, provided and assembled into a working prototype
    • This can quickly bring up something for the customer to see and use and provide feedback regarding their supply and request.
  • Apply:
    • RAD should be used when there is a need to create a modularized system over a period of 2-3 months.
    • Should be used when available designer for the model and high cost
  • Characteristics:
    • Advantages:
      • Reduced development time.
      • Increased reusability of components
      • Give early evaluation quickly
      • Encourage customers to give feedback
    • Defect:
      • There should be a good team to determine the software requirements
      • Only systems with new modules can use this model
      • Dev / design requirements must have a lot of experience
      • Much depends on modeling skills

For more information: http://istqbexamcertification.com/what-is-rad-model-advantages-disadvantages-and-when-to-use-it/

7. Agile Model

  • Describe:
    • Based on the iterative and incremental model
    • Development requirements and solutions are based on a combination of functions
  • Apply:
    • It can be used with any type of project, but it requires engagement and customer interaction. In addition, it can be used when the customer requires functional availability within a short period of time (3 weeks)
  • Characteristics:
    • Advantages:
      • Reduce the time required to take advantage of some features of the system
      • The end result is high quality software in the least possible time and customer satisfaction
    • Defect:
      • Depends on the skill of the software developer
      • Data is available at a later stage
      • Need an experienced team. Special skills for the team.

For more information: http://istqbexamcertification.com/what-is-rad-model-advantages-disadvantages-and-when-to-use-it/

8. Scrum (Scrm is an agile software development model)

  • Description: Scrum is a flexible method (agile), so it follows the principles of Agile Manifesto (see also Agile Manifesto). In addition, Scrum works on three core values, also known as Three Legs of Scrum, including Transparency, Inspection, and Adaptability.

III. Learn about the Scrum Model

1. Scrum concept:

It is a process of developing software according to the agile model. The main principle is to split the software to produce a small part to develop (these parts have to read and release), get customer comments and change accordingly during the playback. This will ensure that the release product meets what the customer expects. Scrum divides the project into developmental loops called sprints. Each sprint usually takes 2-4 weeks (30 days) to complete. It is suitable for projects with many changes and high speed requirements.

2. Some features of SCRUM

  • Scrum (or agile in general) falls into the “Feature-driven development” category. Products are developed according to features, not product development according to system architecture.
  • Scrum is different from Agile models in that it is Customer Oriented, the role of customers in evaluating products is very important. Only after every sprint (2-4 weeks) will the customer see the change of his product, giving early feedback to the direction. -> Fast response to change requests
  • Scrum minimizes resources for management but focuses more on jobs that are directly related to product creation. By reducing the management role (PM) by pushing the management to the individual,
  • Reduce the time spent writing materials by increasing the live time. Often when estimating work, the team estimates the time spent on communication to complete the task.
  • Focusing on the product, the new product is the ultimate destination, not the process.

3. Advantages and disadvantages of the Scrum model

3.1 ADVANTAGES:

  • One can do many things such as dev can test
  • Bug detection is much earlier than traditional methods
  • Customers quickly see the product that provides feedback early.
  • Applicable to projects where customer requirements are not clear from the beginning.

3.2 ASK:

  • The level of the group is a certain skill
  • Must have knowledge of the aglie model.
  • Difficulties in determining the budget and time.
  • Always listen to feedback from customers and change accordingly, so time will be long when there are too many requests from customers.
  • The role of PO is very important, PO is product oriented. If PO does not work well, it will affect the overall result.

4. The elements that make up a process in Scrum

  • Simply put, there are three important components that make up SCRUM: Organization, Process, Atifacts. Each element has three child elements. Thus, we only need to understand and apply these 9 elements that can apply SCRUM.
    • Organization: Organization of the project team and Roles (role)
      • Product Owner
      • ScrumMaster (Moderator)
      • Development Team
    • Documentation (Atifacts): Outputs
      • Product Backlog (List of functions to be developed by the product)
      • Sprint Backlog (List of functions to be developed for each stage)
      • Estimation (Team Estimation)
    • Process: Specify how the SCRUM works
      • Sprint Planning meeting
      • Sprint Review (Meetings to summarize for each stage)
      • Daily Scrum Meeting

4.1 Organization of the project (Organization)

  • Product Owner
    • Product Owner is the owner of the product, who decides what functions the product is and determines the product backlog. Often, this role is undertaken by the client or his representative.
  • ScrumMaster
    • Scrum Master ensures that Scrum processes are implemented properly and that they help the team to do the best job of developing the product.
  • Development Team
    • A group of 4-7 software engineers are 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 look like. At the same time, the group also discussed the options, estimating the time spent doing the work and evaluating the results. If large projects we need to split into small projects. 4.2 Materials (Atifacts)
  • Product Backlog
    • Product Backlog is a list of functions that need to be developed for the product. This listing is determined by the Product Owner. It is regularly updated to meet the changing needs of customers as well as the conditions of the project.

  • Sprint Backlog
    • Sprint is a development stage in the product development process, which is recommended for 2-4 weeks. Each Sprint is determined by the development time, the list of development functions (Sprint Backlog). Every sprint must release the product to ensure that it receives the customer feedback, through the development process of the product to learn from experience and avoid future problems.
    • The Sprint Backlog is a list of functionality developed in Sprint, which is determined by the Sprint Planning meeting. Sprint Backlog is the functionality selected from Product Backlog based on the priority and ability of the development team.

  • Estimation
    • In SCRUM, Team members will select their own Task and estimate the estimated development time and take responsibility for this estimate. Upon completion will update the Sprint Backlog.

3.3 Processes

  • Sprint Planning meeting
    • As we know above, Sprint is a development phase that takes 2-4 weeks. To prepare for each Sprint team needs to meet to determine what functions will be sprint backlog, expected outcomes (Goal, Release, Estimate) who does what) and discuss solutions. All are recorded in minutes to have the basis for implementation and Review later.
  • Sprint Review
    • Is a meeting to review Sprint’s past performance, determine what functions are released, what functions to continue to fix or develop, identify issues and discuss solutions, Product Backlog v.
  • Daily Scrum Meeting (also known as Standup Meeting)
    • Daily Scrum Meeting is a daily meeting and is recommended for no more than 15 minutes and a standing meeting to ensure the meeting time is not extended at the beginning of each day, each member only answers 3 questions: + Yesterday you can What?
      • What’s the problem?
      • Today you will do
    • If members have problems, they should work separately so that they do not have to spend a lot of time with members. Scrum Master must ensure that this meeting is properly implemented.
    • Sprints will be repeated until the items in the Product Backlog are completed or when the Product Owner decides to stop the project based on the actual situation. By using “more valuable than first” tactics, items that bring more value to the project owner are always completed first. So Scrum always brings the highest value to the investor for the project. As the process is always improving, the Scrum team often has very high productivity. These are two great benefits that Scrum brings to the organization.