0% found this document useful (0 votes)
19 views16 pages

IS - CHAPTER 2

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)
19 views16 pages

IS - CHAPTER 2

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/ 16

Ministry of Higher Education Republic of Cameroon

Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise


IUGET, Bonamoussadi – Douala Peace – Work – Fatherland
Department of Computer Engineering Academic Year 2019/2020
&

INFORMATION SYSTEMS
Level: HND1 By: Mr. NYAMBI BLAISE

Lesson objectives

It is expected that after going through this lesson, you would be able to

- Explain the different phases of system development life cycle


- Understand and describe Phases of system and software Design
- Learn the steps in project planning to develop a defensible plan and logical schedule.
- Design conceptual diagrams that will help in the design of an IS.

Table of Contents
CHAPTER TWO – SOFTWARE DEVELOPMENT LIFE CYCLE ..................................................... 3
1.0 INTRODUCTION .................................................................................................................. 3
1.1. Introduction ............................................................................................................................. 3
1.2 Definition ................................................................................................................................ 3
1.3 Objectives of SDLC ...................................................................................................................... 3
1.4 Systems Analysis and Design ....................................................................................................... 4
1.4.1 System Analysis ..................................................................................................................... 4
1.4.2 System Design ....................................................................................................................... 4
1.5 Requirements of the SDLC ........................................................................................................... 5
1.6 Stages (Phases) of the SDLC ........................................................................................................ 6
1.6.1 Planning or Requirement Gathering Phase ............................................................................ 6
1.6.2 Analysis Phase ....................................................................................................................... 7
1.6.3 Design Phase .......................................................................................................................... 7
1.6.4 Development or Coding Phase ............................................................................................... 8
1.6.5 Testing Phase ......................................................................................................................... 9
1.6.6 Deployment Phase.................................................................................................................. 9
1.6.7 Maintenance Phase................................................................................................................. 9
1.7 SDLC MODELS ......................................................................................................................... 10

CHAPTER 2 – INCOMPLETE P a g e 1 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

1.7.1 Waterfall Model ................................................................................................................... 10


1.7.2 Iterative or Incremental Model............................................................................................. 13
1.7.3 Spiral Model......................................................................................................................... 16

CHAPTER 2 – INCOMPLETE P a g e 2 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

CHAPTER TWO – SOFTWARE DEVELOPMENT LIFE CYCLE

1.0 INTRODUCTION

1.1. Introduction
New computers and information systems frequently replace existing ones and the new
systems will someday be replaced by another one. The process of replacing an old system with
a new one is often refere to as systems development life cycle (DSLC). The cycle is a project
management techniique which divides a complex project into the wollowing smaller phases
that can easily be managed: planning, analysis, design, development, testing, implementation
and maintenance. SDLC is used by analysts to develop an information system.

An effective System Development Life Cycle (SDLC) should result in a high quality system
that meets customer expectations, reaches completion within time and cost evaluations, and
works effectively and efficiently in the current and planned Information Technology
infrastructure.

1.2 Definition
System Development Life Cycle (SDLC) is a conceptual model which includes policies and
procedures for developing or altering systems throughout their life cycles.

1.3 Objectives of SDLC


A systems development lifecycle (SDLC) has three primary objectives:

 Ensure that high quality systems are delivered


 Provide strong management controls over the projects
 Maximize the productivity of the systems staff

In order to meet all of the SDLC's objectives and requirements, there are certain design
approaches that are required:

 The SDLC must be an example of a system created using the techniques it


envisages;
 It must use a layered approach for analysis, design, installation support and
production support;
 It must keep distinct the "what" from the "how" in regards to doing the tasks and
creating the outputs;

CHAPTER 2 – INCOMPLETE P a g e 3 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

 It must organize its information in a hierarchical manner so that users with varying
degrees of familiarity can find what they want easily and quickly.

Defining or selecting an SDLC should be undertaken as a project with full time resources
who have the appropriate level of expertise. It is an extremely high leverage effort. It also
represents a major cultural change for the staff. It must be planned and executed in a
professional manner.

1.4 Systems Analysis and Design

1.4.1 System Analysis


Systems Analysis and Design is an active field in which analysts repetitively learn new
approaches and different techniques for building the system more effectively and efficiently.
The primary objective of systems analysis and design is to improve organizational systems.

