KDS 063 - Chapter 2
KDS 063 - Chapter 2
KDS 063 - Chapter 2
(KDS 063)
Lecture Notes
By
Ms.Pallavi Shukla
U.C.E.R.
UNIT II – SOFTWARE REQUIREMENT
SPECIFICATIONS(SRS)
REQUIREMENT-
• We define requirement as :
Requirement Engineering –
• It can be defined as the “Systematic process of documenting requirement through an
interactive co operative process of analyzing the problem, documenting the resulting
observations in a variety of representation format & checking the accuracy of the
understanding gained”
or
It is defines as “ the systematic use of proven principles techniques , tools & languages for the cost
effective analysis, documentation and ongoing evolution of user needs & the specification of the
external behaviors of the system in order to satisfy these needs.
Classification of Requirements –
• Functional Requirements
• Non Functional Requirements
• Domain Requirements
FUNCTIONAL REQUIREMENTS-
• They focus on the functionality of the software components that build the system.
• Functional requirements are the services which are the end users expect the final
product to provide.
• There are many ways of expressing functional requirements eg. Natural language,
structured or formatted language. With no rigorous syntax, formal specification
language with proper syntax.
• Constraints
• Goals
• Interface constraints
• Operating constraints.
• Economic Constraints.
DOMAIN REQUIREMENTS-
• These are the requirements that are specific to an application domain eg. Banking , Hospital etc.
• These requirements are therefore identified from domain model and are not user specific.
NEED OF SRS –
• A Basic purpose of software requirements specification is to bridge the communication gap between
user & developer.
• To help the clients to understand their own needs as it forces the client and users to think, visualize ,
interact & discuss with others.
• An SRS establishes the basis for agreement between the client & the supplier on what the software
product will do this basis for agreement is frequently formalized into a legal contract between the
client and the developer. So through SRS, the client clearly describes what it expects from the
supplier, & the developer clearly understands what capabilities to build in the software.
• A high Quality SRS reduces the development Cost. Hence the Quality of the SRS impacts customer
satisfaction , system validation quality of the final Software & software development cost.
Correctness-
• An SRS is said to be correct if every requirement stated in the document is correct.
• Further, it can be compared with some proceedings documents or with applicable standards.
Completeness-
• It is said to be complete if –
• All the significant functional & non functional requirements to be satisfied by the software
are included in the SRS.
• Response to all valid and invalid class of data is included. It means for every valid and invalid
inputs defined in SRS, appropriate output is also mentioned.
• All figures , tables & pages are numbered. They are also properly named and referenced.
• Sections in the SRS should avoid the label ”to be determined” as far as possible.
Consistency –
• It is said to be consistent if there is no conflict between the requirements in the documents.
• Different types of conflict may exist between the requirements. Some of them are:
• Conflicts can also arise if different terminology is used to describe same real world object or
event.
Unambiguousness-
• Unambiguousness in the SRS document is supported only if each and every requirement started in it
has only one interpretation.
• It can be best achieved by using requirements specification languages, requirements analysis &
modelling techniques & reviewing the document written in natural language by a third process.
Modifiability-
• Requirements keep changing and changes must be reflected properly in the SRS.
• An SRS is said to be modifiable if changes can be made to the requirements easily, completely and
consistently while retaining its structure & style.
Verifiability-
An SRS is said to be verifiable if for each requirement written in SRS, there exists some cost effective
process using which a person or tool can ensure that software meets the requirements.
Traceability –
• b) Backward Traceability – Which is achieved by each requirement referring explicitly to its source in
previous documents.
Design Independent –
REQUIREMENT PROCESS-
• It is the sequence of activities that need to be performed in the requirements in the requirements
phase nad that culminate in producing high quality document containing the software requirements
specification(SRS).
• Requirement Specification.
• Requirement Validation.
• It is concerned with understanding of problem domain at the beginning of the project because
requirements are fuzzy and are not clearly understood by the analyst.
• This process of acquiring information/ knowledge about a specific problem domain through various
techniques to build the requirements model is called Requirement Elicitation.
• This activity of requirement elicitation helps the analyst to gain knowledge about the problem domain
which in turn is used to produce formal specification of software to be developed to meet the
customer.
Requirement Specification –
• These models specify the functional and non functional properties of the system along with the
constraints imposed on the system.
Requirement Validation –
• It is defined as process to ensure the consistency of requirements model with respect to customers'
needs.
• The validation is done not only for the final model but also for all intermediate models generated.
• If requirements are not validated , errors in the requirements definition would propagate to the
successive stages resulting into lot of modification & rework.
• Ensure that requirements are consistent. They are not conflicting with other requirements.
ER model
o ER model stands for an Entity-Relationship model. It is a high-level data model. This
model is used to define the data elements and relationship for a specified system.
o It develops a conceptual design for the database. It also develops a very simple and
easy to design view of data.
o In ER modeling, the database structure is portrayed as a diagram called an entity-
relationship diagram.
For example, Suppose we design a school database. In this database, the student will be an
entity with attributes like address, name, id, age, etc. The address can be another entity with
attributes like city, street name, pin code, etc and there will be a relationship between them.
Component of ER Diagram
Entity:
An entity may be any object, class, person or place. In the ER diagram, an entity can be
represented as rectangles.
a. Weak Entity
An entity that depends on another entity called a weak entity. The weak entity doesn't contain
any key attribute of its own. The weak entity is represented by a double rectangle.
2. Attribute
The attribute is used to describe the property of an entity. Eclipse is used to represent an
attribute.
For example, id, age, contact number, name, etc. can be attributes of a student.
a. Key Attribute
The key attribute is used to represent the main characteristics of an entity. It represents a
primary key. The key attribute is represented by an ellipse with the text underlined.
b. Composite Attribute
An attribute that composed of many other attributes is known as a composite attribute. The
composite attribute is represented by an ellipse, and those ellipses are connected with an
ellipse.
c. Multivalued Attribute
An attribute can have more than one value. These attributes are known as a multivalued
attribute. The double oval is used to represent multivalued attribute.
For example, a student can have more than one phone number.
d. Derived Attribute
An attribute that can be derived from other attribute is known as a derived attribute. It can be
represented by a dashed ellipse.
For example, A person's age changes over time and can be derived from another attribute
like Date of birth.
Relationship
The association among entities is called a relationship. For example, an employee works_at a
department, a student enrolls in a course. Here, Works_at and Enrolls are called relationships.
Relationship Set
A set of relationships of similar type is called a relationship set. Like entities, a relationship
too can have attributes. These attributes are called descriptive attributes.
Degree of Relationship
The number of participating entities in a relationship defines the degree of the relationship.
• Binary = degree 2
• Ternary = degree 3
• n-ary = degree
ER Model is represented by means of an ER diagram. Any object, for example, entities,
attributes of an entity, relationship sets, and attributes of relationship sets, can be represented
with the help of an ER diagram.
Entity
Entities are represented by means of rectangles. Rectangles are named with the entity set they
represent.
Attributes
Attributes are the properties of entities. Attributes are represented by means of ellipses. Every
ellipse represents one attribute and is directly connected to its entity (rectangle).
If the attributes are composite, they are further divided in a tree like structure. Every node is
then connected to its attribute. That is, composite attributes are represented by ellipses that are
connected with an ellipse.
• Many-to-one − When more than one instance of entity is associated with the
relationship, it is marked as 'N:1'. The following image reflects that more than one
instance of an entity on the left and only one instance of an entity on the right can be
associated with the relationship. It depicts many-to-one relationship.
• Many-to-many − The following image reflects that more than one instance of an entity
on the left and more than one instance of an entity on the right can be associated with
the relationship. It depicts many-to-many relationship.
Participation Constraints
• Total Participation − Each entity is involved in the relationship. Total participation is
represented by double lines.
• Partial participation − Not all entities are involved in the relationship. Partial
participation is represented by single lines.
Keys
o Keys play an important role in the relational database.
o It is used to uniquely identify any record or row of data from the table. It is also used
to establish and identify relationships between tables.
For example: In Student table, ID is used as a key because it is unique for each student. In
PERSON table, passport_number, license_number, SSN are keys since they are unique for
each person
Types of key:
1. Primary key
o It is the first key which is used to identify one and only one instance of an entity
uniquely. An entity can contain multiple keys as we saw in PERSON table. The key
which is most suitable from those lists become a primary key.
o In the EMPLOYEE table, ID can be primary key since it is unique for each employee.
In the EMPLOYEE table, we can even select License_Number and Passport_Number
as primary key since they are also unique.
o For each entity, selection of the primary key is based on requirement and developers.
2. Candidate key
o A candidate key is an attribute or set of an attribute which can uniquely identify a
tuple.
o The remaining attributes except for primary key are considered as a candidate key.
The candidate keys are as strong as the primary key.
For example: In the EMPLOYEE table, id is best suited for the primary key. Rest of the
attributes like SSN, Passport_Number, and License_Number, etc. are considered as a
candidate key.
3. Super Key
Super key is a set of an attribute which can uniquely identify a tuple. Super key is a superset
of a candidate key.
4. Foreign key
o Foreign keys are the column of the table which is used to point to the primary key of
another table.
o In a company, every employee works in a specific department, and employee and
department are two different entities. So we can't store the information of the
department in the employee table. That's why we link these two tables through the
primary key of one table.
o We add the primary key of the DEPARTMENT table, Department_Id as a new
attribute in the EMPLOYEE table.
o Now in the EMPLOYEE table, Department_Id is the foreign key, and both the tables
are related.
The database can be represented using the notations, and these notations can be reduced to a
collection of tables.
In the database, every entity set or relationship set can be represented in tabular form.
In the given ER diagram, LECTURE, STUDENT, SUBJECT and COURSE forms individual
tables.
In the STUDENT table, Age is the derived attribute. It can be calculated at any point of time
by calculating the difference between current date and Date of Birth.
Using these rules, you can convert the ER diagram to tables and columns and assign the
mapping between the tables. Table structure for the given ER diagram is as below:
REQUIREMENT PROCESS-
• Requirement Specification.
• Requirement Validation.
• It is concerned with understanding of problem domain at the beginning of the project because
requirements are fuzzy and are not clearly understood by the analyst.
• This process of acquiring information/ knowledge about a specific problem domain through
various techniques to build the requirements model is called Requirement Elicitation.
• This activity of requirement elicitation helps the analyst to gain knowledge about the problem
domain which in turn is used to produce formal specification of software to be developed to
meet the customer.
Requirement Specification –
• These models specify the functional and non functional properties of the system along with
the constraints imposed on the system.
Requirement Validation –
• The validation is done not only for the final model but also for all intermediate models
generated.
• If requirements are not validated , errors in the requirements definition would propagate to
the successive stages resulting into lot of modification & rework.
• Ensure that requirements are consistent. They are not conflicting with other
requirements.
•
• Requirement process is seen as linear sequence of 3 activities , but it is not so to most
real activities, there is considerable overlap and feedback between these activities.
• It is popular technique for understanding the problem domain and quite successful.
• It may take the form of questionnaire , open ended interviews & focus groups.
• Structured Interview- Analysist can simplify ask the users about their expectations from the
system but the main problem is that users can bypass their limitations so analysts can probe
the user through a set of questions thus avoiding the above mentioned problem this type of
interview is called Structured Interview.
Focus Group –
• It is a kind of group interview where groups are brought together to discuss some topic of
research to the researcher & allow more natural interactions than open ended interviews.
c) Plan Contracts
• Brainstorming –
It is a group technique to promote creative thinking and can eb used during requirements
elicitation process to generate new ideas.
• Task Analysis –
It is a technique of decomposing the problem domain into a hierarchy of tasks & subtasks.
Form Analysis –
• Forms plan an important role in any organization and contain lot of meaningful information
about data objects of the domain.
• Forms are important source of information for modeling the static view or data aspect of the
system.
Delphi Technique –
• In this session , participants are made to write the requirements .
• These requirements are then exchanged among participants who give their comments to
get a revised set of requirements .
• Use case diagrams are graphical representation to show the system at different levels of
abstraction.
Domain Analysis –
• Therefore starting from one or more existing systems requirements for the new system can
be formulated.
• This is just like representing the requirements at another higher level of abstraction called
Meta Level.
FAST was developed specifically for collecting requirements & is similar to brainstorming.
• Conflicting requirements.
• Used in analysis or elicitation is the same as in any complete task: Divide and Conquer.
• Partition the problem into subproblems and then try to understand each subproblem and its
relationship to other subproblems in an effort to understand the total problem.
• This is an applied recursively by treating each subsystem as a system in its own right.
Object –
• It is an entity in the real world that has clearly defined boundaries and an independent
existence . By considering real world objects , the focus of the analysis stays on the problem
domain , rather than the solution domain.
Function –
It is a task, service, process ,mathematical function, or activity that is now being performed in the
real world has to be performed by the system that will be built to solve the real world problem.
State –
• When using state , a system is first viewed as operating in one if the several possible states ,
and then object based or function based analysis is performed for each state. This approach
is sometimes used in real time software or process control software.
Projection –
• A system is defined form multiple points of view projecting a 3 dimensional object on the 3
different 2 dimensional planes is a similar process.
• While using projection , different viewpoints of the system are defined and the system is
analyzed from these different perspectives separately using an object based or function
based approach.
• 3) Prototyping
• The information about the system is obtained by interaction with the client , end users,
Questionnaires , study of existing documents , brainstorming etc.
• In such an approach, the analyst will have a series of meetings with the clients & end users.
• In the early meetings , the clients & end users will explain to the analyst about their work,
their environment & their needs as they perceive them.
• Any documents describing the work or the organization may be given, along with outputs of
the existing methods of performing the task.
• Once the analyst understands the system to some extent, he uses the new few meetings to
seek clarifications of the parts he does not understand.
• In the final few meetings , the analyst essentially explains to the client what he understands
the system should do & uses the meetings as a means of verifying if what he proposes the
system should do is indeed consistent with the objectives of the clients.
Structured Analysis –
• Structured Analysis Techniques uses function based decomposition while modeling
the problem domain & the data consumed & produced by these functions.
• The structured analysis ,method helps an analyst decide what type of information to
obtain at different points in analysis & it helps organize information so that the
analyst is not overwhelmed by the complexity of the problem.
• It is a top down refinement approach , which was originally called Structured
Analysis & Specifications.
• Structured Analysis Techniques result in graphical representation of the software
system development.
• 1) Entity Relationship Diagram
• 2) Function Decomposition Diagram
• 3) Data Flow Diagram
• 4) State Transition Diagram
• 5) Data Dictionary
• 6) Process Specifications
• 7) Context Diagram
• 8) Decision Trees
DATA FLOW DIAGRAM (DFD) –
• It is a modelling tool used to model the functional view of the system in terms of
processes & flow of data between these processes.
• The techniques for modelling flow of data between processes is also called Process
Modeling.
PROCESS-
• It is used to show some kind of transformations on data.
• It is represented by a circle with name of process written inside it.
Process names should be meaningful verb object phrases not nouns.
Compute
Salary
Data Flow –
• Data flows show data in motion between different processes , process and store or
external agent or process.
• They are represented by arrows which are labelled
• A data flow represents –
• 1) Data input to a process
• 2) Output form a process
• 3) Insertion of new data in the store or retrieval of existing data
• 4) Updating existing data in the store.
• 5) Deletion of existing data form the store
• A data flow can be further classified as
• Convergent Data Flow- It is formed by merging multiple data flows into a single data
flow.
• Divergent Data Flow – it is one which breaks up into multiple data flows.
STORE –
• It represent data at rest and can be shown graphically by the symbol.
Employees
BANK
CONTEXT DIAGRAM:
Context Diagram is also called a level 0 data flow diagram.
It is a diagram in which working of the whole organization is represented by a single process and its
interaction with external agents is shown through exchange of data.
DATA DICTIONARY:
• It is the most important part of structured analysis model.
• It is the organized listing of all data elements of the system with their precise and
unambiguous definitions.
• Data dictionary contains information about.
o Meaning of aggregate item with comments.
o Units of elementary items
o Definition of data/control flows.
o Definition of data stores
o Definition of entities, relationships , attributes, external agents.
o Definition of external control /data flows.
o Local data elements used in writing process specifications any more.
= is defined as / composed of
+ and
{ } iteration (0 or more occurrences)
Min { } max iteration with min & max values specified.
( ) optional data elements
[ ] selection of one data from several choices separated by |
@ store identifier
** Comment
SOME EXAMPLES ARE: =
EVENTS –
It is anything which happens in the system & causes system to change state.
1) Flow Oriented Events – they are accompanied by some kind of data. Customer places
Order in this event accompanies data about the order placed by the customer.
2) Temporal Events – They occur on a fixed date and time. Ex every Friday at 5 PM, a
report is to be generated to view the weekly sales.
3) System Events – these events are internal to the system and occur based on the system
status.eg. whenever the inventory level goes below certain value, event is generated to
place order with the supplier.
GUIDELINES FOR DRAWING DFDs –
PROCESS –
1) All the processes must be numbered.
2) Use meaningful verb object phrases for process names eg Compute salary, generate
Reports.
3) Avoid processes with only inputs, They are called Sinks .
4) Avoid processes with the outputs
5) If necessary redraw the DFD as many times as required.
DATA FLOW -
1) Make sure that all data flows are labelled.
2) Data flows cannot move from a store to another store or store to an external
agent.it must mov through a process.
3) A data flow does not move back to the same process it leaves.
4) A fork can be shown in a data flow to indicate that same data is going from a
location to one or more destinations.
EXTERNAL AGENT -
1) Use noun phrases to label external agents
2) External agents cannot interact directly with a store or any other external agent
through data flows.
DATA STORE -
1) Use Meaningful noun phrases to label data stores.
2) Data cannot move directly from data stores to other data stores or external agents . it
must move through process.
1) State
2) Action
3) Arrow
4) Condition
State – A state is described by a set of attribute values at a particular instant of time and is
represented by a rectangle or an oval sign.
Ex – Person depending upon his age can be in one of the following states - infant, child ,
adult , middle age.
Infant
Adult
State can be either initial / start date, end/final state or in between state.
A system can have only one initial state and single or multiple final states.
Action –
Whenever system changes state in response to a condition it performs one or more actions.
It is also possible that it may not perform any action
Some of the actions can be displaying a message,
Arrows –
Arrows connect two or more states indicating that S1 changes to state s2 as a result of some
condition c being satisfied.
S1 S2
C/A
Condition –
A condition is some event in the external environment which causes the system to change
from say state s1 to s2.
This event can be anything, say an interrupt , signal or arrival of some data.
Child Adult
Age = 18 years
PROCESS SPECIFICATIONS-
In a DFD processes are shown as black boxes.
Logic Modelling pr process Specification is used to give the description of logic contained ina
process at the lowest level of decomposition.
Higher level processes which are decomposed into detailed DFD’s do not have Process
specification
Process Specification can be written using
a) Structured Language
b) Pre/ Post Conditions
c) Decision Tables
d) Decision Trees
e) Flow charts
f) Nessi Sheindermann Diagrams etc.
STRUCTURED LANGUAGE –
It is a subset of English language that supports language constructs to represent sequence,
repetition and conditional statements in order to specify the process details.
Alternate names for Structured English are Program Design Language (PDL)
SENTENCE – A sentence in the structured English can be a simple verb object phrase or it can take
the form of an algebraic equation.
VERBS – They are normally chosen from a small set of action oriented verbs & vary fron
organization.
OBJECTS – Objects in these verb object phrases are the data elements already defined in the data
dictionary.
1) IF Condition
Sentence 1
ELSE
Sentence 2
End if
2) DO WHILE Condition
Sentence 1
End do
3) REPEAT
Sentence 2
Until Condition
4) DO CASE
Case variable = value 1:
Sentence 1;
Case variable = value 2:
Sentence 2;
.
.
.
Case variable = value n :
Sentence _n;
Default:
Sentence n+1;
END CASE
DECISION TABLE –
When the process logic is very complicated , involving multiple conditions , it is not possible to
represent the process logic efficiently with structured English . In such type of scenario, decision tables
are used to represent the logic.
1) Condition Stubs
2) Action Stubs
3) Rules
CONDITION STUBS - It list all the conditions relevant to the decision
ACTION STUBS – Action stubs are part of the table lists all possible actions that will take place for a
valid set of conditions.
RULES – Rules part of the table specifies which set of conditions will trigger which action.
Y – YES
N – NO
BLANK – either true or false
REGULAR EXPRESSION –
It can be used to specify the structure of symbol strings formally.
String specification is useful for specifying things as input data, Command sequence &
contents of a message.
Regular expressions can be considered as grammar for specifying the valid sequences in a
languages and can be automatically processed.
They are routinely used in Compiler Construction for recognition of symbols & Tokens.
VALIDATION –
Development of software starts with the requirements document , which is also use to determine
eventually weather or not the delivered software system is acceptable.
It is therefore important that the requirements specification contains no errors and specifies the
client’s requirements correctly.
It is extremely desirable to detect errors in the requirement before the design and development of
the software design.
Basic objective of the requirements validation activity is to ensure that the SRS reflects the actual
requirements accurately and clearly
A related objective us to check that the SRS document is itself of good quality
Many type of errors are possible , but the most common errors are
OMISSION- It is a common error in requirements in this some user requirement is simply not included
in the SRS , the omitted requirements may be related to the behavior of the system, its constraints ,
or any other factor.
INCORRECT FACT - Errors of this type occur when some fact recorded in the SRS is not correct.
AMBIGUITY – Errors of this type occur when there is some requirements that have multiple
meanings i.e their interpretation is not unique.
IEEE SOFTWARE PROJECT MANAGEMENT PLAN(SPMP) –
1. Introduction
1.1 Project Overview
1.2 Project Deliverables
1.3 Evolution of the software Project Management Plans
1.4 Reference Materials
1.5 Definitions and Acronyms
2. Project Organization
2.1 Process Model
2.2 Organizational Structure
2.3 Organizational Boundaries & Interfaces
2.4 Project Responsibilities
3. Managerial Process
3.1 Management Objectives & Priorities
3.2 Assumptions , Dependencies & Constraints
3.3 Risk Management
3.4 Monitoring & Controlling Mechanisms
3.5 Staffing Plans
4. Technical Process
4.1 Methods, Tools & Techniques
4.2 Software Documentation
4.3 Project Support Functions
5. Work Packages , Schedule & Budget
5.1 Work Packages
5.2 Dependencies
5.3 Resource Requirement
5.4 Budget & Resource Allocation
5.5 Schedule
6. Additional Components
7. Index
8. Appendices
INTRODUCTION :
Project Overview : Brief description is given of the project objectives, the product to be delivered ,
the activities & their resulting work products.
Project Deliverables : All the items to be delivered to the client are listed here together with the
delivery dates.
Evolution of the software Project Management Plan: The SPMP requires continual updating in the
light of experience and of change within both the client organization and the software development
organization.
Reference Materials: All documents referenced in the SPMP are listed here.
Definitions and Acronyms: this information ensures that the SPMP will be understood the same way
by everyone.
PROJECT ORGANISATION:
It specifies how the product is to be developed both from the viewpoint of the software process & the
organization structure of developers
Process Model – It is specified in terms of the activities such as designing the product or performing
product testing , and the project functions , such as Project Management or configuration
Management
Organizational Boundaries & Interfaces – Project Members have to interact with the client
organization & with other members of this own organization Administrative & Managerial Boundaries
between the project itself and other entities must be laid down.
Project Responsibilities – for each project function such as SQA and for each activity such as Product
testing , the responsible individual must be identified.
Project Support Functions – It details plans for the supportive functions such as Configuration
Management & Quality Assurance , Including Test plans.
Work Packages- Work Packages are specified , with their associated work products broken down into
activities & tasks.
Resource Requirements- To complete the project , a wide variety of resources will be required.
Budget & resource Allocation – the allocation of resources & budget to the various project functions,
activities & task is presented.
Schedule – A detailed schedule is given for each component of the project. This master plan will then
be followed, it is hoped that the project will be completed on time & within budget.
MANAGERIAL PROCESS –
Management Objectives and priorities- The philosophy , goals & priorities for management are
described. This include frequency & mechanisms of reporting , relative priorities among requirements
, schedule & budget for the project , Risk management procedures.
Assumptions, Dependencies & Constraints - Any assumptions & Constraints in the specification
document appear here.
Risk Management – Various risks factors associated with the project are listed in this subsection as
well as the mechanisms used for tracking these risk factors.
Monitoring & Controlling Mechanisms – Reporting Mechanisms for the project are described in
detail, including review and audit mechanisms.
Staffing Plan – the numbers and type of Personnel required are listed , together with the durations
for which they will be needed.
TECHNICAL PROCESS –
Methods, Tools & Techniques- Technical aspects of Hardware and software sre described in detail.
ADDITIONAL COMPONENTS :
They includes –
SOFTWARE QUALITY
It is the “Conformance to explicit stated functional & performance requirements , explicitly
documented development standards, & implicit characteristics that are expected of all professionally
developed software”
The product Quality describes the attributes of the products of the software process. It can be :
Process quality describes the attributes of the software development process itself, Following are
software environment elements that are present in all the software projects are :
and without specific prescribed standards , Quality Assurance entails ensuring that a software product
meets or exceeds a minimal industrial or commercially acceptable level of excellence.
Purpose of SQA is to provide management with appropriate visibility into the orocess being used by
the software Project and of the products being developed,
SQA involves reviewing & auditing the software products & activities to verufy that they comply with
the applicable procedures & standards & providing the software project and other appropriate
managers with the results of these reviews & audits.
SQA Activities -
1. Applications of Technical Methods- software quality is designed into the software but
not added after ward implies must have set of technical methods & tools to help analyst
generate high quality specifications & designs.
2. Formal Technical Reviews – A formal technical review is a stylized meeting by
technical staff to uncover Quality Problems.
3. Soaftware Testing – Appropriate strategies for software testing should be applicable.
4. Enforcement of standards – There are several Quality standards such as ISO 9000, SEI
CMM etc meant for ensuring software quality if these standards are used, can be applied
by developers as a part of formal view.
5. Control of change – Change control includes – Formalised Requests for change,
Evaluates the nature of the change, Controls the impact of the change,
6. Measurement – Software metrices are needed to track Quality & access impact of
methodological and procedural changes.
7. Record Keeping & Reporting – Collection & dissemination of software Quality
Assured information is required. Results of audits , reviews , change control, testing
and other SQA activities are part of record of the project.
Management must review the overall health of the Quality System on a regular basis
to ensure its suitability & effectiveness.
3) Control Review – Contracts and orders must be reviewed to verify the customer
needs are adequately defined & well understood.
6) Purchasing – Suppliers must be evaluated and selected based on their ability to meet
Quality requirements. Purchase orders must precisely describe the ordered product &
services.
10) Inspection & Testing – Received items must be inspected or otherwise verified as
being acceptable prior to production use.
11) Inspection, Measuring & Test Equipment – All measuring equipment used to verify
prodcuts must be identified and checked for accuracy. The equipment must be
calibrated on a prescribed interval against re cognized standards. This requirement also
applies to less tangible tools, such as software used to verify conformance to
specifications.
12) Inspection & Test Status- The inspection & test status of items must clearly indicate
if they have been inspected or not, put on hold, or rejected.
13) Control of Non Conforming Product – Defective or non conforming products must
be identified and the defect recorded.
14) Corrective & Preventive Action – Causes of product or process problems must be
investigated and corrective actions taken to prevent recurrence.
1. ISO 9000 does not automatically leas to total Quality Management i.e Continuous
Improvement.
2. ISO 9000 does not provide any guideline for defining an appropriate process.
3. ISO 9000 certification process is not foolproof & thus variations in the certification
norms may exist.
Key processes Areas (KPAs) are defined for each of the maturity levels from level 2 to level 5.
Within each of the KPAs , a number of goals & activities are defined.
Within each of the KPAs the activities are grouped into 5 common features.
a) Commitment to perform
b) Ability to perform
c) Activities Performed
d) Measurement & Analysis
e) Verifying Documents
Level 1 : Initial -
Processes are ad-hoc and success depends on individual heroics.
As a result, organizations at level 1 are unlikely to be able to accurately predict schedules ,
budgets , or quality.
Level 2 : Repeatable –
At level 2, basic management planning & tracking processes are established at the project
level.
Process discipline is starting which enables the organization to repeat successes.
Level 3 : Defined –
Software process are defined at the organization level. Each project starts with the
organizations processes and tailors them for their specific needs.
The software processes are integrated with the management processes.
Level 4 – Managed –
When an organization reaches level 4 , the processes have been well established and
measured.
Metrices that have been gathered since level1 are analyzed to form the basis for setting of
quantitative quality goals.
Level 5 – Optimized – Level 5 is the top level of Maturity and these organizations are
focused on continuous improvement.
LEVEL 2 REPATABLE LEVEL –
Goals are –
• Software estimates are documented for use in planning and tracking the software
project.
• Software project activities and commitments are planned & documented.
• Affected groups and individuals agree to their commitments related to the software
projects.
Goals are –
• Actual results & performances are tracked against the software plans.
• Corrective actions are taken & managed to closure when actual results & performance
deviate significantly from the software plans.
• Changes to software commitments are agreed to by affected groups & individuals.
Goals are :
Purpose is to monitor the software processes used on the project Goals are –
Purpose is to establish the infrastructure for continuously improving the software process across the
organization.
Training Program –
• Purpose is to provide a formal means for the software groups to activity participate
with other stakeholders departments,
Peer reviews –
Purpose is to plan & perform effective peer reviews to identify and remove defects as
early as possible in the products life cycle.
It Involves defining Software Quality Goals for the products and processes defining plans to
achieve the goals and monitoring the programs.
Purpose of process Change Management is the continuous improvement of the organization into
three groups-
a) Management Process
b) Organizational Processes
c) Software Engineering Processes