☁️Modern Software Development Life Cycle Approach with Huawei Cloud CodeArts Service

Mehmet Altuğ Akgül
Huawei Developers
Published in
8 min readOct 24, 2023

--

Modern Software Development Life Cycle Approach with Huawei Cloud CodeArts Service

Introduction

In this article, we will discuss with you how to build the software development life cycle and what to do when developing modern software on modern architectures. With CodeArts, one of Huawei Cloud services, we will examine which services we will use for what purpose in modern SDLC processes.

Modern SDLC Flow

What is the Software Development Life Cycle (SDLC)?

The Development Lifecycle is an important part of the creation of quality software products and repetitive stages used in the follow-up process. These phases include developers with a planned roadmap to save time and cost. Basic software development phases are =>

Planning:
The first step of the software life cycle. Time and cost calculations are made. A feasibility report is prepared.

Analysis:
The requirements of the software are defined and documented.

Design:
A general framework is drawn for the software. All components are modeled in detail. The design phase is one of the most important steps of the cycle. Because mistakes can lead to serious problems (cost overruns or complete such as collapse).

Implementation:
This is the phase where everything planned so far is turned into software. Before that coding is done according to the specified standards.

Testing:
Final checks and corrections are made before the software is delivered.
It can also be performed simultaneously with the implementation phase.

Deployment and Maintenance:

The tested product is delivered at the final stage. During the test, the maintenance process starts for any bugs that cannot be found and to keep the product up to date.

Why is SDLC important?

Managing software development can be challenging due to changing requirements, technology upgrades, and cross-functional collaboration. The software development life cycle (SDLC) methodology provides a systematic management framework with specific deliverables at each stage of the software development process. As a result, all stakeholders agree in advance on software development goals and requirements and also have a plan to achieve these goals.

Some of the advantages of SDLC are given below:

- Increased visibility into the development process for all stakeholders
- Efficient forecasting, planning and programming
- Improved risk management and cost estimation
- Systematic software delivery and better customer satisfaction

Software Development Lifecycle Models

Waterfall Model

The waterfall model is the oldest linear sequential approach to software development. In this model, sequential progress appears to flow continuously downward, like a real waterfall. This model is easy to understand and use. In the waterfall model, each stage must be completed completely before moving on to the next stage. Finally, the test phase is started.

Waterfall Model

V-Model

The V-shaped model or V-Model is an extension of the waterfall model. In this SDLC model, software development takes place sequentially in a V-shape. It is a verification and validation approach. Each phase of the V-model is completed before the next phase begins. In the V-Model, product testing is done in parallel with the respective development phases. In the V-shaped model, each phase in the development lifecycle is directly associated with different testing phases.

V-Model

Prototype Model

The prototype model is a working model of software with limited functionality. In this model, developers build a working prototype of the actual product with the most useful features provided by the customer.

When the prototype is ready, it is delivered to the customer for evaluation. Following customer feedback, new deadlines and processes are set by the developers. Reduces multiple iterations compared to other models.

Prototype Model

Iterative/Accelerative Model

The iterative or incremental lifecycle model starts with a simple implementation of a small set of software requirements and gradually improves the software until the entire system is ready to be deployed/deployed. The iterative model does not start with customer feedback. Instead, software development starts with a subset of the requirement and is incrementally improved over multiple iterations before developing the final product.

Iterative/Accelerative Model

Spiral Model

The spiral model is a combination of the iterative model and the waterfall model. It allows software to be built taking into account risks that are not accounted for in other models. The goal is to prototype the software with a strong emphasis on risk analysis. The spiral model allows for the gradual release and improvement of the product in each iteration.

Spiral Model

Agile Model

Agile is a software development methodology that is actually a philosophy of deploying an application in a much more organized and faster way. Simply put, agile is a chain of rapid development and implementation. The agile model breaks the application into small pieces of code following the microservices model to adapt to changing business requirements and helps build software incrementally using short iterations.

The Software Development Lifecycle, which also has different models such as the Big Bang Model WIP, and DevOps Model creates basic steps that you can follow in software development processes and allows you to get clearer results.

Agile Model

How does the SDLC address security?

In traditional software development, security testing was a separate process from the software development lifecycle (SDLC). The security team could only find security flaws after the software was built. This led to a high number of bugs that remained hidden, as well as more security risks.