It is a process of collecting and interpreting facts, identifying the problems, and decomposition
of a system into its components. System analysis is conducted for the purpose of studying a
system or its parts in order to identify its objectives. It is a problem solving technique that
improves the system and ensures that all the components of the system work efficiently to
accomplish their purpose.

1.4.2 System Design


It is a process of planning a new business system or replacing an existing system by
defining its components or modules to satisfy the specific requirements. Before planning, you
need to understand the old system thoroughly and determine how computers can best be used
in order to operate efficiently.
System Design focuses on how to accomplish the objective of the system.
System Analysis and Design (SAD) mainly focuses on −

 Systems
 Processes
 Technology

CHAPTER 2 – INCOMPLETE P a g e 4 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

1.5 Requirements of the SDLC


Basically, requirements are statements that indicate what a system needs to do in order to
provide a capability (i.e. utility or benefit.) Requirements are generally prepared during the
early stages of a project's system development lifecycle (SDLC.). below are some of the
requirements a system can have :
a) Productivity - How much a system aids users? For example, "We used to be able to
handle 10 complaints in an hour and now we can handle 12."
b) Performance - How fast should the system be?
c) Capacity - How much traffic must the system be able to handle?
d) Scalability - How easily can the system be expanded to handle increased throughput?
e) Availabilty - Does the system need to be 24/7, weekdays only etc...?
f) Recoverability - How quickly should the system be made operational after an outage?
g) Integrity - How predictable and reliable should the system be?
h) Exception handling - How will processing exceptions be handled?
i) Logging - Do we need to have audit trails of activities?
j) Security - What are the security characteristics?
k) Manageability - How easy is it to manage the system?
l) Usability - What interfacing is required for end-users?
m) Interoperability - Does the system need to be able to interface with other systems?
How?
n) Extensibility - Can the system be expanded to support new functionality?
o) Maintainability - How readily can the system be understood? How extensive is the
documentation.
p) Upgradeability - How easy is it to upgrade the system?
q) Portability - Can the system be moved to other platforms easily?
r) Deployability - How can the system be deployed? In components or all at once?
s) Data Currency - How up-to-date should the information be? Real-time?
t) Data Retention - How long does data need to be kept for?
u) Internationalization - Does the system need to support multiple time zones, languages
and standards?

CHAPTER 2 – INCOMPLETE P a g e 5 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

1.6 Stages (Phases) of the SDLC


Systems Development Life Cycle is a systematic approach which explicitly breaks down the
work into phases that are required to implement either new or modified Information System.
The SDLC is made up of 7 stages which are : planning, analysis, design, development, testing,
implementation and maintenance.

1.6.1 Planning or Requirement Gathering Phase


The requirement is the first stage in the SDLC process. It determines the goals of the project
as well as the methods of accomplishing the goals. 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 recognition 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. During this
phase, the following are identified:
 A need to acquire a new system of enhance the existing system is identified
 Its feasibility and cost are accessed and the risks and various project-planning
approaches are defined
 Define the problem and scope of existing system.
 Overview the new system and determine its objectives.

CHAPTER 2 – INCOMPLETE P a g e 6 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

 Confirm project feasibility and produce the project Schedule.


 During this phase, threats, constraints, integration and security of system are also
considered.
 A feasibility report for the entire project is created at the end of this phase.

1.6.2 Analysis Phase


This phase of the SDLC begins after the system has been defined and appropriate resources
committed. 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 (which specifies the software,
hardware, functional, and network requirements of the system is prepared at the end of this
phase). 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.

Other checks of the analysis phase include:


 Gather, analyze, and validate the information.
 Define the requirements and prototypes for new system.
 Evaluate the alternatives and prioritize the requirements.
 Examine the information needs of end-user and enhances the system goal.

1.6.3 Design Phase


It describes the detailed features and operations to satisfy specific requirements. 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.

CHAPTER 2 – INCOMPLETE P a g e 7 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

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

The functional phase has the following characteristics:


 Includes the design of application, network, databases, user interfaces, and system
interfaces.
 Transform the SRS document into logical structure, which contains detailed and
complete set of specifications that can be implemented in a programming language.
 Create a contingency, training, maintenance, and operation plan.
 Review the proposed design. Ensure that the final design must meet the requirements
stated in SRS document.
 Finally, prepare a design document which will be used during next phases.

1.6.4 Development or Coding 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. This phase has the following characteristics:
CHAPTER 2 – INCOMPLETE P a g e 8 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

 Implement the design into source code through coding.


 Combine all the modules together into training environment that detects errors and
