1st Sem 1st QTR - Week 2 Module in Computer Programming JAVA - Modular 14 Pages
1st Sem 1st QTR - Week 2 Module in Computer Programming JAVA - Modular 14 Pages
Activity 1
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 2
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. ____________________________
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 1 of 14
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
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?
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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 2 of 14
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.
“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.
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.
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:
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 3 of 14
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
“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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 4 of 14
Extra: 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
(QA), and production environment. This keeps everyone using the same toolset across the entire
development lifecycle.
➢ 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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 5 of 14
➢ 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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 6 of 14
➢ 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.
➢ 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.
➢ 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
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 7 of 14
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.
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.
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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 8 of 14
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.
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.
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 9 of 14
Activity 3
Instructions: 20 points
Imagine that you want to be an Entrepreneur. As an Entrepreneur you’re going to start a business and
should follow the necessary phases/stages of SDLC.
Write an essay that will follow each of the necessary phases/stages of SDLC. For each phases/stages,
you need to write at least minimum of 5 sentences explaining the actions that you will undergo in order to
accomplish each phases/stages. Follow the rubrics below and observe proper grammar and punctuation marks
usage. Write your answers in the space provided below.
_________________________________________________
➢ Requirement Analysis
➢ Planning
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 10 of 14
➢ Architectural design
➢ Development
➢ Testing
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 11 of 14
Quiz
Instructions: 20 points
Imagine that you are a Project Manager and as a Project Manager (PM) you’re going to lead your team
to build a program/software that will follow the necessary phases/stages of SDLC.
Write an essay that will follow each of the necessary phases/stages of SDLC. For each phases/stages,
you need to write at least minimum of 5 sentences explaining the actions that you will undergo in order to
accomplish each phases/stages. Follow the rubrics below and observe proper grammar and punctuation marks
usage. Write your answers in the space provided below.
_________________________________________________
➢ Requirement Analysis
➢ Planning
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 12 of 14
➢ Software design such as architectural design
➢ Software development
➢ Testing
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 13 of 14
References:
Deitel, H., & Deitel, P. (2004). Java: How to program (early objects). Prentice Hall.
Lambert, K., Osborne, M. (2011). Fundamentals of Java. Cengage Learning Asia Pte Ltd.
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
Developed by:
Joshua F. Madera
Master Teacher II
Computer Programming - JAVA
1st Semester 1st Quarter Week 2
Page 14 of 14