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

Software Engineering Ch-2

The document discusses the system development life cycle (SDLC) and key aspects of software development projects. It covers: - The main roles of a systems analyst in guiding a system development project through each phase. - The typical phases of the SDLC, including planning, analysis, design, implementation, and maintenance. - Attributes that systems analysts should possess such as interpersonal, analytical, management, and technical skills. - The software development life cycle (SDLC) process which aims to produce high-quality software through stages like planning, requirements definition, design, development, testing, and deployment. - Factors that can affect the success of a systems development project like user involvement, managing change,

Uploaded by

om chavan
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)
35 views16 pages

Software Engineering Ch-2

The document discusses the system development life cycle (SDLC) and key aspects of software development projects. It covers: - The main roles of a systems analyst in guiding a system development project through each phase. - The typical phases of the SDLC, including planning, analysis, design, implementation, and maintenance. - Attributes that systems analysts should possess such as interpersonal, analytical, management, and technical skills. - The software development life cycle (SDLC) process which aims to produce high-quality software through stages like planning, requirements definition, design, development, testing, and deployment. - Factors that can affect the success of a systems development project like user involvement, managing change,

Uploaded by

om chavan
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

2.

System Development Life Cycle [10L] [15M]


• Systems analyst, Roles of System Analysts – As an Architect, Change Agent,
Investigator & monitor, Organizer, Motivator & Psychologist.
• Introduction of Systems Development Life Cycle (SDLC)
• Phases of system development: Recognition of need, Problem definition, Analysis,
Design, Implementation, Maintenance
• Factors affecting the system development.
• SDLC Models : Waterfall Model, Spiral and RAD, Prototyping

Chapter 2

System Development Life Cycle

Role of System Analyst


i. The system analyst is a person who is thoroughly aware of the system and guides
the system development project by giving proper directions.
ii. He is an expert having technical and interpersonal skills to carry out development
tasks required at each phase.
iii. He pursues to match the objectives of information system with the organization
goal.

Main Roles
1. Defining and understanding the requirement of user through various Fact finding
techniques.
2. Prioritizing the requirements by obtaining user consensus.
3. Gathering the facts or information and acquires the opinions of users.
4. Maintains analysis and evaluation to arrive at appropriate system which is more
user friendly.
5. Suggests many flexible alternative solutions, pick the best solution, and quantify
cost and benefits.
6. Draw certain specifications which are easily understood by users and
programmer in precise and detailed form.
7. Implemented the logical design of system which must be modular.
8. Plan the periodicity for evaluation after it has been used for some time, and
modify the system as needed.

Attributes of a Systems Analyst


The following figure shows the attributes a systems analyst should possess −
Interpersonal Skills
1. Interface with users and programmer.
2. Facilitate groups and lead smaller teams.
3. Managing expectations.
4. Good understanding, communication, selling and teaching abilities.
5. Motivator having the confidence to solve queries.
Analytical Skills
1. System study and organizational knowledge
2. Problem identification, problem analysis, and problem solving
3. Sound common sense
4. Ability to access trade-off
5. Curiosity to learn about new organization
Management Skills
1. Understand users jargon and practices.
2. Resource & project management.
3. Change & risk management.
4. Understand the management functions thoroughly.
Technical Skills
1. Knowledge of computers and software.
2. Keep abreast of modern development.
3. Know of system design tools.
Breadth knowledge about new technologies.

Software Development Life Cycle (SDLC):-


i. Is a process used by the software industry to design, develop and test high quality
software‘s.
ii. The SDLC aims to produce a high-quality software that meets or exceeds customer
expectations, reaches completion within times and cost estimates.
1. SDLC is the acronym of Software Development Life Cycle.
2. It is also called as Software Development Process.
3. SDLC is a framework defining tasks performed at each step in the software
development process.
4. ISO/IEC 12207 is an international standard for software life-cycle processes. It
aims to be the standard that defines all the tasks required for developing and
maintaining software.

What is SDLC?
i. SDLC is a process followed for a software project, within a software organization.
ii. It consists of a detailed plan describing how to develop, maintain, replace and alter
or enhance specific software.
iii. The life cycle defines a methodology for improving the quality of software and the
overall development process.
The following figure is a graphical representation of the various stages of a typical
SDLC.

A typical Software Development Life Cycle consists of the following stages –

Stage 1: Planning and Requirement Analysis


