SE Unit 1
SE Unit 1
SE Unit 1
In other words, a life cycle model maps the various activities performed on
a software product from its inception to retirement. Different life cycle
models may plan the necessary development activities to phases in
different ways. Thus, no element which life cycle model is followed, the
essential activities are contained in all life cycle models though the action
may be carried out in distinct orders in different life cycle models. During
any life cycle stage, more than one activity may also be carried out.
Need of SDLC
The development team must determine a suitable life cycle model for a
particular plan and then observe to it.
A software life cycle model describes entry and exit criteria for each phase.
A phase can begin only if its stage-entry criteria have been fulfilled. So
without a software life cycle model, the entry and exit criteria for a stage
cannot be recognized. Without software life cycle models, it becomes tough
for software project managers to monitor the progress of the project.
SDLC Cycle
SDLC Cycle represents the process of developing software. SDLC
framework includes the following steps:
Business analyst and Project organizer set up a meeting with the client to
gather all the data like what the customer wants to build, who will be the
end user, what is the objective of the product. Before creating a product, a
core understanding or knowledge of the product is very necessary.
In this phase of SDLC, the actual development begins, and the programming is
built. The implementation of design begins concerning writing code.
Developers have to follow the coding guidelines described by their
management and programming tools like compilers, interpreters, debuggers,
etc. are used to develop and implement the code.
Stage5: Testing
After the code is generated, it is tested against the requirements to make sure
that the products are solving the needs addressed and gathered during the
requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is
deployed.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues
come up and requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as
maintenance.
Waterfall model
Winston Royce introduced the Waterfall Model in 1970.This model has five
phases: Requirements analysis and specification, design, implementation, and
unit testing, integration and system testing, and operation and maintenance.
The steps always follow in this order and do not overlap. The developer must
complete every phase before the next phase begins. This model is named
"Waterfall Model", because its diagrammatic representation resembles a
cascade of waterfalls.
In this model, there are different phases the software goes through.
The phases are requirement analysis phase, design phase,
implementation phase, testing phase, and the maintenance phase. The
phases are sequential, which means that only after the completion of
the previous stage, does the development move to the next phase.
However, once the software has progressed from one phase to the
next stage, there is no way the software can go back to the previous
stage. There are many advantages and disadvantages. However, since
the software cannot go back to the previous stage is the deterrent,
due to which this model is not used often, which necessitated the
development of modified waterfall model.
Phases of waterfall model is:
Play Video
During testing, the code is thoroughly examined and modified. Small modules
are tested in isolation initially. After that these modules are tested by writing
some overhead code to check the interaction between these modules and the
flow of intermediate output.
4. Integration and System Testing: This phase is highly crucial as the quality
of the end product is determined by the effectiveness of the testing carried
out. The better output will lead to satisfied customers, lower maintenance
costs, and accurate results. Unit testing determines the efficiency of individual
modules. However, in this phase, the modules are tested for their interactions
with each other and with the system.
The classic waterfall model is not the actual model because the main
disadvantage of it is that we cannot jump back from one phase to another, and
we cannot apply it to real projects. For developing software there may be some
changes from a customer or may some points remain from the previous team
and we cannot go back in this model so, here this phase is not comfortable for
projects as this is only for very small projects, and nowadays such small projects
are not implemented. Companies develop only high-level projects or medium-
level projects.
Hence, to overcome the waterfall model, the modified waterfall model was
developed. The main feature of it’s adding the feedback system in every stage,
so the current phase gets the clearance of any error.
So, we can say that the main difference between the waterfall and the modified
waterfall model is a feedback system, and we can go to the previous stage for
correcting it.
For example, in a simple database application, one cycle might implement the
graphical user Interface (GUI), another file manipulation, another queries and
another updates. All four cycles must complete before there is a working
product available. GUI allows the users to interact with the system, file
manipulation allow the data to be saved and retrieved, queries allow user to
get out of the system, and updates allows users to put data into the system.
Spiral model:
Spiral model is one of the most important Software Development
Life Cycle models, which provides support for Risk Handling. In its
diagrammatic representation, it looks like a spiral with many loops. The
exact number of loops of the spiral is unknown and can vary from
project to project. Each loop of the spiral is called a Phase of the
software development process. The exact number of phases needed
to develop the product can be varied by the project manager
depending upon the project risks. As the project manager dynamically
determines the number of phases, so the project manager has an
important role to develop a product using the spiral model.
The Spiral Model is a software development life cycle (SDLC) model
that provides a systematic and iterative approach to software
development. It is based on the idea of a spiral, with each iteration of
the spiral representing a complete software development cycle, from
requirements gathering and analysis to design, implementation,
testing, and maintenance.
The Spiral Model is a risk-driven model, meaning that the focus is on
managing risk through multiple iterations of the software development
process. It consists of the following phases:
1. Planning: The first phase of the Spiral Model is the planning phase,
where the scope of the project is determined and a plan is created
for the next iteration of the spiral.
2. Risk Analysis: In the risk analysis phase, the risks associated with
the project are identified and evaluated.
3. Engineering: In the engineering phase, the software is developed
based on the requirements gathered in the previous iteration.
4. Evaluation: In the evaluation phase, the software is evaluated to
determine if it meets the customer’s requirements and if it is of high
quality.
5. Planning: The next iteration of the spiral begins with a new planning
phase, based on the results of the evaluation.
6. The Spiral Model is often used for complex and large software
development projects, as it allows for a more flexible and adaptable
approach to software development. It is also well-suited to projects
with significant uncertainty or high levels of risk.
The Radius of the spiral at any point represents the expenses(cost)
of the project so far, and the angular dimension represents the
progress made so far in the current phase.
The below diagram shows the different phases of the Spiral
Model: –
Each phase of the Spiral Model is divided into four quadrants as shown
in the above figure. The functions of these four quadrants are
discussed below-
1. Objectives determination and identify alternative
solutions: Requirements are gathered from the customers and the
objectives are identified, elaborated, and analyzed at the start of
every phase. Then alternative solutions possible for the phase are
proposed in this quadrant.
2. Identify and resolve Risks: During the second quadrant, all the
possible solutions are evaluated to select the best possible solution.
Then the risks associated with that solution are identified and the
risks are resolved using the best possible strategy. At the end of
this quadrant, the Prototype is built for the best possible solution.
3. Develop next version of the Product: During the third quadrant,
the identified features are developed and verified through testing. At
the end of the third quadrant, the next version of the software is
available.
4. Review and plan for the next Phase: In the fourth quadrant, the
Customers evaluate the so far developed version of the software. In
the end, planning for the next phase is started.
Risk Handling in Spiral Model: A risk is any adverse situation that
might affect the successful completion of a software project. The most
important feature of the spiral model is handling these unknown risks
after the project has started. Such risk resolutions are easier done by
developing a prototype. The spiral model supports coping up with risks
by providing the scope to build a prototype at every phase of the
software development.
Advantages of Spiral Model:
Below are some advantages of the Spiral Model.
1. Risk Handling: The projects with many unknown risks that occur as
the development proceeds, in that case, Spiral Model is the best
development model to follow due to the risk analysis and risk
handling at every phase.
2. Good for large projects: It is recommended to use the Spiral
Model in large and complex projects.
3. Flexibility in Requirements: Change requests in the Requirements
at later phase can be incorporated accurately by using this model.
4. Customer Satisfaction: Customer can see the development of the
product at the early phase of the software development and thus,
they habituated with the system by using it before completion of the
total product.
5. Iterative and Incremental Approach: The Spiral Model provides an
iterative and incremental approach to software development,
allowing for flexibility and adaptability in response to changing
requirements or unexpected events.
6. Emphasis on Risk Management: The Spiral Model places a strong
emphasis on risk management, which helps to minimize the impact
of uncertainty and risk on the software development process.
7. Improved Communication: The Spiral Model provides for regular
evaluations and reviews, which can improve communication
between the customer and the development team.
8. Improved Quality: The Spiral Model allows for multiple iterations of
the software development process, which can result in improved
software quality and reliability
Disadvantages of Spiral Model:
Below are some main disadvantages of the spiral model.
1. Complex: The Spiral Model is much more complex than other
SDLC models.
2. Expensive: Spiral Model is not suitable for small projects as it is
expensive.
3. Too much dependability on Risk Analysis: The successful
completion of the project is very much dependent on Risk Analysis.
Without very highly experienced experts, it is going to be a failure to
develop a project using this model.
4. Difficulty in time management: As the number of phases is
unknown at the start of the project, so time estimation is very
difficult.
5. Complexity: The Spiral Model can be complex, as it involves
multiple iterations of the software development process.
6. Time-Consuming: The Spiral Model can be time-consuming, as it
requires multiple evaluations and reviews.
7. Resource Intensive: The Spiral Model can be resource-intensive, as
it requires a significant investment in planning, risk analysis, and
evaluations.
Requirements engineering : (RE) refers to the process of
defining, documenting, and maintaining requirements in the engineering
design process. Requirement engineering provides the appropriate
mechanism to understand what the customer desires, analyzing the need,
and assessing feasibility, negotiating a reasonable solution, specifying the
solution clearly, validating the specifications and managing the
requirements as they are transformed into a working system. Thus,
requirement engineering is the disciplined application of proven principles,
methods, tools, and notation to describe a proposed system's intended
behavior and its associated constraints.
1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
5. Software Requirement Management
1. Feasibility Study:
The objective behind the feasibility study is to create the reasons for developing the
software that is acceptable to users, flexible to change and conformable to established
standards.
Types of Feasibility:
1. Technical Feasibility - Technical feasibility evaluates the current technologies, which are
needed to accomplish customer requirements within the time and budget.
2. Operational Feasibility - Operational feasibility assesses the range in which the required
software performs a series of levels to solve business problems and customer
requirements.
3. Economic Feasibility - Economic feasibility decides whether the necessary software can
generate financial profits for an organization.
The models used at this stage include ER diagrams, data flow diagrams (DFDs), function
decomposition diagrams (FDDs), data dictionaries, etc.
o Data Flow Diagrams: Data Flow Diagrams (DFDs) are used widely for modeling the
requirements. DFD shows the flow of data through a system. The system may be a
company, an organization, a set of procedures, a computer hardware system, a software
system, or any combination of the preceding. The DFD is also known as a data flow
graph or bubble chart.
o Data Dictionaries: Data Dictionaries are simply repositories to store information about
all data items defined in DFDs. At the requirements stage, the data dictionary should at
least define customer data items, to ensure that the customer and developers use the
same definition and terminologies.
o Entity-Relationship Diagrams: Another tool for requirement specification is the entity-
relationship diagram, often called an "E-R diagram." It is a detailed logical
representation of the data for the organization and uses three main constructs i.e. data
entities, relationships, and their associated attributes.
o If they are correct and as per the functionality and specially of software
o If there are any ambiguities
o If they are full
o If they can describe
New requirements emerge during the process as business needs a change, and a better
understanding of the system is developed.
The business and technical environment of the system changes during the development.
o Clear
o Correct
o Consistent
o Coherent
o Comprehensible
o Modifiable
o Verifiable
o Prioritized
o Unambiguous
o Traceable
o Credible source
A data dictionary is like the A-Z dictionary of the relational database system holding all information
each relation in the database.
With this, the system also keeps the following data based on users of the system: Play Video
In addition to this, the system may also store some statistical and descriptive data about the
relations, such as:
A system may also store the storage organization, whether sequential, hash, or heap. It also
notes the location where each relation is stored:
o If relations are stored in the files of the operating system, the data dictionary note, and stores the
names of the file.
o If the database stores all the relations in a single file, the data dictionary notes and store the blocks
containing records of each relation in a data structure similar to a linked list.
At last, it also stores the information regarding each index of all the relations:
All the above information or metadata is stored in a data dictionary. The data dictionary also
maintains updated information whenever they occur in the relations. Such metadata constitutes a
miniature database. Some systems store the metadata in the form of a relation in the database
itself. The system designers design the way of representation of the data dictionary. Also, a data
dictionary stores the data in a non-formalized manner. It does not use any normal form so as to
fastly access the data stored in the dictionary.
For example, in the data dictionary, it uses underline below the value to represent that the
following field contains a primary key.
So, whenever the database system requires fetching records from a relation, it firstly finds in the
relation of data dictionary about the location and storage organization of the relation. After
confirming the details, it finally retrieves the required record from the database.
Software Requirement
Specifications
The production of the requirements stage of the software development
process is Software Requirements Specifications (SRS) (also called
a requirements document). This report lays a foundation for software
engineering activities and is constructing when entire requirements are
elicited and analyzed. SRS is a formal report, which acts as a representation of
software that enables the customers to review whether it (SRS) is according to
their requirements. Also, it comprises user requirements for a system as well as
detailed specifications of the system requirements.
3. Consistency: The SRS is consistent if, and only if, no subset of individual
requirements described in its conflict. There are three types of possible conflict
in the SRS:
(b) One condition may state that all lights shall be green while another states
that all lights shall be blue.
(2). There may be a reasonable or temporal conflict between the two specified
actions. For example,
(a) One requirement may determine that the program will add two inputs, and
another may determine that the program will multiply them.
(b) One condition may state that "A" must always follow "B," while other
requires that "A and B" co-occurs.
(3). Two or more requirements may define the same real-world object but use
different terms for that object. For example, a program's request for user input
may be called a "prompt" in one requirement's and a "cue" in another. The use
of standard terminology and descriptions promotes consistency.
5. Ranking for importance and stability: The SRS is ranked for importance
and stability if each requirement in it has an identifier to indicate either the
significance or stability of that particular requirement.
Typically, all requirements are not equally important. Some prerequisites may
be essential, especially for life-critical applications, while others may be
desirable. Each element should be identified to make these differences clear
and explicit. Another way to rank requirements is to distinguish classes of
items as essential, conditional, and optional.
7. Verifiability: SRS is correct when the specified requirements can be verified with a cost-
effective system to check whether the final software meets those requirements. The requirements
are verified with the help of reviews.
8. Traceability: The SRS is traceable if the origin of each of the requirements is clear and if it
facilitates the referencing of each condition in future development or enhancement
documentation.
1. Backward Traceability: This depends upon each requirement explicitly referencing its
source in earlier documents.
2. Forward Traceability: This depends upon each element in the SRS having a unique name or
reference number.
The forward traceability of the SRS is especially crucial when the software product enters the
operation and maintenance phase. As code and design document is modified, it is necessary to be
able to ascertain the complete set of requirements that may be concerned by those modifications.
11. Understandable by the customer: An end user may be an expert in his/her explicit
domain but might not be trained in computer science. Hence, the purpose of formal
notations and symbols should be avoided too as much extent as possible. The language
should be kept simple and clear.
12. The right level of abstraction: If the SRS is written for the requirements stage, the
details should be explained explicitly. Whereas,for a feasibility study, fewer analysis can
be used. Hence, the level of abstraction modifies according to the objective of the SRS.
Concise: The SRS report should be concise and at the same time, unambiguous,
consistent, and complete. Verbose and irrelevant descriptions decrease readability and
also increase error possibilities.
Black-box view: It should only define what the system should do and refrain from
stating how to do these. This means that the SRS document should define the external
behavior of the system and not discuss the implementation issues. The SRS report
should view the system to be developed as a black box and should define the externally
visible behavior of the system. For this reason, the SRS report is also known as the black-
box specification of a system.
Conceptual integrity: It should show conceptual integrity so that the reader can merely
understand it. Response to undesired events: It should characterize acceptable
responses to unwanted events. These are called system response to exceptional
conditions.
Verifiable: All requirements of the system, as documented in the SRS document, should
be correct. This means that it should be possible to decide whether or not requirements
have been met in an implementation.
Here are five steps you can follow to write an effective SRS document.
If you’re creating the outline yourself, here’s what it might look like:
1. Introduction
1.1 Purpose
1.2 Intended Audience
1.3 Intended Use
1.4 Product Scope
1.5 Definitions and Acronyms
2. Overall Description
2.1 User Needs
2.2 Assumptions and Dependencies
3. System Features and Requirements
3.1 Functional Requirements
3.2 External Interface Requirements
3.3 System Features
3.4 Nonfunctional Requirements
This is a basic outline and yours may contain more (or fewer) items.
Now that you have an outline, lets fill in the blanks.
2. Define your Product’s Purpose
This introduction is very important as it sets expectations that we will come back to throughout the SRS.
Some items to keep in mind when defining this purpose include:
Define who in your organization will have access to the SRS and how
they should use it. This may include developers, testers, and project
managers. It could also include stakeholders in other departments,
including leadership teams, sales, and marketing. Defining this now
will lead to less work in the future.
Product Scope
What are the benefits, objectives, and goals we intend to have for this
product? This should relate to overall business goals, especially if
teams outside of development will have access to the SRS.
Clearly define all key terms, acronyms, and abbreviations used in the
SRS. This will help eliminate any ambiguity and ensure that all parties
can easily understand the document.
Describe who will use the product and how. Understanding the various
users of the product and their needs is a critical part of the SRS
writing process.
Who will be using the product? Are they a primary or secondary user?
What is their role within their organization? What need does the
product need to fulfill for them?
Do you need to know about the purchaser of the product as well as the
end user? For the development of medical devices and med device
software, you may also need to know the needs of the patient.
What are we assuming will be true? Understating and laying out these
assumptions ahead of time will help with headaches later. Are we
assuming current technology? Are we basing this on a Windows
framework? We need to take stock of these technical assumptions to
better understand where our product might fail or not operate
perfectly.
Functional Requirements
You may also have requirements that outline how your software will
interact with other tools, which brings us to external interface
requirements.
There are several types of interfaces you may have requirements for,
including:
User
Hardware
Software
Communications