SE Notes Unit-2
SE Notes Unit-2
Unit-2
[Link]
BRANCH: CSE & IT
YEAR- 3RD SEMESTER- 6th
(AKTU)
Rohit Mishra
(Assistant Professor)
• Functional requirements: - describe what the software has to do. They are often called
product features. It depends on the type of software, expected users and the type of system
where the software is used.
• Non Functional requirements: - are mostly quality requirements. That stipulate how well
the software does, what it has to [Link] define system properties and constraints e.g.
reliability, response time and storage requirements. Constraints are I/O device capability,
system representations, etc.
• User requirements:- Statements in natural language plus diagrams of the services the
system provides and its operational constraints.
• System requirements: - A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints. Defines what should be
implemented so may be part of a contract between client and contractor.
2.2 Requirements engineering Process
• The process of finding out, analyzing, documenting and checking these services and
constraints called requirement engineering.
• RE produces one large document, written in a natural language, contains a
description of what the system will do without how it will do
• Input to RE is problem statement prepared by the customer and the output is SRS
prepared by the developer.
• The requirements themselves are the descriptions of the system services and constraints
that are generated during the requirements engineering process.
Requirements engineering processes:-
The processes used for RE vary widely depending on the application domain, the people involved and
the organisation developing the requirements. However, there are a number of generic activities
common to all processes
• Requirement’s elicitation
• Requirement’s analysis
• Requirement’s documentation
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
1
• Requirements review
Requirement
Elicitation
Requirement Requirement
Engineering analysis
Requirement
documentation
Requirement
Review
SRS
2.1.1 Feasibility Study: - It is the process of evaluation or analysis of the potential impact of a
propose project or program.
Five common factors (TELOS)
Technical feasibility: - Is it technically feasible to provide direct communication
connectivity through space from one location of globe to another location?
Economic feasibility:-Are the project’s cost assumption realistic?
Legal feasibility: - Does the business model realistic?
Operational feasibility: - Is there any market for the product?
Schedule feasibility: - Are the project’s schedule assumption realistic?
2.1.2 Elicitation: - It is also called requirement [Link] are identified with the help
of customer and exiting system processes, if they are available. Requirement Elicitation is most
difficult is perhaps most critical most error prone most communication intensive aspect of
software development.
Various methods of Requirements Elicitation
1. Interviews
• After receiving the problem statement from the customer, the first step is to arrange a
meeting with the customer.
• During the meeting or interview, both the parties would like to understand each other.
• The objective of conducting an interview is to understand the customer’s expectation
from the software
Selection of stakeholder
1. Entry level personnel
2. Middle level stakeholder
3. Managers
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
2
4. Users of the software (Most important)
2. Brainstorming Sessions
• Brainstormy is a group technique that may be used during requirement elicitation to
understand the requirement
• Every idea will be documented in a way that every can see it
• After brainstormy session a detailed report will be prepared and reviewed by the
facilitator
3. Facilitated Application specification approach (FAST)
• FAST is similar to brainstormy session and the objective is to bridge the expectation
gap-a difference what the developers think they are suppose to build and what the
customer think they are going to get
• In order to reduce the gap a team oriented approach is developed for requirement
gathering and is called FAST
4. Quality function deployment (QFT)
• It incorporates the voice of the customer and converts it in to the document.
5. Use case Approach:
• Combination of text & picture to improve understanding. There are three term: use
case, use case scenario, use case diagram. Use case diagram: use the following
components for design.
o Actor (External Agent)- lies out side the system(ex: person, M/C, Info)
o Use case: describe the sequence of interaction B/W actor and system.
o Association (Arrow)
2.1.3 Analysis
Requirement analysis phase analyze, refine and scrutinize requirements to make consistent &
unambiguous requirements.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
3
After modeling the requirement inconsistencies and ambiguities have been identified and
corrected. Flow of data among various modules has been analyzed. Now Finalize and
analyzes requirements and next step is to document these requirements in prescribed format.
2.1.4 Documentation
This is the way of representing requirements in a consistent format SRS serves many purpose
depending upon who is writing it.
Characteristics of good SRS document: - Some of the identified desirable qualities of the
SRS documents are the following-
Concise- The SRS document should be concise and at the same time unambiguous,
consistent, and complete. An SRS is unambiguous if and only if every requirement stated
has one and only one interpretation.
Structured- The SRS document should be well-structured. A well-structured document is
easy to understand and modify. In practice, the SRS document undergoes several revisions
to cope with the customer requirements.
Black-box view- It should only specify what the system should do and refrain from stating
how to do. This means that the SRS document should specify the external behaviour of the
system and not discuss the implementation issues.
Conceptual integrity- The SRS document should exhibit conceptual integrity so that the
reader can easily understand the contents.
Verifiable- All requirements of the system as documented in the SRs document should be
verifiable. This means that it should be possible to determine whether or not requirements
have been met in an implementation.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
4
2.1.5 Requirements Validation
Requirement Validation is used for checking the document:-
• Completeness & consistency
• Conformance to standards
• Requirements conflicts
• Technical errors
• Ambiguous requirements
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
5
2.4.1. Data Flow Diagram:
A DFD is also known as “bubble Chart” has the purpose of clarifying system requirements
and identifying major transformation.
• It shows the flow of data through a system.
• It is a graphical tool because it present a picture.
• It present a system or software at any level of abstraction.
Four simple notation are used to complete a DFD-
I. Data Flow-The data flow is used to describe the movement of information from a
part of system to another part.
II. Process-A circle or bubble represents a process that transform incoming data to
outgoing data.
III. External Entity- A square defines a source or destination of system data. External
entities represents any entity that supplies information from the system.
IV. Data Store- The data store is used to collect data at rest or a temporary repository of
data.
Standard Symbols for DFD’s
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
6
DFD for UNIVERSITY COURSE REGISTRATION SYSTEM
Data Dictionaries
Data Dictionaries are simply repositories to store information about all data items defines in
DFD.
At the requirement stage, the data dictionary should at least define customer data items, to
ensure that the customer and developer use, the same definitions and terminologies.
Typical information stored include –
• Name of the data item
• Aliases
• Description/Purpose
• Related data items
• Range of Values
• Data Structure Definition
The data dictionary has two different kinds of items: composite data and elemental data.
• Higher-level (composite) elements may be defined in terms of lower-level items.
• Elemental data are items that cannot be reduced any further and are defined in terms
of the values that it can assume or some other unambiguous base type.
The general format of a data dictionary is similar to a standard dictionary; it contains an
alphabetically ordered list of entries.
Each entry consists of a formal definition and verbal description
COMPOSITE DATA
Composite data can be constructed in three ways: sequence, repetition, or selection of other
data types.
sequence:
+ A plus sign indicates one element is followed by or concatenated with another element.
repetition:
[ ] Square brackets are used to enclose one or more optional elements.
| A vertical line stands for "or" and is used to indicate alternatives.
selection:
{} Curly braces indicate that the element being defined is made up of a series of repetitions of
the element(s) enclosed in the brackets.
{ }y The upper limit on the number of allowable repetitions can be indicated by including an
integer superscript on the right bracket. Here y represents an integer and indicates that the
number of repetitions cannot be greater than y.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
7
Examples of COMPOSITE DATA
sequence:
Mailing-address = name + address + city + zip-code
* The address at which the customer can receive mail *
repetition:
Completed-order = [ item-ordered ]
* A complete customer order *
selection:
Atm-transaction = { deposit | withdrawal }
* An customer transaction at an automated teller machine *
In these examples asterisks are used to delimit the comment or verbal description of the item, but
other notations can be used as well.
• The entity relationship data model is based on a perception of a real word that consist of a
basic objects, called entity, and of relationships among these objects.
• An Entity – Relationship model (ER model) is an abstract way to describe a database.
• It is a visual representation of different data using conventions that describe how these data
are related to each other.
• An entity is a object or thing in the real world that is distinguishable from other objects.
• An entity have a set of attributes. A relationship is an association among several entities. ER
diagram consist of following major component-
i. Rectangle-which represent entity sets.
ii. Ellipse-which represent attributes.
iii. Diamond-which represent relationship sets.
iv. Lines-which link attributes to entity set and to relationship sets.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
9
Composite attribute:
Can be divided in to smaller subparts which represent more basic attributes with independent
meaning Even form hierarchy Ex: Address, Name
Derived attribute:
Attribute values are derived from another attribute. Denoted by dotted oval Ex - Age
Stored attribute:
Attributes from which the values of other attributes are derived. For example, ‘Date of birth’
of a person is a stored attribute.
Single-valued attribute:
A single valued attribute can have only a single value. For example a person can have only
one ‘date of birth’, ‘age’ , Social_Security_Number.etc. That is a single valued attribute
can have only single value. But it can be simple or composite attribute. That is ‘date of
birth’ is a composite attribute, ‘age’ is a simple attribute. But both are single valued
attributes.
Multi-value attribute:
Attribute may contain more than one values. Denoted by double circled oval line connecting
to the entity in the ER diagram. Ex: Phone-number, College-degree, email addresses etc
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
10
KEYS
Keys are of following types:-
1. Candidate Key
2. Composite Key
3. Primary key
4. Foreign Key
The name of each primary key attribute is underlined.
CANDIDATE KEY
• a simple or composite key that is unique and minimal
• unique – no two rows in a table may have the same value at any time
• minimal – every column must be necessary for uniqueness
• For example, for the entity
Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate, Salary,
DepartmentID)
• Possible candidate keys are EID, SIN
COMPOSITE KEY
• Composed of more than one attribute
• For example, First Name and Last Name – assuming there is no one else in the company with
the same name, Last Name and Department ID – assuming two people with the same last
name don’t work in the same department.
• A composite key can have two or more attributes, but it must be minimal.
PRIMARY KEY
• A candidate key is selected by the designer to uniquely identify tuples in a table. It
must not be null.
• A key is chosen by the database designer to be used as an identifying mechanism for the
whole entity set. This is referred to as the primary key. This key is indicated by underlining
the attribute in the ER model.
• For example Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate,
Salary, DepartmentID) – EID is the Primary key.
FOREIGN KEY
• An attribute in one table that references the primary key of another table OR it can be
null.
• Both foreign and primary keys must be of the same data type
• For example: Employee(EID, First Name, Last Name, SIN, Address, Phone, BirthDate,
Salary, DepartmentID) – DepartmentID is the Foreign key.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
11
More techniques for data analysis
There are two main techniques available to analyze and represent complex processing logic:
1. Decision trees and
2. Decision tables.
1. New member
2. Renewal
3. Cancel membership
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
12
DECISION TABLES
A major drawback to decision tree is the lack of information in its format to tell us what other
combination of conditions of test. To overcome from this drawback decision table is used.
▪ A decision table is a table of contingencies for defining a problem and the action to be
taken.
▪ It is a single representation of the relationships between conditions and action.
Decision tables are used mainly because of their visibility, clearness, coverage capabilities, low
maintenance and automation fitness.
A Decision table consist two parts:-
i. Stub- The stub part is divided into “upper quadrant” and “lower quadrant” called condition
and action stub.
ii. Entry- The entry part are also divided into “upper quadrant” and “lower
quadrant”.
STRUCTURE
The four quadrants
Conditions Condition alternatives
Actions Action entries
Suppose a technical support company writes a decision table to diagnose printer problems based
upon symptoms described to them over the phone from their clients.
BENEFITS
• Decision tables, especially when coupled with the use of a domain-specific language,
allow developers and policy experts to work from the same information, the decision
tables themselves.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
13
• Tools to render nested if statements from traditional programming languages into decision
tables can also be used as a debugging tool.
• Decision tables have proven to be easier to understand and review than code, and have
been used extensively and successfully to produce specifications for complex systems.
VALIDATION TECHNIQUES
There are two requirements validation techniques:-
1. Requirements Reviews
2. Prototyping
REQUIREMENTS REVIEWS
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
15
REQUIREMENTS VALIDATION
Problem actions
• Requirements clarification
• Missing information (find this information from stakeholders)
• Requirements conflicts (Stakeholders must negotiate to resolve this conflict)
• Unrealistic requirements
• Security issues
REVIEW CHECKLISTS
• Understandability
• Redundancy
• Completeness
• Ambiguity
• Consistency
• Organization
• Conformance to standards
• Traceability
REQUIREMENT MANAGEMENT
Process of understanding and controlling changes to system requirements.
ENDURING & VOLATILE REQUIREMENTS
• Enduring requirements: They are core requirements & are related to main
activity of the organization. Example: issue/return of a book, cataloging etc.
• Volatile requirements: likely to change during software development life cycle
or after delivery of the product
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
16
Software quality assurance (SQA) consists of a means of monitoring the software
engineering processes and methods used to ensure quality. The SQA plan include the following:
• Project planning
• Models of data, classes and object, processes, design architecture
• SRS
• Test plans for testing SRS
• User manuals online help etc.
• Audit & Review
Every software developers will agree that high-quality software is an important goal. Once
said, "Every program does something right, it just may not be the thing that we want it to do."
In SQA plan 3 kinds of activities performed:
• Organization specific
• Software specific
• Customer Specific
The definition serves to emphasize three important points:
1. Software requirements are the foundation from which quality is measured. Lack of
conformance to requirements is lack of quality.
2. Specified standards define a set of development criteria that guide the manner in
which software is engineered. If the criteria are not followed, lack of quality will
almost surely result.
3. A set of implicit requirements often goes unmentioned (e.g., the desire for ease of
use and good maintainability). If software conforms to its explicit requirements
but fails to meet implicit requirements, software quality is suspect.
Verification Validation
Are we building the product right? Are we building the right product?
Ensure that the software system meets all the Ensure that the functionalities meet the intended
functionality behavior.
Verifications take place first and include the Validation occurs after verification and mainly
checking for documentation, code etc involves the checking of the overall product.
Done by developers Done by testers
Have static activities as it includes the reviews, Have dynamic activities as it includes executing
walk-throughs and inspections to verify that the software against the requirements.
software is correct or not
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
17
In the verification and validation, two techniques of system checking and analysis may be used:-
1. Software Inspection
2. System testing
The testing can be carried out using following tests:-
i. Unit testing
ii. Module testing
iii. System testing
iv. Acceptance testing
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
18
ISO 9000 Series
ISO 9000 is a series of three standards:
The types of software industries to which the different ISO standards apply are as follows:
ISO 9001:
This standard applies to the organization engaged in design, development, production
& servicing of goods. This is the standard that is applicable to most software
development organization.
ISO 9002:
This standard applies to the organization which do not design products but only
involved in production. E.g, Car manufacturing industries.
ISO 9003:
This standard applies to the organization involved only in installation and testing of
the products.
Benefits of ISO 9000 Certification
1. Continuous Improvement
2. Improved Customer Satisfaction
3. Eliminate Variations
4. Better product and Services
5. Improved Profit levels
6. Improved Communication
7. Reduced Cost
ISO 9000 standard is written for a wide range of industries whereas CMM framework is
specifies for the software industry.
CMM is a five level framework for measuring software engineering practices, and ISO 9000
defines a minimum level of attributes for a quality management program.
The ISO 9000’s concept is to follow a set of standards to make success repeatable. The
CMM emphasizes a process of continuous improvement.
Once an organization has met the criteria to be ISO certified by an independent audit, the next
step is only to maintain that level of certification. CMM is an on-going process of evaluation
and improvement, moving from one level of achievement to the next. Even at the highest
level of maturity, the focus is on continuous improvement.
Prepared By:
Mr. Rohit Mishra
Assistant Professor (UIT)
20