SlideShare a Scribd company logo
1 of 79
Download to read offline
Curso: Aseguramiento de la
Calidad del Software:
Parte II- Métricas del Software y Modelos de
Calidad
Prof. Renato R. Gonzalez Disla
Mayo del 2017
Actualizado: Mayo 2019
Measurements in Science and
Engineering
•we can not control or improve
what we can not measure
Parte II- Métricas del Software y Modelos de Calidad 2
Measurements in Science and
Engineering
• A discipline to pass from art to science must be
abridged by quantitative methods.
• It is necessary to know about the "essence" of the
objects under study, in order to quantify and
measure such "essence."
• Physic became a science with the notions of matter
and measurement of length, mass and time;
Thermodynamic with the measure of temperature
and entropy.
Parte II- Métricas del Software y Modelos de Calidad 3
Measurements in Science and
Engineering
• From mathematical perspectives metric is a
function that takes two arguments from certain
domain or space whose returned value represents a
difference between the two arguments.
• Software complexity measurements, called
"metrics", are functions which take one argument
whose returned value represents a measurement of
certain aspects of the single argument (Ramamurthy and
Melton, 1988).
• These measures are ordinal quantities of software
complexity.
Parte II- Métricas del Software y Modelos de Calidad 4
Software Complexity Measurements: How
is the skills, How big, how many, and how
good
• Cognitive Metrics:
• How is the skills and knowledge of people
involved?
• Software Process Metric:
• How Many resources and time we
spend?.
• Technical Product
Complexity metrics :
• How big is the software?.
• Software Quality Metrics:
• How good is the final product?.
People
Development
Process
Product
Structure
Product
Operation
Parte II- Métricas del Software y Modelos de Calidad 5
Software Measurements
• “How big is a program?".
• We must define what "big" means, at least to compare a
program to another to find out the difference of effort
invested.
• Metrics are mechanisms to quantify factors and
characteristics (static or dynamic) of objects and
phenomenon in order to apply it in problems solving
estimating the magnitude of effort required.
• Types of Metrics:
• Objectives
• Subjectives
• Directs
• Derived
Parte II- Métricas del Software y Modelos de Calidad 6
Software Measurements: Complexity
Factors
• We can identify internal and external factors as
sources of software complexity.
• Its correlation and interdependence determines the
level of complexity in a software product.
• Although this fact, most metrics are oriented to
measure only one software complexity factor.
Parte II- Métricas del Software y Modelos de Calidad 7
Software Measurements: Internal
Complexity Factors
Parte II- Métricas del Software y Modelos de Calidad 8
Software Measurements: External
Complexity Factors
• The Problem itself
• Methods and tools used in the development
of solutions;
• The level of people expertise involved in the
development process;
• Network and software environment;
• Project organization and management.
• Quality and economy demands
Parte II- Métricas del Software y Modelos de Calidad 9
Software Measurements: Domains,
Dimensions, and Forces of Complexity
Parte II- Métricas del Software y Modelos de Calidad 10
Software Measurements: Software
complexity Levels
Higher technical complexity
- Embedded, real-time, distributed, fault-tolerant
- Custom, unprecedented, architecture reengineering
- High performance
Lower technical complexity
- Mostly 4GL, or component-based
- Application reengineering
- Interactive performance
Higher
management
complexity
- Large scale
- Contractual
- Many stake holders
- “Projects”
Lower
management
complexity
- Small scale
- Informal
- Single stakeholder
- “Products”
Defense
MIS System
Defense
Weapon SystemTelecom
Switch
CASE Tool
National Air Traffic
Control System
Enterprise IS
(Family of IS
Applications)
Commercial
Compiler
Business
Spreadsheet
IS Application
Distributed Objects
(Order Entry)
Small Scientific
Simulation
Large-Scale
Organization/Entity
Simulation
An average software project:
- 5-10 people
- 10-15 month duration
- 3-5 external interfaces
- Some unknowns & risks
Embedded
Automotive
Software
IS Application
GUI/RDB
(Order Entry)
Walker Royce
Parte II- Métricas del Software y Modelos de Calidad 11
Software Measurements: Forces in
Software
Technology churn
Our enemy is complexity, and it’s our goal to kill it.
Jan Baan
Performance Throughput
Capacity
Availability
Fail safe
Fault tolerance
Functionality
Cost Compatibility
Resilience
The challenge over the next 20 years will not be speed or cost or performance;
it will be a question of complexity.
Bill Raduchel, Chief Strategy Officer, Sun Microsystems
Parte II- Métricas del Software y Modelos de Calidad 12
Software Measurements: Software
Complexity Definition
• What is Complexity?
• Complexity describes the behavior of a system
or model whose components interact in multiple ways and
follow local rules, meaning there is no reasonable higher
instruction to define the various possible interactions.
• Complexity is generally used to characterize something with
many parts where those parts interact with each other in
multiple ways, culminating in a higher order of emergence
greater than the sum of its parts.
• Johnson, Steven (2001). Emergence: The Connected Lives of Ants, Brains, Cities. New York:
Scribner. p. 19. ISBN 3411040742.
Parte II- Métricas del Software y Modelos de Calidad 13
Software Measurements: Software
Complexity Definition
• We will define Software Complexity as a measure of
the resources that must be expended in developing,
testing, debugging, maintenance, users training,
operation and correcting software products.
• The complexity is a property of the software life cycle as
internal and external factors.
• Estimating the measures of the program properties, as final
product of the development process, we might infer the
level of complexity in a software system.
Shooman, 1983
Parte II- Métricas del Software y Modelos de Calidad 14
Software Measurements:
Reasons for Software Complexity Metrics
• Projects Goals: Productivity, Quality and
Financials
• Project planning and estimation: Cost, time,
effort, and resources
• People motivation and productivity
• Process and Tools effective evaluation
• Best Practices and standards (Quality and
productivity) evaluation
• Continue Improvement objectives
• Improving Customer satisfaction and confidence
Parte II- Métricas del Software y Modelos de Calidad 15
Software Measurements:
Steps Implementing a Metrics Program
• Software Development Process.
• Establish and document the existing software
development process, as baseline process which will be
measured and incrementally improved.
• Goals.
• Identify the target improvement goals which are derived
from and supportive of the strategic business objectives.
People motivation and productivity
• Responsibility.
• Identify management responsibility for the metrics
program, and provide the organizational cultural support
and visibility.
Parte II- Métricas del Software y Modelos de Calidad 16
Software Measurements:
Steps Implementing a Metrics Program
• Initial Research.
• Validate the goals and customer expectations through
survey and assessment.
• Metrics Definition.
• Define initial basic set of metrics for measuring goal
achievement progress.
• Sell.
• Introduce and communicate the metrics program to the
organization such that high visibility and cooperation is
achieved.
• Feedback and Process Improvement.
• Identify the metrics reporting and feedback mechanisms
such that software development process improvements
actions can be determined and implemented.
Parte II- Métricas del Software y Modelos de Calidad 17
Software Measurements:
Feedback and Process Improvement Steps
• Goals
• Metrics Definition.
• Measure
• Metrics Communication
• Process Improvement
Insights
• Identify Process
Improvement Actions
• Implement Improvements
Parte II- Métricas del Software y Modelos de Calidad 18
People
Development
Process
Product
Structure
Product
Operation
Software Measurements: Life Cycle
Complexity
- Knowledge and Project Management:
Learning, Experience, Skills, Productivity
- Process Quality: Methodology, Tools,
Management, Effort, Productivity, Cost,
Schedule
- Product Quality: Functionality,
Reliability, Availability, Performance,
Security, Portability, Configuration
- Technical Complexity: Design,
Code, syntax, Algorithm, Data,
Modularity, Objects and
Components
Parte II- Métricas del Software y Modelos de Calidad 19
Software Measurements: Life Cycle
Complexity
• Quality, time,
cost and scope
are important
components in
software projects
Parte II- Métricas del Software y Modelos de Calidad 20
Software Measurements:
How big, how many, and how good
• Technical Product
Complexity:
• How big is the software.
• Software Process
Metric:
• How Many resources we
need.
• Software Quality
Metrics:
• How good is the final
product.
Parte II- Métricas del Software y Modelos de Calidad 21
Software Measurements:
How big, how many, and how good
• Technical Product Complexity
Measurements are oriented to determine and
quantify the software size in static state -product
structure and properties- (How big).
• Are characterized as directs metrics because are used
to obtains derived metrics, such as productivity, effort,
fault, etc.
Parte II- Métricas del Software y Modelos de Calidad 22
Software Measurements:
How big, how many, and how good
Parte II- Métricas del Software y Modelos de Calidad 23
Software Measurements:
How big, how many, and how good
• Type of Technical Product Complexity
Measurements:
• Code Oriented Metrics
• Control Structure Oriented Metrics
• Linguistic and Syntactical Metrics
• Specifications and Design Metrics
• Functional Size Measurement (FSM)
Parte II- Métricas del Software y Modelos de Calidad 24
Software Measurements:
How big, how many, and how good
• Technical Complexity Metrics categories:
• Code Oriented Metrics:
• Line of Source Code (SLOC)
• SLOC without comments (SLOC-CM)
• Execute Statements (STMS)
• Program Modules (UNITS)
• Execute Objects statements (TOKEN)
• Control Structure Oriented Metrics
• Cyclomatic Number (McCabe)
• Knots
• Decision Points
Parte II- Métricas del Software y Modelos de Calidad 25
Cyclomatic Number (McCabe)
• Cyclomatic complexity is a software metric (measurement), used to
indicate the complexity of a program. It is a quantitative measure of
the number of linearly independent paths through a program's
source code. It was developed by Thomas J. McCabe, Sr. in 1976.
• Cyclomatic complexity is computed using the control flow graph of
the program: the nodes of the graph correspond to indivisible groups
of commands of a program, and a directed edge connects two nodes
if the second command might be executed immediately after the first
command. Cyclomatic complexity may also be applied to individual
functions, modules, methods or classes within a program.
• One testing strategy, called basis path testing by McCabe who first
proposed it.
Parte II- Métricas del Software y Modelos de Calidad 26
Cyclomatic Number (McCabe)
• Calculating the McCabe Number: Cyclomatic
complexity is derived from the control flow
graph of a program as follows:
• Cyclomatic complexity (CC) = E - N + 2P
• Where:
P = number of disconnected parts of the flow
graph (e.g. a calling program and a
subroutine)
E = number of edges (transfers of control)
N = number of nodes (sequential group of
statements containing only one transfer of
control)
Parte II- Métricas del Software y Modelos de Calidad 27
Cyclomatic Number (McCabe)
Parte II- Métricas del Software y Modelos de Calidad 28
Software Measurements:
How big, how many, and how good
• Technical Complexity Metrics
categories (cont…):
• Linguistic and Syntactical Metrics
• Halstead Science
• Chunks
• Design Metrics
• Modules
• Objects
• Data Structure
• Use Case Metrics
Parte II- Métricas del Software y Modelos de Calidad 29
Functional or Semantic Domain
Software is compound coding
in a programing language
that represent functional
modules or objects classes
that have and hierarchy
structure and
interrelationship. They
represent the business and
process rules contains in
specification and design.
Metrica Chunk-Linguistico Cognitivo
Parte II- Métricas del Software y Modelos
de Calidad
30
Metrica Chunk-Linguistico Cognitivo
Syntactical Domain
Program syntax is the
logical structure of
algorithm defined by
structured programming
(sequence, decision, and
iteration) following its
purpose of control
complexity through
theory and discipline
Parte II- Métricas del Software y Modelos de
Calidad
31
Metrica Chunk-Linguistico Cognitivo
Syntactical Domain
In fact, we define the
syntax as the set of
rules or formulas
which defines the set
of sentences.
Parte II- Métricas del Software y Modelos
de Calidad
32
Metrica Chunk-Linguistico Cognitivo
• Chunks or Program Block
Parte II- Métricas del Software y Modelos de Calidad 33
Metrica Chunk-Linguistico Cognitivo
• Valor CHL (i) = (nivel logico BCS)*(Peso BCS)*(cant operandos + cant
operadores) i = 1, 2, 3…n-chunks
• Total Valor CHL = Sum (Valor CHL(i))
• Para peso de BCS Ver cuadro del Dr. Wang
• Patra calculo ver template excelParte II- Métricas del Software y Modelos de Calidad 34
Use Case Metrics - UCP
• Use Case Points (UCP) is a software estimation technique used to
forecast the software size for software development projects.
• UCP is used when the Unified Modeling Language (UML) and
Rational Unified Process (RUP) methodologies are being used for
the software design and development.
• The concept of UCP is based on the requirements for the system
being written using use cases, which is part of the UML set of
modeling techniques.
• The software size (UCP) is calculated based on elements of the
system use cases with factoring to account for technical and
environmental considerations.
• The UCP for a project can then be used to calculate the estimated
effort for a project.
Parte II- Métricas del Software y Modelos de Calidad 35
Use Case Metrics - UCP
• The method for determining the size estimate to
develop a system is based on a calculation with the
following elements:
• Unadjusted Use Case Weight (UUCW) – the point size of
the software that accounts for the number and complexity
of use cases.
• Unadjusted Actor Weight (UAW) – the point size of the
software that accounts for the number and complexity of
actors.
• Technical Complexity Factor (TCF) – factor that is used to
adjust the size based on technical considerations.
• Environmental Complexity Factor (ECF) – factor that is used
to adjust the size based on environmental considerations.
Parte II- Métricas del Software y Modelos de Calidad 36
Use Case Metrics - UCP
• Calculating The Use Case Points
• The formula to calculate use case points is
described below in terms of the variables from
above: TCF, EF, UUCP, and AW.
• Use Case Points = (UUCP + AW) * TCF * EF.
• Determining Effort From Use Case Points:
• “complex projects” have a higher conversion factor (28 hours
per UCP if total Environmental Factor <15) and “simpler
projects” (20 hours per UCP if >= 15).
Parte II- Métricas del Software y Modelos de Calidad 37
Use Case Metrics - UCP
• Ver Template Excel para calculo del UCP
Parte II- Métricas del Software y Modelos de Calidad 38
Software Measurements:
How big, how many, and how good
• Functional Size Measurement (FSM):
• Function Points Metric (FP) - Allan
Albrecht, IBM 1979
• COSMIC (ISO/IEC 19761:2011)
• IFPUG (ISO/IEC 20926:2009)
• Commercial Tools
• COCOMO II
• KnowledgePlan
• SEER
• SLIM
• Software Risk Master
Parte II- Métricas del Software y Modelos de Calidad 39
Software Measurements:
How big, how many, and how good
• Software Process Metrics
characterizes the maturity of the
process which the software
product is developed.
• Can be measured during the
product development for
providing real time feedback to
software project management
• Are often concerned with the
efficient application of people and
resources to software product
development (how many).
Parte II- Métricas del Software y Modelos de Calidad 40
Software Measurements:
How big, how many, and how good
• Software Process Metrics:
• Schedule (Time)
• Cost
• Productivity and Effort
Parte II- Métricas del Software y Modelos de Calidad 41
Software Measurements:
How big, how many, and how good
• Software Process Metrics Schedule:
• Primary data used for project management and as process
quality indicators.
• This metric is calculated as the difference between the planned
and actual work time to achieve the milestone of first customer
delivery divided by the planned work time.
• The metrics is given as a percentage: negative number indicates
a schedule slip and positive indicates the actual date was
achieved earlier than plan:
• (Tp – Ta)/Tp
Parte II- Métricas del Software y Modelos de Calidad 42
Software Measurements:
How big, how many, and how good
• Software Process Metrics Effort:
• Primary data used for project management and for productivity
indicators.
• It can be counted as staff-days (staff-hours) or project
components (software volume) delivery per time units.
• It is the intellectual force needed and applied through the time
to achieve a specific task or technical measurement unit.
• KLOC/days-man,
• Chunks/days-man,
• FP/days-man, Information Content(H)/days-man, Objects
Designed/days-man.
Parte II- Métricas del Software y Modelos de Calidad 43
Software Measurements:
How big, how many, and how good
• Software Process Metrics Cost:
• Primary data used for project management and financial
indicators.
• It counted as the monetary value of the staff-days (staff-
hours) of effort in the different project phases:
• US$ KLOC/days-man X 10 days
• US$ FP/days-man X 25 days
• US$ Objects Designed/ days-man X 15
• US$ Modules Tested/days-man X 8
Parte II- Métricas del Software y Modelos de Calidad 44
Software Measurements:
How big, how many, and how good
• Software Process Metrics Productivity:
• Productivity is concerned with the efficiency of the resources
consumed in producing a given application in a timely
manner, as such, included measuring system quality.
• The main question in productivity is:
• what is the time and computer resources to be invested
in the software process for a quantity of software
volume.
• It is mainly influenced by the capacity of people to do a
particular job and the technical and organization
environment in the different phases of the project.
Parte II- Métricas del Software y Modelos de Calidad 45
Software Measurements:
How big, how many, and how good
• Software Process Metrics Productivity:
• Components (project or phases):
• PE = Total Effort Cost
• PM = Total Cost Time Machine
• PA = others resources
• PT = PE + PM + PA
• PS = Total productivity expected based in standards or best
practices
• P = (PS – PT)/PS
Parte II- Métricas del Software y Modelos de Calidad 46
Software Measurements:
How big, how many, and how good
• Software Process Metrics Productivity:
• Models
• Constructive Cost Model (COCOMO), developed by Barry Bohm
in 1981.
• Putnam Estimative Model, developed in 1978.
• Function Point Model, developed by Allan Albrecht in 1979.
• Others derived metrics
Parte II- Métricas del Software y Modelos de Calidad 47
Software Measurements:
How big, how many, and how good
• Software Process Metrics Productivity:
• Derived Models
• Constructive Cost Model (COCOMO), developed by Barry Bohm
in 1981.
• Putnam Estimative Model, developed in 1978.
• Function Point Model, developed by Allan Albrecht in 1979.
• Others derived metrics
Parte II- Métricas del Software y Modelos de Calidad 48
Software Measurements:
How big, how many, and how good
• Software Quality Metrics characterizes the
quality level of the software product or service itself
(how good).
• Are defined during the computational and operational
life of the software in the network environment.
• Are oriented to measure the function, faults, errors,
time, facility, etc.
Parte II- Métricas del Software y Modelos de Calidad 49
Software Measurements:
How big, how many, and how good
• What is Software Quality?
• Quality is judged indirectly by focusing on the
effectiveness and usefulness of the delivered system in
performing the task for which it was designed (Scudder and
Kucie, 1991).
• In other words, how the system is actually constructed and
how it performs its functions as opposed to how it should
have been built and how it should perform (Sneed and Merey,
1985).
Parte II- Métricas del Software y Modelos de Calidad 50
Software Quality Attributes
• Quality attributes are the overall factors that
affect run-time behavior, system design, and
user experience.
• They represent areas of concern that have the
potential for application wide impact across
domains, layers and tiers.
Parte II- Métricas del Software y Modelos de Calidad 51
Software Quality Attributes
• When designing applications to meet any of the
quality attributes requirements, it is necessary to
consider the potential impact on other
requirements.
• You must analyze the tradeoffs between multiple
quality attributes.
• The importance or priority of each quality attribute
differs from system to system;
Parte II- Métricas del Software y Modelos de Calidad 52
Software Quality Attributes
• Software Quality Metrics Models:
• McCall Model
• Boehm Model
• ISO 25010
• Sneed Model
Parte II- Métricas del Software y Modelos de Calidad 53
Software Quality Models and Attributes (Sneed
Model)
Domains Objectives Quality Factors
Functional or Semantic Scope and Completeness Functional
Informational
Relational
Managerial and Efficiency
(Process)
Time
Costs
Productivity (effort)
Specifications Completeness
Consistency
Feasibility
Syntactical Technical or Non-Structural Maintainability
Reusability
Scalability
Portability
Interoperability
Testability
Computational Operational or Structural Usability
Availability
Reliability
Performance
Integrity
Security
Parte II- Métricas del Software y Modelos de Calidad 54
Software Quality Attributes:
Functional
• Scope and Completeness: Proportion of
possible entities, artifacts and his
relationship designed, specified and
implemented in the software systems:
• Functional: process automated by the system
• Informational: proportion of data entities and
object classes, managed, accessed or stored by the
software
• Relational: relevant relationship between entities
and object classes.
Parte II- Métricas del Software y Modelos de Calidad 55
Software Quality Attributes:
Functional
• Managerial and Efficiency: Needed to
control the software process development
and the effectiveness and efficient of
resources.
• Time: is given by the complexity of the
problem, the technical resources and quality
of human resources
• Costs: are related to the amount of resources
invested and the times of use of resources in
the project implementation.
• Productivity (effort): is a function of cost, time,
effectiveness and efficiency achieved.
Parte II- Métricas del Software y Modelos de Calidad 56
Software Quality Attributes:
Functional
• Specifications: Relative to the requirements of
business, users, system and operational
specified.
• Completeness: is defined in the context of the
specification as the proportion of entities, artifacts,
processes and planned relevant relationships, which
have been fully specified.
• Consistence: the lack of contradiction between
different parts and relationships defined in the
specifications.
• Feasibility: is the probability that the specified
software can be implemented within the constraints
of time and costs established.
Parte II- Métricas del Software y Modelos de Calidad 57
Software Quality Attributes: Non-
Structural
• Technical factors: Technical factors are used to
measure the adequacy of the design to the
implementation.
• Usability: The application interfaces must be
designed with the user and consumer in mind so
that they are intuitive to use, can be localized and
globalized, provide access for disabled users, and
provide a good overall user experience.
Parte II- Métricas del Software y Modelos de Calidad 58
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Maintainability: Maintainability is the ability of the
system to undergo changes with a degree of ease.
• These changes could impact components, services, features,
and interfaces when adding or changing the application’s
functionality in order to fix errors, or to meet new business
requirements.
• Maintainability can also affect the time it takes to restore the
system to its operational status following a failure or removal
from operation for an upgrade.
Parte II- Métricas del Software y Modelos de Calidad 59
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Maintainability (cont.):
• Improving system maintainability can increase availability and
reduce the effects of run-time defects.
• An application’s maintainability is often a function of its overall
quality attributes but there a number of key issues that can
directly affect.
Parte II- Métricas del Software y Modelos de Calidad 60
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Reusability: Reusability is the probability that a
component will be used in other components or
scenarios to add new functionality with little or no
change.
• Reusability minimizes the duplication of components
and the implementation time.
• Identifying the common attributes between various
components is the first step in building small reusable
components for use in a larger system.
Parte II- Métricas del Software y Modelos de Calidad 61
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Scalability: Scalability is ability of a system to
either handle increases in load without impact on
the performance of the system, or the ability to be
readily enlarged.
• There are two methods for improving scalability:
• scaling vertically (scale up), and scaling horizontally
(scale out).
• To scale vertically, you add more resources such as CPU,
memory, and disk to a single system.
• To scale horizontally, you add more machines to a farm
that runs the application and shares the load.
Parte II- Métricas del Software y Modelos de Calidad 62
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Portability: It is the measure of amount of
effort required to transfer software from one
operating environment to another in relation to
the development effort in the original
environment.
Parte II- Métricas del Software y Modelos de Calidad 63
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Interoperability: Interoperability is the ability of a
system or different systems to operate successfully
by communicating and exchanging information
with other external systems written and run by
external parties.
• An interoperable system makes it easier to exchange
and reuse information internally as well as externally.
• Communication protocols, interfaces, and data formats
are the key considerations for interoperability (XML,
SOAP, ETC).
• Standardization is also an important aspect to be
considered when designing an interoperable system
Parte II- Métricas del Software y Modelos de Calidad 64
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Testability: Testability is a measure of how well
system or components allow you to create test
criteria and execute tests to determine if the
criteria are met. Testability allows faults in a
system to be isolated in a timely and effective
manner.
• Supportability: is the ability of the system to
provide information helpful for identifying and
resolving issues when it fails to work correctly.
Parte II- Métricas del Software y Modelos de Calidad 65
Software Quality Attributes: Non-
Structural
• Technical factors (Cont.):
• Manageability: Manageability defines how easy it
is for system administrators to manage the
application, usually through sufficient and useful
instrumentation exposed for use in monitoring
systems and for debugging and performance
tuning.
• Design your application to be easy to manage, by
exposing sufficient and useful instrumentation for
use in monitoring systems and for debugging and
performance tuning.
Parte II- Métricas del Software y Modelos de Calidad 66
Software Quality Attributes:
Structural
• Operational or Structural factors: essentials
to measure the efficiency and quality of the
implementation of software
• Availability: defines the proportion of time that
the system is functional and working.
• It can be measured as a percentage of the total system
downtime over a predefined period.
• Availability will be affected by system errors,
infrastructure problems, malicious attacks, and system
load.
Parte II- Métricas del Software y Modelos de Calidad 67
Software Quality Attributes:
Structural
• Operational factors (cont.):
• Performance: Performance is an indication of the
responsiveness of a system to execute specific
actions in a given time interval. It can be measured
in terms of latency or throughput.
Parte II- Métricas del Software y Modelos de Calidad 68
Software Quality Attributes:
Structural
• Operational factors (cont.):
• Performance:
• Latency is the time taken to respond to any event.
Throughput is the number of events that take place in a
given amount of time.
• An application’s performance can directly affect its
scalability, and lack of scalability can affect
performance.
• Improving an application’s performance often improves
its scalability by reducing the likelihood of contention
for shared resources.
• Factors affecting system performance include the
demand for a specific action and the system’s response
to the demand.
Parte II- Métricas del Software y Modelos de Calidad 69
Software Quality Attributes:
Structural
• Operational factors (cont.):
• Security: is the capability of a system to reduce the
chance of malicious or accidental actions outside
of the designed usage affecting the system, and
prevent disclosure or loss of information.
• Improving security can also increase the reliability of the
system by reducing the chances of an attack succeeding
and impairing system operation.
• Securing a system should protect assets and prevent
unauthorized access to or modification of information.
• The factors affecting system security are confidentiality,
integrity, and availability.
• The features used to secure systems are authentication,
encryption, auditing, and logging.
Parte II- Métricas del Software y Modelos de Calidad 70
Software Quality Attributes:
Structural
• Operational factors (cont.):
• Integrity: measure of the data and resources
accessibility and the fault recovery without human
intervention.
Parte II- Métricas del Software y Modelos de Calidad 71
Software Quality Attributes:
Structural
• Operational factors (cont.):
• Reliability: Reliability is the ability of a system to
continue operating in the expected way over time.
Reliability is measured as the probability that a
system will not fail and that it will perform its
intended function for a specified time interval.
Parte II- Métricas del Software y Modelos de Calidad 72
Software Quality Attributes:
Structural
• Software Quality Metrics Reliability
• In Software reliability the quantity of code developed
(volume), the number of instructions added or modified is
directly related with the quantity of faults or coding errors
introduced in the software (Musa, 1989).
Parte II- Métricas del Software y Modelos de Calidad 73
Software Quality Attributes:
Structural
• Software Quality Metrics Reliability
• A fault is any situation in software operation that causes an
incorrect result or malfunction for a valid input or event.
• Error or Bug is a software defect that produce a fault.
• Program fault is the overall result of total software
complexity factors reveled in operation time.
• Faults are reveling as a program failure occurs during the
execution due to certain data event not predicted in
design or coding (bug).
Parte II- Métricas del Software y Modelos de Calidad 74
Software Quality Attributes:
Structural
• Software Quality Metrics Reliability:
• Taxonomy of Faults or Failures
 Specification
 Functional
 Structural
 Data Errors
 Coding
 Implementation
 Integration
 Systems and Architectures
 Testing
