Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
4 views14 pages

SDLC Notes

The document outlines the importance of stakeholder involvement in the Software Development Life Cycle (SDLC), emphasizing their role in requirements gathering, design verification, and user acceptance testing. It details the phases of SDLC, including requirement analysis, design, coding, testing, and deployment, highlighting the need for collaboration among various roles such as project managers, developers, and testers. Additionally, it discusses coding standards and the significance of quality assurance in ensuring the final product meets user needs and business objectives.

Uploaded by

Rushik Gaming
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views14 pages

SDLC Notes

The document outlines the importance of stakeholder involvement in the Software Development Life Cycle (SDLC), emphasizing their role in requirements gathering, design verification, and user acceptance testing. It details the phases of SDLC, including requirement analysis, design, coding, testing, and deployment, highlighting the need for collaboration among various roles such as project managers, developers, and testers. Additionally, it discusses coding standards and the significance of quality assurance in ensuring the final product meets user needs and business objectives.

Uploaded by

Rushik Gaming
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

SDLC

Stakeholder
Stakeholder refers to the people or groups affected by a software
development project. Stakeholders exist both within the organization
and outside of it. They may be end users, or they might simply be
affected by the process. Either way, they have a vested interest in the
final product. The stakeholders can use the requirements and design
documents to plan for necessary changes to the business processes and
business rules while the developers are working on the program code.
The primary stakeholders in a typical corporation are its investors,
employees, customers, and suppliers.

Active stakeholder participation is vital to the success of IT projects.


Stakeholders should be kept engaged throughout the life of the
project. Without the fully engaged cooperation of the stakeholders, it
is difficult to have a successful software development project. This is
especially true in agile development, where everything is moving very
quickly and so much depends on the Product Owner obtaining a
complete understanding of the stakeholder needs and communicating
these needs to the development team.

The most important and obvious involvement for the stakeholder is


during requirements development. Stakeholders have the most
knowledge of the processes involved and their input is imperative to
your project’s success. Using the requirements, the stakeholders can
stay involved during the rest of the project.

In the design phase, the stakeholders need to be involved to verify that


their requirements are correctly interpreted in the design. The
stakeholders often need to clarify requirements in both the design and
development activities. The stakeholders can use the requirements and
design documents to plan for necessary changes to the business
processes and business rules while the developers are working on the
program code.

In User Acceptance Testing (UAT), the stakeholders can validate that


the developers correctly converted the design into the expected
functional product. After delivery, stakeholders should be asked if the
product satisfied their needs and met the business objectives. They are
asked questions like:

• Was the product outcome what they anticipated?


• Was their user group made aware of process modifications due to
software improvements?
• Were their needs addressed?

Collaboration with the stakeholders throughout the project will make


the majority of these answers affirmative and make sure all of the
steps are less painful, as well as reduce time and money spent on
rework.

Software Development Life Cycle


SDLC or the Software Development Life Cycle is a process that
produces software with the highest quality and lowest cost in the
shortest time possible. SDLC provides a well-structured flow of phases
that help an organization quickly produce high-quality software which
is well-tested and ready for production use.

The SDLC methodology focuses on the following phases of software


development:
• Requirement Analysis
• Design
• Coding
• Testing
• Deploy
• Maintenance
Requirement Analysis
The requirement is the first stage in the SDLC process. It is conducted
by the senior team members with inputs from all the stakeholders and
domain experts in the industry. Planning for the quality
assurance requirements and recognition of the risks involved is also
done at this stage.
This stage gives a clearer picture of the scope of the entire project and
the anticipated issues, opportunities, and directives that triggered the
project.
Requirements Gathering stage needs teams to get detailed and precise
requirements. This helps companies to finalize the necessary timeline
to finish the work of that system.
The feasibility study is conducted with the help of the ‘Software
Requirement Specification document also known as ‘SRS’ document. It
includes everything which should be designed and developed during
the project life cycle.

There are mainly five types of feasibilities checks:


• Economic: Can we complete the project within the budget or
not?
• Legal: Can we handle this project as cyber law and other
regulatory frameworks/compliances?
• Operation feasibility: Can we create operations that are
expected by the client?
• Technical: Need to check whether the current computer system
can support the software
• Schedule: Decide whether the project can be completed within
the given schedule or not.

