Week-3-Software-Development-Life-Cycle
Week-3-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. ____________________________
“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.
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.
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:
“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.
“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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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