ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
MODULE 2: SOFTWARE DEVELOPMENT LIFE CYCLE
WEEK 2
Learning Outcomes:
After completing this course you are expected to demonstrate the following:
1. Develop the sequence of stages in software engineering to develop the intended software
product.
A. Engage
Trivia
Figure 2.0 Shows the seven important facts about IOT to enhance your knowledge
B. Explore
Video Titles:
1. What is software development life cycle
2. SDLC example
YouTube Links:
1. https://www.youtube.com/watch?v=4xCldpbDZ10
2. https://www.youtube.com/watch?v=rJJhXDG3dHA
Module Video Filenames:
1. Week2–What is software development life cycle
2. Week 2 – SDLC example
C. Explain
The software development life cycle (SDLC) is a process which is used to develop software. SDLC is a step
by step procedure need to be followed by the organization to design and develop a high-quality product.
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 1 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
The phases of software development life cycle are which describes that how to develop, maintain
particular software. The life cycle aims to develop a good quality product/software. SDLC produces
intermediate products that can be reviewed to check whether they work according to customer
requirement.
1. SDLC is also known as Software development process.
2. SDLC is an approach creates considerable documentation where this documentation helpful to
make sure that requirement can be traced back to stated business requirements.
3. It is a framework which has a set of tasks performed at each phase in the software development
process.
D. Elaborate
What is Software Development Life Cycle?
Benefits of SDLC
For any software project, SDLC offers the following benefits
1. With SDLC, one can address the goals and problems so that the project is implemented with
the highest precision and accuracy
2. In SDLC, the project members cannot proceed ahead before completion & approval of the
prior stages
3. Any installation in the project that has been executed using the SDLC has necessary checks so
that it is tested with precision before entering the installation stage
4. With a well-defined SDLC in place, project members can continue the software development
process without incurring any complications
5. SDLC offers optimal control with minimum problems, allowing the project members to run
the project smoothly
Figure 2.1 SDLC Stages
Stage 1: Requirement Gathering & Analysis Phase
In an SDLC, this is the first and most crucial phase for a software project’s success. In this phase,
communication takes place between stakeholders, end-users, and project teams, as both functional
and non-functional requirements are gathered from customers.
The Requirement Gathering & Analysis Phase of SDLC involves the following
1. Analysis of functionality and financial feasibility
2. Identifying and capturing requirements of stakeholders through customer interactions like
interviews, surveys, etc.
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 2 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
3. Clearly defining and documenting customer requirements in an SRS (Software Resource
Specification Document) comprising of all product requirements that need to be developed
4. Creating project prototypes to show the end-user how the project will look
Stage 2: Design Phase
In the design phase of an SDLC, the architectural design is proposed for the project based on the SRS
Document requirements.
The Designing Phase of SDLC involves the following
1. Separation of hardware and software system requirements
2. Designing the system architecture based on gathered requirements
3. Creating Unified Modelling Language (UML) diagrams like- use cases, class diagrams,
sequence diagrams, and activity diagrams
Stage 3: Development Phase
In the entire SDLC, the development phase is considered to be the longest one. In this phase, the
actual project is developed and built.
The Development Phase of SDLC involves the following
1. Actual code is written
2. Demonstration of accomplished work presented before a Business Analyst for further
modification of work
3. Unit testing is performed, i.e., verifying the code based on requirements
Stage 4: Testing Phase
Almost all stages of SDLC involves the testing strategy. However, SDLC’s testing phase refers to
checking, reporting, and fixing the system for any bug/defect. In this phase, the on-going system or
project is migrated to a test environment where different testing forms are performed. This testing
continues until the project has achieved the quality standards, as mentioned in the SRS document
during the requirement gathering phase.
The Testing Phase involves the following-
Testing the system as a whole
Performing different types of test in the system
Reporting and fixing all forms of bugs & defects
Stage 5: Deployment & Maintenance Phase
In this SDLC phase, once the system testing has been done, it is ready to be launched. The system may
be initially released for limited users by testing it in a real business environment for UAT or User
Acceptance Testing.
The Deployment & Maintenance Phase involves the following-
The system is ready for delivery
The system is installed and used
Errors are rectified that might have been previously missed
Enhancing the system inside a data center
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 3 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
SDLC provides a series of steps to be followed to design and develop a software product efficiently.
SDLC framework includes the following steps:
Figure 2.2 It shows the steps to develop intended software product
Communication
This is the first step where the user initiates the request for a desired software product. The user
contacts the service provider and tries to negotiate the terms, submits the request to the service
providing organization in writing.
Requirement Gathering
This step onwards the software development team works to carry on the project. The team holds
discussions with various stakeholders from problem domain and tries to bring out as much
information as possible on their requirements. The requirements are contemplated and segregated
into user requirements, system requirements and functional requirements. The requirements are
collected using a number of practices as given –
studying the existing or obsolete system and software,
conducting interviews of users and developers,
referring to the database or
collecting answers from the questionnaires.
Feasibility Study
After requirement gathering, the team comes up with a rough plan of software process. At this step
the team analyzes if a software can be designed to fulfill all requirements of the user, and if there is
any possibility of software being no more useful. It is also analyzed if the project is financially,
practically, and technologically feasible for the organization to take up. There are many algorithms
available, which help the developers to conclude the feasibility of a software project.
System Analysis
software model suitable for the project. System analysis includes understanding of software product
limitations, learning system related problems or changes to be done in existing systems beforehand,
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 4 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
identifying and addressing the impact of project on organization and personnel etc. The project team
analyzes the scope of the project and plans the schedule and resources accordinglyAt this step the
developers decide a roadmap of their plan and try to bring up the best.
Software Design
Next step is to bring down whole knowledge of requirements and analysis on the desk and design the
software product. The inputs from users and information gathered in requirement gathering phase
are the inputs of this step. The output of this step comes in the form of two designs; logical design,
and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow
diagrams, and in some cases pseudo codes.
Coding
This step is also known as programming phase. The implementation of software design starts in
terms of writing program code in the suitable programming language and developing error-free
executable programs efficiently.
Testing
An estimate says that 50% of whole software development process should be tested. Errors may ruin
the software from critical level to its own removal. Software testing is done while coding by the
developers and thorough testing is conducted by testing experts at various levels of code such as
module testing,program testing, product testing, in-house testing, and testing the product at user’s
end. Early discovery of errors and their remedy is the key to reliable software.
Integration
Software may need to be integrated with the libraries, databases, and other program(s). This stage of
SDLC is involved in the integration of software with outer world entities.
Implementation
This means installing the software on user machines. At times, software needs post-installation
configurations at user end. Software is tested for portability and adaptability and integration related
issues are solved during implementation.
Operation and Maintenance
This phase confirms the software operation in terms of more efficiency and less errors. If required,
the users are trained on, or aided with the documentation on how to operate the software and how
to keep the software operational. The software is maintained timely by updating the code according
to the changes taking place in user end environment or technology. This phase may face challenges
from hidden bugs and real-world unidentified problems.
Software Development Paradigm
The software development paradigm helps a developer to select a strategy to develop the software. A
software development paradigm has its own set of tools, methods, and procedures, which are
expressed clearly and defines software development life cycle. A few of software development
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 5 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
paradigms or process models are defined as follows:
Waterfall Model
Waterfall model is the simplest model of software development paradigm. All the phases of SDLC will
function one after another in linear manner. That is, when the first phase is finished then only the
second phase will start and so on.
Figure 2.3 Shows the
water fall model
This model assumes that everything is carried out and taken place perfectly as planned in the previous
stage and there is no need to think about the past issues that may arise in the next phase. This model
does not work smoothly if there are some issues left at the previous step. The sequential nature of
model does not allow us to go back and undo or redo our actions.
This model is best suited when developers already have designed and developed similar software in
the past and are aware of all its domains.
Strengths of the Waterfall Model
Easy to understand and use
Achievements are well-defined
Defines requirements stability
Works well when the project quality is important
Weaknesses of the Waterfall Model
It cannot match reality well
Difficult to make changes
Software delivered towards the end of the project only
Testing begins only after the development phase is complete
Iterative Model
This model leads the software development process in iterations. It projects the process of
development in cyclic manner repeating every step after every cycle of SDLC process.
Figure 2.4 It shows the iteration model
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 6 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
The software is first developed on very small scale and all the steps are followed which are taken into
consideration. Then, on every next iteration, more features and modules are designed, coded, tested,
and added to the software. Every cycle produces a software, which is complete in itself and has more
features and capabilities than that of the previous one.
After each iteration, the management team can do work on risk management and prepare for the
next iteration. Because a cycle includes small portion of wholesoftware process, it is easier to manage
the development process but it consumes more resources.
Iterative-Incremental Model
In this model, in the initial stages, a partial implementation of the complete system is constructed
such that it will be present in a deliverable form. Increased functionalities are added and for any
defects, they are fixed with the working product delivered at the end. This process is repeated until
the product development cycle gets completed. These repetitions of processes are known as
iterations. With each iteration, a product increment gets delivered.
Figure 2.5 Iterative-Incremental Model
Strengths of Iterative-Incremental Model
Prioritized requirements can be initially developed
The initial delivery of the product is faster
Lower initial delivery costs
Changes in requirements can be easily adjusted
Weaknesses of Iterative-Incremental Model
There are requirements for effective iterations planning
Efficient design is required for including the required functionalities
An early definition of a complete, as well as fully functional system, is needed for
allowing increments definition
Clear module interfaces are required
Spiral Model
Spiral model is a combination of both, iterative model and one of the SDLC model. It can be seen as if
you choose one SDLC model and combined it with cyclic process (iterative model).
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 7 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
Figure 2.5Shows the spiral model
This model considers risk, which often goes un-noticed by most other models. The model starts with
determining objectives and constraints of the software at the start of one iteration. Next phase is of
prototyping the software. This includes risk analysis. Then one standard SDLC model is used to build
the software. In the fourth phase of the plan of next iteration is prepared.
Strengths of the Spiral Model
An early indication of the risks can be provided, without incurring much cost Users can have a look at
their system early due to rapid prototyping tools Users are involved in all lifecycle stages Critical &
high-risk functionalities are initially developed
Weaknesses of the Spiral Model
It may be hard to set the objectives, verifiable milestones for indicating preparedness to go ahead
with the next iteration Time spent on addressing risks can be large for smaller & low-risk involved
projects. The spiral model can be complex to understand for new members The spiral may go on
indefinitely.
Agile Model
The agile model is the combination of the iterative-incremental model that depends on process
adaptability along with customer satisfaction through the delivery of software products. In this model,
the project is broken down into smaller time frames for delivering certain features during a release.
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 8 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
Figure 2.6 Agile Model
Strengths of the Agile Model
1. Easy to accommodate changing requirements
2. Regular communication takes place between customers and developers
3. Functionalities can be developed quickly and demonstrated to customers
Weaknesses of the Agile Model
1. Not ideal for handling complex dependencies
2. Teams need to have the desired experience levels for adhering method rules
Rapid Application Development (RAD) Model
The RAD SDLC model is based on prototyping and iterative development, with no involvement of a
defined planning structure. In this model, different function modules are parallelly developed as
prototypes and then integrated to speed up product delivery.
Figure 2.7 RAD Model
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 9 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
Strengths of RAD Model
1. Reduced cycle time and enhanced productivity with minimal team members
2. Customer’s continuous involvement ensures minimal risks of not achieving customer
satisfaction
3. Easy to accommodate any user changes
Weaknesses of RAD Model
1. Hard to use and implement with legacy systems
2. Heavily dependent on technically strong members for identifying business requirements
V – model
The major drawback of waterfall model is we move to the next stage only when the previous one is
finished and there was no chance to go back if something isfound wrong in later stages. V-Model
provides means of testing of software at each stage in reverse manner.
Figure 2.8 This figure shows the V- model
At every stage, test plans and test cases are created to verify and validate the product according to
the requirement of that stage. For example, in requirement gathering stage the test team prepares all
the test cases in correspondence to the requirements. Later, when the product is developed and is
ready for testing, test cases of this stage verify the software against its validity towards requirements
at this stage.
This makes both verification and validation go in parallel. This model is also known as verification and
validation model.
Big Bang Model
This model is the simplest model in its form. It requires little planning, lots of programming and lots of
funds. This model is conceptualized around the big bang of universe. As scientists say that after big
bang lots of galaxies, planets, and stars evolved just as an event. Likewise, if we put together lots of
programming and funds, you may achieve the best software product.
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 10 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
Figure 2.9 Shows bigbang model
For this model, very small amount of planning is required. It does not follow any process, or at times
the customer is not sure about the requirements and future needs. So the input requirements are
arbitrary. This model is not suitable for large software projects but good one for learning and
experimenting.
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 11 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
E. Evaluate
ASSESSMENT:
Instructions: You may write your answer on the Answer Sheet (AS) provided in this module.
A. Match Column A with Column B (2-points).
Column A Column B
1. After requirement gathering, the team comes up with a rough A. Big Bang Model
plan of software process. B. Integration
2. It helps a developer to select a strategy to develop the software. C. RAD Model
3. It is a model based on prototyping and iterative development,
with no involvement of a defined planning structure. D. Waterfall Model
4. It is the combination of the iterative-incremental model that E. Spiral Model
depends on process adaptability along with customer satisfaction F. Implementation
through the delivery of software products.
5. This model leads the software development process in iterations. G. Feasibilty Study
6. It is the simplest model of software development paradigm. H. Agile Model
7. It is a combination of both, iterative model and one of the SDLC I. Iterative Model
model.
8. It provides means of testing of software at each stage in reverse J. Software
manner. Development
Paradigm
9. It is the simplest model in its form. K. SDLC
10. It is also known as Software development process. L. V – model
11. After requirement gathering, the team comes up with a rough M. Big Bang Model
plan of software process. N. Integration
12. It helps a developer to select a strategy to develop the software. O. RAD Model
13. It is a model based on prototyping and iterative development,
with no involvement of a defined planning structure. P. Waterfall Model
14. It is the combination of the iterative-incremental model that Q. Spiral Model
depends on process adaptability along with customer satisfaction R. Implementation
through the delivery of software products.
15. This model leads the software development process in iterations. S. Feasibilty Study
16. It is the simplest model of software development paradigm. T. Agile Model
17. It is a combination of both, iterative model and one of the SDLC U. Iterative Model
model.
18. It provides means of testing of software at each stage in reverse V. Software
manner. Development
Paradigm
19. It is the simplest model in its form. W. SDLC
20. It is also known as Software development process. X. V – model
B. Enumerate the diferent stages of SDLC (2-points each)
C. Hands-on Activity 2.1
Write a Java program to perform basic Calculator operations.
When you think about a calculator, operations like addition, subtraction, multiplication, and
division comes into the mind
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 12 of 13
ASIAN INSTITUTE OF COMPUTER STUDIES
Bachelor of Science in Computer Science
Course Modules
CS329 – Software Engineering 1
1st Year – 2nd Semester
References:
1. Lectures:
https://www.tutorialspoint.com/software_engineering/index.html
https://www.esds.co.in/blog/introduction-to-software-development-life-cycle-sdlc-
phases-models/#sthash.qYbgGSZv.dpbs
https://www.youtube.com/watch?v=4xCldpbDZ10
https://www.youtube.com/watch?v=rJJhXDG3dHA
Facilitated By:
Name :
MS Teams Account (email) :
Smart Phone Number :
Prepared and Validated By: Mariann A. Alvarez, BSCS, MOS | Dean Manuel Luis C. Delos Santos, MSCS Page 13 of 13