Parte II- Métricas del Software y Modelos de Calidad 75
Software Quality Attributes:
Structural
• Software Quality Metrics Reliability:
• Measurements
• Mean numbers of failures experienced as a function of time while
software is executed: FM = Fi / T
• Mean Time Between Failure:
MBTF= MTF + MTR
MTF is mean time of failure
MTR is mean time of repair
Availability: TAvail = MTF/MBTF
Parte II- Métricas del Software y Modelos de Calidad 76
Software Quality Attributes:
Structural
• Software Quality Metrics Reliability Models:
• Poisson Distribution Model
• Markov Stochastic Model
Parte II- Métricas del Software y Modelos de Calidad 77
Bibliography
• Philippe Kruchten, The Rational Unified Process - An Introduction, Addison-
Wesley, 1999.
• Renato R. Gonzalez; “A unified metric of software complexity: Measuring
productivity, quality, and value”; The Journal of Systems and Software, Vol.
29, Number 1, April 1995.
• M. L. Shooman, Software Engineering: Design, Reliability and Management,
New York, McGraw Hill, 1983, pp. 150-151.
• B. Curtis, Foundations for a Measurement Discipline, Quality Time, IEEE
Software, November 1987.
• J. S. Davis and R. J. LeBlanc, A Study of the Applicability of Complexity
Measures, IEEE Trans. Software Engineering SE-14(9):1366-1372(1988).
• Grady Booch, Object Oriented Design with Applications, The
benjamín/Cummings Publishing Company, Inc. 1991.
• Stephen Gilbert and Bill McCarty, Object Oriented Design in Java, Mitchel
Waite, 2000.
• Roger Pressman, Ingeniería del Software, Un Enfoque Práctico, McGraw Hill,
1998.
Parte II- Métricas del Software y Modelos de Calidad 78
GRACIAS POR SU
ATENCION
P&R
Parte II- Métricas del Software y Modelos de Calidad 79

