Chapter 1 Overview of Software Engineering
Chapter 1 Overview of Software Engineering
Definitions
software engineering defines as:
(1) The application of a systematic, disciplined, quantifiable approach to the
development, operation and maintenance of software; that is, the application of
engineering to software.
(2) The study of approaches as in the above statement.
Fritz Bauer, a German computer scientist, defines software engineering as:
Software engineering is the establishment and use of sound engineering
principles in order to obtain economically software that is reliable and work
efficiently on real machines.
Stages
The SSAD method involves the application of a sequence of analysis,
documentation and design tasks concerned with the following.
Stage 0 – Feasibility study
In order to determine whether or not a given project is feasible, there must be
some form of investigation into the goals and implications of the project. For
very small-scale projects this may not be necessary at all as the scope of the
project is easily understood. In larger projects, the feasibility may be done but in
an informal sense, either because there is no time for a formal study or because
the project is a “must-have” and will have to be done one way or the other. A
data flow Diagram is used to describe how the current system works and to
visualize the known problems.
When a feasibility study is carried out, there are four main areas of
consideration:
Technical – is the project technically possible?
Financial – can the business afford to carry out the project?
Organizational – will the new system be compatible with existing practices?
Ethical – is the impact of the new system socially acceptable?
To answer these questions, the feasibility study is effectively a condensed
version of a comprehensive systems analysis and design. The requirements and
usages are analyzed to some extent, some business options are drawn up and
even some details of the technical implementation. The product of this stage is a
formal feasibility study document. SSADM specifies the sections that the study
should contain including any preliminary models that have been constructed and
also details of rejected options and the reasons for their rejection.
Stage 1 – Investigation of the current environment
The developers of SSADM understood that in almost all cases there is some
form of current system even if it is entirely composed of people and paper.
Through a combination of interviewing employees, circulating questionnaires,
observations and existing documentation, the analyst comes to full
understanding of the system as it is at the start of the project. This serves many
purposes (Like examples?).
Where necessary, the option will be documented with a logical data structure
and a level 1 data-flow diagram.
The users and analyst together choose a single business option. This may be one
of the ones already defined or may be a synthesis of different aspects of the
existing options. The output of this stage is the single selected business option
together with all the outputs of the feasibility stage.
Stage 3 – Requirements specification
This is probably the most complex stage in SSADM. Using the requirements
developed in stage 1 and working within the framework of the selected business
option, the analyst must develop a full logical specification of what the new
system must do. The specification must be free from error, ambiguity and
inconsistency. By logical, we mean that the specification does not say how the
system will be implemented but rather describes what the system will do.
To produce the logical specification, the analyst builds the required logical
models for both the Data-Flow Diagrams (DFDs) and the Logical Data
Model (LDM), consisting of the Logical Data Structure (referred to in other
methods as entity relationship diagrams) and full descriptions of the data and its
relationships. These are used to produce function definitions of every function
which the users will require of the system, Entity Life-Histories (ELHs) which
Data catalogue
Required logical data structure
Logical process model – includes dialogues and model for the update and
inquiry processes
Stress & Bending moment.
Types of DFD:-
DFDs are of two types: Physical DFD and Logical DFD. The following table
lists the points that differentiate a physical DFD from a logical DFD.
It provides low level details of hardware, It explains events of systems and data
software, files, and people. required by each event.
It depicts how the current system It shows how business operates; not how
operates and how a system will be the system can be implemented.
implemented.
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.
The context diagram of mess management is shown below.
2 TITLE title 60
Decision Trees :-
Decision trees are a method for defining complex relationships by describing
decisions and avoiding the problems in communication. A decision tree is a
diagram that shows alternative actions and conditions within horizontal tree
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.
For example, refer the following decision tree −
Decision Tables :-
Decision tables are a method of describing the complex logical relationship in a
precise manner which is easily understandable.
Pseudocode:-
A pseudocode does not conform to any programming language and expresses
logic in plain English.
It may specify the physical programming logic without actual coding
during and after the physical design.
It is used in conjunction with structured programming.
It replaces the flowcharts of a program.
1.1.1 Basic System Development Life Cycle with different users and
their role in SDLC :-
SDLC Activities
SDLC provides a series of steps to be followed to design and develop a
software product efficiently. SDLC framework includes the following steps:
System Analysis :-
At this step the developers decide a roadmap of their plan and try to bring up
the best software model suitable for the project. System analysis includes
Understanding of software product limitations, learning system related
problems or changes to be done in existing systems beforehand, identifying
and addressing the impact of project on organization and personnel etc. The
project team analyzes the scope of the project and plans the schedule and
resources accordingly.
Software Design:-
Next step is to bring down whole knowledge of requirements and analysis on
the desk and design the software product. The inputs from users and
information gathered in requirement gathering phase are the inputs of this
step. The output of this step comes in the form of two designs; logical design
and physical design. Engineers produce meta-data and data dictionaries,
logical diagrams, data-flow diagrams and in some cases pseudo codes.
Coding:-
This step is also known as programming phase. The implementation of
software design starts in terms of writing program code in the suitable
programming language and developing error-free executable programs
efficiently.
Testing:-
An estimate says that 50% of whole software development process should be
tested. Errors may ruin the software from critical level to its own removal.
Software testing is done while coding by the developers and thorough testing
Integration:-
Software may need to be integrated with the libraries, databases and other
program(s). This stage of SDLC is involved in the integration of software
with outer world entities.
Implementation:-
This means installing the software on user machines. At times, software
needs post-installation configurations at user end. Software is tested for
portability and adaptability and integration related issues are solved during
implementation.
Disposition:-
As time elapses, the software may decline on the performance front. It may
go completely obsolete or may need intense up gradation. Hence a pressing
need to eliminate a major portion of the system arises. This phase includes
archiving data and required software components, closing down the system,
planning disposition activity and terminating system at appropriate end-of-
system time.
System Design:-
Includes the design of application, network, databases, user interfaces,
and system interfaces.
Transform the SRS document into logical structure, which contains
detailed and complete set of specifications that can be implemented in a
programming language.
Create a contingency, training, maintenance, and operation plan.
Review the proposed design. Ensure that the final design must meet the
requirements stated in SRS document.
Finally, prepare a design document which will be used during next
phases.
Implementation:-
Implement the design into source code through coding.
Combine all the modules together into training environment that detects
errors and defects.
A test report which contains errors is prepared through test plan that
includes test related tasks such as test case generation, testing criteria, and
resource allocation for testing.
Integrate the information system into its environment and install the new
system.
Maintenance/Support:-
Include all the activities such as phone support or physical on-site support
for users that is required once the system is installing.
Implement the changes that software might undergo over a period of
time, or implement any new requirements after the software is deployed
at the customer location.
Interpersonal Skills:-
Interface with users and programmer.
Facilitate groups and lead smaller teams.
Managing expectations.
Management Skills:-
Understand users jargon and practices.
Resource & project management.
Change & risk management.
Understand the management functions thoroughly.
Technical Skills:-
Knowledge of computers and software.
Keep abreast of modern development.
Know of system design tools.
Breadth knowledge about new technologies.
Types of Feasibilities
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.
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.
It analyzes 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.
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.
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.
Responsibilities of a Tester:-
The roles and responsibilities of a tester often vary from organization to
organization. In general, a testers main purpose is to design, develop, and
conduct system tests and supports acceptance testing. The roles and
responsibilities of a tester include the core activities associated with the test
effort. This usually involves identifying the most appropriate implementation
approach specific tests, performing test preparations, executing the tests,
logging outcomes, and administering the defect tracking system.
More detailed aspects of the roles and responsibilities of a tester is included
in the following:
The testing in this phase can involve many different types of tests, depending on
the project and the company, such as:
Unit testing: testing individual pieces of code to ensure they work
System testing: testing the entire system to ensure it works
Verification testing: ensure that the system does what the requirements
say it should do
Integration testing: ensure that the system communicates to other
systems correctly
Regression testing: make sure that nothing else is broken when this is
implemented after making changes (Impact Analysis Testing).
o This model is simple to implement also the number of resources that are
required for it is minimal.
o The requirements are simple and explicitly declared; they remain
unchanged during the entire project development.
o The start and end points for each phase is fixed, which makes it easy to
cover progress.
o The release date for the complete product, as well as its final cost, can be
determined before development.
o It gives easy to control and clarity for the customer due to a strict
reporting system.
o In this model, the risk factor is higher, so this model is not suitable for
more significant and complex projects.
o This model cannot accept the changes in requirements during
development.
o It becomes tough to go back to the phase. For example, if the application
has now shifted to the coding phase, and there is a change in requirement,
It becomes tough to go back and change it.
o Since the testing done at a later stage, it does not allow identifying the
challenges and risks in the earlier phase, so the risk reduction strategy is
difficult to prepare.
Iterative Model:-
This model leads the software development process in iterations. It
projects the process of development in cyclic manner repeating every step
after every cycle of SDLC process.
The software is first developed on very small scale and all the steps are
followed which are taken into consideration. Then, on every next
iteration, more features and modules are designed, coded, tested and
added to the software. Every cycle produces a software, which is
complete in itself and has more features and capabilities than that of the
previous one.
After each iteration, the management team can do work on risk
management and prepare for the next iteration. Because a cycle includes
small portion of whole software process, it is easier to manage the
development process but it consumes more resources.
Advantages Disadvantages
Spiral Model
Diagram
Spiral Model Phases
Incremental Prototyping :-
Extreme Prototyping:-
This Extreme Prototyping method makes the project cycling and delivery
robust and fast, and keeps the entire developer team focus centralized on
products deliveries rather than discovering all possible needs and
specifications and adding un-necessitated features.
The customers get to see the partial product early in the life cycle. This
ensures a greater level of customer satisfaction and comfort.
New requirements can be easily accommodated as there is scope for
refinement.
Missing functionalities can be easily figured out.
Errors can be detected much earlier thereby saving a lot of effort and cost,
besides enhancing the quality of the software.
The developed prototype can be reused by the developer for more
complicated projects in the future.
Flexibility in design.
What is RAD?
RAD projects follow iterative and incremental model and have small teams
comprising of developers, domain experts, customer representatives and other
IT resources working progressively on their component or prototype.
The most important aspect for this model to be successful is to make sure that
the prototypes developed are reusable
There are following five major phases of Rapid Application Development Model
The business model for the product under development is designed in terms of
flow of information and the distribution of information between various
business channels. A complete business analysis is performed to find the vital
information for business, how it can be obtained, how and when is the
information processed and what are the factors driving successful flow of
information.
2.Data Modeling: The data collected from business modeling is refined into a
set of data objects (entities) that are needed to support the business. The
attributes (character of each entity) are identified, and the relation between these
data objects (entities) is defined.
The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific business
objectives as per the business model. The process model for any changes or
enhancements to the data object sets is defined in this phase. Process
descriptions for adding, deleting, retrieving or modifying a data object are
given.
The overall testing time is reduced in the RAD model as the prototypes
are independently tested during every iteration. However, the data flow
and the interfaces between all the components need to be thoroughly
tested with complete test coverage. Since most of the programming
components have already been tested, it reduces the risk of any major
issues.
The following illustration describes the RAD Model in detail.
When the user will be involved all through the life cycle
RUP is based on a set of building blocks and content elements, describing what
is to be produced, the necessary skills required and the step-by-step explanation
The RUP has determined a project life-cycle consisting of four phases. These
phases allow the process to be presented at a high level in a similar way to how
a 'waterfall'-styled project might be presented, although in essence the key to the
process lies in the iterations of development that lie within all of the phases.
Also, each phase has one key objective and milestone at the end that denotes the
objective being accomplished. The visualization of RUP phases and disciplines
over time is referred to as the RUP hump chart.
The primary objective is to scope the system adequately as a basis for validating
initial costing and budgets. In this phase the business case which includes
business context, success factors (expected revenue, market recognition, etc.),
and financial forecast is established. To complement the business case, a basic
use case model, project plan, initial risk assessment and project description (the
core project requirements, constraints and key features) are generated. After
these are completed, the project is checked against the following criteria:
Stakeholder concurrence on scope definition and cost/schedule estimates.
Requirements understanding as evidenced by the fidelity of the primary
use cases.
Credibility of the cost/schedule estimates, priorities, risks, and
development process.
Depth and breadth of any architectural prototype that was developed.
Establishing a baseline by which to compare actual expenditures versus
planned expenditures.
The idea for the project is stated. The development team determines if the
project is worth pursuing and what resources will be needed.
Project plan, Project goal, risks, use-case model, Project description, are
made.
If the project does not pass this milestone, called the life cycle objective
milestone, it either can be cancelled or repeated after being redesigned to better
meet the criteria.
Elaboration phase :-
Prof. Meenakshi Jadhav Page 71
The primary objective is to mitigate the key risk items identified by analysis up
to the end of this phase. The elaboration phase is where the project starts to take
shape. In this phase the problem domain analysis is made and the architecture of
the project gets its basic form.
The outcome of the elaboration phase is:
A use-case model in which the use-cases and the actors have been
identified and most of the use-case descriptions are developed. The use-
case model should be 80% complete.
A description of the software architecture in a software system
development process.
An executable architecture that realizes architecturally significant use
cases.
Business case and risk list which are revised.
A development plan for the overall project.
Prototypes that demonstrably mitigate each identified technical risk.
A preliminary user manual (optional)
This phase must pass the lifecycle architecture milestone criteria answering the
following questions:
Is the vision of the product stable?
Is the architecture stable?
Does the executable demonstration indicate that major risk elements are
addressed and resolved?
Is the construction phase plan sufficiently detailed and accurate?
Do all stakeholders agree that the current vision can be achieved using
current plan in the context of the current architecture?
Is the actual vs. planned resource expenditure acceptable?
The key domain analysis for the elaboration is the system architecture.
Construction phase :-
The primary objective is to build the software system. In this phase, the main
focus is on the development of components and other features of the system.
This is the phase when the bulk of the coding takes place. In larger projects,
several construction iterations may be developed in an effort to divide the use
cases into manageable segments to produce demonstrable prototypes.
The project is developed and completed. The software is designed, written, and
tested.
Transition phase :-
The software is released to the public. Final adjustments or updates are made
based on feedback from end users.
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.
Requirement Engineering Process
1. Feasibility Study
2. Requirement Elicitation and Analysis
3. Software Requirement Specification
4. Software Requirement Validation
5. Software Requirement Management
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.
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
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.
Types of Feasibility:
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
client’s end and how execution problems are dealt. The team itself draws some
conclusions which aid to form requirements expected from the software.
Software Requirement Specification (SRS) :
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.
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.
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.
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 (understandable)
o Modifiable
o Verifiable
Prof. Meenakshi Jadhav Page 83
o Prioritized
o Unambiguous
o Traceable
o Credible source
o User Interface requirements
o UI is an important part of any software or hardware or hybrid system. A
software is widely accepted if it is -
o easy to operate
o quick in response
o effectively handling operational errors
o providing simple yet consistent user interface
o User acceptance majorly depends upon how user can use the software. UI
is the only way for users to perceive the system. A well performing
software system must also be equipped with attractive, clear, consistent
and responsive user interface. Otherwise the functionalities of software
system can not be used in convenient way. A system is said be good if it
provides means to use it efficiently. User interface requirements are
briefly mentioned below -
o Content presentation
o Easy Navigation
o Simple interface
o Responsive
o Consistent UI elements
o Feedback mechanism
o Default settings
o Purposeful layout
o Strategically use of color and texture.
o Provide help information
o User centric approach
o Group based view settings.
They define functions and functionality within and from the software
system.
Examples -
Requirements, which are not related to functional aspect of software, fall into
this category. They are implicit or expected characteristics of software, which
users make assumption of.
Requirements elicitation
Requirements specification
Requirements verification and validation
Requirements management
Requirements Elicitation:
It is related to the various ways used to gain knowledge about the project
domain and requirements. The various sources of domain knowledge include
customers, business manuals, the existing software of same type, standards and
other stakeholders of the project.
The techniques used for requirements elicitation include interviews,
brainstorming, task analysis, Delphi technique, prototyping, Elicitation does not
produce formal models of the requirements understood. Instead, it widens the
Requirements Specification:
This activity is used to produce formal software requirement models. All the
requirements including the functional as well as the non-functional
requirements and the constraints are specified by these models in totality.
During specification, more knowledge about the problem may be required
which can again trigger the elicitation process.
The models used at this stage include ER diagrams, data flow diagrams(DFDs),
function decomposition diagrams(FDDs), data dictionaries, etc.
Verification:
It refers to the set of tasks that ensures that the software correctly implements a
specific function.
Validation: It refers to a different set of tasks that ensures that the software that
has been built is traceable to customer requirements.
If requirements are not validated, errors in the requirement definitions would
propagate to the successive stages resulting in a lot of modification and rework.
The main steps for this process include:
The requirements should be consistent with all the other requirements i.e
no two requirements should conflict with each other.
The requirements should be complete in every sense.
The requirements should be practically achievable.
Reviews, buddy checks, making test cases, etc. are some of the methods used
for this.
Requirements Management :-
Requirement management is the process of analyzing, documenting, tracking,
prioritizing and agreeing on the requirement and controlling the communication
to relevant stakeholders. This stage takes care of the changing nature of
requirements. It should be ensured that the SRS is as modifiable as possible so
Prof. Meenakshi Jadhav Page 87
as to incorporate changes in requirements specified by the end users at later
stages too. Being able to modify the software as per requirements in a
systematic and controlled manner is an extremely important part of the
requirements engineering process.
2. User interfaces
3. Hardware interfaces
4. Software interfaces
5. Communication Interfaces
6. Memory constraints
Table of Contents
DB Database
ER Entity Relationship
This project is a prototype for the flight management system and it is restricted within
the college premises. This has been implemented under the guidance of college
professors. This project is useful for the flight management team and as well as to
the passengers.
1.5 REFERENCES
www.irtc.co.in
www.airindia.com
2. OVERALL DESCRIPTION
2.1 PRODUCT PERSPECTIVE
A distributed airline database system stores the following information.
Flight details:
Customer description:
Reservation description:
• One-way
• Round-Trip
• Multi-city
• Flexible Date/time
• Confirmation
• Get all flights whose arrival and departure times are on time/delayed.
ADMINISTRATIVE
3. SYSTEM FEATURES
DESCRIPTION and PRIORITY
The airline reservation system maintains information on flights, classes of seats,
personal preferences, prices, and bookings. Of course, this project has a high
priority because it is very difficult to travel across countries without prior
reservations.
STIMULUS/RESPONSE SEQUENCES
Search for Airline Flights for two Travel cities
Displays a detailed list of available flights and make a
“Reservation” or Book a ticket on a particular flight.
Cancel an existing Reservation.
FUNCTIONAL REQUIREMENTS
Other system features include:
DISTRIBUTED DATABASE:
Distributed database implies that a single application should be able to operate
transparently on data that is spread across a variety of different databases and
connected by a communication network as shown in below figure.
CLIENT/SERVER SYSTEM
5. NONFUNCTIONAL REQUIREMENTS
5.1 PERFORMANCE REQUIREMENTS
The steps involved to perform the implementation of airline database are as
listed below.
A) E-R DIAGRAM
The E-R Diagram constitutes a technique for representing the logical structure
of a database in a pictorial manner. This analysis is then used to organize data as
a relation, normalizing relation and finally obtaining a relation database.
ENTITIES: Which specify distinct real-world items in an application.
PROPERTIES/ATTRIBUTES: Which specify properties of an entity
and relationships.
RELATIONSHIPS: Which connect entities and represent meaningful
dependencies between them.
B) NORMALIZATION:
The basic objective of normalization is to reduce redundancy which means that
information is to be stored only once. Storing information several times leads to
wastage of storage space and increase in the total size of the data stored.
If a database is not properly designed it can give rise to modification anomalies.
Modification anomalies arise when data is added to, changed or deleted from a
database table. Similarly, in traditional databases as well as improperly designed
relational databases, data redundancy can be a problem. These can be
eliminated by normalizing a database.
Normalization is the process of breaking down a table into smaller tables. So
that each table deals with a single theme. There are three different kinds of
modifications of anomalies and formulated the first, second and third normal
forms (3NF) is considered sufficient for most practical purposes. It should be
3. Definition
3.1 Contract
3.2 Customer
3.3 Supplier
3.4 User
Note :-
User Interface: - The logical characteristics of each interface between
the software product and its users. All the aspects of optimizing the
interface with the person who must use the system
Software interfaces
This should specify the use of other required software products (e.g., a data
management system, an operating system, or a mathematical package), and
interfaces with other application systems (e.g., the linkage between an accounts
receivable system and a general ledger system). For each required software
product
Functional hierarchy
When none of the above organizational schemes prove helpful, the overall
functionality can be organized into a hierarchy of functions organized by either
common inputs, common outputs, or common internal data access. Data flow
diagrams and data dictionaries can be used to show the relationships between
and among the functions and data.
2. Functional Requirements
a. Functional Partitioning
b. Functional Description
c. Control Description
3. Non Functional Requirements
4. Behavioral Description
a. System State
b. Event &Action
5. Validation Criteria
a. Performance Bound
b. Classes of Test
c. Response to undesired events