Unit 2 Se Notes
Unit 2 Se Notes
UNIT-II
REQUIREMENTS ANALYSIS AND SPECIFICATION
The requirements for a system are the descriptions of what the system should do the
services that it provides and the constraints on its operation.
requirements
Property Measure
Speed Processed trasactions/second user/Event
response time Screen refresh time
Size K Bytes Number of RAM chips
Ease of Use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
St.Josephs Institute of Technology Department of IT
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Probability Percentage of target dependent statement
Number of target systems
The user requirements for a system should describe the functional and nonfunctional
requirements so that they are understandable by system users who don’t have
detailed technical knowledge.
System requirements are expanded versions of the user requirements that are used by
software engineers as the starting point for the system design. They add detail and
explain how the user requirements should be provided by the system.
The system requirements should simply describe the external behavior of the system and
its operational constraints. They should not be concerned with how the system should be
designed or implemented.
The system requirements are organized according to the different sub- systems
that make up the system.
Systems must interoperate with existing systems, which constrain the design
and impose requirements on the new system.
Use text highlighting (bold, italic, or color) to pick out key parts of the
requirement.
Do not assume that readers understand technical software engineering
language. It is easy for words like ‘architecture’ and ‘module’ to be
misunderstood. Therefore, use of jargon, abbreviations, and acronyms are
avoided.
The rationale should explain why the requirement has been included. It is
particularly useful when requirements are changed as it may help decide what
changes would be undesirable.
Structured specifications
When a standard form is used for specifying functional requirements, the following
information should be included:
A description of the function or entity being specified.
A description of its inputs and where these come from.
A description of its outputs and where these go to.
Information about the information that is needed for the computation or
other entities in the system that are used (the ‘requires’ part).
A description of the action to be taken.
St.Josephs Institute of Technology Department of IT
REQUIREMENT ENGINEERING:
Elaboration
During elaboration, the software engineer takes the information obtained
during inception and elicitation and begins to expand and refine it
Elaboration focuses on developing a refined technical model of software
functions, features, and constraints
Negotiation
During negotiation, the software engineer reconciles the conflicts between
what the customer wants and what can be achieved given limited business
resources
Requirements are ranked (i.e., prioritized) by the customers, users, and other
stakeholders
Risks associated with each requirement are identified and analyzed
Specification
A specification is the final work product produced by the requirements
engineer
It is normally in the form of a software requirements specification
It serves as the foundation for subsequent software engineering activities
It describes the function and performance of a computer-based system
and the constraints that will govern its development
Validation
During validation, the work products produced as a result of
requirements engineering are assessed for quality
The specification is examined to ensure that
• all software requirements have been stated unambiguously
• inconsistencies, omissions, and errors have been detected and
corrected
• the work products conform to the standards established for the
process, the project, and the product
The formal technical review serves as the primary requirements validation
mechanism
• Members include software engineers, customers, users, and other
stakeholders
Requirements Management
During requirements management, the project team performs a set of
activities to identify, control, and track requirements and changes to the
requirements at any time as the project proceeds
Each requirement is assigned a unique identifier
The requirements are then placed into one or more traceability tables
FEASIBILITY STUDY:
The aims of a feasibility study are to find out whether the system is worth
implementing and if it can be implemented, given the existing budget and
schedule.
St.Josephs Institute of Technology Department of IT
The purpose of feasibility study is not to solve the problem, but to determine
whether the problem is worth solving. This helps to decide whether to proceed
with the project or not.
Requirements specification: The requirements are documented and input into the next
round of the spiral.
Stakeholders often don’t know what they want from a computer system except in
the most general terms; they may find it difficult to articulate what they want the
system to do; they may make unrealistic demands because they don’t know what
is and isn’t feasible.
Stakeholders in a system naturally express requirements in their own terms and
with implicit knowledge of their own work. Requirements engineers, without
experience in the customer’s domain, may not understand these requirements.
Different stakeholders have different requirements and they may express these
in different ways. Requirements engineers have to discover all potential sources
of requirements and discover commonalities and conflict.
Political factors may influence the requirements of a system. Managers may
demand specific system requirements because these will allow them to increase
their influence in the organization.
The economic and business environment in which the analysis takes place is dynamic.
It inevitably changes during the analysis process. The importance of particular
requirements may change. New requirements may emerge from new stakeholders
who were not originally consulted.
St.Josephs Institute of Technology Department of IT
Requirements discovery
For example, system stakeholders for the mental healthcare patient information system
include:
Interviewing
The requirements engineering team puts questions to stakeholders about the system that
they currently use and the system to be developed. Requirements are derived from the
answers to these questions.
It can be difficult to elicit domain knowledge through interviews for two reasons:
All application specialists use terminology and jargon that are specific to a
domain. It is impossible for them to discuss domain requirements without
using this terminology. They normally use terminology in a precise and subtle
way that is easy for requirements engineers to misunderstand.
Some domain knowledge is so familiar to stakeholders that they either find it
difficult to explain or they think it is so fundamental that it isn’t worth mentioning.
1. They are open-minded, avoid pre-conceived ideas about the requirements, and are
willing to listen to stakeholders. If the stakeholder comes up with surprising
requirements, then they are willing to change their mind about the system.
Scenarios
A scenario starts with an outline of the interaction. During the elicitation process,
details are added to this to create a complete description of that interaction.
Use cases
Use cases are documented using a high-level use case diagram. The set of use cases
represents all of the possible interactions that will be described in the system
requirements.
Actors in the process, who may be human or other systems, are represented as stick
figures. Each class of interaction is represented as a named ellipse. Lines link the
actors with the interaction. Optionally, arrowheads may be added to lines to show
how the interaction is initiated.
Use cases identify the individual interactions between the system and its users or
other systems. Each use case should be documented with a textual description. These
can then be linked to other models in the UML that will develop the scenario in more
detail.
Ethnography
Requirements that are derived from the way in which people actually work, rather
than the way in which process definitions say they ought to work.
Requirements that are derived from cooperation and awareness of other people’s
activities.
The ethnography informs the development of the prototype so that fewer prototype
refinement cycles are required. Furthermore, the prototyping focuses the
ethnography by identifying problems and questions that can then be discussed with
the ethnographer.
REQUIREMENTS VALIDATION
Requirements validation is the process of checking that requirements actually define the
system that the customer really wants.
During the requirements validation process, different types of checks should be carried
out on the requirements in the requirements document. These checks include:
Validity checks A user may think that a system is needed to perform certain
functions. However, further thought and analysis may identify additional or
different functions that are required. Systems have diverse stakeholders with
different needs and any set of requirements is inevitably a compromise across the
stakeholder community.
Consistency checks Requirements in the document should not conflict. That
is, there should not be contradictory constraints or different descriptions of the
same system function.
St.Josephs Institute of Technology Department of IT
There are a number of requirements validation techniques that can be used individually
or in conjunction with one another:
1. Requirements reviews: The requirements are analyzed systematically by a team
of reviewers who check for errors and inconsistencies.
2. Prototyping: In this approach to validation, an executable model of the system in
question is demonstrated to end-users and customers. They can experiment with this
model to see if it meets their real needs.
3. Test-case generation: Requirements should be testable. If the tests for the
requirements are devised as part of the validation process, this often reveals
requirements problems. If a test is difficult or impossible to design, this usually
means that the requirements will be difficult to implement and should be
reconsidered. Developing tests from the user requirements before any code is
written is an integral part of extreme programming.
REQUIREMENTS MANAGEMENT
Once a system has been installed and is regularly used, new requirements inevitably
emerge. It is hard for users and system customers to anticipate what effects the new
system will have on their business processes and the way that work is done.
1. The business and technical environment of the system always changes after
installation. New hardware may be introduced, it may be necessary to interface the
system with other systems, business priorities may change (with consequent
changes in the system support required), and new legislation and regulations may be
introduced that the system must necessarily abide by.
2. The people who pay for a system and the users of that system are rarely the same
people. System customers impose requirements because of organizational and
budgetary constraints. These may conflict with end-user requirements and, after
St.Josephs Institute of Technology Department of IT
delivery, new features may have to be added for user support if the system is to
meet its goals.
3. Large systems usually have a diverse user community, with many users having
different requirements and priorities that may be conflicting or contradictory. The
final system requirements are inevitably a compromise between them and, with
experience, it is often discovered that the balance of support given to different users
has to be changed.
Requirements management needs automated support and the software tools for this
should be chosen during the planning phase.
2. Change analysis and costing: The effect of the proposed change is assessed using
traceability information and general knowledge of the system requirements. The cost
of making the change is estimated both in terms of modifications to the requirements
document and, if appropriate, to the system design and implementation. Once this
analysis is completed, a decision is made whether or not to proceed with the
requirements change.
DATA DICTIONARY:
A data dictionary supplies information such as data typing, required accuracy of data
useful to designers and implementers. Name, alias, type and description indicate how to
identify, possible other names, types of data and what and how the data are used
respectively. Duration, accuracy and range of values specify life span, required precision
in measurement and all possible values of data items respectively. Data flowsspecify
processes that generate or receive the data. This provides another useful tool in
validating a design (making sure that the requirements for a data item are satisfied by a
design and by code).
In the case where data are derived from real-time system, data items can have timing
constraints
specifying the length of time before the data become out-of-date. also be included
depending on the type of model being developed.
PETRI NETS
Table of Content
0-Level Data Flow Diagram (DFD)
1-Level Data Flow Diagram (DFD)
2-Level Data Flow Diagram (DFD)
3-Level Data Flow Diagram (DFD)
The choice of DFD level depends on the complexity of the system and the level of detail required to
understand the system. Higher levels of DFD provide a broad overview of the system, while lower levels
provide more detail about the system's processes, data flows, and data stores. A combination of different
levels of DFD can provide a complete understanding of the system.
St.Josephs Institute of Technology Department of IT
1-Level provides a more detailed view of the system by breaking down the major processes identified
in the level 0 Data Flow Diagram (DFD) into sub-processes. Each sub-process is depicted as a separate
process on the level 1 Data Flow Diagram (DFD). The data flows and data stores associated with
each sub-process are also shown.
In 1-level Data Flow Diagram (DFD), the context diagram is decomposed into multiple
bubbles/processes. In this level, we highlight the main functions of the system and breakdown the
high-level process of 0-level Data Flow Diagram (DFD) into subprocesses. For example, if Level 0
DFD represents a payment system, Level 1 might break it down into sub-processes like payment
processing, invoice generation, and confirmation of payment.
2-Level provides an even more detailed view of the system by breaking down the sub-processes
identified in the level 1 Data Flow Diagram (DFD) into further sub-processes. Each sub-process is
depicted as a separate process on the level 2 DFD. The data flows and data stores associated with each
sub-process are also shown.
Level 2 DFD is often used when a system is complex and needs further breakdown. It helps provide
more granular information about the system’s functioning, ideal for specific requirements or technical
documentation.
St.Josephs Institute of Technology Department of IT
For instance, in a payment processing system, Level 2 DFD might decompose the payment
processing sub-process into specific steps such as payment verification, funds deduction,
and transaction completion.
2. Limited focus: DFDs focus primarily on the flow of data in a system, and may not capture other
important aspects of the system, such as user interface design, system security, or system
performance.
3. Can be difficult to keep up-to-date: DFDs may become out-of-date over time as the system
evolves and changes.
4. Requires technical expertise: While DFDs are easy to understand, creating them requires a
certain level of technical expertise and familiarity with the system being analyzed.
Overall, the benefits of using DFDs outweigh the disadvantages. However, it is important to recognise
the limitations of DFDs and use them in conjunction with other tools and techniques to analyse and
design complex software systems.
Conclusion
The Levels of Data Flow Diagrams (DFD) offer a hierarchical way of visualizing system processes.
By analyzing these levels, you can uncover the scope of the system, its data transformations, and
potential inefficiencies. This helps in refining the system architecture, identifying improvements, and
ensuring the system aligns with organizational goals. Overall, DFDs are a valuable tool for both system
design and ongoing system maintenance, allowing teams to communicate and manage complex systems
more effectively.
Data Flow Diagram (DFD) depicts the flow of information and the transformation applied when data
moves in and out of a system. The overall system is represented and described using input, processing,
and output in the DFD. The inputs can be:
Book request when a student requests for a book.
Library card when the student has to show or submit his/her identity as proof.
The overall processing unit will contain the following output that a system will produce or generate:
The book will be the output as the book demanded by the students will be given to them.
Information on the demanded book should be displayed by the library information system that can
be used by the student while selecting the book which makes it easier for the student.
1. Level 0 DFD -
2. Level 1 DFD - At this level, the system has to show or exposed with more details of processing. The
processes that are important to be carried out are:
Book delivery
Search by topic
List of authors, List of Titles, List of Topics, the bookshelves from which books can be located are
some information that is required for these processes. Data store is used to represent this type of
information.
St.Josephs Institute of Technology Department of IT
St.Josephs Institute of Technology Department of IT
3. Level 2 DFD -
Petri Net
• Input function:
I(t1) = {P2,P4}
I(t2) = {P2}
• Output function
O(t1) = {P1}
O(t2) = {P3,P3}
P
t
P
t
P
P
Petri nets -ADVANTAGES
Petri nets can also be used for design
Petri nets possess the expressive power necessary for specifying synchronization aspects of real-
time systems
• Scenario 1: Normal
• Enters all 4 digits and press OK.
• Scenario 2: Exceptional
• Enters only 3 digits and press OK.
St.Josephs Institute of Technology Department of IT
St.Josephs Institute of Technology Department of IT
• Scenario 1:
• Deposit 5c, deposit 5c, deposit 5c, deposit 5c, take 20c snack bar.
• Scenario 2:
• Deposit 10c, deposit 5c, take 15c snack bar.
• Scenario 3:
• Deposit 5c, deposit 10c, deposit 5c, take 20c snack bar.
• Scenario 1:
• Waiter takes order from customer 1; serves customer 1; takes order from customer 2;
serves customer 2.
• Scenario 2:
• Waiter takes order from customer 1; takes order from customer 2; serves customer 2;
serves customer 1.
St.Josephs Institute of Technology Department of IT