More Related Content

What's hot

Software Metrics
Software MetricsSoftware Metrics
Software MetricsSwati Patel
 
A Review and Analysis on Mobile Application Development Processes using Agile...
A Review and Analysis on Mobile Application Development Processes using Agile...A Review and Analysis on Mobile Application Development Processes using Agile...
A Review and Analysis on Mobile Application Development Processes using Agile...IJORCS
 
Software Metrics for Identifying Software Size in Software Development Projects
Software Metrics for Identifying Software Size in Software Development ProjectsSoftware Metrics for Identifying Software Size in Software Development Projects
Software Metrics for Identifying Software Size in Software Development ProjectsVishvi Vidanapathirana
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software EngineeringDrishti Bhalla
 
Software Development Metrics You Can Count On
Software Development Metrics You Can Count On Software Development Metrics You Can Count On
Software Development Metrics You Can Count On Parasoft
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimationNur Islam
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metricsIndu Sharma Bhardwaj
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSijcsa
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationRadu_Negulescu
 

What's hot (17)

Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
A Review and Analysis on Mobile Application Development Processes using Agile...
A Review and Analysis on Mobile Application Development Processes using Agile...A Review and Analysis on Mobile Application Development Processes using Agile...
A Review and Analysis on Mobile Application Development Processes using Agile...
 
