KEMBAR78
SDLC Guide for Software Developers | PDF | Software Testing | Software Development Process
0% found this document useful (0 votes)
75 views41 pages

SDLC Guide for Software Developers

Hsjgsh

Uploaded by

abhinavkhadka0
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)
75 views41 pages

SDLC Guide for Software Developers

Hsjgsh

Uploaded by

abhinavkhadka0
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/ 41

`Unit:3 Software Development Lifecycle.

14 marks:
Software Development Phases
3.1 Importance and need of SDLC
3.2 System Study
3.3 Feasibility study and its types
3.4 System Requirements & Analysis
3.5System Requirements Specification
3.7 System Development
3.8 System Testing
3.9 System implementation
3.10 System Maintenance and reviews (SRS)
3.6 System Design
3.1 Illustrate the importance and need of SDLC.
Software Development Life Cycle (SDLC) is a process used to design and
develop a high-quality software. The SDLC consists of seven phases which
depict various stages/phases of the development process.
• Product development process is carried out as a series of certain activities
for software production. Each activity in the process is also referred to as
a phase.
• General activities include feasibility study, analysis, design, coding,
testing, implementation, and maintenance.
• Collectively, these activities are called the software development life cycle
(SDLC) or simply software life cycle and each of these activities are called
life cycle phase.
• The SDLC provides a framework that encompasses the activities
performed to develop and maintain software.
• Some of the software development models are waterfall, prototyping,
spiral, incremental, agile process, RUP process model, and so on.

1
Some of the importance are pointed below:
• It acts as a guide to the project and meet client’s objectives.
• It helps in evaluating, scheduling and estimating deliverables.
• It provides a framework for a standard set of activities.
• It ensures correct and timely delivery to the client
The Software Development Life Cycle (SDLC) is a structured process used
by software development teams to design, develop, test, and deploy
high-quality software. It is a crucial framework for managing and
delivering successful software projects. Here are some of the key reasons
why SDLC is important:

1. Systematic Approach: SDLC provides a systematic and structured


approach to software development. It breaks down the entire
process into distinct phases, making it easier to plan, execute, and
manage the project.
2. Quality Assurance: SDLC emphasizes rigorous (accurate)testing
and validation procedures at every stage. This helps in identifying
and rectifying defects early in the development process, leading to
higher quality software.
3. Risk Management: It helps in identifying potential risks and
challenges early in the project. By doing so, teams can plan for
contingencies and take necessary steps to mitigate risks.
4. Clear Communication: SDLC promotes clear and effective
communication among team members, stakeholders, and clients. It
establishes a common language and understanding of project goals
and requirements.
5. Cost-Efficiency: By following a structured process, SDLC can help
in controlling and reducing project costs. It minimizes the chances
of costly rework or late-stage changes.
6. Client Satisfaction: SDLC ensures that client requirements are
captured accurately and that the final product meets or exceeds
their expectations. This leads to higher client satisfaction and builds
trust.
2
7. Documentation and Traceability: SDLC encourages the creation
of detailed documentation at each stage. This includes
requirements documents, design documents, test cases, and user
manuals. This documentation provides a clear trail of decisions and
actions taken during the project.
8. Maintenance and Scalability: Properly following an SDLC ensures
that the software is well-organized, making it easier to maintain,
update, and scale in the future.

9. Adaptability and Flexibility: While SDLC provides a structured


approach, it is not rigid. It can be adapted to different project types,
sizes, and methodologies (e.g., Agile, Waterfall, etc.), allowing for
flexibility in implementation.
10. Client Involvement: SDLC often includes stages where client
feedback and validation are integral. This ensures that the client is
involved in the development process, reducing the likelihood of
misunderstandings or unmet expectations.
11. Long-Term Vision: It helps in aligning (give support) the
development process with the long-term vision and goals of the
organization. This prevents shortsighted decisions that might lead
to problems down the line.

In summary, the Software Development Life Cycle is essential for


ensuring that software projects are completed successfully, on time,
within budget, and with high quality. It provides a structured framework
that helps teams manage risk, communicate effectively, and deliver
software that meets client requirements and industry standards.

3.2 System Study:


System Analysis and Design – Overview
Systems development is systematic process which includes phases such as
planning, analysis, design, deployment, and maintenance. Here, we will
primarily focus on −
• Systems analysis
3
• Systems design
❖ Systems Analysis
It is a process of collecting and interpreting(explain) 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(fulfil) them purpose. Analysis specifies what the system should do.
❖ Systems 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
What is a System?
The word System is derived from Greek word Systema, which means an
organized relationship between any set of components to achieve some
common cause or objective. A system is “an orderly grouping of
interdependent components linked together according to a plan to achieve a
specific goal.” Constraints of a System .
A system must have three basic constraints:
1. A system must have some structure and behavior which is designed to
achieve a predefined objective.
2. Interconnectivity and inter dependence must exist among the system
components.
4
3.The objectives of the organization have a higher priority than the objectives
of its subsystems. For example, traffic management system, payroll system,
automatic library system, human resources information system.
Properties of a System:
A system has the following properties −
1.Organization
Organization implies structure and order. It is the arrangement of components
that helps to achieve predetermined objectives.
2.Interaction
It is defined by the manner in which the components operate with each other.
For example, in an organization, purchasing department must interact with
production department and payroll with personnel department.
3.Interdependence
Interdependence means how the components of a system depend on one
another. For proper functioning, the components are coordinated and linked
together according to as pecified plan. The output of one subsystem is the
required by another subsystem as input.
4.Integration
Integration is concerned with how system components are connected together.
It means that the parts of the system work together within the system even if
each part performs a unique function.
5.Central Objective
The objective of system must be central. It may be real or stated. It is not
common for an organization to state an objective and operate to achieve
another. The users must know the main objective of a computer application
early in the analysis for a successful design and conversion.
Elements of a System:
The following diagram shows the elements of a system −
Outputs and Inputs
• The main aim of a system is to produce an output which is useful for its user.
5
• Inputs are the information that enters into the system for processing.
• Output is the outcome of processing.
Processor(s)
• The processor is the element of a system that involves the actual
transformation of input into output.
• It is the operational component of a system. Processors may modify the input
either totally or partially, depending on the output specification.
• As the output specifications change, so does the processing. In some cases,
input is also modified to enable the processor for handling the transformation.
Control
• The control element guides the system.
• It is the decision–making subsystem that controls the pattern of activities
governing input, processing, and output.
• The behavior of a computer System is controlled by the Operating System
and software. In order to keep system in balance, what and how much input is
needed is determined by Output Specifications.
Feedback
• Feedback provides the control in a dynamic system.
• Positive feedback is routine in nature that encourages the performance of the
system.
• Negative feedback is informational in nature that provides the controller with
information for action.
Environment
• The environment is the “supersystem” within which an organization operates.
• It is the source of external elements that strike on the system.
• It determines how a system must function. For example, vendors and
competitors of organization’s environment, may provide constraints that affect
the actual performance of the business.
Q. Describe the system development phases.
6
The Seven Phases of the System-Development Life Cycle
1. Planning
This is the first phase in the systems development process. The purpose of this
step is to find out the scope of the problem and determine solutions.
Resources, costs, time, benefits and other items should be considered at this
stage.
2. Systems Analysis and Requirements
The second phase is where teams consider the functional requirements of the
project or solution. It’s also where system analysis takes place or analyzing the
needs of the end users to ensure the new system can meet their expectations.
3. Systems Design
The third phase describes, in detail, the necessary specifications, features and
operations that will satisfy the functional requirements of the proposed system
which will be in place. This is the step for end users to discuss and determine
their specific business information needs for the proposed system.
4. Development
The fourth phase is when the real work begins—in particular, when a
programmer, network engineer and/or database developer are brought on to
do the major work on the project. This work includes using a flow chart to
ensure that the process of the system is properly organized. The development
phase marks the end of the initial section of the process. Additionally, this
phase signifies the start of production. The development stage is also
characterized by instillation and change. Focusing on training can be a huge
benefit during this phase.
5. Integration and Testing
The fifth phase involves systems integration and system testing (of programs
and procedures)—normally carried out by a Quality Assurance (QA)
professional— to determine if the proposed design meets the initial set of
business goals. Testing may be repeated, specifically to check for errors, bugs
and interoperability. This testing will be performed until the end user finds it
acceptable. Another part of this phase is verification and validation, both of
which will help ensure the program’s successful completion.
7
6. Implementation
The sixth phase is when the majority of the code for the program is written.
Additionally, this phase involves the actual installation of the newly-developed
system. This step puts the project into production by moving the data and
components from the old system and placing them in the new system via a
direct cutover. While this can be a risky (and complicated) move, the cutover
typically happens during off-peak hours, thus minimizing the risk. Both system
analysts and end-users should now see the realization of the project that has
implemented changes.
7. Operations and Maintenance
The seventh and final phase involves maintenance and regular required
updates. This step is when end users can fine-tune the system, if they wish, to
boost performance, add new capabilities or meet additional user
requirements.

Types of Systems:
The systems can be divided into the following types −
Physical or Abstract Systems
 Physical systems are tangible entities. We can touch and feel them.
 Physical System may be static or dynamic in nature. For
example, desks and chairs are the physical parts of
computer center which are static. A programmed
computer is a dynamic system in which programs, data, and
applications can change according to the user's needs.
 Abstract systems are non-physical entities or conceptual
that may be formulas, representation or model of a real
system.
1.Open or Closed Systems
 An open system must interact with its environment. It
receives inputs from and delivers outputs to the outside of
the system. For example, an information system which
must adapt to the changing environmental conditions.
 A closed system does not interact with its environment. It is
isolated from environmental influences. A completely
closed system is rare in reality.
8
2,Adaptive and Non-Adaptive System
 Adaptive System responds to the change in the
environment in a way to improve their performance and to
survive. For example, human beings, animals.
 Non-Adaptive System is the system which does not
respond to the environment. For example, machines.
3.Permanent or Temporary System
 Permanent System persists(remain) for long time. For example, business
policies.
 Temporary System is made for specified time and after that
they are demolished. For example, A DJ system is set up for
a program and it is dissembled after the program.
4.Natural and Manufactured System
 Natural systems are created by the nature. For example,
Solar system, seasonal system.
 Manufactured System is the man-made system. For
example, Rockets, dams, trains.
Deterministic or Probabilistic System
 Deterministic system operates in a predictable manner and
the interactionbetween system components is known with
certainty. For example, two molecules of hydrogen and
one molecule of oxygen makes water.
 Probabilistic System shows uncertain behaviour. The exact
output is not known. For example, Weather forecasting,
mail delivery.
5.Social, Human-Machine, Machine System
 Social System is made up of people. For example, social clubs, societies.

9
 In Human-Machine System, both human and machines are
involved to perform a particular task. For example,
Computer programming.
 Machine System is where human interference is neglected.
All the tasks are performed by the machine. For example,
an autonomous robot.
6.Man–Made Information Systems
 It is an interconnected set of information resources to
manage data for particular organization, under Direct
Management Control (DMC).
 This system includes hardware, software, communication,
data, and application for producing information according
to the need of an organization.
Man-made information systems are divided into three types –
1. Formal Information System − It is based on the flow of
information in the form of memos, instructions, etc., from
top level to lower levels of management.
2. Informal Information System − This is employee-based
system which solves the day-to-day work-related problems.
3. Computer Based System − This system is directly
dependent on the computer for managing business applications.
For example, automatic library system, railway reservation
system, banking system, etc.

3.3 Elaborate the feasibility study and its


types.
Feasibility Study
Feasibility Study can be considered as preliminary investigation
that helps the management to take decision about whether study
of system should be feasible for development or not.
 It identifies the possibility of improving an existing system,
developing a new system, and produce refined estimates
for further development of system.
 It is used to obtain the outline of the problem and decide
whether feasibleor appropriate solution exists or not.
 The main objective of a feasibility study is to acquire
problem scope instead of solving the problem.
10
 The output of a feasibility study is a formal system proposal
act as decision document which includes the complete
nature and scope of the proposed system.
Steps Involved in Feasibility Analysis
The following steps are to be followed while performing feasibility analysis −
 Form a project team and appoint a project leader.
 Develop system flowcharts.
 Identify the deficiencies of current system and set goals.
 Enumerate the alternative solution or potential candidate
system to meet goals.
 Determine the feasibility of each alternative such as
technical feasibility, operational feasibility, etc.
 Weight the performance and cost effectiveness of each candidate
system.

11
 Rank the other alternatives and select the best candidate system.
 Prepare a system proposal of final project directive to
management for approval.
Types of
Feasibilities
1. . Economic
Feasibility
 It is evaluating the effectiveness of candidate system by
using cost/benefit analysis method.
 It demonstrates the net benefit from the candidate system
in terms of benefits and costs to the organization.
 The main aim of Economic Feasibility Analysis (EFS) is to
estimate the economic requirements of candidate system
before investments funds are committed to proposal.
 It prefers the alternative which will maximize the net worth
of organization by earliest and highest return of funds
along with lowest level of risk involved in developing the
candidate system.

2.Technical Feasibility
 It investigates the technical feasibility of each
implementation alternative.
 It analyses and determines whether the solution can be
supported by existing technology or not.
 The analyst determines whether current technical
resources be upgraded or added it that fulfill the new
requirements.
 It ensures that the candidate system provides
appropriate responses towhat extent it can support the
technical enhancement.
3.Operational Feasibility
 It determines whether the system is operating effectively
once it is developed and implemented.
 It ensures that the management should support the
proposed system and its working feasible in the current
organizational environment.
12
 It analyses whether the users will be affected and they
accept the modified or new business methods that affect
the possible system benefits.
 It also ensures that the computer resources and network
architecture of candidate system are workable.
4.Behavioral Feasibility
 It evaluates and estimates the user attitude or behavior
towards the development of new system.
 It helps in determining if the system requires special effort
to educate, retrain, transfer, and changes in employee’s
job status on new ways of conducting business.

13
5.Schedule Feasibility
It ensures that the project should be completed within given
time constraint or schedule.
It also verifies and validates whether the deadlines of project
are reasonable or not.

3.4 Describe the System Analysis.


Systems analysis is the process by which an individual (s) studies
a system such that an information system can be analysed,
modelled, and a logical alternative can be chosen. Systems
analysis projects are initiated for three reasons: problems,
opportunities, and directives.
7 Steps of Agile System Analysis Process
 Identify System Users. This is the most important question. ...
 Define Main Users Goals. ...
 Define System Usage Patterns. ...
 Invent Functional Solution to Meet Users Goals and Usage Patterns. ...
 Define Main Navigation Paths. ...
 Create UI Mockups. ...
 Polish UI Elements.
What are three parts of system analysis?
Basically, there are three major components in every system,
namely input, processing and output. In a system the different
components are connected with each other and they are
interdependent.
importance of system analysis:
System analysis is a critical phase in the field of software engineering. It
plays a pivotal(vital) role in ensuring the success of a software project.
Here are some of the key reasons why system analysis is important:

1. Requirements Clarification: System analysis helps in clarifying and


documenting the exact requirements of the software. This ensures
that all stakeholders have a clear and shared understanding of what
the software is supposed to achieve.
2. Alignment(arrangement) with Business Objectives: Through
system analysis, software engineers can ensure that the proposed
14
solution aligns with the broader business goals and objectives of
the organization. It helps in addressing the actual needs of the
stakeholders.
3. Problem Identification and Solving: System analysts are skilled at
identifying potential issues, challenges, and conflicts in the initial
requirements. This helps in resolving problems early in the project,
reducing the likelihood of costly changes later on.
4. Scope Definition: System analysis helps in defining the scope of
the project. It sets clear boundaries for what is within the project's
scope and what is outside of it. This prevents "scope creep" - the
tendency for project requirements to expand beyond the original
plan.
5. Risk Management: By thoroughly analyzing the system
requirements, potential risks and challenges can be identified and
assessed. This allows for the development of mitigation strategies
and contingency plans.
6. Cost Estimation and Budgeting: Accurate system analysis helps in
estimating the costs associated with the development process. This
includes not only the initial development costs but also
maintenance and operational costs over the software's lifecycle.
7. Timeframe Estimation: System analysis aids in estimating the time
required to complete the project. This is crucial for planning and
scheduling activities, setting milestones, and managing client
expectations.
8. Resource Allocation: Based on the requirements identified during
analysis, the necessary resources (human, financial, technological)
can be allocated appropriately. This ensures that the project has the
right resources to succeed.
9. Design Blueprint: System analysis provides the foundation for the
subsequent design phase. It offers a clear understanding of what
needs to be built, which is crucial for creating an effective and
efficient system architecture.
10. Client and Stakeholder Communication: Clear and well-
documented system analysis results in effective communication
with clients and stakeholders. This helps in managing expectations
15
and ensuring that everyone is on the same page regarding the
project's objectives and deliverables.
11. Basis for Testing and Validation: The requirements identified
during system analysis serve as the basis for creating test cases and
validation criteria. This ensures that the final product meets the
specified requirements.
12. Reducing Rework: Thorough system analysis helps in
reducing the likelihood of major changes or rework during the later
stages of development. This can save time, effort, and resources.

In summary, system analysis is fundamental to the success of a software


project. It provides a clear understanding of what needs to be built, why
it needs to be built, and how it aligns with the broader goals of the
organization. It sets the stage for efficient and effective development,
testing, and deployment of the software system.

Requirement Analysis:
• Requirements Analysis is the process of defining the expectations of
the users for an application that is to be built or modified.
• It involves all the tasks that are conducted to identify the needs of
different stakeholders.
• High-quality requirements are documented, actionable, measurable,
testable, traceable, helps to identify business opportunities, and are
defined to a facilitate system design
Requirement Analysis Process
• The software requirements analysis process involves the following
steps/phases:
1- Eliciting requirements
• The process of gathering requirements by communicating with the customers
is known as eliciting requirements.
2- Analyzing requirements
• This step helps to determine the quality of the requirements. It involves
identifying whether the requirements are unclear, incomplete, ambiguous, and
contradictory. These issues resolved before moving to the next step.
16
3- Requirements modeling
• In Requirements modeling, the requirements are usually documented in
different formats such as use cases, user stories, natural-language documents,
or process specification.
•4- Review and retrospective • This step is conducted to reflect on the
previous iterations of requirements gathering in a bid to make improvements in
the process going forward.
Requirement Analysis importance:
1. Understanding Client Needs: Requirement analysis involves a
deep exploration of the client's needs and expectations. This step
ensures that the software development team comprehensively
understands what the client wants to achieve with the final product.
2. Minimizing Ambiguity(mystery) and Misunderstandings:
Through careful analysis, potential ambiguities, contradictions, or
missing information in the initial requirements are identified and
resolved. This helps in preventing misunderstandings and costly
mistakes later in the development process.
3. Scope Definition and Control: Requirement analysis helps in
clearly defining the boundaries of the project. It outlines what
features and functionalities are included, helping to prevent "scope
creep" — the tendency for requirements to expand beyond the
original plan.
4. Basis for Design and Development: Detailed requirements serve
as the foundation for designing the system architecture and for the
actual development work. Without clear requirements, the
development process would lack direction and focus.
5. Cost and Resource Estimation: It enables accurate estimation of
the resources (time, manpower, technology) needed for the project.
This ensures that the project can be completed within budget and
on schedule.
6. Client Satisfaction and Trust Building: Thorough requirement
analysis leads to a software solution that aligns closely with the
client's vision. This, in turn, fosters trust and satisfaction, as the
client sees that their needs have been understood and addressed.
17
In summary, requirement analysis is the cornerstone of a successful
software project. It ensures that the project starts on a solid foundation,
with a clear understanding of what needs to be achieved and how it will
be accomplished. This ultimately leads to a higher likelihood of
delivering a product that meets or exceeds client expectations.

3.5 Requirements Specification:


• The main focus of the problem analysis approaches is to understand the
internal behavior of the software
• Requirements are described in a formal document called software
requirement specification (SRS).
• Software requirement specification (SRS) document is a formal document
that provides the complete description of the proposed software, i.e.,
what the software will do without describing how it will do so.
• Software requirements specification is one of the important documents
required in the software development.
• An SRS is a Software Requirement Specification document which serves
as a written contract between client and an organization.
• A Software requirements specification document describes the intended
purpose, requirements and nature of a software to be developed. It also
includes the yield and cost of the software.
• A software requirements specification (SRS) is a document that describes
what the software will do and how it will be expected to perform. It also
describes the functionality the product needs to fulfill all stakeholders
(business, users)
SRS is needed for a variety of reasons:
• Customers and users rely more on and better understand a written
formal document than some technical specification.

18
• It provides basis for later stages of software development, viz.,
design, coding, testing, standard compliances, delivery, and
maintenance.
• It acts as the reference document for the validation and verification
of the work products and final software.
• It is treated as an agreement on the features incorporated in the
final system of project between customer and the supplier.
• A good quality SRS ensures high quality software product.
• A high quality SRS reduces development effort (schedule, cost, and
resources) because unclear requirements always lead to
unsuccessful projects.
importance and need of SRS:

1. Clear Communication: SRS serves as a formal document that


translates the client's needs and expectations into a clear, concise,
and structured format. It acts as a bridge between the client and the
development team, ensuring that everyone is on the same page.
2. Scope Definition: It outlines the scope of the software project,
specifying what functionalities will be included and what will be
excluded. This helps in preventing "scope creep" – the tendency for
requirements to expand beyond the original plan.
3. Basis for Agreement: SRS serves as a formal agreement between
the client and the development team. It outlines the deliverables,
features, and functionalities that will be developed, and both parties
sign off on it. This document becomes a reference point for any
disputes or changes in requirements.
4. Risk Management: It helps in identifying potential risks and
challenges early in the project. By detailing the requirements
comprehensively, potential issues can be addressed proactively,
reducing the likelihood of costly changes later in the development
process.
5. Guidance for Development Team: SRS provides a comprehensive
guide for the development team on what needs to be built. It
19
specifies the features, functionalities, and constraints of the
software, giving developers a clear roadmap for their work.
6. Basis for System Design: The SRS is used as a foundation for
system design. It helps in creating the architecture and design of
the software, ensuring that it aligns with the specified requirements.
7. Basis for Testing and Validation: Test cases and validation criteria
are derived from the requirements specified in the SRS. This ensures
that the final product is thoroughly tested against the specified
criteria to ensure it meets the client's expectations.
8. Change Management: As the project progresses, there may be
changes in requirements. The SRS serves as a benchmark against
which proposed changes can be evaluated. It helps in managing
and documenting changes, ensuring that they align with the
project's objectives.
9. Client Satisfaction and Trust Building: A well-prepared SRS
demonstrates professionalism and competency to the client. It
shows that the development team has taken the time to understand
the client's needs and provides a clear plan for meeting those
needs.
10. Legal and Regulatory Compliance: In many industries,
compliance with legal and regulatory standards is crucial. The SRS
often includes requirements related to compliance, ensuring that
the software meets industry-specific standards.

In summary, the Software Requirements Specification is a pivotal


document that lays the foundation for successful software development.
It ensures that everyone involved in the project has a clear
understanding of what needs to be achieved and provides a basis for
effective communication, development, testing, and validation activities.

Characteristics of SRS:
• Correctness
• Unambiguity (notpuzzle)
• Completeness
20
• Consistency
• Should be ranked for importance and/or stability
• Verifiability
• Modifiability
• Testability
• Validity
• Traceability
Components of an SRS:
– Functional requirements
– Performance requirements
– Design constraints (hardware and software)
– External interface requirements
3.6 Describe the System Design.
System design is the phase that bridges the gap between
problem domain and the existing system in a manageable way.
This phase focuses on the solution domain, i.e., “how to
implement?”
It is the phase where the SRS document is converted into a
format that can be implemented and decides how the system
will operate.
In this phase, the complex activity of system development is
divided into several smaller sub-activities, which coordinate with
each other to achieve the main objective of system
development.

21
Inputs to System Design:
System design takes the following inputs −
 Statement of work
 Requirement determination plan
 Current situation analysis
 Proposed system requirements including a conceptual data
model, modified DFDs, and Metadata (data about data).
Outputs for System Design:
System design gives the following outputs −
 Infrastructure and organizational changes for the proposed system.
 A data schema, often a relational schema.
 Metadata to define the tables/files and columns/data-items.
 A function hierarchy diagram or web page map that
graphically describes the program structure.
 Actual or pseudocode for each module in the program.
 A prototype for the proposed system.
Software Design

• Software design is a crucial phase of the software development life


cycle that focuses on the solution domain of a system.
22
• Software design is the process of describing the blueprint or sketch
of the final software product in the form of a design model.
• Design aims at producing software architecture, establishing
structural relationships among modules, and describing the
algorithmic details of each module.
• The design model encompasses an architecture on which it is
developed, interfaces with other modules, and a design document.
system/Software Design process/ Types of system design:

• A software design process is a set of design activities carried out in


the design phase to produce a design model from the SRS.
• The software design process basically consists of three
design phases or design levels, viz., architectural design,
physical design, and detailed design.
1.Architectural design is an external design which considers the
external behavior of a software product.
• The external design considers the architectural aspects related to
business, technology, major data stores, structure of data and
modules, reports, performance criteria, and high-level process
structure of the product.
It is also known as high level design that focuses on the design of system
architecture. It describes the structure and behavior of the system. It
defines the structure and relationship between various modules of system
development process

2.Physical design is a high-level design or structural design which


is concerned with refining the conceptual view of the system;
identifying the major modules; decomposing the modules into sub-
modules, interconnections among modules, data structure, and
data store in the system.
• Software design methodologies (e.g., structured design, object
oriented, Jackson structured design, W-Orr, etc.) are used to
produce the physical design.

23
• Physical design relates to the actual input and output
processes of the system. It focuses on how data is entered
into a system, verified, processed, and displayed as output.
• It produces the working system by defining the design
specification that specifies exactly what the candidate
system does. It is concerned with user interface design,
process design, and data design.

3.Detailed design is the algorithmic design of each module in the


software. It is also called logical design.
• The detailed design concentrates on the specification of algorithms
and data structures of each module, the actual interface
descriptions and data stores of the modules, and package
specifications of the system.
• It follows Architectural design and focuses on development of each
module.

Characteristics of a Good Software Design:


The desirable characteristics that a good software design should have
are as follows:
• Correctness
• Efficiency
• Understandability
• Maintainability
• Simplicity
• Completeness
• Verifiability
• Portability
• Modularity
• Reliability
• Reusability
24
3.7 Systems Development :
Systems development is a process that consists of analyzing a system,
designing a new system or making modifications to the old one, acquiring the
needed hardware and software, and getting the new or modified system to
work.
The System Development Life Cycle (SDLC) provides a well-structured
framework that gives an idea, of how to build a system. It consists of steps as
follows- Plan, Analyze, Design, Develop, Implement and Maintain. In this
article, we will see all the stages of system development. We will delve into the
significance of each stage, emphasizing the critical role played by System
Design in the overall process.

System Development Life Cycle

25
System Development Life Cycle:
The System Development Life Cycle encompasses a series of interconnected
stages that ensure a systematic approach to system development. The stages
include Planning, Analysis, Design, Development, Implementation, and
Maintenance. Each stage contributes to the successful completion of the system,
with System Design serving as a crucial component.
Stage 1: Plan
The Planning stage lays the groundwork for the entire SDLC. It involves
identifying the system’s goals, defining project scope, setting objectives,
establishing timelines, and determining available resources. Planning ensures
that the development process aligns with organizational needs and sets a clear
direction for subsequent stages.
Stage 2: Analyze
During the Analysis stage, the focus is on gathering and understanding the
requirements of the system. This includes conducting interviews, studying
existing processes, and identifying stakeholders’ needs. The gathered
information serves as a basis for designing a system that meets users’
expectations and addresses organizational challenges.
Stage 3: Design
System Design is a critical stage in the SDLC, where the requirements gathered
during the Analysis phase are translated into a detailed technical plan. It involves
designing the system’s architecture, database structure, and user interface, and
defining system components. The Design stage lays the foundation for the
subsequent development and implementation phases.
Stage 4: Develop
The Development stage involves the actual coding and programming of the
system. Based on the design specifications, developers write code, create
database structures, and implement necessary functionalities. Rigorous testing
and quality assurance are performed to ensure the system’s accuracy,
performance, and adherence to the design requirements.
Stage 5: Implement
This stage involves deploying the developed system into the production
environment. This includes activities such as system installation, data migration,
training end-users, and configuring necessary infrastructure. Implementation
requires careful planning and coordination to minimize disruptions and ensure
a smooth transition from the old system to the new one.

26
Stage 6: Maintain
Maintenance is an ongoing stage that involves monitoring, managing, and
enhancing the system’s performance and functionality. It includes activities
such as bug fixes, updates, security patches, and addressing user feedback.
Regular maintenance ensures the system remains reliable, secure, and adaptable
to changing business needs.
3.8. System Testing
• It is the process used to help identify the correctness, completeness, security
and quality of developed computer system.
• Testing is a process of technical investigation performed on behalf on
stakeholders that is intended to reveal quality related information about the
product with respect to the context in which it is integrated to operate.
• This includes the process of executing a program or application with the
intend of finding error.
• No program or system design is perfect, communication between the user
and the designer is not always short.
• The result is errors and more errors. Testing is vital to the success of the
system .
 Software testing is the process of finding defects in the software so that
these can be debugged and the defect-free software can meet the
customer needs and expectations.
 Software testing is one of the important phases in software development
life cycle.
 A quality software can be achieved through testing.
 Effective testing reduces the maintenance cost and provides reliable
outcomes.
 Example of Ineffective testing -the Y2K problem.
 The intention of software testing process is to produce a defect-free
system.
Role of Software testers:

27
 The goal of testers is to confirm that the software works properly by
finding defects as early as possible and ensuring that these are fixed
Software tester does the following tasks for testing the software.
 Prepare the test plan and test data.
 Design test cases and test scripts.
 Set up test environment.
 Perform testing.
 Track the defects in the defect management system.
 Participate in the test case review meetings.
 Prepare test report.
 Follow software standards.
Component Testing Process:
1. Requirement Analysis: User requirement related to each component is
observed.
2. Test Planning: Test is planned according to the analysis of the
requirements of the user.
3. Test Specification: In this section it is specified that which test case must
be run and which test case should be skipped.
4. Test Execution: Once the test cases are specified according to the user
requirements, test cases are executed.
5. Test Recording: Test recording is the having record of the defects that are
detected.
6. Test Verification: Test verification is the process to determine whether
the product meet specification.
7. Completion: This is the last phase of the testing process in which the
result is analyzed.

❖ Black Box Testing- Functional/behavioral Testing :

28
 Black-box testing is performed on the basis of functions or features of the
software. In black-box testing, only the input values are considered for
the design of test cases.
 The output values that the software provides on execution of test cases
are observed. The internal logic or program structures are not considered
during black-box testing.
 It is also known as behavioral or functional testing.
 There are a number of black-box test case design methods
 Equivalence class partitioning
 Boundary value analysis
 Cause-effect graphing
 Error guessing
❖ White box Testing – Structural Testing:
 White-box testing is concerned with exercising the source code of a
module and traversing a particular execution path.
 The internal logics, such as control structures, control flow, and
data structures are considered during the white-box testing.
 White-box testing methods are applied at integration and testing
phases. White-box testing is also known as glass-box testing or
structural testing.
 The following white-box testing methods are widely used for testing
the software:
 Control flow based testing
 Path testing
 Data flow based testing
 Mutation testing
Differences between Black Box Testing vs White Box Testing:

29
Black Box Testing White Box Testing

It is a way of software testing in It is a way of testing the software in


which the internal structure or the which the tester has knowledge about
program or the code is hidden and the internal structure or the code or
nothing is known about it. the program of the software.

Implementation of code is not needed Code implementation is necessary for


for black box testing. white box testing.

It is mostly done by software


It is mostly done by software testers.
developers.

No knowledge of implementation is Knowledge of implementation is


needed. required.

It can be referred to as outer or It is the inner or the internal software


external software testing. testing.

It is a functional test of the software. It is a structural test of the software.

This testing can be initiated based on This type of testing of software is


the requirement specifications started after a detail design
document. document.

No knowledge of programming is It is mandatory to have knowledge of


required. programming.

It is the behavior testing of the


It is the logic testing of the software.
software.

It is applicable to the higher levels of It is generally applicable to the lower


testing of software. levels of software testing.

It is also called closed testing. It is also called as clear box testing.

It is least time consuming. It is most time consuming.

30
Black Box Testing White Box Testing

It is not suitable or preferred for


It is suitable for algorithm testing.
algorithm testing.

Data domains along with inner or


Can be done by trial and error ways
internal boundaries can be better
and methods.
tested.

Example: Search something on Example: By input to check and


google by using keywords verify loops

Black-box test design techniques-


White-box test design techniques-
 Decision table testing
 Control flow testing
 All-pairs testing
 Data flow testing
 Equivalence partitioning
 Branch testing
 Error guessing

Types of Black Box Testing: Types of White Box Testing:


 Functional Testing  Path Testing
 Non-functional testing  Loop Testing
 Regression Testing  Condition testing

It is less exhaustive as compared to It is comparatively more exhaustive


white box testing. than black box testing.

3.9 Illustrate the System


implementation.
Implementation is the process
of:
 building properly working system,
 install it in the organization,
 replacing old system and working methods,
 finalize system and user documentation and
 training end prepared to support the system to assists users

31
• The software engineer translates the design specifications into source
codes in some programming language.
• The main goal of implementation is to produce quality source codes
that can reduce the cost of testing and maintenance.
• The purpose of coding is to create a set of instructions in a
programming language so that computers execute them to perform
certain operations.
• Implementation is the software development phase that affects the
testing and maintenance activities.
• A clear, readable, and understandable source code will make testing,
debugging, and maintenance tasks easier.

The six major activities/Stages of System Implementation are:


 Coding-Writing Computer Program
 Testing
 Installation- Converting from old to new system
 Documentation
 Training
 Start of Support
The purpose of these steps is to:
 Convert final physical system specifications
into working and reliable software.
 Document work that has been done.
 Provide help for current and future users.

The Process of Coding, Testing, and


Installation Coding:
 Coding is the process where, physical design
specifications created by the analysis team are turned
into working computer code by program team.

32
 Coding Deliverables: Code, Program Documentation

. Here are several key reasons why system implementation is crucial in


software engineering:

1. Bringing Concepts to Reality: Implementation transforms


theoretical designs and requirements into a functioning, tangible
system. It's the stage where the actual software product comes to
life.
2. Ensuring Correctness and Functionality: It's during
implementation that developers ensure that the software behaves
according to the specified requirements. This phase verifies that the
system meets the needs and expectations of the stakeholders.
3. Integration and Interoperability: Implementation involves
integrating the software with existing systems and other software
components. This ensures that the new system seamlessly works
with other tools and platforms in the organization.
4. Data Migration and Transition: If applicable, implementation
includes the migration of existing data into the new system. This
ensures that historical data is preserved and can be utilized in the
new environment.
5. User Training and Familiarization: Implementation involves
training end-users and administrators on how to effectively use the
system. This helps in minimizing the learning curve and ensures that
the software is utilized to its fullest potential.
6. Quality Assurance and Testing: Implementation is a critical phase
for rigorous testing and quality assurance. It involves conducting
acceptance testing, performance testing, and security checks to
ensure the software meets predefined standards.
7. Reducing Disruption and Downtime: A well-planned
implementation process aims to minimize disruption to business
operations. It involves careful scheduling and execution to avoid
downtime and maintain productivity.
8. Adhering to Budget and Timeline: Proper implementation
ensures that the project stays on schedule and within budget.
33
Delays or unexpected issues during implementation can lead to
cost overruns and missed deadlines.
9. Managing Risk and Issues: The implementation phase is a critical
juncture for identifying and addressing any unforeseen challenges
or risks. It allows for the mitigation of issues before they impact
operations.
10. Transition to Support and Maintenance: Effective
implementation sets the stage for the ongoing support and
maintenance of the system. It establishes a baseline for future
updates, patches, and enhancements.
11. Ensuring Stakeholder Satisfaction: A successful
implementation results in satisfied stakeholders, including clients,
end-users, and management. It demonstrates that the software
development team has delivered a functional, reliable system that
meets their needs.

In summary, system implementation is a pivotal phase in the software


development life cycle. It transforms theoretical concepts and designs
into practical, functioning systems, ensuring that the software meets the
requirements, functions correctly, and integrates seamlessly into the
organization's operations.

3.10 Describe the system Maintenance and reviews.


System review is the monitoring and evaluation of the system to
determine the success of the system development process and to
make sure it continues to satisfy the goals of the organization.
System maintenance refers to a continuous stage of system
development during which the operational system is checked
and changed or modified to improve it and make it more useful
in terms of meeting the goals of users and organizations.

System review and maintenance approaches

34
If not monitored and modified on a regular basis, a system will
only be relevant and effective for a short period. Review and
maintenance are required in order to extend the life of the
current system for as long as possible.
Time-driven approach: A time-driven procedure is performed periodically.
Event-driven approach: An event-driven procedure starts when
a problem or opportunity such as an error, a corporate merger, a
new market, or new product arises. Events can include the
following:
 new information needs by users and managers resulting
from changes in the industry and new competitors
entering the market
 errors, anomalies and problems in the program that were
not picked up during the development stages - business
processes that have changed for some reason
 corporate mergers and acquisitions that require the
integration of a different system changes in technology
that result in the use of new hardware
 technical problems with software and hardware
 new government regulations that affect the operational system and
requirements
 unforeseen events that result in the need to make
changes to the system Most organizations use a
combination of the two approaches.
The system review process
The system review process has two main objectives:

In the first place to review whether the system is developed as intended.

Secondly, the system review process can also be used to review


whether the new system really fulfils the user and organizational
needs as envisaged. An independent review team usually
performs this type of review.
1. Review team

35
If the organization has already decided to develop a new system,
a development team would be the best people to review the
current system.
2. Factors to consider during
the system review process
During a system review, important factors to consider are:
 the mission and goals of the organization F hardware in use
 software in use
 controls in place
 costs of development and operation

36
3. Different
aspects of the review process
The review phase consists of the following two aspects:
A. Post-implementation review
The development team needs to initiate a post-
implementation review to measure the success of the
development process, to determine whether the
required objectives have been met and if not, why
not.
Post-implementation review measures:
 the suitability of the conversion, transfer and introduction
procedures
 whether the underlying principles of the changes have been
clearly explained
 the suitability and effectiveness of the
documentation created during the system
implementation process
 whether the user training conducted during
the implementation process was effective
whether there was a closure process with the users and
stakeholders
B. Resource management review
The resource management review is done to
determine the effectiveness of the use of
organizational resources during the system
development stages.
An internal auditing team will usually do this review;
where an internal auditing team does not exist, a
senior management team will do the review.
4. Review methods
There are four possible methods for
conducting reviews namely:
Questionnaires

37
Focus
groups
Perfor
mance
measu
res
Carry
out a
survey
5. The system review report
After the review process has been completed, the
facts need to be collected and the development
team needs to prepare a formal system review
report.

• Software Maintenance
• Software maintenance is the process of modifying a software
product after it has been delivered to the customer.
• The main purpose of software maintenance is to modify and
update software application after delivery to correct faults and
to improve performance.
• Changes made to a system to fix or enhance its functionality.
Software Maintenance is a very broad activity that includes
error corrections, enhancements of capabilities, deletion of
obsolete capabilities, and optimization.
Why Maintenance is Needed?
1. Software Maintenance must be performed in order to:
2. Correct faults.
3. Improve the design.
4. Implement enhancements.

38
5. Interface with other systems.
6. Accommodate programsso that different hardware, software,
system features, and telecommunications facilities can be used.
7. Migrate legacy software.
8. Retire software
Nature of Maintenance/Types of Maintenance
1. Corrective maintenance: Corrective maintenance of a software
product may be essential either to rectify some bugs observed
while the system is in use, or to enhance the performance of
the system.
2. Adaptive maintenance: This includes modifications and
updation when the customers need the product to run on new
platforms, on new operating systems, or when they need the
product to interface with new hardware and software.
3. Perfective maintenance: A software product needs
maintenance to support the new features that the users want
or to change different types of functionalities of the system
according to the customer demands.
4. Preventive maintenance: This type of maintenance includes
modifications and updations to prevent future problems of the
software. It goals to attend problems, which are not significant
at this moment but may cause serious issues in future
Review and maintenance are crucial phases in the Software
Development Life Cycle (SDLC) for several important
reasons:

1. Identifying and Fixing Defects: Regular reviews and


maintenance activities help in identifying and addressing
defects, bugs, and issues that may not have been caught
during earlier stages of development.
2. Adapting to Changing Requirements: Business
environments and requirements can change over time.

39
Review and maintenance activities allow for adjustments
and updates to the software to ensure it continues to
meet the evolving needs of the organization.
3. Enhancing Security: Security vulnerabilities may emerge
after the initial development. Regular reviews and
maintenance allow for the identification and patching of
potential security risks to protect the system and its data.
4. Optimizing Performance: As usage patterns change or as
the software's load increases, performance issues may
arise. Reviews and maintenance activities allow for
performance tuning and optimization to ensure the
system operates efficiently.
5. Addressing Compatibility Issues: Changes in external
systems or platforms may lead to compatibility issues.
Review and maintenance activities help in ensuring that
the software remains compatible with other software and
hardware components in the environment.
6. Managing Technical Debt: Over time, codebases can
accumulate technical debt – suboptimal code or design
decisions made for expediency. Regular reviews and
maintenance efforts help in identifying and addressing
technical debt to maintain code quality.
7. Compliance and Regulation Updates: Laws, regulations,
and industry standards may change. Review and
maintenance activities are essential for ensuring that the
software remains compliant with the latest legal and
regulatory requirements.
8. Improving User Experience: Feedback from end-users
can provide valuable insights into how the software can be
improved for better usability and user satisfaction. Regular
reviews and maintenance efforts allow for the
implementation of user-driven enhancements.

40
9. Sustaining Long-Term Value: As software is expected to
have a long lifespan, ongoing review and maintenance
activities help in preserving the value and usefulness of the
system over time.
10. Preventing System Deterioration: Without regular
review and maintenance, software systems can deteriorate,
leading to reduced performance, increased downtime, and
potential business disruptions.

In summary, review and maintenance activities are essential in


ensuring that software remains reliable, secure, and aligned
with the evolving needs and standards of an organization.
These activities help in extending the lifespan and value of the
software system.

Prepared by : Er Hari Shankar Gupta.

BEST OF LUCK

41

You might also like