Software Engineering
Software Engineering
PROTOTYPE MODEL
The prototype model requires that before carrying out the development of
actual software, a working prototype of the system should be built. A
prototype is a toy implementation of the system. A prototype usually turns
out to be a very crude version of the actual system, possible exhibiting
limited functional capabilities, low reliability, and inefficient performance as
compared to actual software. In many instances, the client only has a
general view of what is expected from the software product. In such a
scenario where there is an absence of detailed information regarding the
input to the system, the processing needs, and the output requirement, the
prototyping model may be employed.
Steps of Prototype Model
1. Inception –
Communication and planning are the main ones.
Identifies the scope of the project using a use-case model
allowing managers to estimate costs and time required.
Customers’ requirements are identified and then it becomes
easy to make a plan for the project.
The project plan, Project goal, risks, use-case model, and
Project description, are made.
The project is checked against the milestone criteria and if it
couldn’t pass these criteria then the project can be either
canceled or redesigned.
2. Elaboration –
Planning and modeling are the main ones.
A detailed evaluation and development plan is carried out
and diminishes the risks.
Revise or redefine the use-case model (approx. 80%),
business case, and risks.
Again, checked against milestone criteria and if it couldn’t
pass these criteria then again project can be canceled or
redesigned.
Executable architecture baseline.
3. Construction –
The project is developed and completed.
System or source code is created and then testing is done.
Coding takes place.
4. Transition –
The final project is released to the public.
Transit the project from development into production.
Update project documentation.
Beta testing is conducted.
Defects are removed from the project based on feedback
from the public.
5. Production –
The final phase of the model.
The project is maintained and updated accordingly.
Advantages:
1. It provides good documentation, it completes the process in itself.
2. It provides risk-management support.
3. It reuses the components, and hence total time duration is less.
4. Good online support is available in the form of tutorials and training.
Disadvantages:
1. Team of expert professional is required, as the process is complex.
2. Complex and not properly organized process.
3. More dependency on risk management.
4. Hard to integrate again and again.
TIME BOXING MODEL
Advantages Disadvantages
Speeds up the development process Project management becomes more
and shortens the delivery time complex.
Well suited to develop projects with a Not suited to projects in which entire
number of features in short time development work cannot be divided
period. into multiple iterations of almost
equal duration.
SRS MODEL
SRS is a formal document, which acts as a representation of software that enables the
users to review whether it (SRS) is according to their requirements. In addition, it
includes user requirements for a system as well as detailed specifications of the
system requirements.
IEEE defines software requirements specification as, ‘a document that clearly and
precisely describes each of the essential requirements (functions, performance, design
constraints and quality attributes) of the software and the external interfaces. Each
requirement is defined in such a way that its achievement can be objectively verified by
a prescribed method, for example, inspection, demonstration, analysis or test.’ Note
that requirements specification can be in the form of a written document, a
mathematical model, a collection of graphical models, a prototype, and so on.
Essentially, what passes from requirements analysis activity to the specification activity
is the knowledge acquired about the system. The need for maintaining a requirements
document is that the modeling activity essentially focuses on the problem structure and
not its structural behavior. While in SRS, performance constraints, design constraints,
and standard compliance recovery are clearly specified. This information helps in
developing a proper design of the system. Various other purposes served by SRS are
listed below.
Feedback: Provides a feedback, which ensures to the user that the organization
(which develops the software) understands the issues or problems to be solved
and the software behavior necessary to address those problems.
Basis for agreement between the user and the organization: Provides a
complete description of the functions to be performed by the system. In addition, it
helps the users to determine whether the specified requirements are
accomplished.
The requirements document has diverse users. Therefore, along with communicating
the requirements to the users it also has to define the requirements in precise detail for
developers and testers. In addition it should also include information about possible
changes in the system, which can help system designers avoid restricted decisions on
design. SRS also helps maintenance engineers to adapt the system to new
requirements.
We’ll be covering the following topics in this tutorial:
Characteristics of SRS
Structure of SRS
Characteristics of SRS
Correct: SRS is correct when all user requirements are stated in the requirements
document. The stated requirements should be according to the desired system.
This implies that each requirement is examined to ensure that it (SRS) represents
user requirements. Note that there is no specified tool or procedure to assure the
correctness of SRS. Correctness ensures that all specified requirements are
performed correctly.
Complete: SRS is complete when the requirements clearly define what the
software is required to do. This includes all the requirements related to
performance, design and functionality.
Traceable: SRS is traceable when the source of each requirement is clear and
facilitates the reference of each requirement in future. For this, forward tracing and
backward tracing are used. Forward tracing implies that each requirement should
be traceable to design and code elements. Backward tracing implies defining each
requirement explicitly referencing its source.
Verifiable: SRS is verifiable when the specified requirements can be verified with
a cost-effective process to check whether the final software meets those
requirements. The requirements are verified with the help of reviews. Note that
unambiguity is essential for verifiability.
Structure of SRS
The requirements document is devised in a manner that is easier to write, review, and
maintain. It is organized into independent sections and each section is organized into
modules or units. Note that the level of detail to be included in the SRS depends on the
type of the system to be developed and the process model chosen for its development.
For example, if a system is to be developed by an external contractor, then critical
system specifications need to be precise and detailed. Similarly, when flexibility is
required in the requirements and where an in-house development takes place,
requirements documents can be less detailed.
Since the requirements document serves as a foundation for subsequent software
development phases, it is important to develop the document in the prescribed manner.
For this, certain guidelines are followed while preparing SRS. These guidelines are
listed below.
External interface: It determines the interface of the software with other systems,
which can include interface with operating system and so on. External interface
also specifies the interaction of the software with users, hardware, or other
software. The characteristics of each user interface of the software product are
specified in SRS. For the hardware interface, SRS specifies the logical
characteristics of each interface among the software and hardware components. If
the software is to be executed on the existing hardware, then characteristics such
as memory restrictions are also specified.
Document approvals: These provide information about the approvers of the SRS
document with the details such as approver’s name, signature, date, and so on.
PreviousNext
Table of Contents
What is Agile?
Agile is a Mindset
Agile Methodologies
Agile Principles
Key Agile Concepts
View More
There are many tools and techniques in today's world that can help you
maximize the value of the output produced. Among the many options
available, Agile is one of the most commonly used. This is because of its
ability to enable teams to work in small increments and respond to changes
quickly.
Before we can get started with Agile, we’ll need to really understand
the waterfall model.
Gain deep insights into the highly popular Agile Scrum project methodology with
the Agile Scrum Master Certification Training! Check out the course now.
What is Agile?
The values and principles of the Agile Manifesto serve as the foundation for
the agile mindset. These values and principles offer direction on change,
react, and handle uncertainty. Try something you think might work when
faced with uncertainty, get feedback, and make adjustments as needed.
Agile Methodologies
1. Extreme Programming
2. Kanban
3. Lean
4. Scrum
5. Crystal
Agile Principles
The customer needs to be satisfied with the quick delivery of the product.
2. Welcome Change
4. Work Together
The business and development team need to work together through the
course of the project.
Get Your CSM Certification the Easy
Way
Certified ScrumMaster® Certification TrainingEXPLORE COURSE
5. Motivated Team
6. Face-to-face
Having face-to-face interactions is one of the most effective forms of
communication.
7. Working Software
8. Constant Pace
10. Simplicity
The amount of time where work isn’t being done needs to be reduced.
11. Self-Organization
Table of Contents
What is Agile?
Agile is a Mindset
Agile Methodologies
Agile Principles
Key Agile Concepts
View More
There are many tools and techniques in today's world that can help you
maximize the value of the output produced. Among the many options
available, Agile is one of the most commonly used. This is because of its
ability to enable teams to work in small increments and respond to changes
quickly.
Gain deep insights into the highly popular Agile Scrum project methodology with
the Agile Scrum Master Certification Training! Check out the course now.
What is Agile?
Agile is a Mindset
The values and principles of the Agile Manifesto serve as the foundation for
the agile mindset. These values and principles offer direction on change,
react, and handle uncertainty. Try something you think might work when
faced with uncertainty, get feedback, and make adjustments as needed.
Master Scrum with 2-Day Immersive
Online Training
Certified ScrumMaster® Certification TrainingEXPLORE COURSE
Agile Methodologies
1. Extreme Programming
2. Kanban
3. Lean
4. Scrum
5. Crystal
Read more: Agile vs Scrum: Know the Main Differences and Similarities
Agile Principles
To make a process Agile, the following principles need to be satisfied.
1. Customer Satisfaction
The customer needs to be satisfied with the quick delivery of the product.
2. Welcome Change
4. Work Together
The business and development team need to work together through the
course of the project.
Get Your CSM Certification the Easy
Way
Certified ScrumMaster® Certification TrainingEXPLORE COURSE
5. Motivated Team
6. Face-to-face
Having face-to-face interactions is one of the most effective forms of
communication.
7. Working Software
8. Constant Pace
10. Simplicity
The amount of time where work isn’t being done needs to be reduced.
11. Self-Organization
Agile Concepts
Daily Meeting: The team meets every day at the same time to update
everyone on the information necessary for coordination:
Personas: When the project requires it, the team creates in-depth,
fabricated biographies of hypothetical users of the intended product.
Milestone Retrospective: After a project has been running for a while, the
team dedicates one to three days to examine the key moments
Advantages of Agile
Agile Disadvantages
2. Completeness: The SRS is complete if, and only if, it includes the
following elements:
Note: It is essential to specify the responses to both valid and invalid values.
(3). Full labels and references to all figures, tables, and diagrams in the SRS
and definitions of all terms and units of measure.
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.
(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.
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.