Software Metrics for Identifying Software Size in Software Development Projects
Software Metrics for Identifying Software Size in Software Development ProjectsSoftware Metrics for Identifying Software Size in Software Development Projects
Software Metrics for Identifying Software Size in Software Development Projects
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software Metrics - Software Engineering
Software Metrics - Software EngineeringSoftware Metrics - Software Engineering
Software Metrics - Software Engineering
 
Unit1..
Unit1..Unit1..
Unit1..
 
Software Development Metrics You Can Count On
Software Development Metrics You Can Count On Software Development Metrics You Can Count On
Software Development Metrics You Can Count On
 
Lecture9
Lecture9Lecture9
Lecture9
 
14 software technical_metrics
14 software technical_metrics14 software technical_metrics
14 software technical_metrics
 
Iv2515741577
Iv2515741577Iv2515741577
Iv2515741577
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 
Software process and project metrics
Software process and project metricsSoftware process and project metrics
Software process and project metrics
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and Estimation
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Software metrics
Software metricsSoftware metrics
Software metrics
 

Similar to Curso: Software Quality Metrics and Models Part II

Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurementGurpreet Saini
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptxrituah
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slideAdil Mehmoood
 
Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)MuskanSony
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/WAkash Maheshwari
 
Software Quality presentation.pptx
Software Quality presentation.pptxSoftware Quality presentation.pptx
Software Quality presentation.pptxChrisMunyau
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)ShudipPal
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.pptHODCOMPUTER10
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1Saqib Raza
 

