0% found this document useful (0 votes)
16 views

Week-3-Software-Development-Life-Cycle

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Week-3-Software-Development-Life-Cycle

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Software Development Life Cycle

Activity
Instruction:
Below are the scrambled words pertaining to the different phases/stages of Software
Development Life Cycle. Unscramble them carefully by writing in the provided space in order to
determine the correct word for each scrambled word.
 ettgisn - ____________________________
 pganninl - ____________________________
 ptdnemlyoe - ____________________________
 gsdnie - ____________________________
 onedeemltvp - ____________________________
 merntieeurq nyiassla - ____________________________

Activity
Instruction:
After unscrambling the scrambled words in the Activity 1, determine the correct order of
phases/stages of Software Development Life Cycle to be implemented by writing them in the space
provided.
1. ____________________________
2. ____________________________
3. ____________________________
4. ____________________________
5. ____________________________
6. ____________________________

Software Development Life Cycle (SDLC)


The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes
for creating high-quality software. In detail, the SDLC methodology focuses on the following phases of
software development:
 Requirement Analysis
 Planning
 Software design such as architectural design
 Software development
 Testing
 Deployment

Software Development Life Cycle Page 1 of 11


What is the 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 to quickly produce high-quality software which is well-tested and ready for production use.
The SDLC involves six phases as explained in the introduction. Popular SDLC models include the
waterfall model, spiral model, and Agile model. So, how does the Software Development Life Cycle work?
How the SDLC Works?
SDLC works by lowering the cost of software development while simultaneously improving quality
and shortening production time. SDLC achieves these apparently divergent goals by following a plan that
removes the typical pitfalls of software development projects. That plan starts by evaluating existing systems
for deficiencies.
Next, it defines the requirements of the new system. It then creates the software through the stages of
analysis, planning, design, development, testing, and deployment. By anticipating costly mistakes like failing
to ask the end-user or client for feedback, SLDC can eliminate redundant rework and after-the-fact fixes. It’s
also important to know that there is a strong focus on the testing phase. As the SDLC is a repetitive
methodology, you have to ensure code quality at every cycle. Many organizations tend to spend few efforts
on testing while a stronger focus on testing can save them a lot of rework, time, and money. Be smart and
write the right types of tests.

SDLC Stages and Best Practices


Following the best practices and/or stages of SDLC ensures the process works in a smooth, efficient,
and productive way.
1. Requirement Analysis: Identify the Current Problems

“What are the current problems?” This stage of the SDLC means getting input from all stakeholders,
including customers, salespeople, industry experts, and programmers. Learn the strengths and weaknesses
of the current system with improvement as the goal.

Software Development Life Cycle Page 2 of 11


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 recognization 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 which
triggered the project. Requirements Gathering stage need teams to get detailed and precise requirements.
This helps companies to finalize the necessary timeline to finish the work of that system.

2. Planning

“What do we want?” In this stage of the SDLC, the team determines the cost and resources required for
implementing the analyzed requirements. It also details the risks involved and provides sub-plans for
softening those risks. In other words, the team should determine the feasibility of the project and how they
can implement the project successfully with the lowest risk in mind.

Once the requirement analysis phase is completed the next step is to define and document software needs.
This process conducted with the help of '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 framework/compliances.
 Operation feasibility: Can we create operations which is expected by the client?
 Technical: Need to check whether the current computer system can support the software
 Schedule: Decide that the project can be completed within the given schedule or not.

3. Architectural Design

“How will we get what we want?” This phase of the SDLC starts by turning the plan (software
specifications) into a design plan called the Design Specification. All stakeholders then review this plan
and offer feedback and suggestions. It’s crucial to have a plan for collecting and incorporating stakeholder
input into this document. Failure at this stage will almost certainly result in cost overruns at best and the
total collapse of the project at worst.

In this third phase, the system and software design documents are prepared as per the requirement
specification document. This helps define 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:

High-Level Design (HLD)


 Brief description and name of each module
 An outline about 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