defects.
 Integrate the information system into its environment and install the new system.

1.6.5 Testing Phase


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.

1.6.6 Deployment Phase


Deployment is the process of putting the system into use. During this phase, the new
enhanced system is installed in the production environment. 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. Users are trained to use the system. Deployment may be done in
several ways :

i) In some cases, the new system can step-wisely be introduced while


gradually replacing the old system.
ii) In other cases, it may be cost effective to shut down the old system
completely and install the new system all at once.

1.6.7 Maintenance Phase


Once the system is deployed, and customers start using the developed system, following 3
activities occur

 Bug fixing - bugs are reported because of some scenarios which are not tested at all
 Upgrade - Upgrading the application to the newer versions of the Software
 Enhancement - Adding some new features into the existing software

CHAPTER 2 – INCOMPLETE P a g e 9 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

The maintenance phase has the following characteristics:


 Include all the activities such as phone support or physical on-site support for users that
is required once the system is installing.
 Implement the changes that software might undergo over a period of time, or implement
any new requirements after the software is deployed at the customer location.
 It also includes handling the residual errors and resolve any issues that may exist in the
system even after the testing phase.
 Maintenance and support may be needed for a longer time for large systems and for a
short time for smaller systems.

1.7 SDLC MODELS


A SDLC model refers to the structural approach to the development of an information
system. This approach guides all the processes involved from an initial planning through to the
maintenance of the finished product. Today, SDLC methodologies take a variety of approaches
to development. Some approaches work better specific types of projects but in the final
analysis, the most important factor for the success of the project may be how closely the
particular plan was followed. Some of the most popular models include: waterfall model,
iteration model, V Model, Spiral model, Agile model, RAD model, Prototype model Data
models (Entity Relational models and Relational models) and Object Oriented models.
1.7.1 Waterfall Model
The waterfall is a widely accepted SDLC model. In this approach, the whole process of
the software development is divided into various phases. In this SDLC model, the outcome of
one phase acts as the input for the next phase.

Waterfall is the oldest and most straightforward of the structured SDLC methodologies —
finish one phase, then move on to the next. No going back. Each stage relies on information
from the previous stage and has its own project plan. Waterfall is easy to understand and simple
to manage.
But early delays can throw off the entire project timeline. And since there is little room for
revisions once a stage is completed, problems can’t be fixed until you get to the maintenance
stage. This model doesn’t work well if flexibility is needed or if the project is long term and
ongoing.

CHAPTER 2 – INCOMPLETE P a g e 10 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure
success of the project. In "The Waterfall" approach, the whole process of software development
is divided into separate phases

The sequential phases in Waterfall model are −


 Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.
 System Design − The requirement specifications from first phase are studied in this
phase and the system design is prepared. This system design helps in specifying
hardware and system requirements and helps in defining the overall system
architecture.
 Implementation − With inputs from the system design, the system is first developed
in small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality, which is referred to as Unit Testing.
 Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
 Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.

CHAPTER 2 – INCOMPLETE P a g e 11 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

 Maintenance − There are some issues which come up in the client environment. To fix
those issues, patches are released. Also to enhance the product some better versions are
released. Maintenance is done to deliver these changes in the customer environment.

All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the defined
set of goals are achieved for previous phase and it is signed off, so the name "Waterfall Model".
In this model, phases do not overlap.

1.7.1.1 When and where To Use The Waterfall Model


Every software developed is different and requires a suitable SDLC approach to be followed
based on the internal and external factors. Some situations where the use of Waterfall model is
most appropriate are −
 Requirements are very well documented, clear and fixed.
 Product definition is stable.
 Technology is understood and is not dynamic.
 There are no ambiguous requirements.
 Ample resources with required expertise are available to support the product.
 The project is short.

1.7.1.2 Waterfall Model - Advantages


 Simple and easy to understand and use

 Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
 Phases are processed and completed one at a time.
 A schedule can be set with deadlines for each stage of development and a product can
proceed through the development process model phases one by one.
 Works well for smaller projects where requirements are very well understood.
 Clearly defined stages.
 Well understood milestones.
 Easy to arrange tasks.
 Process and results are well documented.

CHAPTER 2 – INCOMPLETE P a g e 12 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

1.7.1.3 Waterfall Model - Disadvantages


 No working software is produced until late during the life cycle.
 It is very difficult to go back and change something that was not well-documented or