Similar to Curso: Software Quality Metrics and Models Part II (20)

Software matrics and measurement
Software matrics and measurementSoftware matrics and measurement
Software matrics and measurement
 
Unit2 - Metrics.pptx
Unit2 - Metrics.pptxUnit2 - Metrics.pptx
Unit2 - Metrics.pptx
 
Software Engineering 2 lecture slide
Software Engineering 2 lecture slideSoftware Engineering 2 lecture slide
Software Engineering 2 lecture slide
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
55 sample chapter
55 sample chapter55 sample chapter
55 sample chapter
 
Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)Bca 5th sem seminar(software measurements)
Bca 5th sem seminar(software measurements)
 
Unit 1
Unit 1Unit 1
Unit 1
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
Project Matrix and Measuring S/W
Project Matrix and Measuring S/WProject Matrix and Measuring S/W
Project Matrix and Measuring S/W
 
1811 1815
1811 18151811 1815
1811 1815
 
242296
242296242296
242296
 
Software Quality presentation.pptx
Software Quality presentation.pptxSoftware Quality presentation.pptx
Software Quality presentation.pptx
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)
 
unit-1.ppt
unit-1.pptunit-1.ppt
unit-1.ppt
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.ppt
 
Sqa
SqaSqa
Sqa
 
lecture 1-5.pdf
lecture 1-5.pdflecture 1-5.pdf
lecture 1-5.pdf
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1
 

Recently uploaded

Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 

Recently uploaded (20)

Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 