Design
In this third phase, the system and software design documents are
prepared as per the requirement specification document. This helps
define the overall system architecture.
This design phase serves as input for the next phase of the model.
There are two kinds of design documents developed in this phase:
A secure SDLC refers to adding security details in the whole software
development life cycle process. It follows a gradual approach to
creating scalable software to streamline the software or product
pipeline.
Besides, secure SDLC also develops features that optimize the
software’s maintenance, design, or deployment. And it’s an integral
part of development in any modern software company.

The secure SDLC helps in the timely recognition of risks and


vulnerabilities in the application/software security. While doing this, it
makes sure that the matter of a secure SDLC is an uninterrupted
process.

High-Level Design (HLD) Refer notes for HLD and LLD


Brief description and name of each module
An outline of the functionality of every module
Interface relationship and dependencies between modules
Database tables identified along with their key elements
Complete architecture diagrams along with technology details

Low-Level Design (LLD)


Functional logic of the modules
Database tables, which include type and size
Complete detail of the interface
Addresses all types of dependency issues
Listing of error messages
Complete input and outputs for every module

The key activities for the design phase are to review the end user
interface design, create the technical design, and perform quality
verification and validation.

1. Review the end user interface design.


Before the project manager can conduct the first key activity, the
designer uses the project's storyboards to create the end user interface
in terms of appearance, layout, and interaction techniques as seen by
the end users.

The project manager evaluates the design to ensure that it meets the
users' needs and the corporate standards. The project manager then
meets with the designer and explains what's wrong and what's missing
from the proposed design. If the project manager is not satisfied with
the design, the designer applies the necessary corrections, and the
project manager reviews it again.

When a project manager looks at a design, he or she compares it to the


inputs listed below. This evaluation is important because the developer
will not be able to properly test the completed product during the
testing phase if the design doesn't meet these requirements. If testing
can't be conducted properly, the product can't move into the rollout
phase.

User needs. Does the design include each of the user requirements?
Is each of the user requirements correctly incorporated into the
design?
Corporate standards. Does the design include all the standards that
specify products or technologies that the development team will use?
Are the standards properly implemented in the design?

2. Create the technical design.


Although PMs do not conduct the last two key activities of the design
phase, they must understand each activity. The designer and
technical architect conduct the technical design activity to decide how
they will implement the project design. By using the requirements
specifications input as a guide, they create a document that includes
the sections listed below. The technical design is then given to the PM
to serve as the blueprint for the project.
Framework. The framework is a design that can be reused on a
software development project. For example, the text entry field used
on a user interface framework can be reused in a database design.

• Coding standards. Programmers have to follow these rules to


ensure consistency in the programming code since usually, more
than one programmer will work on a project. A
sample coding standard might read, "Do not use capital letters
for file names when coding."
• Task breakdown. Development is divided into tasks
created separately and then integrated into a final product. Task
breakdown makes it easier for a PM to assign work during
the construction phase. For example, three tasks might be the
user interface, the database, and the help feature.
• Project timeline. A timeline for completion is estimated for each
task required to complete the project. For example, it will take
four days to create the user interface, three days for the
database, and two and a half days for the help feature, for a
total of nine and a half days.

3. Perform quality verification and validation.


As in the technical design activity, the project manager does not have
a part in conducting the final key activity of the design phase, except
to receive a sign-off form. During quality verification and validation,
end users and technical personnel verify and validate that the
proposed design meets the user and quality requirements.
Upon completion of the review, an approval form is given to the
project manager, indicating approval of the completed system design.
This sign-off then becomes one of the milestones for the design phase.

Roles & Responsibilities for Design Phase in SDLC

The following people participate in the work activities of the SDLC


Design Phase. Their roles are as follows:

Customer
The customer sponsors the project and signs the team effort. Plus, it
also reviews the strategy and the artifacts.

Business Analyst
They provide the requirements to the design team and review the
software design and artifacts.

Project Manager
The project managers finalize the data conversion strategy and the
test strategy. Plus, they review the software design and artifacts.

Technical-Architect, Tech-Designer, Design Team


They design the system architecture, software components, etc., along
with the design walk-through.

Developer/ Construction Team


They assist in finalizing the data conversion strategy. Plus, also
reviewed the architecture and the software components.

Testing Team/ Tester


They assist with identifying and finalizing the testing strategy. Plus,
reviewing the architecture and software components.
Database Team
The database team assists with architecture design and data
conversion strategy. The Technical Architect plays the most crucial
role and aims to describe the required functions and operations like
screen layout, business rules, and system database layout in detail and
provides the architectural plan down to the physical level. A system
architecture is not just a product of requirements but a result of
organizational goals, architect experience, and the technical
environment.