Software Development Life Cycle Page 3 of 11


4. Software Development: Build

“Let’s create what we want.” At this stage, the actual development starts. It’s important that every developer
sticks to the agreed blueprint. Also, make sure you have proper guidelines in place about the code style and
practices. For example, define a nomenclature for files or define a variable naming style such as camelCase.
This will help your team to produce organized and consistent code that is easier to understand but also to
test during the next phase.

Once the system design phase is over, the next phase is coding. In this phase, developers start 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, Developer needs to follow certain predefined coding guidelines. They also need to use
programming tools like compiler, interpreters, debugger to generate and implement the code.

5. Testing: Code Test

“Did we get what we want?” In this stage, we test for defects and deficiencies. We fix those issues until the
product meets the original specifications. In short, we want to verify if the code meets the defined
requirements.

Once the software is complete, and 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 requirement.

During this phase, QA and testing team may find some bugs/defects which they communicate to
developers. The development team fixes the bug and send 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.

6. Software Deployment

“Let’s start using what we got.” At this stage, the goal is to deploy the software to the production
environment so users can start using the product. However, many organizations choose to move the product
through different deployment environments such as a testing or staging environment. This allows any
stakeholders to safely play with the product before releasing it to the market. Besides, this allows any final
mistakes to be caught before releasing the product.

Once the software testing phase is over and no bugs or errors 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.

Extra Stage/Phase: Software Maintenance


“Let’s get this closer to what we want.” The plan almost never turns out perfect when it meets reality.
Further, as conditions in the real world change, we need to update and advance the software to match. The
Development Operations movement has changed the SDLC in some ways. Developers are now responsible
for more and more steps of the entire development process. We also see the value of shifting left. When
development and Operation teams use the same toolset to track performance and pin down defects from
inception to the retirement of an application, this provides a common language and faster handoffs between
teams. Application performance monitoring (APM) tools can be used in a development, Quality Assurance

Software Development Life Cycle Page 4 of 11


(QA), and production environment. This keeps everyone using the same toolset across the entire
development lifecycle.
Most common SDLC examples or SDLC models
 Waterfall Model

This SDLC model is the oldest and most straightforward. With this methodology, we finish one phase
and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into the next. The
biggest drawback of this model is that small details left incomplete can hold up the entire process.

 Agile Model

The Agile SDLC model separates the product into cycles and delivers a working product very
quickly. This methodology produces a succession of releases. Testing of each release feeds back info that’s
incorporated into the next version. According to Robert Half, the drawback of this model is that the heavy
emphasis on customer interaction can lead the project in the wrong direction in some cases.

Software Development Life Cycle Page 5 of 11


 Iterative Model

This SDLC model emphasizes repetition. Developers create a version very quickly and for relatively
little cost, then test and improve it through rapid and successive versions. One big disadvantage here is that
it can eat up resources fast if left unchecked.

 V-Shaped Model

An extension of the waterfall model, this SDLC methodology tests at each stage of development. As
with waterfall, this process can run into roadblocks.

 Big Bang Model

This high-risk SDLC model throws most of its resources at development and works best for small
projects. It lacks the thorough requirements definition stage of the other methods.

Software Development Life Cycle Page 6 of 11


 Spiral Model

The most flexible of the SDLC models, the spiral model is similar to the iterative model in its
emphasis on repetition. The spiral model goes through the planning, design, build and test phases over and
over, with gradual improvements at each pass.

Benefits of the SDLC


 SDLC if done right can allow the highest level of management control and documentation. Developers
understand what they should build and why. All parties agree on the goal upfront and see a clear plan for
arriving at that goal. Everyone understands the costs and resources required.

 Several pitfalls can turn an SDLC implementation into more of a roadblock to development than a tool that
helps us. Failure to take into account the needs of customers and all users and stakeholders can result in a
poor understanding of the system requirements at the outset. The benefits of SDLC only exist if the plan is
followed faithfully.