Today, most teams see security as an integral part of the software development lifecycle. You can address security by following DevSecOps practices in the SDLC and performing security assessments throughout the entire SDLC process.

DevSecOps

DevSecOps is the practice of integrating security testing at every stage of the software development process. It includes tools and processes that foster collaboration between developers, security experts, and operations teams to build software that is robust against modern threats. It also ensures that security assurance activities such as code review, architecture analysis, and penetration testing are an integral part of the development effort.

DevSecOps

Why Is DevSecOps Important?

Data breaches are frequent and costly, which is why DevSecOps is so important. Between 2019 and 2020, 80% of companies experienced some form of data breach, and most of these were due to misconfigured access controls. According to a report from IBM, the average cost of a data breach last year increased from $3.86 million to $4.24 million.

In addition, consumers have become increasingly concerned about data privacy. Therefore, to protect their reputation, companies need to build secure applications that protect sensitive customer data. An insecure software version eventually needs to be sent back for patching, which can be costly and damage a business’s reputation.

Huawei Cloud CodeArts

CodeArts is a one-stop DevSecOps platform that provides out-of-the-box cloud services for requirement delivery, code commit, check, build, verification, deployment, and release throughout the entire software lifecycle.

Supports customization and automation of code check, build, test, and deployment tasks, and provides continuous delivery pipelines with visualized orchestration, one-click application deployment, and zero wait for release.

Incorporates guidelines and experience from Huawei into CodeArts Req, CodeArts Check, CodeArts TestPlan, and CodeArts Pipeline, effectively improving application R&D quality and detecting issues as early as possible.

With CodeArts Req, you can realize the planning and analysis side of the SDLC process.

Huawei Cloud CodeArts

The design phase in SDLC processes will be provided by design teams to developers. DevSecOps tools mostly do not cover design. Because design knowledge is a very different specialty.

With CodeArts Repo, you can do everything necessary in the Development phase of SDLC. During the software development phase, you can make different teams branch out and do their tasks merge them into a common master repo, and productize them with this service.

You can analyze the security checks and coding errors of this produced and developed application with CodeArts Check. If there are any security vulnerabilities and coding deficiencies in the developed code, CodeArts Check service provides you with a report by analyzing these errors in detail and you revise your application according to this report and eliminate your errors.

The part where this application, which is passed through security and code checks, starts to turn into a product in the live environment to be built, is realized with the CodeArts Build service. The codes written are compiled with the relevant build tools and turned into a package. Then you take this package and deploy it anywhere and make it ready for the end user’s use.

These compiled and built software versions are kept on CodeArts Artifact Service in order to go back and create an archive against possible problems. You can access your old builds through this service and get the deployment of the relevant version.

An application should not be deployed in any way without being tested, the application must be tested before it reaches the end user and the customer and any problems must be resolved. Software testing is a specialty and test plans should be meticulously established. With CodeArts TestPlan, you can test your related software with test scenarios.

Huawei Cloud CodeArts Procedure

After all these steps are completed, the CI/CD Pipeline phase is a must for software in modern architectures. By setting up the CI/CD pipeline, it is necessary to automate the deployment of your application to the appropriate host environment after all the changes and completed steps. Here, different CI/CD tools come into play. With CodeArts Pipeline, we can build our CI/CD processes from scratch and perform our deployments to the relevant host environment. Thus, after all the above items are completed, we automatically deliver our software to the end user.

CodeArts Service provides you with all the tools you need in a software development lifecycle. This service is one of Huawei Cloud’s most powerful services and is highly recommended.

Huawei Cloud CodeArts Service Link =>

https://www.huaweicloud.com/intl/en-us/product/devcloud.html

To explore Huawei Cloud services to the fullest with a $100 promo code, apply to the Huawei Cloud Developer Program to receive your promo code and start exploring the Huawei Cloud. =>

https://developer.huaweicloud.com/intl/en-us/develop/dev-program.html

Huawei Cloud CodeArts Features

Conclusion

In this article, we looked at the modern SDLC concept and how Huawei Cloud CodeArts helps us to develop our software on the cloud and deliver it to the end user. I wish you error-free and bug-free SDLCs while developing your software.

References

--

--

Mehmet Altuğ Akgül
Huawei Developers

Electrical and Electronics & Cloud Product Manager • MBA • Trader • Investor • Lifelong Learner • ✉ info@altug.dev