i. Requirement analysis is the most important and fundamental stage in SDLC.
ii. It is performed by the senior members of the team with inputs from the customer,
the sales department, market surveys and domain experts in the industry.
iii. This information is then used to plan the basic project approach and to conduct
product feasibility study in the economical, operational and technical areas.
iv. Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage.
v. The outcome of the technical feasibility study is to define the various technical
approaches that can be followed to implement the project successfully with minimum
risks.
Stage 2: Defining Requirements
i. Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or the
market analysts.
ii. This is done through an SRS (Software Requirement Specification) document
which consists of all the product requirements to be designed and developed during
the project life cycle.
Stage 3: Designing the Product Architecture
i. SRS(Software Requirement Specification) is the reference for product architects to
come out with the best architecture for the product to be developed.
ii. Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented in a DDS - Design
Document Specification.
iii. This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.
iv. A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third party
modules (if any).
v. The internal design of all the modules of the proposed architecture should be clearly
defined with the minutest of the details in DDS.
Stage 4: Building or Developing the Product
i. In this stage of SDLC the actual development starts and the product is built.
ii. The programming code is generated as per DDS(Design Document Specification.)
during this stage.
iii. If the design is performed in a detailed and organized manner, code generation can
be accomplished without much hassle.
iv. Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code.
v. Different high level programming languages such as C, C++, Pascal, Java and PHP
are used for coding.
vi. The programming language is chosen with respect to the type of software being
developed.
Stage 5: Testing the Product
i. This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC.
ii. However, this stage refers to the testing only stage of the product where product
defects are reported, tracked, fixed and retested, until the product reaches the quality
standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance
i. Once the product is tested and ready to be deployed it is released formally in the
appropriate market.
ii. Sometimes product deployment happens in stages as per the business strategy of
that organization.
iii. The product may first be released in a limited segment and tested in the real
business environment (UAT- User acceptance testing).
iv. Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment.
v. After the product is released in the market, its maintenance is done for the existing
customer base.

Factors Affecting System Development (Success Successful)

i. Systems development means delivering a system that meets user and organisational
needs–on time and within budget.

ii. There is no formula for achieving this, but the following factors are known to have
impact on success:

1) Involvement – i. Getting users and other stakeholders involved in systems


development is critical for most systems development projects.

ii. Having the support of top-level managers is also important.

iii. The involvement of users throughout the development will mean they are less likely
to resist the software when it is delivered.

2) Degree of Change – i. A major factor that affects the quality of systems


development is the degree of change associated with the project.

ii. The scope can vary from implementing minor enhancements to an existing system,
up to major reengineering.

iii. The project team needs to recognise where they are on this spectrum of change

3) Managing Change – i. The ability to manage change is critical to the success of


systems development.

ii. New systems inevitably cause change.


iii. Unfortunately, not everyone adopts easily, and the increasing complexity of systems
can multiply the problems.

iv. Managing change requires the ability to recognise existing or potential problems and
deal with them before they become a serious threat to the success of the new or
modified system.

Here are some of the most common problems:

 Fear that the employee will lose his or her job, power or influence within the
organisation
 Belief that the proposed system will create more work than it eliminates
 Reluctance to work with “computer people
 Anxiety that the proposed system will negatively alter the structure of the
organisation
 Belief that other problems are more pressing than those solved by the proposed
system or that the system is being developed by people unfamiliar with“the way
things need to get done”
 Unwillingness to learn new procedures or approaches.

Preventing or dealing with these types of problems requires a coordinated effort


from stakeholders and users, managers and IS personnel

SDLC Models
There are various software development life cycle models defined and designed which
are followed during the software development process. These models are also
referred as Software Development Process Models”. Each process model follows a
Series of steps unique to its type to ensure success in the process of software
development.
Following are the most important and popular SDLC models followed in the industry –

 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Big Bang Model
Other related methodologies are Agile Model, RAD Model, Rapid Application
Development and Prototyping Models.
SDLC – Waterfall Model
i. The Waterfall Model was the first Process Model to be introduced.
ii. It is also referred to as a linear-sequential life cycle model.
iii. It is very simple to understand and use.
iv. In a waterfall model, each phase must be completed before the next phase can
begin and there is no overlapping in the phases.
v. The Waterfall model is the earliest SDLC approach that was used for software
development.
vi. This means that any phase in the development process begins only if the previous
phase is complete.
Waterfall Model - Design
i. In "The Waterfall" approach, the whole process of software development is divided
into separate phases. In this Waterfall model, typically, the outcome of one phase acts
as the input for the next phase sequentially.

The sequential phases in Waterfall model are −