To understand more how project teams follow the SDLC, let’s look at several software development life cycle
examples based on real-life projects carried out by ScienceSoft a professional software development
company.

Innovative CMS platform


The project was initiated upon the request of a company delivering web content management
solutions. Discussing the project scope, they found out that the customer needed to turn around their content
management system (CMS) to create a brand-new product with advanced User Interface (UI). The new CMS
was to provide the most intuitive and efficient way to create and manage websites, intranets and mobile
solutions for enterprises.

Software Development Life Cycle Page 7 of 11


With this in mind, the team got down to the platform development. The Project Manager (PM) decided
to build the solution applying the Agile software development methodology, which allowed a gradual
evolution of the system. The team started with using an open source web framework but replaced it with a
custom web framework, which helped protect the Application Program Interface (API) of the CMS from any
unpredictable change associated with using open source software. Then, working in short iterations, the team
enriched the CMS with responsive admin UI and a visual editor providing rich design options for layout
templates. Besides, the team made the platform support real-time updates and ensured secure access to its
content.

At the solution stabilization stage, a test automation specialist ensured that the system worked as
intended. The custom web framework that the team created specifically for this project facilitated continuous
and efficient testing.

Then the product was finally delivered to the customer. They got an innovative CMS platform with
modern and flexible architecture.

The team has been supporting and maintaining the platform for 4+ years already. The cooperation
between the customer and their outsourced development team has strengthened over the years after the product
launch and turned into a strategic and friendly relationship.

Hybrid applications for streaming


A company providing video streaming services requested the assistance of ScienceSoft outsourcing
software development specialists to advance their streaming services provision. The project scope included
hybrid applications development for users to watch online streams on smartphones, tablets, TV, gaming
consoles and in browsers.

Getting down to the application’s development, a team of their mobile application developers joined
the customer’s project team under T&M pricing model. In the course of the project, the team created a
framework based on Backbone.js, which decreased development costs and accelerated solution delivery. The
new architecture made it easy to update, implement new features and manage UI/UX in the cloud. The team
also added the SVOD (Subscription video on demand) and movie rental features, which ensured smoother
user experience in video content management.

After the product stabilization, the team successfully delivered customizable multi-screen applications
requested by the customer.

The ScienceSoft have been partnering with the customer for 5+ years already, ensuring the
product’s maintenance and extending the framework.

Alternative Web Browser


Outsourcing software development to their company, a web surfing solutions provider wanted to get an
all-in-one web browser combining numerous media applications and services for Mac.

The team started with defining the project scope. It included the creation of a Mac version of the
browser, a system of updates for Mac and Windows, a system of auto-updates, and enabling torrent downloads
directly from the browser.

After defining the project requirements, ScienceSoft got down to the software development phase. Like
in the previous software development life cycle examples, their Project Manager (PM) chose the Agile
software development model. Thus, the solution got several releases with the required features implemented
in each new release.

Software Development Life Cycle Page 8 of 11


First, they finished the Chromium-based browser for Mac and created a custom Mac installer. Then,
they proceeded to the implementation of the requested system of updates and an auto-updates subsystem. After
that, they catered for high-speed and handy torrent downloads directly from the browser. At the end, they
integrated the browser with major social networks and content sharing platforms, making it a single access
point for them.

After the solution stabilization, they delivered the software to the customer. So, they got a browser
that integrates various music and video storage places relieving users from the necessity to navigate among
numerous web applications to enjoy their favorite media content.

Their support and maintenance team has been involved in improving the browser user experience for
two years by regularly updating it and delivering new features.

Summing up
These illustrative software development life cycle examples show that the customer can get a high-
quality product meeting their expectations provided the project team follow SDLC. Defining project scope
correctly is of critical importance in the project flow as developers should understand what they are expected
to build and create a clear plan how to do it. Neglecting the customers’, stakeholders’ or users’ needs can
result in a project failure. At the beginning of the development stage, the project team chooses a software
development approach and pricing model. After they have implemented and integrated all the required
features, testing engineers assure the quality of the software. After the software is delivered to the customer,
the developers continue maintaining and supporting the delivered product or solution.

