2. CONTENTS
DESIGN CONCEPTS
OO CONCEPTS
PDL
VERIFICATION METRICS &THEIR SCOPE
QUALITIES OF A GOOD SOFTWARE METRICS
CLASSIFICATION OF METRICS
COST ESTIMATION MODEL(COCOMO)
QUALITY ATTRIBUTES
SQA
QUALITY STANDARDS-ISO9000 AND CMM
3. DESIGN CONCEPTS
• Design activities-Iterating series of steps require to design a software.
a)HLD and b)Detailed design
• Design methodologies – these are the various approaches used for
software design .a)Function oriented b)OO approach
• Cohesion and Coupling
• Design techniques-used to perform high level design of a software
• Design verification
• Metrics- quantifiable measurements used to evaluate various aspects
of software development, including performance, productivity, and
quality.
4. OBJECT ORIENTED CONCEPTS
Objects - All entities involved in the solution design are known as objects. For
example, person, banks, company and customers are treated as objects.
Classes - A class is a generalized description of an object. Class defines all the
attributes, which an object can have and methods, which defines the functionality of
the object.
Encapsulation - In OOD, the attributes (data variables) and methods (operation on the
data) are bundled together is called encapsulation. Encapsulation not only bundles
important information of an object together, but also restricts access of the data and
methods from the outside world. This is called information hiding.
Inheritance - OOD allows similar classes to stack up in hierarchical manner where the
lower or sub-classes can import, implement and re-use allowed variables and methods
from their immediate super classes. This property of OOD is known as inheritance.
Polymorphism - OOD languages provide a mechanism where methods performing
similar tasks but vary in arguments, can be assigned same name. This is called
polymorphism, which allows a single interface performing tasks for different types.
5. VERIFICATION
The output of software design process is-
design documentation,
pseudo codes,
detailed logic diagrams,
process diagrams,
and detailed description of all functional or non-functional
requirements.
It is necessary to verify the output before proceeding to the next phase.
By structured verification approach, reviewers can detect defects that
might be caused by overlooking some conditions.
A good design review is important for good software design, accuracy
and quality.
6. Scope of Software Metrics
In software design, metrics scope encompasses quantifiable measures used to evaluate and improve
software characteristics, covering areas like performance, productivity, and quality, helping to make
data-driven decisions and manage projects effectively.
Software measurement is a diverse collection of these activities that range from models predicting
software project costs at a specific stage to measures program structure.
Software metrics contains many activities which include the following −
Cost and effort estimation
Productivity measures and model
Data collection
Quantity models and measures
Reliability models
Performance and evaluation models
Structural and complexity metrics
Capability – maturity assessment
Management by metrics
Evaluation of methods and tools
7. The basic constructs of PDL
The basic constructs of PDL are similar to those of a structured language.The following are the
conditional operators and loops used in PDL.
1. Sequence Construct : It is the simplest; whereby statements are executed in the order
they’re found in procedure . Sequence Construct
2. If construct : The if construct is used to control the flow of execution down one of two or
more paths, depending on the result of given condition . if-then-else construct
3. Selection Constructs : The selection construct are used when the flow of execution may
flow down two or more paths.When there are many conditions and the values are discrete,
selection constructs are used.There are two or more conditions in the selection constructs. Each
condition statement is an entry point, and execution will continue from that point unless a break
statement is used.The break statement causes the program to continue from the end of the
selection construct. Only discrete values may be used for the conditions . Selection Construct
4. Repetition Constructs : The repetition construct are used when a block of code is
required to be executes continually until a condition is met.This type of loop is used to execute
the block of code and the condition should be true.Repetition construct
A variety of data structure can be defined and used in PDL such as lists, tables, scalar and
integers.
9. Types of Software Metrics:
Product Metrics: These metrics focus on the characteristics of the software product
itself, such as code complexity, defect density, and code coverage.
Process Metrics: These metrics focus on the software development process, such as
effort variance, schedule variance, and defect injection rate.
Project Metrics: These metrics focus on the project itself, such as project scope, budget,
and schedule.
Examples of Software Metrics:
Lines of Code (LOC): A measure of the size of the code.
Defect Density: The number of defects per unit of code.
Code Coverage: The percentage of code that is executed during testing.
Development Velocity: The rate at which a team delivers working software.
Customer Satisfaction: A measure of how satisfied users are with the software.
Mean Time To Detect an Issue (MTTD): The average time it takes to find a defect.
System Availability: The percentage of time a system is operational.
11. Quality of a good software metrics
1. Objective and Measurable: Metrics should provide quantifiable data, allowing
for objective assessment of software quality rather than relying on subjective
opinions.
2. Relevant to Quality Attributes: Metrics should focus on aspects that directly
impact software quality, such as reliability, maintainability, usability,
performance, and security.
3. Actionable: Metrics should provide insights that can be used to identify
problems, track progress, and make improvements to the software or the
development process.
4. Consistent: Metrics should be consistently measured and interpreted to ensure
that trends and patterns can be reliably identified.
5. Applicable: Metrics should be applicable throughout the software development
lifecycle, from initial design to ongoing maintenance.
6. Economical: The effort required to collect and analyze metrics should be
reasonable and not overly burdensome.
7. Repeatable: When measured repeatedly, the metric values should be the same
and consistent.
12. COCOMO
(Constructive Cost Estimation Model) Boehm proposed COCOMO
in 1981.
COCOMO is one of software estimation models in the world to
predicts the efforts and schedule of a software product based on the
size of the software .The necessary steps in this model are:
1. Get an initial estimate of the development effort from evaluation of
thousands of delivered lines of source code (KLOC).
2. Determine a set of 15 multiplying factors from various attributes
of the project.
3. Calculate the effort estimate by multiplying the initial estimate
with all the multiplying factors i.e., multiply the values in step1
and step2.
13. COCOMO
To determine the initial effort Ei in person-months the equation
used is of the type is shown below
Ei=a*(KDLOC)b
The value of the constant a and b are depends on the project
type.
In COCOMO, projects are categorized into three types:
1. Organic
2. Semidetached
3. Embedded
15. COCOMO :Example
Suppose a project was estimated to be
400 KLOC. Calculate the effort and
development time for each of the three
model i.e., organic, semi-detached &
embedded.
Solution: The basic COCOMO equation
takes the form:
Effort=a1*(KLOC)a2
PM
Tdev=b1*(efforts)b2
months
Estimated Size of project= 400 KLOC
(i)Organic Mode
E = 2.4 * (400)1.05 = 1295.31 PM
D = 2.5 * (1295.31)0.38=38.07 M
(ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 M
(iii) Embedded Mode
E = 3.6 * (400)1.20 = 4772.81 PM
D = 2.5 * (4772.8)0.32 = 38 M
17. PROCESS DESIGN LANGUAGE(PDL)
It is a kind of programming process in which the design is
communicated precisely according to the desired of the
designer.
It is used to specify the design of system and to extend it to
logic design.
Process Design Languages(PDL) is used to express the design
in a language that is as precise and unambiguous as possible
without having too much detail and that can be easily converted
into an implementation.
It is the outer syntax of a structured programming language
and also it has a vocabulary of a natural language.
18. PDL EXAMPLE
Consider the problem of reading the record from the file. If file reading is not completed and there
is no error in the record then print the information of the record otherwise print that there is an
error in reading of the record.This process will continue till the whole file is completed:
Process (F_Procedure)
Read file
while not end-of-file
if record ok then
print record
else
print error
else if
read file
end while
End
To implements will have to be converted into programming language statements.
19. PROCESS DESIGN LANGUAGE
Advantages of PDL :
It can be embedded with
source code, therefore easy
to maintain.
It enables declaration of
data as well as procedure.
It is the cheapest and most
effective way to change
program architecture,
Disadvantages of PDL :
It is unable to express the
functionality in an
understandable way.
Only notation is
understandable to people
with PDL.
20. software quality
software quality refers to how well a software product conforms to its
requirements and meets the needs of its users.
It involves both the software product itself as well as the processes used to
develop it.
Quality refers to characteristics like reliability, usability, performance, and
security.
From a process perspective, it refers to using disciplined methods and best
practices that are likely to result in a higher quality product.
Software quality refers to the degree to which software conforms to its
requirements and meets the needs of its users. It is formally defined as “the
capability of a software product to satisfy stated and implied needs when
used under specified conditions.”
21. Quality attributes
Portability: A software is claimed to be transportable
Usability: A software has smart usability if completely different classes of
users (i.e. knowledgeable and novice users)
Reusability: A software has smart reusability to develop new merchandise.
Correctness: Software is correct if completely different needs as laid out in
the SRS document are properly enforced.
Maintainability: A software is repairable, if errors may be simply
corrected as and once they show up, new functions may be added and
functionalities of the merchandise may be simply changed.
Reliability: Software is more reliable if it has fewer failures. Designers can
improve reliability by ensuring the software is easy to implement and
change, by testing it thoroughly, and also by ensuring that if failures occur,
the system can handle them or can recover easily.
Efficiency. The more efficient software is, the less it uses of CPU-time,
memory, disk space, network bandwidth, and other resources.
22. McCalls Factor Model(Software quality
model)
The classic model of software quality factors, suggested by McCall, consists of 11
factors (McCall et al., 1977).
Similarly, models consisting of 12 to 15 factors were suggested by Deutsch and
Willis (1988) and by Evans and Marciniak (1987).
The McCall factor model provides a practical, up-to-date method for classifying
software requirements (Pressman, 2000).
This model classifies all software requirements into 11 software quality factors.
The 11 factors are grouped into three categories product operation, product
revision, and product transition factors.
1. Product operation factors − Correctness, Reliability, Efficiency, Integrity,
Usability.
2. Product revision factors − Maintainability, Flexibility,Testability.
3. Product transition factors − Portability, Reusability, Interoperability.
23. SQA Standards
The mission of the International Standard Organization is to market the
development of standardization and its related activities to facilitate the
international exchange of products and services.
It also helps to develop cooperation within the different activities like spheres
of intellectual, scientific, technological, and economic activity.
1.Software quality assurance management standards, including
certification and assessment methodologies (quality management standards)
Example − ISO 9000-3 and the Capability Maturity Model (CMM)
2.Software project development process standards (project process
standards)
ISO/IEC 12207 IEEE Std 1012-1998
24. Quality assurance
S.N
o
Quality Management Standards Software project development
process standards (project process
standards)
1 -These focus on the organizations SQA
system, infrastructure and requirements,
while leaving the choice of methods and
tools to the organization.With quality
management standards, organizations can
steadily assure that their software products
achieve an acceptable level of quality.
These focus on the methodologies for
implementing the software development
and maintenance projects.These standards
include the following −
The steps to be taken
Design documentation requirements
Contents of design documents
Design reviews and review issues
Software testing to be performed
Testing topics
2 Example − ISO 9000-3 and the
Capability Maturity Model (CMM) ISO/IEC 12207 IEEEStd 1012-1998
25. Capability Maturity Model (CMM)
It is a framework developed by the Software Engineering Institute (SEI) to guide
organizations in improving their software development processes and achieving higher levels
of maturity and predictability.
The CMM aims to help organizations systematically improve their software development
processes, leading to better quality, reduced costs, and more predictable project outcomes.
The CMM defines five levels of process maturity, each representing a different stage of
process improvement :
1. Initial: Processes are ad hoc and chaotic, with little or no formal structure.
2. Repeatable: Basic project management processes are in place, allowing for consistent
execution of similar projects.
3. Defined: Processes are standardized and documented, with a focus on engineering
practices.
4. Managed: Processes are measured and controlled, with a focus on product and process
quality.
5. Optimizing: Processes are continuously improved and optimized, with a focus on
innovation and best practices.