Coding

Once the system design phase is over, the next phase is coding. In this
phase, developers start to build the entire system by writing code
using the chosen programming language. In the coding phase, tasks are
divided into units or modules and assigned to the various developers. It
is the longest phase of the Software Development Life Cycle process.

In this phase, the Developer needs to follow certain predefined coding


guidelines. They also need to use programming tools like compilers,
interpreters, and debuggers to generate and implement the code.

Characteristics of a programming Language –


• A programming language must be simple, easy to learn and use,
have good readability, and be human-recognizable.
• Abstraction is a must-have characteristic for a programming
language in which the ability to define the complex structure and
then its degree of usability comes.
• A portable programming language is always preferred.
• Programming language’s efficiency must be high so that it can be
easily converted into machine code and executed consumes little
space in memory.
• A programming language should be well structured and
documented so that it is suitable for application development.
• Necessary tools for the development, debugging, testing, and
maintenance of a program must be provided by a programming
language.
• A programming language should provide a single environment
known as Integrated Development Environment(IDE).
• A programming language must be consistent in terms of syntax
and semantics.

Coding Standards and Guidelines

Different modules specified in the design document are coded in the


Coding phase according to the module specification. The main goal of
the coding phase is to code from the design document prepared after
the design phase through a high-level language and then to unit test
this code.
Purpose of Having Coding Standards:
• A coding standard gives a uniform appearance to the codes
written by different engineers.
• It improves readability and maintainability of the code and it
reduces complexity also.
• It helps in code reuse and helps to detect errors easily.
• It promotes sound programming practices and increases the
efficiency of the programmers.

Some of the coding standards

Limited use of global:


These rules tell about which types of data can be declared global and
the data that can’t be.

Standard headers for different modules:


For better understanding and maintenance of the code, the header of
different modules should follow some standard format and
information.

Naming conventions for local variables, global variables, constants,


and functions:
Some of the naming conventions are:
• Meaningful and understandable variables’ name helps anyone to
understand the reason for using them.
• It is better to avoid the use of digits in variable names.
• The names of the function should be written in camel case
starting with small letters.
• The name of the function must describe the reason for using the
function clearly and briefly.

Indentation:
Proper indentation is very important to increase the readability of the
code. For making the code readable, programmers should use white
spaces properly.
Avoid using a coding style that is too difficult to understand:
The code should be easily understandable. The complex code makes
maintenance and debugging difficult and expensive.

Code should be well documented:


The code should be properly commented on for understanding easily.
Comments regarding the statements increase the understandability of
the code.

Advantages of Coding Guidelines:


• Coding guidelines increase the efficiency of the software and
reduce the development time.
• Coding guidelines help in detecting errors in the early phases, so
it helps to reduce the extra cost incurred by the software
project.
• If coding guidelines are maintained properly, then the software
code increases readability and understandability thus it reduces
the complexity of the code.
• It reduces the hidden cost of developing the software.

Testing

Once the software is complete, it is deployed in the testing


environment. The testing team starts testing the functionality of the
entire system. This is done to verify that the entire application works
according to the customer’s requirements.

During this phase, QA and testing team may find some bugs/defects
which they communicate to developers. The development team fixes
the bug and sends it back to QA for a re-test. This process continues
until the software is bug-free, stable, and working according to the
business needs of that system.

Role of Testing in Software Development

The procedure can help software teams in validating the functional


and non-functional features and requirements of projects.
New features can influence the functionalities of previously deployed
features. Testing can help you to catch these problems before they
interfere with the end product.
If testing is done in the early stages of the project, it is much easier to
detect hidden errors. Therefore, the cost of resolving these bugs is
minimal when compared to the later stages. Since the testing
procedure gets rid of the critical bugs of the software, it makes your
end product superior compared to that of your competitors.

The quality of the product speaks for itself and users can recognize the
difference in quality and experience. Not only can testing invoke
greater engagement from users, but it can also minimize the overall
development and maintenance costs of the project.

Categorization of Roles in Software Testing