Software Development Life Cycle


Hotel and Resort Reservation System
1. Project Initiation:
 Identify key stakeholders, including hotel management, staff, and potential users.
 Define the project scope, including the types of reservations (rooms, dining, activities, etc.) to be
managed.
 Conduct a feasibility study to assess the technical and financial viability.
 Create a project charter outlining project goals, objectives, and initial timelines.

2. Planning:
 Conduct detailed requirements gathering sessions with hotel staff and end-users to understand their
needs.
 Develop a comprehensive requirement document specifying functional and non-functional
requirements.
 Design an architecture that supports scalability, security, and integration with other hotel systems.
 Create a project plan with tasks, timelines, resource allocation, and dependencies.
 Identify and analyze potential risks and develop risk mitigation strategies.

3. Design:
 Create a database schema to store reservation data, including guest information, room availability, and
pricing.
 Design the user interface, considering user experience and accessibility.
 Develop data flow diagrams and system flowcharts to illustrate how data moves through the system.
 Define the reservation algorithms and logic for room assignment, availability checks, and pricing
calculations.

Software Development Life Cycle Page 9 of 11


 Choose appropriate technology stacks and frameworks for development.

4. Development:
 Write code for the reservation system, following coding standards and best practices.
 Implement authentication and authorization mechanisms to ensure data security.
 Develop APIs or services for integration with third-party systems (e.g., payment gateways).
 Perform unit testing for each module to identify and fix defects.
 Continuously integrate code changes and conduct automated builds and tests.

5. Testing:
 Execute system testing to verify that the entire reservation system works as expected.
 Conduct user acceptance testing (UAT) with hotel staff and end-users to validate usability and
functionality.
 Perform load testing to assess the system's performance under various levels of traffic.
 Identify and document defects and issues, prioritizing them for resolution.
 Regression testing ensures that new changes do not introduce new defects.

6. Deployment:
 Develop a deployment plan, including rollback procedures in case of issues.
 Configure production servers and databases, ensuring high availability and scalability.
 Migrate existing reservation data to the new system, if applicable.
 Train hotel staff on how to use the reservation system effectively.
 Monitor system health during and after deployment to address any immediate issues.

7. Maintenance and Support:


 Provide ongoing support and maintenance to address user-reported issues and bug fixes.
 Regularly update the system to introduce new features or enhancements based on user feedback.
 Perform routine system backups and data maintenance tasks.
 Monitor system performance and security, applying patches and updates as needed.
 Offer 24/7 support for critical issues affecting reservations and guest experiences.

8. Documentation:
 Create user manuals and guides for hotel staff and guests to navigate the reservation system.
 Maintain technical documentation for developers and system administrators.
 Document system configurations, dependencies, and integration points for future reference.

9. Closure:
 Conduct a post-implementation review to assess the project's success and identify lessons learned.
 Prepare a final project report, including financial reconciliation and project documentation.
 Archive project files, code repositories, and documentation for future reference.

These specific actions provide a detailed roadmap for developing a Hotel and Resort Reservation System,
ensuring that each phase is carefully planned and executed to meet the project's objectives and deliver a high-
quality system.

Software Development Life Cycle Page 10 of 11


References:

https://www.guru99.com/software-development-life-cycle-tutorial.html
https://www.scnsoft.com/blog/software-development-life-cycle-examples
https://stackify.com/what-is-sdlc/
https://quizlet.com/ca/301563959/sdlc-waterfall-model-diagram/
https://iftdss.firenet.gov/landing_page/development.html
https://airbrake.io/blog/sdlc/iterative-model
https://antossoftwaretopics.wordpress.com/2016/08/29/v-shaped-model/
https://echoua.com/sdlc-models-full-guide/
https://blog.codegiant.io/software-development-life-cycle-the-ultimate-guide-2020-153d17bb20fb

Software Development Life Cycle Page 11 of 11

You might also like