thought upon in the concept stage
 It does not allow much reflection or revision
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.
 Integration is done as a "big-bang. at the very end, which doesn't allow identifying any
technological or business bottleneck or challenges early.

1.7.2 Iterative or Incremental Model


In the Iterative model, iterative process starts with a simple implementation of a small set of
the software requirements and iteratively enhances the evolving versions until the complete
system is implemented and ready to be deployed.

An iterative life cycle model does not attempt to start with a full specification of requirements.
Instead, development begins by specifying and implementing just part of the software, which
is then reviewed to identify further requirements. This process is then repeated, producing a
new version of the software at the end of each iteration of the model.

1.7.2.1 Iterative Model - Design


Iterative process starts with a simple implementation of a subset of the software
requirements and iteratively enhances the evolving versions until the full system is
implemented. At each iteration, design modifications are made and new functional capabilities
are added. The basic idea behind this method is to develop a system through repeated cycles
(iterative) and in smaller portions at a time (incremental).

CHAPTER 2 – INCOMPLETE P a g e 13 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

The following illustration is a representation of the Iterative and Incremental model −

Iterative and Incremental development is a combination of both iterative design or iterative


method and incremental build model for development. "During software development, more
than one iteration of the software development cycle may be in progress at the same time." This
process may be described as an "evolutionary acquisition" or "incremental build" approach."

In this incremental model, the whole requirement is divided into various builds. During each
iteration, the development module goes through the requirements, design, implementation and
testing phases. Each subsequent release of the module adds function to the previous release.
The process continues till the complete system is ready as per the requirement.

The key to a successful use of an iterative software development lifecycle is rigorous validation
of requirements, and verification & testing of each version of the software against those
requirements within each cycle of the model. As the software evolves through successive
cycles, tests must be repeated and extended to verify each version of the software.

CHAPTER 2 – INCOMPLETE P a g e 14 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

1.7.2.2 Where and When To Use The Iterative Model


Like other SDLC models, Iterative and incremental development has some specific
applications in the software industry. This model is most often used in the following scenarios

 Requirements of the complete system are clearly defined and understood.


 Major requirements must be defined; however, some functionalities or requested
enhancements may evolve with time.
 There is a time to the market constraint.
 A new technology is being used and is being learnt by the development team while
working on the project.
 Resources with needed skill sets are not available and are planned to be used on contract
basis for specific iterations.
 There are some high-risk features and goals which may change in the future.

1.7.2.3 Iterative Model - Pros and Cons


The advantage of this model is that there is a working model of the system at a very
early stage of development, which makes it easier to find functional or design flaws. Finding
issues at an early stage of development enables to take corrective measures in a limited budget.

The disadvantage with this SDLC model is that it is applicable only to large and bulky software
development projects. This is because it is hard to break a small software system into further
small serviceable increments/modules.

The advantages of the Iterative and Incremental SDLC Model are as follows −
 Some working functionality can be developed quickly and early in the life cycle.
 Results are obtained early and periodically.
 Parallel development can be planned.
 Progress can be measured.
 Less costly to change the scope/requirements.
 Testing and debugging during smaller iteration is easy.
 Risks are identified and resolved during iteration; and each iteration is an easily
managed milestone.
 Easier to manage risk - High risk part is done first.

With every increment, operational product is delivered.
CHAPTER 2 – INCOMPLETE P a g e 15 | 16
Chapter 2 : Software Development Life Cycle By: Mr. Nyambi Blaise

 Issues, challenges and risks identified from each increment can be utilized/applied to
the next increment.
 Risk analysis is better.
 It supports changing requirements.
 Initial Operating time is less.
 Better suited for large and mission-critical projects.
 During the life cycle, software is produced early which facilitates customer evaluation
and feedback.

The disadvantages of the Iterative and Incremental SDLC Model are as follows −
 More resources may be required.
 Resources can quickly be eaten up by repeating the process again and again.
 Although cost of change is lesser, but it is not very suitable for changing requirements.
 More management attention is required.
 System architecture or design issues may arise because not all requirements are
gathered in the beginning of the entire life cycle.
 Defining increments may require definition of the complete system.
 Not suitable for smaller projects.
 Management complexity is more.
 End of project may not be known which is a risk.
 Highly skilled resources are required for risk analysis.
 Projects progress is highly dependent upon the risk analysis phase.

1.7.3 Spiral Model

CHAPTER 2 – INCOMPLETE P a g e 16 | 16

You might also like