Every organization has its team structure, but there are a few positions
that need to be filled either by role or responsibility. These positions
are critical to the success of testing teams because they cover
different aspects of the testing process. These are:
1. QA Engineer
This position generally covers more than testing processes. A software
quality assurance engineer constantly monitors every phase of the
software development process and makes sure that the developed
software meets quality standards. Additionally, they make sure that
the software products work seamlessly without errors before they are
pushed into production

2. Test Manager
A test manager acts as a project manager. This is a management
position within the QA or test team, which is very common for custom
software outsourcing organizations.

3. Test Engineer
This is generally used as an umbrella term to cover many capabilities.
It can refer to many engineers specialized in various testing
approaches, such as manual testing, exploratory testing, performance
testing, etc. It is also widely used to infer a testing position that
minimally relies on automation.

4. Test Analyst
This is a position that, rather than being more technical, focuses on
business problems. Test analysts ensure the functional readiness of the
application is acceptable before it is pushed into production. They
generally design, develop, run, and troubleshoot tests to catch any
defects or errors in the code in pre-production environments.
5. Test Automation Engineer
This is a widely spread position among enterprises representing an
engineer who codes (most likely a developer), but whose sole focus is
on automating test processes. These people use testing frameworks
such as Selenium, Cucumber, or others to effectively design and write
new test cases. Another great advantage of test automation engineers
is that they are well versed in GUI design and software testing.

Deployment

Once the software testing phase is over and no bugs or errors are left
in the system then the final deployment process starts. Based on the
feedback given by the project manager, the final software is released
and checked for deployment issues if any.

Tasks and Activities – SDLC Deployment Phase

The tasks and activities in the SDLC Deployment Phase are associated
with specific deliverables. They are performed depending on the
nature of the project.

Communicate New Deployment to the Users


This includes
• The deployment schedule.
• A brief description of the benefits of the new system.
• The difference between the old and the new system.
• The responsibilities of the end-user affected by the deployed
changes.
• The process of obtaining technical support, including phone
numbers and contact numbers.

Execute the Training Plan


It ensures that you are executing the desired training plan.

Perform the Data Entry or Conversion


It makes sure that you are performing the data entry or the necessary
conversion if required.

Install the System


It ensures that the system is fully operational and installs the system in
a production house.
Post-Deployment Review
It documents the deployment experiences, recommends system
enhancements, and guides future projects.

Revise Previous Documentations


All the relevant documents must be reviewed and updated, considering
all the changes introduced by the project. For example, report
documentation must always reflect the current state of the report.

The project manager is responsible for the successful execution of


software deployment. So, the managers must review the deliverable,
and deployment status and report to management. The managers are
accountable for filling out the deployment checklist and informing the
management that the deployment is successfully done.

Maintenance

Once the system is deployed, and customers start using the developed
system, the following 3 activities occur

• Bug fixing – bugs are reported because of some scenarios which


are not tested at all
• Upgrade – Upgrading the application to the newer versions of the
Software
• Enhancement – Adding some new features to the existing
software

The main focus of this SDLC phase is to ensure that needs continue to
be met and that the system continues to perform as per the
specification mentioned in the first phase

There are four types of software maintenance:

1. Corrective Software Maintenance

Corrective software maintenance addresses the errors and faults


within software applications that could impact various parts of
your software, including the design, logic, and code. These
corrections usually come from bug reports that were created by
users or customers – but corrective software maintenance can
help to spot them before your customers do, which can help your
brand’s reputation.
2. Adaptive Software Maintenance

Adaptive software maintenance becomes important when the


environment of your software changes. This can be brought on by
changes to the operating system, hardware, software
dependencies, cloud storage, or even changes within the
operating system. Sometimes, adaptive software maintenance
reflects organizational policies or rules as well. Updating
services, making modifications to vendors, or changing payment
processors can all necessitate adaptive software maintenance.

3. Perfective Software Maintenance

Perfective software maintenance focuses on the evolution of


requirements and features that exist in a system. As users
interact with applications, they may notice things that are not
done or suggest new features that they would like as part of the
software, which could become future projects or enhancements.
Perfective software maintenance takes over some of the work,
both adding features that can enhance user experience and
removing features that are not effective and functional. This can
include features that are not used or those that do not help to
meet the end goals.

4. Preventive Software Maintenance

Preventative software maintenance helps to reduce the risk


associated with operating software for a long time, helping it to
become more stable, understandable, and maintainable.
Updating software environments, reducing deterioration, and
enhancing what is already there to help satisfy the needs of all
users are also included in the software maintenance examples.

You might also like