Phases of The SDLC and Software Design
Phases of The SDLC and Software Design
Phases of The SDLC and Software Design
Following are the stages that most SDLC frameworks have in common:
2. Define Requirements
This phase is critical for converting the information gathered during the planning and
analysis phase into clear requirements for the development team. This process guides the
development of several important documents: a software requirement specification (SRS)
or product specification, a Use Case document, and a Requirement Traceability Matrix
document.
3. Design
The design phase is where you put pen to paper so to speak. The original plan and vision
are elaborated into a software design document (SDD) that includes the system design,
programming language, templates, platform to use, and application security measures. This
is also where you can flowchart how the software responds to user actions.
In most cases, the design phase will include the development of a prototype model.
Creating a pre-production version of the product can give the team the opportunity to
visualize what the product will look like and make changes without having to go through the
hassle of rewriting code.
4. Development
The actual development phase is where the development team members divide the project
into software modules and turn the software requirement into code that makes the product.
This SDLC phase can take quite a lot of time and specialized development tools
important to have a set timeline and milestones so the software developers understand the
expectations and you can keep track of the progress in this stage.
In some cases, the development stage can also merge with the testing stage where
certain tests are run to ensure there are no critical bugs.
Keep in mind, different types of product development software will have different specialties
5. Testing
important to have your quality assurance team perform validation testing to make sure it is
so help hash
out any major user experience issues and security issues.
In some cases, software testing can be done in a simulated environment. Other
simpler tests can also be automated.
6. Deployment
During the deployment phase, your final product is delivered to your intended user. You can
automate this process and schedule your deployment depending on the type. For example, if
you are only deploying a feature update, you can do so with a small number of users (canary
release). If you are creating brand-new software, you can learn more about the
different stages of the software release life cycle (SRLC).
7. Maintenance
the waterfall structure of the software development process. However, the industry is
moving towards a more agile software development approach where maintenance is only a
stage for further improvement.
In the maintenance stage, users may find bugs and errors that were missed in the earlier
testing phase. These bugs need to be fixed for better user experience and retention. In some
cases, these can lead to going back to the first step of the software development life cycle.
The SDLC phases can also restart for any new features you may want to add in your next
release/update.
Software Design
Software design is a method that converts user requirements into a suitable form for the
programmer to employ in software coding and implementation. It is concerned with
converting the client's requirements as defined in the SRS (Software Requirement
Specification) document into a form that can be easily implemented using a programming
language. A good software designer needs to have knowledge of what software engineering is.
The software design phase is the first step in the SDLC (Software Development Life
Cycle) that shifts the focus from the problem domain to the solution domain. In software
design, the system is viewed as a collection of components or modules with clearly defined
behaviors and bounds.
Objectives of Software Design
1. Correctness: A good design should be correct, which means that it should correctly
implement all of the system's features.
2. Efficiency: A good software design should consider resource, time, and cost
optimization parameters.
3. Understandability: A good design should be easy to grasp, which is why it should be
modular, with all parts organized in layers.
4. Completeness: The design should include all components, such as data structures,
modules, and external interfaces, among others.
5. Maintainability: A good software design should be flexible when the client issues a
modification request.
Levels of Software Design
1.Architectural Design
A system's architecture can be defined as the system's overall structure and how that
structure offers conceptual integrity to the system. The architectural design characterizes the
software as a system with numerous interconnected components. The designers acquire an
overview of the proposed solution domain at this level.
2.High-level Design
The high-level design deconstructs the architectural design's 'single entity-multiple
component' notion into a less abstract perspective of subsystems and modules, depicting their
interaction with one another. High-level design is concerned with how the system and its
components can be implemented as modules. It recognizes the modular structure of each
subsystem, as well as their relationship and interaction with one another.
3.Detailed Design
After the high-level design is completed, the detailed design begins. Each module is
extensively investigated at this level of software design to establish the data structures and
algorithms to be used. Finally, a module specification document is used to document the
stage's outcome. It defines the logical structure of each module as well as its interfaces with
other modules.