Curso: Software Quality Metrics and Models Part II

  • 1. Curso: Aseguramiento de la Calidad del Software: Parte II- Métricas del Software y Modelos de Calidad Prof. Renato R. Gonzalez Disla Mayo del 2017 Actualizado: Mayo 2019
  • 2. Measurements in Science and Engineering •we can not control or improve what we can not measure Parte II- Métricas del Software y Modelos de Calidad 2
  • 3. Measurements in Science and Engineering • A discipline to pass from art to science must be abridged by quantitative methods. • It is necessary to know about the "essence" of the objects under study, in order to quantify and measure such "essence." • Physic became a science with the notions of matter and measurement of length, mass and time; Thermodynamic with the measure of temperature and entropy. Parte II- Métricas del Software y Modelos de Calidad 3
  • 4. Measurements in Science and Engineering • From mathematical perspectives metric is a function that takes two arguments from certain domain or space whose returned value represents a difference between the two arguments. • Software complexity measurements, called "metrics", are functions which take one argument whose returned value represents a measurement of certain aspects of the single argument (Ramamurthy and Melton, 1988). • These measures are ordinal quantities of software complexity. Parte II- Métricas del Software y Modelos de Calidad 4
  • 5. Software Complexity Measurements: How is the skills, How big, how many, and how good • Cognitive Metrics: • How is the skills and knowledge of people involved? • Software Process Metric: • How Many resources and time we spend?. • Technical Product Complexity metrics : • How big is the software?. • Software Quality Metrics: • How good is the final product?. People Development Process Product Structure Product Operation Parte II- Métricas del Software y Modelos de Calidad 5
  • 6. Software Measurements • “How big is a program?". • We must define what "big" means, at least to compare a program to another to find out the difference of effort invested. • Metrics are mechanisms to quantify factors and characteristics (static or dynamic) of objects and phenomenon in order to apply it in problems solving estimating the magnitude of effort required. • Types of Metrics: • Objectives • Subjectives • Directs • Derived Parte II- Métricas del Software y Modelos de Calidad 6
  • 7. Software Measurements: Complexity Factors • We can identify internal and external factors as sources of software complexity. • Its correlation and interdependence determines the level of complexity in a software product. • Although this fact, most metrics are oriented to measure only one software complexity factor. Parte II- Métricas del Software y Modelos de Calidad 7
  • 8. Software Measurements: Internal Complexity Factors Parte II- Métricas del Software y Modelos de Calidad 8
  • 9. Software Measurements: External Complexity Factors • The Problem itself • Methods and tools used in the development of solutions; • The level of people expertise involved in the development process; • Network and software environment; • Project organization and management. • Quality and economy demands Parte II- Métricas del Software y Modelos de Calidad 9
  • 10. Software Measurements: Domains, Dimensions, and Forces of Complexity Parte II- Métricas del Software y Modelos de Calidad 10
  • 11. Software Measurements: Software complexity Levels Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance Higher management complexity - Large scale - Contractual - Many stake holders - “Projects” Lower management complexity - Small scale - Informal - Single stakeholder - “Products” Defense MIS System Defense Weapon SystemTelecom Switch CASE Tool National Air Traffic Control System Enterprise IS (Family of IS Applications) Commercial Compiler Business Spreadsheet IS Application Distributed Objects (Order Entry) Small Scientific Simulation Large-Scale Organization/Entity Simulation An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks Embedded Automotive Software IS Application GUI/RDB (Order Entry) Walker Royce Parte II- Métricas del Software y Modelos de Calidad 11
  • 12. Software Measurements: Forces in Software Technology churn Our enemy is complexity, and it’s our goal to kill it. Jan Baan Performance Throughput Capacity Availability Fail safe Fault tolerance Functionality Cost Compatibility Resilience The challenge over the next 20 years will not be speed or cost or performance; it will be a question of complexity. Bill Raduchel, Chief Strategy Officer, Sun Microsystems Parte II- Métricas del Software y Modelos de Calidad 12
  • 13. Software Measurements: Software Complexity Definition • What is Complexity? • Complexity describes the behavior of a system or model whose components interact in multiple ways and follow local rules, meaning there is no reasonable higher instruction to define the various possible interactions. • Complexity is generally used to characterize something with many parts where those parts interact with each other in multiple ways, culminating in a higher order of emergence greater than the sum of its parts. • Johnson, Steven (2001). Emergence: The Connected Lives of Ants, Brains, Cities. New York: Scribner. p. 19. ISBN 3411040742. Parte II- Métricas del Software y Modelos de Calidad 13
  • 14. Software Measurements: Software Complexity Definition • We will define Software Complexity as a measure of the resources that must be expended in developing, testing, debugging, maintenance, users training, operation and correcting software products. • The complexity is a property of the software life cycle as internal and external factors. • Estimating the measures of the program properties, as final product of the development process, we might infer the level of complexity in a software system. Shooman, 1983 Parte II- Métricas del Software y Modelos de Calidad 14
  • 15. Software Measurements: Reasons for Software Complexity Metrics • Projects Goals: Productivity, Quality and Financials • Project planning and estimation: Cost, time, effort, and resources • People motivation and productivity • Process and Tools effective evaluation • Best Practices and standards (Quality and productivity) evaluation • Continue Improvement objectives • Improving Customer satisfaction and confidence Parte II- Métricas del Software y Modelos de Calidad 15
  • 16. Software Measurements: Steps Implementing a Metrics Program • Software Development Process. • Establish and document the existing software development process, as baseline process which will be measured and incrementally improved. • Goals. • Identify the target improvement goals which are derived from and supportive of the strategic business objectives. People motivation and productivity • Responsibility. • Identify management responsibility for the metrics program, and provide the organizational cultural support and visibility. Parte II- Métricas del Software y Modelos de Calidad 16
  • 17. Software Measurements: Steps Implementing a Metrics Program • Initial Research. • Validate the goals and customer expectations through survey and assessment. • Metrics Definition. • Define initial basic set of metrics for measuring goal achievement progress. • Sell. • Introduce and communicate the metrics program to the organization such that high visibility and cooperation is achieved. • Feedback and Process Improvement. • Identify the metrics reporting and feedback mechanisms such that software development process improvements actions can be determined and implemented. Parte II- Métricas del Software y Modelos de Calidad 17
  • 18. Software Measurements: Feedback and Process Improvement Steps • Goals • Metrics Definition. • Measure • Metrics Communication • Process Improvement Insights • Identify Process Improvement Actions • Implement Improvements Parte II- Métricas del Software y Modelos de Calidad 18
  • 19. People Development Process Product Structure Product Operation Software Measurements: Life Cycle Complexity - Knowledge and Project Management: Learning, Experience, Skills, Productivity - Process Quality: Methodology, Tools, Management, Effort, Productivity, Cost, Schedule - Product Quality: Functionality, Reliability, Availability, Performance, Security, Portability, Configuration - Technical Complexity: Design, Code, syntax, Algorithm, Data, Modularity, Objects and Components Parte II- Métricas del Software y Modelos de Calidad 19
  • 20. Software Measurements: Life Cycle Complexity • Quality, time, cost and scope are important components in software projects Parte II- Métricas del Software y Modelos de Calidad 20
  • 21. Software Measurements: How big, how many, and how good • Technical Product Complexity: • How big is the software. • Software Process Metric: • How Many resources we need. • Software Quality Metrics: • How good is the final product. Parte II- Métricas del Software y Modelos de Calidad 21
  • 22. Software Measurements: How big, how many, and how good • Technical Product Complexity Measurements are oriented to determine and quantify the software size in static state -product structure and properties- (How big). • Are characterized as directs metrics because are used to obtains derived metrics, such as productivity, effort, fault, etc. Parte II- Métricas del Software y Modelos de Calidad 22
  • 23. Software Measurements: How big, how many, and how good Parte II- Métricas del Software y Modelos de Calidad 23
  • 24. Software Measurements: How big, how many, and how good • Type of Technical Product Complexity Measurements: • Code Oriented Metrics • Control Structure Oriented Metrics • Linguistic and Syntactical Metrics • Specifications and Design Metrics • Functional Size Measurement (FSM) Parte II- Métricas del Software y Modelos de Calidad 24
  • 25. Software Measurements: How big, how many, and how good • Technical Complexity Metrics categories: • Code Oriented Metrics: • Line of Source Code (SLOC) • SLOC without comments (SLOC-CM) • Execute Statements (STMS) • Program Modules (UNITS) • Execute Objects statements (TOKEN) • Control Structure Oriented Metrics • Cyclomatic Number (McCabe) • Knots • Decision Points Parte II- Métricas del Software y Modelos de Calidad 25
  • 26. Cyclomatic Number (McCabe) • Cyclomatic complexity is a software metric (measurement), used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976. • Cyclomatic complexity is computed using the control flow graph of the program: the nodes of the graph correspond to indivisible groups of commands of a program, and a directed edge connects two nodes if the second command might be executed immediately after the first command. Cyclomatic complexity may also be applied to individual functions, modules, methods or classes within a program. • One testing strategy, called basis path testing by McCabe who first proposed it. Parte II- Métricas del Software y Modelos de Calidad 26
  • 27. Cyclomatic Number (McCabe) • Calculating the McCabe Number: Cyclomatic complexity is derived from the control flow graph of a program as follows: • Cyclomatic complexity (CC) = E - N + 2P • Where: P = number of disconnected parts of the flow graph (e.g. a calling program and a subroutine) E = number of edges (transfers of control) N = number of nodes (sequential group of statements containing only one transfer of control) Parte II- Métricas del Software y Modelos de Calidad 27
  • 28. Cyclomatic Number (McCabe) Parte II- Métricas del Software y Modelos de Calidad 28
  • 29. Software Measurements: How big, how many, and how good • Technical Complexity Metrics categories (cont…): • Linguistic and Syntactical Metrics • Halstead Science • Chunks • Design Metrics • Modules • Objects • Data Structure • Use Case Metrics Parte II- Métricas del Software y Modelos de Calidad 29
  • 30. Functional or Semantic Domain Software is compound coding in a programing language that represent functional modules or objects classes that have and hierarchy structure and interrelationship. They represent the business and process rules contains in specification and design. Metrica Chunk-Linguistico Cognitivo Parte II- Métricas del Software y Modelos de Calidad 30
  • 31. Metrica Chunk-Linguistico Cognitivo Syntactical Domain Program syntax is the logical structure of algorithm defined by structured programming (sequence, decision, and iteration) following its purpose of control complexity through theory and discipline Parte II- Métricas del Software y Modelos de Calidad 31
  • 32. Metrica Chunk-Linguistico Cognitivo Syntactical Domain In fact, we define the syntax as the set of rules or formulas which defines the set of sentences. Parte II- Métricas del Software y Modelos de Calidad 32
  • 33. Metrica Chunk-Linguistico Cognitivo • Chunks or Program Block Parte II- Métricas del Software y Modelos de Calidad 33
  • 34. Metrica Chunk-Linguistico Cognitivo • Valor CHL (i) = (nivel logico BCS)*(Peso BCS)*(cant operandos + cant operadores) i = 1, 2, 3…n-chunks • Total Valor CHL = Sum (Valor CHL(i)) • Para peso de BCS Ver cuadro del Dr. Wang • Patra calculo ver template excelParte II- Métricas del Software y Modelos de Calidad 34
  • 35. Use Case Metrics - UCP • Use Case Points (UCP) is a software estimation technique used to forecast the software size for software development projects. • UCP is used when the Unified Modeling Language (UML) and Rational Unified Process (RUP) methodologies are being used for the software design and development. • The concept of UCP is based on the requirements for the system being written using use cases, which is part of the UML set of modeling techniques. • The software size (UCP) is calculated based on elements of the system use cases with factoring to account for technical and environmental considerations. • The UCP for a project can then be used to calculate the estimated effort for a project. Parte II- Métricas del Software y Modelos de Calidad 35
  • 36. Use Case Metrics - UCP • The method for determining the size estimate to develop a system is based on a calculation with the following elements: • Unadjusted Use Case Weight (UUCW) – the point size of the software that accounts for the number and complexity of use cases. • Unadjusted Actor Weight (UAW) – the point size of the software that accounts for the number and complexity of actors. • Technical Complexity Factor (TCF) – factor that is used to adjust the size based on technical considerations. • Environmental Complexity Factor (ECF) – factor that is used to adjust the size based on environmental considerations. Parte II- Métricas del Software y Modelos de Calidad 36
  • 37. Use Case Metrics - UCP • Calculating The Use Case Points • The formula to calculate use case points is described below in terms of the variables from above: TCF, EF, UUCP, and AW. • Use Case Points = (UUCP + AW) * TCF * EF. • Determining Effort From Use Case Points: • “complex projects” have a higher conversion factor (28 hours per UCP if total Environmental Factor <15) and “simpler projects” (20 hours per UCP if >= 15). Parte II- Métricas del Software y Modelos de Calidad 37
  • 38. Use Case Metrics - UCP • Ver Template Excel para calculo del UCP Parte II- Métricas del Software y Modelos de Calidad 38
  • 39. Software Measurements: How big, how many, and how good • Functional Size Measurement (FSM): • Function Points Metric (FP) - Allan Albrecht, IBM 1979 • COSMIC (ISO/IEC 19761:2011) • IFPUG (ISO/IEC 20926:2009) • Commercial Tools • COCOMO II • KnowledgePlan • SEER • SLIM • Software Risk Master Parte II- Métricas del Software y Modelos de Calidad 39
  • 40. Software Measurements: How big, how many, and how good • Software Process Metrics characterizes the maturity of the process which the software product is developed. • Can be measured during the product development for providing real time feedback to software project management • Are often concerned with the efficient application of people and resources to software product development (how many). Parte II- Métricas del Software y Modelos de Calidad 40
  • 41. Software Measurements: How big, how many, and how good • Software Process Metrics: • Schedule (Time) • Cost • Productivity and Effort Parte II- Métricas del Software y Modelos de Calidad 41
  • 42. Software Measurements: How big, how many, and how good • Software Process Metrics Schedule: • Primary data used for project management and as process quality indicators. • This metric is calculated as the difference between the planned and actual work time to achieve the milestone of first customer delivery divided by the planned work time. • The metrics is given as a percentage: negative number indicates a schedule slip and positive indicates the actual date was achieved earlier than plan: • (Tp – Ta)/Tp Parte II- Métricas del Software y Modelos de Calidad 42
  • 43. Software Measurements: How big, how many, and how good • Software Process Metrics Effort: • Primary data used for project management and for productivity indicators. • It can be counted as staff-days (staff-hours) or project components (software volume) delivery per time units. • It is the intellectual force needed and applied through the time to achieve a specific task or technical measurement unit. • KLOC/days-man, • Chunks/days-man, • FP/days-man, Information Content(H)/days-man, Objects Designed/days-man. Parte II- Métricas del Software y Modelos de Calidad 43
  • 44. Software Measurements: How big, how many, and how good • Software Process Metrics Cost: • Primary data used for project management and financial indicators. • It counted as the monetary value of the staff-days (staff- hours) of effort in the different project phases: • US$ KLOC/days-man X 10 days • US$ FP/days-man X 25 days • US$ Objects Designed/ days-man X 15 • US$ Modules Tested/days-man X 8 Parte II- Métricas del Software y Modelos de Calidad 44
  • 45. Software Measurements: How big, how many, and how good • Software Process Metrics Productivity: • Productivity is concerned with the efficiency of the resources consumed in producing a given application in a timely manner, as such, included measuring system quality. • The main question in productivity is: • what is the time and computer resources to be invested in the software process for a quantity of software volume. • It is mainly influenced by the capacity of people to do a particular job and the technical and organization environment in the different phases of the project. Parte II- Métricas del Software y Modelos de Calidad 45
  • 46. Software Measurements: How big, how many, and how good • Software Process Metrics Productivity: • Components (project or phases): • PE = Total Effort Cost • PM = Total Cost Time Machine • PA = others resources • PT = PE + PM + PA • PS = Total productivity expected based in standards or best practices • P = (PS – PT)/PS Parte II- Métricas del Software y Modelos de Calidad 46
  • 47. Software Measurements: How big, how many, and how good • Software Process Metrics Productivity: • Models • Constructive Cost Model (COCOMO), developed by Barry Bohm in 1981. • Putnam Estimative Model, developed in 1978. • Function Point Model, developed by Allan Albrecht in 1979. • Others derived metrics Parte II- Métricas del Software y Modelos de Calidad 47
  • 48. Software Measurements: How big, how many, and how good • Software Process Metrics Productivity: • Derived Models • Constructive Cost Model (COCOMO), developed by Barry Bohm in 1981. • Putnam Estimative Model, developed in 1978. • Function Point Model, developed by Allan Albrecht in 1979. • Others derived metrics Parte II- Métricas del Software y Modelos de Calidad 48
  • 49. Software Measurements: How big, how many, and how good • Software Quality Metrics characterizes the quality level of the software product or service itself (how good). • Are defined during the computational and operational life of the software in the network environment. • Are oriented to measure the function, faults, errors, time, facility, etc. Parte II- Métricas del Software y Modelos de Calidad 49
  • 50. Software Measurements: How big, how many, and how good • What is Software Quality? • Quality is judged indirectly by focusing on the effectiveness and usefulness of the delivered system in performing the task for which it was designed (Scudder and Kucie, 1991). • In other words, how the system is actually constructed and how it performs its functions as opposed to how it should have been built and how it should perform (Sneed and Merey, 1985). Parte II- Métricas del Software y Modelos de Calidad 50
  • 51. Software Quality Attributes • Quality attributes are the overall factors that affect run-time behavior, system design, and user experience. • They represent areas of concern that have the potential for application wide impact across domains, layers and tiers. Parte II- Métricas del Software y Modelos de Calidad 51
  • 52. Software Quality Attributes • When designing applications to meet any of the quality attributes requirements, it is necessary to consider the potential impact on other requirements. • You must analyze the tradeoffs between multiple quality attributes. • The importance or priority of each quality attribute differs from system to system; Parte II- Métricas del Software y Modelos de Calidad 52
  • 53. Software Quality Attributes • Software Quality Metrics Models: • McCall Model • Boehm Model • ISO 25010 • Sneed Model Parte II- Métricas del Software y Modelos de Calidad 53
  • 54. Software Quality Models and Attributes (Sneed Model) Domains Objectives Quality Factors Functional or Semantic Scope and Completeness Functional Informational Relational Managerial and Efficiency (Process) Time Costs Productivity (effort) Specifications Completeness Consistency Feasibility Syntactical Technical or Non-Structural Maintainability Reusability Scalability Portability Interoperability Testability Computational Operational or Structural Usability Availability Reliability Performance Integrity Security Parte II- Métricas del Software y Modelos de Calidad 54
  • 55. Software Quality Attributes: Functional • Scope and Completeness: Proportion of possible entities, artifacts and his relationship designed, specified and implemented in the software systems: • Functional: process automated by the system • Informational: proportion of data entities and object classes, managed, accessed or stored by the software • Relational: relevant relationship between entities and object classes. Parte II- Métricas del Software y Modelos de Calidad 55
  • 56. Software Quality Attributes: Functional • Managerial and Efficiency: Needed to control the software process development and the effectiveness and efficient of resources. • Time: is given by the complexity of the problem, the technical resources and quality of human resources • Costs: are related to the amount of resources invested and the times of use of resources in the project implementation. • Productivity (effort): is a function of cost, time, effectiveness and efficiency achieved. Parte II- Métricas del Software y Modelos de Calidad 56
  • 57. Software Quality Attributes: Functional • Specifications: Relative to the requirements of business, users, system and operational specified. • Completeness: is defined in the context of the specification as the proportion of entities, artifacts, processes and planned relevant relationships, which have been fully specified. • Consistence: the lack of contradiction between different parts and relationships defined in the specifications. • Feasibility: is the probability that the specified software can be implemented within the constraints of time and costs established. Parte II- Métricas del Software y Modelos de Calidad 57
  • 58. Software Quality Attributes: Non- Structural • Technical factors: Technical factors are used to measure the adequacy of the design to the implementation. • Usability: The application interfaces must be designed with the user and consumer in mind so that they are intuitive to use, can be localized and globalized, provide access for disabled users, and provide a good overall user experience. Parte II- Métricas del Software y Modelos de Calidad 58
  • 59. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Maintainability: Maintainability is the ability of the system to undergo changes with a degree of ease. • These changes could impact components, services, features, and interfaces when adding or changing the application’s functionality in order to fix errors, or to meet new business requirements. • Maintainability can also affect the time it takes to restore the system to its operational status following a failure or removal from operation for an upgrade. Parte II- Métricas del Software y Modelos de Calidad 59
  • 60. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Maintainability (cont.): • Improving system maintainability can increase availability and reduce the effects of run-time defects. • An application’s maintainability is often a function of its overall quality attributes but there a number of key issues that can directly affect. Parte II- Métricas del Software y Modelos de Calidad 60
  • 61. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Reusability: Reusability is the probability that a component will be used in other components or scenarios to add new functionality with little or no change. • Reusability minimizes the duplication of components and the implementation time. • Identifying the common attributes between various components is the first step in building small reusable components for use in a larger system. Parte II- Métricas del Software y Modelos de Calidad 61
  • 62. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Scalability: Scalability is ability of a system to either handle increases in load without impact on the performance of the system, or the ability to be readily enlarged. • There are two methods for improving scalability: • scaling vertically (scale up), and scaling horizontally (scale out). • To scale vertically, you add more resources such as CPU, memory, and disk to a single system. • To scale horizontally, you add more machines to a farm that runs the application and shares the load. Parte II- Métricas del Software y Modelos de Calidad 62
  • 63. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Portability: It is the measure of amount of effort required to transfer software from one operating environment to another in relation to the development effort in the original environment. Parte II- Métricas del Software y Modelos de Calidad 63
  • 64. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Interoperability: Interoperability is the ability of a system or different systems to operate successfully by communicating and exchanging information with other external systems written and run by external parties. • An interoperable system makes it easier to exchange and reuse information internally as well as externally. • Communication protocols, interfaces, and data formats are the key considerations for interoperability (XML, SOAP, ETC). • Standardization is also an important aspect to be considered when designing an interoperable system Parte II- Métricas del Software y Modelos de Calidad 64
  • 65. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Testability: Testability is a measure of how well system or components allow you to create test criteria and execute tests to determine if the criteria are met. Testability allows faults in a system to be isolated in a timely and effective manner. • Supportability: is the ability of the system to provide information helpful for identifying and resolving issues when it fails to work correctly. Parte II- Métricas del Software y Modelos de Calidad 65
  • 66. Software Quality Attributes: Non- Structural • Technical factors (Cont.): • Manageability: Manageability defines how easy it is for system administrators to manage the application, usually through sufficient and useful instrumentation exposed for use in monitoring systems and for debugging and performance tuning. • Design your application to be easy to manage, by exposing sufficient and useful instrumentation for use in monitoring systems and for debugging and performance tuning. Parte II- Métricas del Software y Modelos de Calidad 66
  • 67. Software Quality Attributes: Structural • Operational or Structural factors: essentials to measure the efficiency and quality of the implementation of software • Availability: defines the proportion of time that the system is functional and working. • It can be measured as a percentage of the total system downtime over a predefined period. • Availability will be affected by system errors, infrastructure problems, malicious attacks, and system load. Parte II- Métricas del Software y Modelos de Calidad 67
  • 68. Software Quality Attributes: Structural • Operational factors (cont.): • Performance: Performance is an indication of the responsiveness of a system to execute specific actions in a given time interval. It can be measured in terms of latency or throughput. Parte II- Métricas del Software y Modelos de Calidad 68
  • 69. Software Quality Attributes: Structural • Operational factors (cont.): • Performance: • Latency is the time taken to respond to any event. Throughput is the number of events that take place in a given amount of time. • An application’s performance can directly affect its scalability, and lack of scalability can affect performance. • Improving an application’s performance often improves its scalability by reducing the likelihood of contention for shared resources. • Factors affecting system performance include the demand for a specific action and the system’s response to the demand. Parte II- Métricas del Software y Modelos de Calidad 69
  • 70. Software Quality Attributes: Structural • Operational factors (cont.): • Security: is the capability of a system to reduce the chance of malicious or accidental actions outside of the designed usage affecting the system, and prevent disclosure or loss of information. • Improving security can also increase the reliability of the system by reducing the chances of an attack succeeding and impairing system operation. • Securing a system should protect assets and prevent unauthorized access to or modification of information. • The factors affecting system security are confidentiality, integrity, and availability. • The features used to secure systems are authentication, encryption, auditing, and logging. Parte II- Métricas del Software y Modelos de Calidad 70
  • 71. Software Quality Attributes: Structural • Operational factors (cont.): • Integrity: measure of the data and resources accessibility and the fault recovery without human intervention. Parte II- Métricas del Software y Modelos de Calidad 71
  • 72. Software Quality Attributes: Structural • Operational factors (cont.): • Reliability: Reliability is the ability of a system to continue operating in the expected way over time. Reliability is measured as the probability that a system will not fail and that it will perform its intended function for a specified time interval. Parte II- Métricas del Software y Modelos de Calidad 72
  • 73. Software Quality Attributes: Structural • Software Quality Metrics Reliability • In Software reliability the quantity of code developed (volume), the number of instructions added or modified is directly related with the quantity of faults or coding errors introduced in the software (Musa, 1989). Parte II- Métricas del Software y Modelos de Calidad 73
  • 74. Software Quality Attributes: Structural • Software Quality Metrics Reliability • A fault is any situation in software operation that causes an incorrect result or malfunction for a valid input or event. • Error or Bug is a software defect that produce a fault. • Program fault is the overall result of total software complexity factors reveled in operation time. • Faults are reveling as a program failure occurs during the execution due to certain data event not predicted in design or coding (bug). Parte II- Métricas del Software y Modelos de Calidad 74
  • 75. Software Quality Attributes: Structural • Software Quality Metrics Reliability: • Taxonomy of Faults or Failures  Specification  Functional  Structural  Data Errors  Coding  Implementation  Integration  Systems and Architectures  Testing Parte II- Métricas del Software y Modelos de Calidad 75
  • 76. Software Quality Attributes: Structural • Software Quality Metrics Reliability: • Measurements • Mean numbers of failures experienced as a function of time while software is executed: FM = Fi / T • Mean Time Between Failure: MBTF= MTF + MTR MTF is mean time of failure MTR is mean time of repair Availability: TAvail = MTF/MBTF Parte II- Métricas del Software y Modelos de Calidad 76
  • 77. Software Quality Attributes: Structural • Software Quality Metrics Reliability Models: • Poisson Distribution Model • Markov Stochastic Model Parte II- Métricas del Software y Modelos de Calidad 77
  • 78. Bibliography • Philippe Kruchten, The Rational Unified Process - An Introduction, Addison- Wesley, 1999. • Renato R. Gonzalez; “A unified metric of software complexity: Measuring productivity, quality, and value”; The Journal of Systems and Software, Vol. 29, Number 1, April 1995. • M. L. Shooman, Software Engineering: Design, Reliability and Management, New York, McGraw Hill, 1983, pp. 150-151. • B. Curtis, Foundations for a Measurement Discipline, Quality Time, IEEE Software, November 1987. • J. S. Davis and R. J. LeBlanc, A Study of the Applicability of Complexity Measures, IEEE Trans. Software Engineering SE-14(9):1366-1372(1988). • Grady Booch, Object Oriented Design with Applications, The benjamín/Cummings Publishing Company, Inc. 1991. • Stephen Gilbert and Bill McCarty, Object Oriented Design in Java, Mitchel Waite, 2000. • Roger Pressman, Ingeniería del Software, Un Enfoque Práctico, McGraw Hill, 1998. Parte II- Métricas del Software y Modelos de Calidad 78
  • 79. GRACIAS POR SU ATENCION P&R Parte II- Métricas del Software y Modelos de Calidad 79