0% found this document useful (0 votes)
16 views13 pages

Week-2 CM MDL CS329

The document outlines the Software Development Life Cycle (SDLC) as a structured process for developing software, detailing its phases including requirement gathering, design, development, testing, and deployment. It discusses various software development paradigms such as the Waterfall, Iterative, Spiral, Agile, and RAD models, highlighting their strengths and weaknesses. The goal of SDLC is to ensure high-quality software that meets customer requirements through systematic documentation and testing.

Uploaded by

joeycabopomaam
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)
16 views13 pages

Week-2 CM MDL CS329

The document outlines the Software Development Life Cycle (SDLC) as a structured process for developing software, detailing its phases including requirement gathering, design, development, testing, and deployment. It discusses various software development paradigms such as the Waterfall, Iterative, Spiral, Agile, and RAD models, highlighting their strengths and weaknesses. The goal of SDLC is to ensure high-quality software that meets customer requirements through systematic documentation and testing.

Uploaded by

joeycabopomaam
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/ 13

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

You might also like