1) Requirement Gathering and analysis – i. All possible requirements of the
system to be developed are captured in this phase and documented in a
requirement specification document.
2) System Design – i. The requirement specifications from first phase are studied
in this phase and the system design is prepared.
ii. This system design helps in specifying hardware and system requirements and
helps in defining the overall system architecture.
3) Implementation – i. With inputs from the system design, the system is first
developed in small programs called units, which are integrated in the next phase.
ii. Each unit is developed and tested for its functionality, which is referred to as Unit
Testing.
4) Integration and Testing – i. All the units developed in the implementation phase
are integrated into a system after testing of each unit.
ii. Post integration the entire system is tested for any faults and failures.
5) Deployment of system – i. Once the functional and non-functional testing is
done; the product is deployed in the customer environment or released into the
market.
6) Maintenance – i. There are some issues which come up in the client
environment.
ii. To fix those issues, patches are released.
iii. Also to enhance the product some better versions are released. Maintenance is
done to deliver these changes in the customer environment.

Waterfall Model - Application


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 −
1. Requirements are very well documented, clear and fixed.
2. Product definition is stable.
3. Technology is understood and is not dynamic.
4. There are no ambiguous requirements.
5. Ample resources with required expertise are available to support the product.
6. The project is short.

Waterfall Model – Advantages

1. Simple and easy to understand and use.


2. Easy to manage due to the rigidity of the model. Each phase has specific
deliverables and a review process.
3. Phases are processed and completed one at a time.
4. Works well for smaller projects where requirements are very well understood.
5. Clearly defined stages.
6. Well understood milestones.
7. Easy to arrange tasks.
8. Process and results are well documented.

Waterfall Model – Disadvantages

1. No working software is produced until late during the life cycle.


2. High amounts of risk and uncertainty.
3. Not a good model for complex and object-oriented projects.
4. Poor model for long and ongoing projects.
5. 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.
6. It is difficult to measure progress within stages.
7. Cannot accommodate changing requirements.
8. Adjusting scope during the life cycle can end a project.
9. Integration is done as a "big-bang”. At the very end, which doesn't allow
identifying any technological or business bottleneck or challenges early.
SDLC - Spiral Model
i. The spiral model combines the idea of iterative development with the systematic,
controlled aspects of the waterfall model.
ii. This Spiral model is a combination of iterative development process model and
sequential linear development model i.e. the waterfall model with a very high emphasis
on risk analysis.
iii. It allows incremental releases of the product or incremental refinement through
each iteration around the spiral.

Spiral Model – Design

i. The spiral model has four phases.


ii. A software project repeatedly passes through these phases in iterations called
Spirals.
The sequential phases in Spiral model are −
1) Identification- i. This phase starts with gathering the business requirements in the
baseline spiral.
ii. In the subsequent spirals as the product matures, identification of system
requirements, subsystem requirements and unit requirements are all done in this
phase.
iii. This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst.
iv. At the end of the spiral, the product is deployed in the identified market.
2) Design
i. The Design phase starts with the conceptual design in the baseline spiral and
involves architectural design, logical design of modules, physical product design and
the final design in the subsequent spirals.
3) Construct or Build
i. The Construct phase refers to production of the actual software product at every
spiral.
ii. In the baseline spiral, when the product is just thought of and the design is being
developed a POC (Proof of Concept) is developed in this phase to get customer
feedback.
iii. Then in the subsequent spirals with higher clarity on requirements and design
details a working model of the software called build is produced with a version number.
iv. These builds are sent to the customer for feedback.
4) Evaluation and Risk Analysis
i. Risk Analysis includes identifying, estimating and monitoring the technical feasibility
and management risks, such as schedule slippage and cost overrun.
ii. After testing the build, at the end of first iteration, the customer evaluates the
software and provides feedback.
The following illustration is a representation of the Spiral Model, listing the activities in
each phase.

Spiral Model Application


i. The Spiral Model is widely used in the software industry as it is in sync with the
natural development process of any product, i.e. learning with maturity which involves
minimum risk for the customer as well as the development firms.
1. When there is a budget constraint and risk evaluation is important.
2. For medium to high-risk projects.
3. Long-term project commitment because of potential changes to economic
priorities as the requirements change with time.
4. Customer is not sure of their requirements which is usually the case.
5. Requirements are complex and need evaluation to get clarity.
6. New product line which should be released in phases to get enough customer
feedback.
7. Significant changes are expected in the product during the development cycle.

The advantages of the Spiral SDLC Model are as follows −


1. Changing requirements can be accommodated.
2. Allows extensive use of prototypes.
3. Requirements can be captured more accurately.
4. Users see the system early.
5. Development can be divided into smaller parts and the risky parts can be
developed earlier which helps in better risk management.

The disadvantages of the Spiral SDLC Model are as follows −


1. Management is more complex.
2. End of the project may not be known early.
3. Not suitable for small or low risk projects and could be expensive for small
projects.
4. Process is complex
5. Spiral may go on indefinitely.
6. Large number of intermediate stages requires excessive documentation.

SDLC – RAD Model


i. RAD Model or Rapid Application Development model is a software development
process based on prototyping without any specific planning.

