Este documento describe el Método IQMC para construir modelos de calidad de software. El método consiste en 6 pasos iterativos: 1) análisis del dominio, 2) refinamiento del modelo, 3) definición de atributos, 4) descomposición de atributos, 5) definición de relaciones, y 6) definición de métricas. Se proveen ejemplos de modelos conceptuales, jerarquías de características y atributos, y definiciones formales de métricas. Adicionalmente, se discute la inclusión de at
1. Construcción de Modelos de Calidad del
Software
Dr. Juan Pablo Carvallo Vega
jpcarvallo@gmail.com
2. Algunas propuestas existentes
Por su complejidad se requiere de una guía para su construcción
Existen algunas propuestas pero muy generales:
Boehm-78: 6 pasos
GQM: 5 pasos
Dromey: 5 pasos
METODO IQMC
Originalmente diseñando para producir modelos compatibles con el
estándar ISO/IEC 9126-1
Varios pasos intercalados e iterados:
Paso 0: Análisis del dominio de software
Pasos 1 a 4: Actividades de refinamiento del modelo original
Paso 5: Definir relaciones
Paso 6: Definir métricas
3. MTA MUA
Movile DeviceWeb BrowserE-Mail Progrma
Acces Paradigm
Mail Transfer Protocol
Mail Acces Protocol
Mail Transfer Protocol
*
*
* *
* *
* 1..*
Relays
Submission
Modelos UML
Mail
Transfer
Agent
(MTA)
Message
Store (MS)
Mail User
Agent (MUA)
Mail User
Agent (MUA)
Mail
Transfer
Agent
(MTA)
Submission
SMTP
Relay
SMTP
Delivery
File I/O
Access
POP or
IMAP
Originator
Origination Destination
Recipient
Message:
RFC 822 and MIME
Estandares
•PC•
•(ONLINE
•Operation)•
•PC•
•(OFFLINE,
•DISCONECTED
•Operation)•
•Active•–• Passive•
•SERVER CLUSTER•
•Backup•
•SERVER•
•Main•
•SERVER•
•POP•
•
•Active•–• Active•
•
•
•SMTP•
•IMAP• •IMAP•
•SMTP•
•SMTP•
•Multimedia
•Fi•le
•Attachments•
•
•SMTP
•MIME•
•LOCAL DOMINES INTRANET•
•POP•
•IMAP•
•Multimedia
•Workstations•
Diagramas
Arquitectonicos
Dominio del
componente
de software
Un equipo de calidad con expertos en el tema se debe conformar
Se recomienda la construcción de modelos conceptúales de dominio
La falta de terminología estándar es un problema
Exploración detallada y descripción
de: Tecnologías, regulaciones,
estándares, etc. …
IQMC: Paso 0
4. BodyHeader
Subject
Return-Path
Text
MIME
CntTransferEncoding
ContentID
ContentDescription
Other
Text
Charset
Application
Content
Disposition : Disposition
FileName
11
Image Video
Mixed Parallel Alternative Digest
Audio
MIME Version
Version
Content Type
Type:{Text, Application,...}
Content Subtype
Name:Text
RFC:bool
* 0..1
Superseed
1*
*
*
1
*
Message
Id
*
0..1
Copy of
User
E-MailAddress
Contacts
Category
Name
Organizarion
Telephone
WorkAddress
*
*
MTA User
Id
UserName
Password
{incomplete,
overlaping}
Sending Cathegory
Type[1..*] : Cathegory
*
1
From
1
*
1
*
«enumeración»
Cathegory
To
CC
BCC
Reply-To
{ordered}
{ordered}
«enumeración»
Disposition
Inline
Attachment
*
*
Addres Book
Local
Remote
PersonalCommon
*
1
Folders
Local
Remote
Common Personal
User Defined
Default
*
0..1
*
*
*
*
1*
1*
{Subset}
{Subset}
*
1
Serder/Recipient Other
Fields 1..* 1
Multipart
Boundary
Message
1
*
1
*
1
*
1
1
*
1
1
Distribution lists Personal Card
UML Models to describe concepts in the domain
BodyHeader
Subject
Return-Path
Text
MIME
CntTransferEncoding
ContentID
ContentDescription
Other
Text
Charset
Application
Content
Disposition : Disposition
FileName
11
Image Video
Mixed Parallel Alternative Digest
Audio
MIME Version
Version
Content Type
Type:{Text, Application,...}
Content Subtype
Name:Text
RFC:bool
* 0..1
Superseed
1*
*
*
1
*
Message
Id
*
0..1
Copy of
User
E-MailAddress
Contacts
Category
Name
Organizarion
Telephone
WorkAddress
*
*
MTA User
Id
UserName
Password
{incomplete,
overlaping}
Sending Cathegory
Type[1..*] : Cathegory
*
1
From
1
*
1
*
«enumeración»
Cathegory
To
CC
BCC
Reply-To
{ordered}
{ordered}
«enumeración»
Disposition
Inline
Attachment
*
*
Addres Book
Local
Remote
PersonalCommon
*
1
Folders
Local
Remote
Common Personal
User Defined
Default
*
0..1
*
*
*
*
1*
1*
{Subset}
{Subset}
*
1
Serder/Recipient Other
Fields 1..* 1
Multipart
Boundary
Message
1
*
1
*
1
*
1
1
*
1
1
Distribution lists Personal Card
Folders
Address
Book
Messages
Ejemplo: Modelo conceptual de los servidores Mail
5. • ISO/IEC fija 6 características y sus subcaracteristicas de mas alto nivel
Características
Subcaracterísticas
• El equipo de calidad podrá:
• Agregar nuevas
• Redefinir algunas existentes
• Eliminar algunas
IQMC, paso 1
6. • Las subcaracteristicas pueden ser descompuestas en otras
• Jerarquías de subcaracteristicas pueden aparecer
• Tienen que mantener algún nivel de abstracción
• Si no … son atributos
Jerarquia de
Subcaracterísticas
IQMC, paso 2
Características
Subcaracterísticas
7. • Los atributos permiten realizar un seguimiento de características
observables de un componente en un dominio de software dado
• Su definición precisa es requerida
• Existen muchas fuentes para su selección
• Los conceptos son importantes para su selección
• Los atributos pueden ser apropiados para mas de una subcaracteristica
• Una métrica diferente puede ser definida para cada caso
Atributos
IQMC, paso 3
Jerarquia de
Subcaracterísticas
Características
Subcaracterísticas
8. • Atributos básicos: Directa y objetivamente medibles
• Atributos derivados: Requieren descomposición hasta ser
expresados en términos de atributos básicos
• Dependientes del contexto
• Independientes del contexto
IQMC, paso 4
Descomposición de
atributos derivados
Atributos
Jerarquia de
Subcaracterísticas
Características
Subcaracterísticas
9. •(+) •(-) •(D)•(+)
IQMC, paso 5
• Diferentes tipos de relaciones
• Colaboración, daño, dependencia, …
• Los requisitos pueden ser extendidos en forma implícita
Descomposición de
atributos derivados
Atributos
Jerarquia de
Subcaracterísticas
Características
Subcaracterísticas
10. • Diferentes tipos de relaciones
• Colaboración, daño, dependencia, …
• Los requisitos pueden ser extendidos en forma implícita
•(+) •(-) •(D)•(+)
IQMC, paso 5
Descomposición de
atributos derivados
Atributos
Jerarquia de
Subcaracterísticas
Características
Subcaracterísticas
CHARACTERISTICS Functionality Efficiency
SUBCHARACTERISTICS Security
Time
behavior
ATTRIBUTES
Secure e-mail
Protocols
Average
response time
Certification System D -
Functionality
Security
Encryption Algorithm D -
Online incremental
backup -
Single mailbox backup
and recovery +
Online restore -
Dynamic Log rotation -
Reliability
Recoverability
Event Logging -
Concurrent mail users
per server -
Number of active web-
mail clients -
Management of quotas
on message and mail file
size
+
Efficiency
Res.Behaviour
Single copy store +
11. Métricas ƒ ƒ ½ ½ abc
abc
abc
ƒ ƒ
• Las partes 2 y 3 del estándar ISO/IEC 9126-2, 3 pueden ser utilizadas para
este propósito
• Conceptos matemáticos para la definición de métricas son recomendables
• La teoría general de métricas debe seguirse
•(+) •(-) •(D)•(+)
IQMC, paso 6
Descomposición de
atributos derivados
Atributos
Jerarquia de
Subcaracterísticas
Características
Subcaracterísticas
12. Definición de métricas (1/2)
Muchas maneras de formalizarlas, la siguiente es tan solo una propuesta:
“Nombre”:Escala; “Nombre”(lista valores)
Supported: Nominal; Suported=(True, False)
“Nombre”:Tipo(Etiqueta:Escala); Etiqueta=(lista valores)
Folders:Set(Labels: Nominal); Labels=(inbox, outbox,
deleted, draft, ...)
“Nombre”:Tipo(Etiqueta_1:Escala, Etiqueta_2:Escala);
Etiqueta_1=(lista valores 1), Etiqueta_2=(lista valores 2)
Rules: (Fields:Nominal, Operations:Nominal, Actions: Nominal);
Fields =(CC, BCC, Subject,…), Operations = (And, Or, Not,...),
Actions=(Move, Delete, Mark,...)
Donde la lista de valores puede ser conocida, parcialmente conocida, o
desconocida
La escala puede ser, Ordinal, Nominal, Relación, Intervalo, Absoluta
Unidades, cuando tengan sentido…
13. Los atributos no técnicos
Reportados por muchos autores
No han sido unificados
Incluyen costos, temas relacionados al contrato y características
en relación al producto
Pueden incluir temas relacionados a varios aspectos del ciclo de
vida
A pesar de su importancia no han sido estructurados
Nuestra propuesta unificarlos en un esquema similar al catalogo de
la ISO
Jerarquía multinivel características, subcaracteristicas, atributos
y métricas
También dependencias entre atributos técnicos y no técnicos
14. Los atributos no técnicos: Utilidad practica
Medir el cumplimiento
Base para negociar relaciones
futuras
Servicios.
Licencias y costos
recurrentes, nuevas
versiones.
Esfuerzo de adopción e integración
Estimar presupuesto del proyecto
Arquitectura preliminar
Fiabilidad de los
proveedores
Cronograma del
proyecto
Fijar el alcance del proyecto
Establecer responsabilidades
Identificar servicios a ser
provistos
Fijar restricciones contractuales
y garantías
Aclarar disputas (si el
contrato se basa en ellos).
Aplicación de la metodología
propuesta.
Seguimiento del progreso y
cumplimiento de metas
Cumplimiento de los servicios
contratados
Ciere del proyecto Etapas Iniciales
Desarrollo
Negociación
16. Algunas recomendaciones
Definir modelos conceptuales solamente cuando sea necesario para
aclarar conceptos difíciles de entender
Mantener una buena trazabilidad, identificar claramente los orígenes de
los atributos
Como proceder con la descomposición del modelo:
Identificar buenas fuentes de información
Construir modelos conceptuales claros y concisos
Partir del modelo ISO extendido (provisto en clase)
Mantener un control de los factores reutilizados
Identificar subcaracterísticas y atributos funcionales partiendo de los
modelos conceptuales definidos para el dominio
Adoptar atributos no funcionales de catálogos preestablecidos
Concluir cuando los requisitos estén claramente operacionalizados
Definir dependencias utilizando matrices en Excel
En un contexto particular utilizar matrices de pesos