Unit 2
Unit 2
Functional Requirement:
Functional software requirements help you to capture the intended behavior of the
system. This behavior may be expressed as functions, services or tasks or which
system is required to perform.
Non-Functional Requirement:
R.Vignesh
Department of CSE
UNIT 2
1. Users must change the initially assigned login password immediately after
the first successful login. Moreover, the initial should never be reused.
2. Employees never allowed to update their salary information. Such attempt
should be reported to the security administrator.
3. Every unsuccessful attempt by a user to access an item of data shall be
recorded on an audit trail.
4. A website should be capable enough to handle 20 million users with
affecting its performance
5. The software should be portable. So moving from one OS to other OS does
not create any problem.
6. Privacy of information, the export of restricted technologies, intellectual
property rights, etc. should be audited.
R.Vignesh
Department of CSE
UNIT 2
The nonfunctional requirements ensure the software system follow legal and
compliance rules.
They ensure the reliability, availability, and performance of the software
system
They ensure good user experience and ease of operating the software.
They help in formulating security policy of the software system.
R.Vignesh
Department of CSE
UNIT 2
User requirements:
User requirements, often referred to as user needs, describe what the user does with
the system, such as what activities that users must be able to perform. User
requirements are generally documented in a User Requirements Document (URD)
using narrative text. User requirements are generally signed off by the user and
used as the primary input for creating system requirements.
Content presentation
Easy Navigation
Simple interface
Responsive
Consistent UI elements
Feedback mechanism
Default settings
Purposeful layout
Strategical use of color and texture.
Provide help information
User centric approach
Group based view settings.
System Requirements:
R.Vignesh
Department of CSE
UNIT 2
System requirements are the building blocks developers use to build the system.
These are the traditional “shall” statements that describe what the system “shall
do.” System requirements are classified as either functional or supplemental
requirements. A functional requirement specifies something that a user needs to
perform their work. For example, a system may be required to enter and print cost
estimates; this is a functional requirement. Supplemental or non-functional
requirements specify all the remaining requirements not covered by the functional
requirements. I prefer to use the term supplemental requirements instead of non-
functional requirements; who wants to be termed non-functional. Supplemental
requirements are sometimes called quality of service requirements. The plan for
implementing functional requirements is detailed in the system design. The plan
for implementing supplemental requirements is detailed in the system architecture.
The list below shows various types of supplemental requirements.
Accessibility
Accuracy
Audit, control, and reporting
Availability
Backup and restore
Capacity, current and forecast
Certification
Compliance
Compatibility of software, tools, standards, platform, database, and the like
Concurrency
Configuration management
Dependency on other parties
Deployment
Documentation
Disaster recovery
Efficiency (resource consumption for given load)
Effectiveness (resulting performance in relation to effort)
Emotional factors (like fun or absorbing)
Environmental protection
Error handling
Escrow
R.Vignesh
Department of CSE
UNIT 2
Exploitability
Extensibility (adding features, and carry-forward of customizations at next major
version upgrade)
Failure management
Interoperability
Legal and regulatory
Licensing
Localizability
Maintainability
Modifiability
Network topology
Open source
Operability
Performance/response time
Price
Privacy
Portability
Quality
Recovery/recoverability
Redundancy
R.Vignesh
Department of CSE
UNIT 2
Requirement Engineering:
The process to gather the software requirements from client, analyze and
document them is known as requirement engineering.
The goal of requirement engineering is to develop and maintain sophisticated and
descriptive „System Requirements Specification‟ document.
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.
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
R.Vignesh
Department of CSE
UNIT 2
-
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:
R.Vignesh
Department of CSE
UNIT 2
When the client approaches the organization for getting the desired product
developed, it comes up with rough idea about what all functions the software must
perform and which all features are expected from the software.
Referencing to this information, the analysts does a detailed study about whether
the desired system and its functionality are feasible to develop.
This feasibility study is focused towards goal of the organization. This study
analyzes whether the software product can be practically materialized in terms of
implementation, contribution of project to organization, cost constraints and as per
values and objectives of the organization. It explores technical aspects of the
project and product such as usability, maintainability, productivity and integration
ability.
The output of this phase should be a feasibility study report that should contain
adequate comments and recommendations for management about whether or not
the project should be undertaken.
Requirement Gathering:
If the feasibility report is positive towards undertaking the project, next phase
starts with gathering requirements from the user. Analysts and engineers
communicate with the client and end-users to know their ideas on what the
software should provide and which features they want the software to include.
Software Requirement Specification
SRS is a document created by system analyst after the requirements are collected
from various stakeholders.
SRS defines how the intended software will interact with hardware, external
interfaces, speed of operation, response time of system, portability of software
across various platforms, maintainability, speed of recovery after crashing,
Security, Quality, Limitations etc.
The requirements received from client are written in natural language. It is the
responsibility of system analyst to document the requirements in technical
language so that they can be comprehended and useful by the software
development team.
SRS should come up with following features:
R.Vignesh
Department of CSE
UNIT 2
Requirements gathering - The developers discuss with the client and end
users and know their expectations from the software.
Organizing Requirements - The developers prioritize and arrange the
requirements in order of importance, urgency and convenience.
Negotiation & discussion - If requirements are ambiguous or there are
some conflicts in requirements of various stakeholders, if they are, it is then
negotiated and discussed with stakeholders. Requirements may then be
prioritized and reasonably compromised.
The requirements come from various stakeholders. To remove the
ambiguity and conflicts, they are discussed for clarity and correctness.
Unrealistic requirements are compromised reasonably.
R.Vignesh
Department of CSE
UNIT 2
Group interviews which are held between groups of participants. They help
to uncover any missing requirement as numerous people are involved.
Surveys
Organization may conduct surveys among various stakeholders by querying about
their expectation and requirements from the upcoming system.
Questionnaires
A document with pre-defined set of objective questions and respective options is
handed over to all stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in
the questionnaire, the issue might be left unattended.
Task analysis
Team of engineers and developers may analyze the operation for which the new
system is required. If the client already has some software to perform certain
operation, it is studied and requirements of proposed system are collected.
Domain Analysis
Every software falls into some domain category. The expert people in the domain
can be a great help to analyze general and specific requirements.
Brainstorming
An informal debate is held among various stakeholders and all their inputs are
recorded for further requirements analysis.
Prototyping
Prototyping is building user interface without adding detail functionality for user
to interpret the features of intended software product. It helps giving better idea of
requirements. If there is no software installed at client‟s end for developer‟s
reference and the client is not aware of its own requirements, the developer
creates a prototype based on initially mentioned requirements. The prototype is
shown to the client and the feedback is noted. The client feedback serves as an
input for requirement gathering.
Observation
Team of experts visit the client‟s organization or workplace. They observe the
actual working of the existing installed systems. They observe the workflow at
R.Vignesh
Department of CSE
UNIT 2
client‟s end and how execution problems are dealt. The team itself draws some
conclusions which aid to form requirements expected from the software.
Clear
Correct
Consistent
Coherent
Comprehensible
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
R.Vignesh
Department of CSE
UNIT 2
Completeness checks
Consistency checks
Validity checks
Realism checks
Ambiguity checks
Verifiability
The output of requirements validation is the list of problems and agreed on actions
of detected problems. The lists of problems indicate the problem detected during
the process of requirement validation. The list of agreed action states the corrective
action that should be taken to fix the detected problem.
There are several techniques which are used either individually or in conjunction
with other techniques to check to check entire or part of the system:
R.Vignesh
Department of CSE
UNIT 2
3. Requirements Reviews:
In this approach, the SRS is carefully reviewed by a group of people including
people from both the contractor organisations and the client side, the reviewer
systematically analyses the document to check error and ambiguity.
4. Automated Consistency Analysis:
This approach is used for automatic detection of an error, such as
nondeterminism, missing cases, a type error, and circular definitions, in
requirements specifications.
First, the requirement is structured in formal notation then CASE tool is used
to check in-consistency of the system, The report of all inconsistencies is
identified and corrective actions are taken.
5. Walk-through:
A walkthrough does not have a formally defined procedure and does not
require a differentiated role assignment.
Checking early whether the idea is feasible or not.
Obtaining the opinions and suggestion of other people.
Checking the approval of others and reaching an agreement.
R.Vignesh
Department of CSE
UNIT 2
R.Vignesh
Department of CSE
UNIT 2
Flowchart technique
A flowchart depicts the sequential flow and control logic of a set of activities that
are related. Flowcharts are in different formats such as linear, cross-functional, and
top-down. The flowchart can represent system interactions, data flows, etc. Flow
charts are easy to understand and can be used by both the technical and non-
technical team members. Flowchart technique helps in showcasing the critical
attributes of a process.
Gantt Charts
Gantt charts used in project planning as they provide a visual representation of
tasks that are scheduled along with the timelines. The Gantt charts help to know
what is scheduled to be completed by which date. The start and end dates of all the
tasks in the project can be seen in a single view.
R.Vignesh
Department of CSE
UNIT 2
Gap Analysis
Gap analysis is a technique which helps to analyze the gaps in performance of a
software application to determine whether the business requirements are met or
not. It also involves the steps that are to be taken to ensure that all the business
requirements are met successfully. Gap denotes the difference between the present
state and the target state. Gap analysis is also known as need analysis, need
assessment or need-gap analysis.
Structured Analysis:
During Structured Analysis, various tools and techniques are used for system
development. They are −
R.Vignesh
Department of CSE
UNIT 2
Decision Trees
Decision Tables
Structured English
Pseudocode
R.Vignesh
Department of CSE
UNIT 2
requires a large number of iterations for obtaining the most accurate and complete
solution.
The following table shows the symbols used in designing a DFD and their
significance
Context Diagram
A context diagram helps in understanding the entire system by one DFD which
gives the overview of a system. It starts with mentioning major processes with
little details and then goes onto giving more details of the processes with the top-
down approach.
R.Vignesh
Department of CSE
UNIT 2
Data Dictionary
A data dictionary improves the communication between the analyst and the user. It
plays an important role in building a database. Most DBMSs have a data
dictionary as a standard feature. For example, refer the following table –
Decision Trees
R.Vignesh
Department of CSE
UNIT 2
Decision trees depict the relationship of each condition and their permissible
actions. A square node indicates an action and a circle indicates a condition. It
forces analysts to consider the sequence of decisions and identifies the actual
decision that must be made.
The major limitation of a decision tree is that it lacks information in its format to
describe what other combinations of conditions you can take for testing. It is a
single representation of the relationships between conditions and actions.
Decision Tables
R.Vignesh
Department of CSE
UNIT 2
R.Vignesh
Department of CSE
UNIT 2
Software Prototyping:
The second phase is a preliminary design or a quick design. In this stage, a simple
design of the system is created. However, it is not a complete design. It gives a
brief idea of the system to the user. The quick design helps in developing the
prototype.
R.Vignesh
Department of CSE
UNIT 2
In this stage, the proposed system is presented to the client for an initial evaluation.
It helps to find out the strength and weakness of the working model. Comment and
suggestion are collected from the customer and provided to the developer.
If the user is not happy with the current prototype, you need to refine the prototype
according to the user's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met.
Once the user is satisfied with the developed prototype, a final system is developed
based on the approved final prototype.
Once the final system is developed based on the final prototype, it is thoroughly
tested and deployed to production. The system undergoes routine maintenance for
minimizing downtime and prevent large-scale failures.
In this method, a developed prototype will be discarded and will not be a part of
the ultimately accepted prototype. This technique is useful for exploring ideas and
getting instant feedback for customer requirements.
R.Vignesh
Department of CSE
UNIT 2
Evolutionary Prototyping
This model is helpful for a project which uses a new technology that is not well
understood. It is also used for a complex project where every functionality must be
checked once. It is helpful when the requirement is not stable or not understood
clearly at the initial stage.
Incremental Prototyping
Extreme Prototyping:
1. Basic prototype with all the existing page is present in the HTML format.
2. You can simulate data process using a prototype services layer.
3. The services are implemented and integrated into the final prototype.
Data modeling:
Data modeling (data modelling) is the process of creating a data model for the data
to be stored in a Database. This data model is a conceptual representation of Data
objects, the associations between different data objects and the rules. Data
modeling helps in the visual representation of data and enforces business rules,
regulatory compliances, and government policies on the data. Data Models ensure
consistency in naming conventions, default values, semantics, security while
ensuring quality of the data.
R.Vignesh
Department of CSE
UNIT 2
Data model emphasizes on what data is needed and how it should be organized
instead of what operations need to be performed on the data. Data Model is like
architect's building plan which helps to build a conceptual model and set the
relationship between data items.
Ensures that all data objects required by the database are accurately
represented. Omission of data will lead to creation of faulty reports and
produce incorrect results.
A data model helps design the database at the conceptual, physical and
logical levels.
Data Model structure helps to define the relational tables, primary and
foreign keys and stored procedures.
It provides a clear picture of the base data and can be used by database
developers to create a physical database.
It is also helpful to identify missing and redundant data.
Though the initial creation of data model is labor and time consuming, in the
long run, it makes your IT infrastructure upgrade and maintenance cheaper
and faster.
1. Conceptual: This Data Model defines WHAT the system contains. This
model is typically created by Business stakeholders and Data Architects. The
purpose is to organize, scope and define business concepts and rules.
R.Vignesh
Department of CSE
UNIT 2
Conceptual Model
The main aim of this model is to establish the entities, their attributes, and their
relationships. In this Data modeling level, there is hardly any detail available of the
actual Database structure.
R.Vignesh
Department of CSE
UNIT 2
For example:
Customer and Product are two entities. Customer number and name are
attributes of the Customer entity
Product name and price are attributes of product entity
Sale is the relationship between the customer and product
Logical data models add further information to the conceptual model elements. It
defines the structure of the data elements and set the relationships between them.
A Physical Data Model describes the database specific implementation of the data
model. It offers an abstraction of the database and helps generate schema. This is
because of the richness of meta-data offered by a Physical Data Model.
R.Vignesh
Department of CSE
UNIT 2
Behavioural Model :
All behavioural models really do is describe the control structure of a system. This
can be things like:
Sequence of operations
Object states
and Object interactions
Furthermore, this modelling layer can also be called Dynamic Modelling. The
activity of creating a behavioural model is commonly known as behavioural
modelling. As well as this, a system should also only have one behavioural model
– much like functional modelling.
Representation:
Description:
Data Dictionary
A data dictionary improves the communication between the analyst and the user. It
plays an important role in building a database. Most DBMSs have a data dictionary
as a standard feature. For example, refer the following table .
R.Vignesh
Department of CSE
UNIT 2
A data dictionary lists all data elements appearing in the DFD model of a system.
The data items listed contain all data flows and the contents of all data stores
looking on the DFDs in the DFD model of a system.
A data dictionary lists the objective of all data items and the definition of all
composite data elements in terms of their component data items. For example, a
data dictionary entry may contain that the data grossPay consists of the
parts regularPay and overtimePay.
For the smallest units of data elements, the data dictionary lists their name and
their type.
R.Vignesh
Department of CSE