ii. In RAD model, there is less attention paid to the planning and more priority is given
to the development tasks.

iii. It targets at developing software in a short span of time.

iv. It focuses on input-output source and destination of the information.

v. It emphasizes on delivering projects in small pieces; the larger projects are divided
into a series of smaller projects.

vi. The main features of RAD modeling are that it focuses on the reuse of templates,
tools, processes, and code.

SDLC RAD modeling has following phases

1. Business Modeling

2. Data Modeling

3. Process Modeling

4. Application Generation

5. Testing and Turnover


RAD Model Diagram

Different Phases of RAD Model


There are following five major phases of Rapid Application Development Model

1) Business Modeling

On basis of the flow of information and distribution between various business


channels, the product is designed.

2) Data Modeling

The information collected from business modeling is refined into a set of data objects
that are significant for the business.

3) Process Modeling

The data object that is declared in the data modeling phase is transformed to achieve
the information flow necessary to implement a business function.

4) Application Generation

Automated tools are used for the construction of the software, to convert process and
data models into prototypes.

5) Testing and Turnover

As prototypes are individually tested during every iteration, the overall testing time is
reduced in RAD.
Application of RAD Module

1. When a system needs to be produced in a short span of time (2-3 months)

2. When the requirements are known

3. When the user will be involved all through the life cycle

4. When technical risk is less

5. When there is a necessity to create a system that can be modularized in 2-3


months of time

6. When a budget is high enough to afford designers for modeling along with the
cost of automated tools for code generation

RAD Advantages

i. Flexible and adaptable to changes.

ii. It is useful when you have to reduce the overall project risk.

iii. It is adaptable and flexible to changes.

iv. Due to code generators and code reuse, there is a reduction of manual coding.

v. Due to prototyping in nature, there is a possibility of lesser defects.

RAD Disadvantages

i. It can’t be used for smaller projects.

ii. Not all application is compatible with RAD.

iii. When technical risk is high, it is not suitable.

iv. Requires highly skilled designers or developers.

v. If developers are not committed to delivering software on time, RAD projects can
fail
SDLC – Prototyping Model
i. Prototyping Model is a software development model in which prototype is built,
tested, and reworked until an acceptable prototype is achieved.

ii. It also creates base to produce the final system or software.

iii. It works best in scenarios where the project’s requirements are not known in detail.

iv. It is an iterative, trial and error method which takes place between developer and
client.

Prototyping Model Phases

Prototyping Model has following six SDLC phases as follow:

Step 1: Requirements gathering and analysis


i. A prototyping model starts with requirement analysis.

ii. In this phase, the requirements of the system are defined in detail.

iii. During the process, the users of the system are interviewed to know what is their
expectation from the system.

Step 2: Quick design


i. The second phase is a preliminary design or a quick design.

ii. In this stage, a simple design of the system is created. However, it is not a complete
design.

iii. It gives a brief idea of the system to the user.

iv. The quick design helps in developing the prototype.


Step 3: Build a Prototype
i. In this phase, an actual prototype is designed based on the information gathered
from quick design.

ii. It is a small working model of the required system.

Step 4: Initial user evaluation


i. In this stage, the proposed system is presented to the client for an initial evaluation.

ii. It helps to find out the strength and weakness of the working model.

iii. Comment and suggestion are collected from the customer and provided to the
developer.

Step 5: Refining prototype


i. If the user is not happy with the current prototype, you need to refine the prototype
according to the user’s feedback and suggestions.

ii. This phase will not over until all the requirements specified by the user are met.

iii. Once the user is satisfied with the developed prototype, a final system is developed
based on the approved final prototype.

Step 6: Implement Product and Maintain


i. Once the final system is developed based on the final prototype, it is thoroughly
tested and deployed to production.

ii. The system undergoes routine maintenance for minimizing downtime and prevent
large-scale failures.

Types of Prototyping Models


Four types of Prototyping models are:

1. Rapid Throwaway prototypes


2. Evolutionary prototype
3. Incremental prototype
4. Extreme prototype

Advantages of the Prototyping Model

1. Users are actively involved in development. Therefore, errors can be detected


in the initial stage of the software development process.

2. Helps team member to communicate effectively


3. Customer satisfaction exists because the customer can feel the product at a very
early stage.

4. There will be hardly any chance of software rejection.

5. Quicker user feedback helps you to achieve better software development


solutions.

Disadvantages of the Prototyping Model

1. Prototyping is a slow and time taking process.

2. The cost of developing a prototype is a total waste as the prototype is ultimately


thrown away.

3. Prototyping may encourage excessive change requests.

4. Sometimes customers may not be willing to participate in the iteration cycle for
the longer time duration.

5. Poor documentation because the requirements of the customers are changing.

You might also like