Calidad en El Desarrollo de SW ISO 14598
Calidad en El Desarrollo de SW ISO 14598
Calidad en El Desarrollo de SW ISO 14598
ESCUELA DE INGENIERÍA
Yo, Amy Indira Calahorrano Narváez, declaro bajo juramento que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentada para ningún
grado o calificación profesional; y, que he consultado las referencias bibliográficas
que se incluyen en este documento.
Amy Calahorrano
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por Amy Indira Calahorrano
Narváez, bajo mi supervisión.
DIRECTOR DE PROYECTO
DEDICATORIA
Amy Indira
AGRADECIMIENTOS
Un especial agradecimiento al
Msc. Ing. Carlos Montenegro
Director de Proyecto por su guía
oportuna y acertada
en la realización de esta tesis.
CONTENIDO
CAPÍTULO 1. MARCO TEÓRICO ............................................................................ 2
1.1. PROCESOS DE EVALUACIÓN DE LA CALIDAD DEL CÓDIGO FUENTE ...... 2
1.1.1. ESTÁNDAR ISO/IEC 14598 ................................................................................................... 3
1.1.1.1. Revisión General (ISO/IEC 14598-1) .............................................................................. 4
1.1.1.1.1. Establecer requisitos de Evaluación ........................................................................... 5
1.1.1.1.2. Especificar la evaluación ............................................................................................ 7
1.1.1.1.3. Diseñar la evaluación ................................................................................................. 9
1.1.1.1.4. Ejecutar la evaluación ................................................................................................ 9
1.1.1.2. Planificación y Administración (ISO/IEC 14598-2) ........................................................ 9
1.1.1.3. Proceso para Desarrolladores (ISO/IEC 14598-3) ......................................................... 11
1.1.1.4. Proceso para Adquisidores (ISO/IEC 14598-4) ............................................................. 12
1.1.1.5. Proceso para Evaluadores (ISO/IEC 14598-5) ............................................................... 12
1.1.1.6. Documentación de Módulos de Evaluación (ISO/IEC 14598-6) ................................... 16
1.2. MÉTRICA DE COMPLEJIDAD CICLOMÁTICA................................................... 17
1.2.1. INTRODUCCIÓN .................................................................................................................. 17
1.2.2. ÁMBITO DE UTILIZACIÓN DE LA COMPLEJIDAD CICLOMÁTICA ........................... 18
1.2.3. DEFINICIÓN DE COMPLEJIDAD CICLOMÁTICA ........................................................... 19
1.2.4. NOTACIÓN DE FLUJOS DE CONTROL DE UN PROGRAMA .................................... 21
1.3. METODOLOGÍA PARA EL DESARROLLO DE LA HERRAMIENTA ............. 22
1.3.1. RUP (RATIONAL UNIFIED PROCESS) .............................................................................. 22
1.3.1.1. Arquitectura de RUP ..................................................................................................... 22
1.3.1.2. Las Mejores Prácticas de RUP....................................................................................... 23
1.3.1.2.1. Desarrollo de Software Iterativo............................................................................... 24
1.3.1.2.2. Gestión de Requerimientos ...................................................................................... 25
1.3.1.2.3. Uso de arquitecturas basadas en componentes ......................................................... 25
1.3.1.2.4. Modelamiento visual del software ............................................................................ 25
1.3.1.2.5. Verificación de la calidad de software...................................................................... 26
1.3.1.2.6. Control de cambios de software ............................................................................... 26
1.3.1.3. Fases del Ciclo de vida del proyecto .............................................................................. 26
1.3.1.3.1. Fases de Inicio .......................................................................................................... 27
1.3.1.3.2. Fases de Elaboración ................................................................................................ 27
1.3.1.3.3. Fases de Construcción .............................................................................................. 27
1.3.1.3.4. Fases de Transición .................................................................................................. 28
1.3.1.4. Disciplinas del ciclo de vida del proyecto ...................................................................... 28
1.3.1.4.1. Disciplinas de Desarrollo ......................................................................................... 29
1.3.1.4.2. Disciplinas de Soporte.............................................................................................. 32
1.3.1.5. Los elementos del RUP ................................................................................................. 33
1.3.2. JUSTIFICACIÓN PARA EL USO DE LA METODOLOGÍA RUP ...................................... 33
CAPÍTULO 2. DESARROLLO DE LA HERRAMIENTA PARA MEDIR LA
COMPLEJIDAD CICLOMÁTICA .................................................................................. 34
2.1. ANÁLISIS ......................................................................................................................... 34
2.1.1. DEFINICIÓN DEL PROBLEMA .......................................................................................... 34
2.1.2. VISIÓN GENERAL DE LA HERRAMIENTA ..................................................................... 34
2.1.3. LEVANTAMIENTO DE REQUERIMIENTOS .................................................................... 35
2.1.3.1. Requisitos de la aplicación ............................................................................................ 35
2.1.4. MODELO DE CASOS DE USO ............................................................................................ 36
2.1.4.1. Diagrama de casos de uso para la Aplicación ................................................................ 36
2.1.4.2. Especificación de Casos de Uso .................................................................................... 37
2.1.5. ARQUITECTURA DEL SOFTWARE A NIVEL DE ANÁLISIS ......................................... 37
2.1.5.1. Representación Arquitectónica ...................................................................................... 37
2.1.5.2. Vista de requerimientos: Mecanismos de análisis.......................................................... 38
2.1.5.3. Vista lógica: Modelo de diseño...................................................................................... 39
2.2. DISEÑO............................................................................................................................. 39
II
ÍNDICE FIGURAS
ÍNDICE TABLAS
INTRODUCCIÓN
Obtener productos de software que tengan una alta calidad debe ser el objetivo
fundamental de las empresas que se dedican al desarrollo de estos productos,
para conseguir esa calidad es necesario seguir algunos procesos de evaluación.
La serie de las normas ISO/IEC 14598 ofrece métodos para la medida, valoración y
evaluación de calidad de producto de software.
El objetivo de estos métodos es proveer a los evaluadores mecanismos de soporte,
para la evaluación de productos de software desde el punto de vista del usuario final
[1]
.
Los procesos de evaluación son utilizados para simular el uso operacional normal
del producto de software, comenzando por un análisis de documentación, instalando
el producto como se lo especifica en la documentación y utilizando el producto de la
mejor manera posible.
[1] http://www.cenpra.gov.br/publicacoes/pdf/2002/evaluation_software.pdf
3
El estándar ISO/IEC 14598 propone las siguientes actividades para los Procesos de
Evaluación, estos son:
Proporciona una apreciación global de las demás partes del estándar ISO/IEC
14598.
Contiene la estructura y los requisitos generales para la especificación y evaluación
de la calidad del producto de software.
Adicionalmente describe el proceso de evaluación en los pasos siguientes:
x Establecer requisitos de Evaluación
x Especificar la Evaluación
x Diseñar la Evaluación
x Ejecutar la Evaluación
Selección de métricas
Las métricas pueden diferir dependiendo del ambiente y la fase del proceso de
desarrollo en el cual se encuentren.
Para evaluar la calidad del producto, los resultados de las evaluaciones de las
diferentes características tienen que ser sumarizados. El evaluador es el encargado
de preparar un procedimiento, el cual involucra criterios separados para las
características de calidad diferentes, donde cada una de ellas pueden estar
expresadas en términos de subcaracterísticas individuales, o una combinación
ponderada de ellas. Generalmente, el procedimiento esta compuesto por otros
aspectos como tiempo y costo que contribuyen a la valoración de calidad de un
producto del software en un ambiente determinado.
9
Toma de medidas
Al aplicar las métricas seleccionadas al producto de software se obtienen las
medidas. Los resultados de las medidas son valorados sobre la escala de métricas.
Criterios de comparación
Los criterios de comparación pueden ser tomados desde los niveles de valoración
(ver Figura 1.2), definidos por los valores medidos y ser comparados entre ellos.
Esta parte de la norma contiene requisitos y guías para las funciones de soporte,
como es la planificación y administración para la evaluación de productos de
software.
Para las funciones de soporte existe un departamento designado para ello, el cual
provee la tecnología necesaria para la evaluación del producto de software.
10
ISO/IEC 14598-3 proporciona una guía para esclarecer los requisitos para la
implementación y análisis de las medidas de la calidad de software.
Aquí se define las actividades necesarias para definir los requisitos, especificación,
diseño y conclusiones de la evaluación de cualquier tipo de producto de software,
brindando soporte al desarrollador al evaluar el producto durante el ciclo de vida de
desarrollo, a través de la identificación de atributos de productos intermedios y el
desarrollo de actividades para medir estos atributos.
La norma se enfoca en la selección de indicadores que son útiles para predecir la
calidad del producto final a través de la calidad de productos intermedios.
El estándar ISO/IEC 14598-5 define los subprocesos necesarios para analizar los
requisitos, especificaciones, diseños y ejecuciones de la evaluación, obteniendo así
conclusiones y recomendaciones para cualquier tipo de software.
Este proceso describe los objetivos de la evaluación que se relacionan con el uso del
producto de software.
15
b) Especificación de la evaluación
c) Diseño de la evaluación
d) Ejecución de la evaluación
Se encarga de obtener los resultados al ejecutar las actividades programadas,
conforme a los requisitos de evaluación.
e) Conclusión de la evaluación
Consiste en la revisión del borrador entre las partes (solicitante y evaluador) y hacer
disponibles los documentos finales.
1.2.1. INTRODUCCIÓN
McCabe también expone que se puede utilizar la complejidad ciclomática para dar
una indicación cuantitativa del tamaño máximo de un módulo. A partir del análisis de
muchos proyectos se encontró que un valor de 10 es un límite superior práctico para
el tamaño de un módulo. Cuando la complejidad supera dicho valor se hace muy
difícil probarlo, entenderlo y modificarlo.
19
V(G)= A
(1)
Donde:
A: Número de áreas del grafo de flujo, incluyendo el área exterior del grafo como una
región más.
V(G)= E-N+2
(2)
Donde:
E: Número de aristas o enlaces entre nodos del grafo
N: Número de nodos del grafo
V(G)= P+1
(3)
Donde:
P: Número de nodos predicado, es decir aquel nodo del cual emergen dos o
más aristas
1. V(G) = 6 regiones
2. V(G) = 13 aristas - 9 nodos + 2 = 6
3. V(G) = 5 nodos predicado +1 = 6
ESTRUCTURA EN
SENTENCIA DEFINICIÓN
FORMA DE GRAFO DE
FLUJO
Un paso simple de una instrucción
a otra.
Donde se debe cumplir una
condición para ejecutar un
IF conjunto de sentencias y si no
(Condición) cumple con esa condición,
ejecuta otro conjunto de
sentencias.
Permite tener varias
CASE alternativas de selección.
(Selecci
ón
Múltiple)
Especifica que mientras se
WHILE cumple una condición
(Bucle) establecida, se ejecuta una o
varias sentencias
Especifica que se ejecute una o
DO-WHILE
varias sentencias al menos una
(Bucle)
vez, mientras se
cumpla la condición establecida.
Especifica que se ejecute cero o
FOR más las sentencias que se
(Bucle) encuentran dentro del bucle,
hasta que se cumpla la condición
establecida.
Sentencia de programa
Figura 1.5Gráfico del Modelo iterativo, indica como el proceso se estructura a lo largo de dos
dimensiones.
Fuente: rup_bestpractices.pdf
del negocio y funciones del sistema, así como también ítems específicos como,
clases escritas en un lenguaje de programación determinado, esquemas de bases de
datos, y componentes del software reusables. UML provee un vocabulario para
expresar los distintos modelos, mas no indica como desarrollar el software, es por
ello que Rational desarrollo RUP, una guía para el uso eficaz de UML en el
modelamiento, es decir describe los modelos que se necesitan, porque se necesitan,
y como construirlos.
La calidad del software debería revisarse con respecto a los requerimientos basados
en la fiabilidad, funcionalidad, ejecución de la aplicación y del sistema.
RUP ayuda en la planificación, diseño, implementación, ejecución, y evaluación de
estos tipos de prueba, para verificar la calidad del software.
La evaluación de la calidad es construida dentro del proceso, en todas las
actividades, involucrando a todos los participantes, usando medidas y criterios
objetivos, y no tratándolo como una ejecución de una actividad totalmente separada.
Cada ciclo de vida del proyecto, trabaja sobre una nueva generación del producto.
RUP divide un ciclo de desarrollo en cuatro fases:
x Inicio
27
x Elaboración
x Construcción
x Transición
Cada fase concluye con un punto bien definido (o hito), en el cual se deben tomar
ciertas decisiones críticas a tiempo, y por consiguiente se lograrán las metas más
importantes.
x Disciplinas de Desarrollo
1. Modelamiento del negocio
2. Requerimientos
3. Análisis y Diseño
4. Implementación
5. Pruebas
6. Despliegue
x Disciplinas de soporte
7. Administración de configuración y cambios
8. Administración del proyecto
9. Entorno
29
Requerimientos
La disciplina de requerimientos describe lo que el sistema debería hacer y permitir a
los desarrolladores y clientes estar de acuerdo con esta descripción. Para lograr
esto, se obtiene, organiza y documenta las funcionalidades y restricciones requeridas
e intercambiando documentos y decisiones.
Se crea un documento de visión, se identifica actores, se representan los usuarios, y
cualquier otro sistema que pueda interactuar recíprocamente con el sistema que se
este desarrollando.
Cada caso del uso se describe en detalle. La descripción del caso de uso indica
paso a paso cómo el sistema interactúa con los actores y lo que el sistema ejecuta.
Análisis y diseño
El objetivo de esta disciplina es indicar como el sistema será generado en la fase de
implementación. Además se crea un modelo de diseño y opcionalmente un modelo
de análisis. El modelo de diseño contiene clases estructuradas dentro de un paquete
de diseño y un subsistema de diseño con interfaces bien definidas; representando lo
que será los componentes de la aplicación; también contiene descripciones de cómo
los objetos del diseño de clases, colaboran para interpretar los casos de uso.
Figura 1.8 Parte de modelo de diseño con las clases del diseño que se comunican
Fuente: rup_bestpractices.pdf
Implementación
El propósito de la implementación es:
x Definir la organización del código, en términos de implementación de
subsistemas estructurados en capas.
x Implementar clases y objetos en términos de componentes.
x Probar los componentes desarrollados como unidades.
x Integrar los resultados producidos por implementaciones individuales (o
equipos) dentro de un sistema ejecutable.
31
Pruebas
El propósito de las pruebas es:
x Verificar la interacción entre objetos.
x Verificar la integración apropiada de todos los componentes del software.
x Verificar que todos los requerimientos hayan sido correctamente
implementados.
x Asegurar que los errores se identifiquen y solucionen antes de entregar el
software al usuario final.
RUP propone desarrollo iterativo, lo que significa que se hacen pruebas a lo largo del
proyecto. Esto permite identificar defectos tan pronto como sea posible, lo que
reduce los costos de reparación del defecto. Las pruebas son llevadas a cabo a lo
largo de las tres dimensiones de calidad: confiabilidad, funcionalidad, rendimiento de
la aplicación.
Despliegue
El objetivo de esta disciplina es la de generar versiones satisfactorias del producto y
entregar el software a los usuarios finales, además cubre una gama amplia de
actividades como:
Administración de proyecto
La administración de proyectos de software es el arte de equilibrar los objetivos,
competentes, administrar los riesgos, superar las restricciones para entregar
exitosamente un producto, que satisfaga las necesidades de los clientes (los que
pagan el dinero) y usuarios.
Esta disciplina se enfoca principalmente en aspectos específicos de un proceso de
desarrollo iterativo, proveyendo una arquitectura para la administración de proyectos
de software intensivo, guías practicas para planificación, ejecución y monitoreo de
proyectos y una arquitectura para la administración de riesgos.
Entorno
La disciplina de entorno provee un adecuado ambiente de desarrollo de software a la
organización; además de los procesos y herramientas necesarias para ayudar al
equipo de desarrollo.
33
El entorno se enfoca en las actividades para configurar los procesos dentro del
contexto de un proyecto, a través del uso de pautas, plantillas y herramientas, para
personalizar los procesos.
RUP es un framework del proyecto que describe una clase de procesos que son
iterativos e incrementales como:
x Manejar proyectos a través de muchas iteraciones pequeñas, cada una de las
cuales involucra más o menos el mismo tipo de actividades.
x Tiene cuatro hitos mayores los cuales marcan los límites entre las cuatro fases
mayores.
x Genera software, y posiblemente otros entregables.
x Se estima y planea en base a la medida del progreso real.
x Es adaptable a cambios.
Ventajas
x Las actividades son concretas y repetibles.
x Se utiliza UML como herramienta de modelamiento para el análisis y diseño
de la aplicación.
x Es comúnmente utilizada en proyectos de desarrollo de software.
El problema de generar programas sin una estructura óptima, afecta en gran medida
a los sistemas computacionales, por el alto consumo de sus recursos, como la
memoria, el espacio en disco, etc.
Esto produce insatisfacción por parte del usuario al utilizar estos programas, debido a
su tiempo de respuesta tardía.
Una solución satisfactoria a este problema, sería la disponer de una herramienta que
permita evaluar la calidad del código fuente, indicando el nivel de complejidad y su
estructura lógica (la cual define el número de caminos independientes para la
ejecución completa de un programa), para así saber de que manera se le puede dar
un buen mantenimiento mejorando su eficiencia.
Identificar cuales son las necesidades de los usuarios, para definir los requerimientos
que se desarrollarán en la aplicación, y de esta manera proveer un alto nivel
satisfacción en el manejo de la herramienta.
2.1.3.1. Requisitos de la aplicación
Administrar Archivo
x Los usuarios podrán abrir, crear, editar, guardar los archivos.
x Para abrir los archivos se debe verificar que el archivo tenga extensión .c.
x Permitirá ejecutar la evaluación de la calidad del código fuente de los archivos,
para ello es necesario que primero se realice un análisis léxico-sintáctico del
código fuente, para verificar que este sea correcto.
x Una vez ejecutada la evaluación, se presentará un resultado, el cual consiste
de un grafo de flujo de las sentencias control para conocer su estructura
dentro del archivo, un valor de la complejidad ciclomática que indica el nivel de
calidad del código fuente, la sentencia de control seguido de la secuencia de
nodos que la conforman y el nombre de la función donde se encuentran
declaradas, estos resultados formarán parte del reporte.
Administrar Reporte
1. Guardar los reportes en archivos .pdf, Este reporte esta compuesto del grafo
de flujo, valor de la complejidad ciclomática, nombre de las funciones con sus
sentencias de control y los respectivos nodos, fecha de evaluación, y nombre
del archivo que se evaluó.
Analizador Lexico
Sintactico
Usuario
<<generalize>>
Administrar
Grafo CC
Administrar Reporte
Actor Descripción
Usuario Persona que manejará la herramienta EVAC
Paquete Descripción
de casos
de uso
Administrar Agrupa los casos de uso relacionados con la Gestión del
Herramienta Archivo, Gestión del Reporte y filtro de archivos.
Analizador Agrupa los casos de uso relacionados con el analizador
Léxico – léxico-sintáctico para el archivo C.
Sintáctico
Administrar Grafo Agrupa los casos de uso relacionados con la administración
CC del grafo, su
estructuración y el flujo o direccionamiento de aristas.
Tabla 2.3 Descripción de paquetes de casos de uso
Fuente: La autora
En el Anexo B, se describen con más detalle los casos de uso que forman parte de
los casos de uso generales de Administrar Archivo y Administrar Reporte.
Administrar
Herramienta
Ver Anexo B.
2.2. DISEÑO
2.2.1. ARQUITECTURA DEL SOFTWARE A NIVEL DE DISEÑO
Grupo Responsabilidades
saveReport()
saveAsReport() 1..1
0. .n ManagerReport()
1..1
HashFileFilter
1
IEvac addExtension()
1 ManagerFile setDescription()
1..1 HashFileFilter()
pathFile
Figura 2.3 Diagrama de Clases
codeSource
nameFile
Fuente: La autora
41
42
En la
Tabla 2.8 se describen los elementos que conforman el paquete manager- Tool:
Nombre Descripción
Nombre Descripción
Nombre Descripción
EVAC está desarrollado completamente sobre Java ya que permite una fácil
integración de diferentes tecnologías afines. En la Tabla 2.15 se presenta la
descripción del software utilizado.
2.3.2.1. NetBeans
2.3.2.2. JAVA
En esta estructura se define tres paquetes que contiene todas las clases
relacionadas con la aplicación.
managerTool managerTool
graphCyclomaticComplexity graphCyclomaticComplexity
CParser CParser
2.3.4. PRUEBAS
Por cada caso de uso que se encuentra descrito en el Anexo B se ejecuta un caso de
prueba para verificar que el código realice la funcionalidad especificada.
La prueba del sistema, realmente, está constituida por una serie de pruebas
diferentes cuyo propósito primordial es ejercitar profundamente el sistema basado en
computadora. Aunque cada prueba tiene un propósito diferente, todas trabajan para
verificar que se han integrado adecuadamente todos los elementos del sistema y que
realizan las funciones apropiadas.
Misión del producto: Analizar la calidad del código fuente desarrollado en C ANSI
en base a la utilización de la métrica de complejidad ciclomática.
Hardware Utilizado:
x Procesador Pentium IV 2.40 GHz
x Memoria RAM de 512 MB
x Espacio Requerido 3 MB
56
Módulos de la Herramienta:
x Archivo
x Reporte
Módulo de Archivo:
Módulo de Reporte:
En la Tabla 3.1 y Tabla 3.2 se muestran las funciones que maneja el módulo de
Archivo y Reporte respectivamente.
En base al ciclo de vida del Software de la norma ISO/IEC 14598-1 se establece que
la aplicación a evaluar es un producto final.
Siendo el propósito de la evaluación evaluar la calidad del código fuente, las métricas
seleccionadas son las métricas internas definidas en el modelo de calidad ISO/IEC
9126-3.
Las métricas escogidas para los casos de estudio son:
Anulación de Operación
FIABILIDAD Tolerancia a Fallas
Incorrecta
Adaptabilidad de la estructura
PORTABILIDAD Adaptabilidad
de datos
Especificación
Contar el A = número de
de
número de ítems
cumplimiento
detalles que se implementados
¿Cuán dócil es X= y relación de
han reunido y correctamente
la contable/ estándares,
que requieren relacionados 0<= X <=1
Cumplimiento funcionalidad contable convenciones Verificación
cumplimiento y con el Analistas
de la del producto al El más o
comparar con cumplimiento Absoluto A= Revisión
Funcionalidad aplicar cercano a 1. regulaciones. Desarrolladores
el número de de contable colectiva
regulaciones, Es el mejor
detalles que funcionalidad B= Diseño
estándares y
requieren confirmado en contable
convenciones? Código Fuente
cumplimiento la evaluación
como en la
B = número Reporte de
especificación
total de ítems Revisión.
de
cumplimiento.
61
Contar el
X=A/B
número de
funciones El valor A
implementadas A = número de viene del
que evitan funciones 0<= X reporte de Verificación Desarrolladores
¿Cuántas críticas y implementadas revisión.
funciones son serias fallas Donde X es X=
para anular Validación. Analistas
Anulación de implementadas causadas por mayor a 0, contable/
operaciones
operaciones con capacidad operaciones siendo X la Absoluto contable Revisión Soporte
incorrectas
incorrecta de anular incorrectas y mejor El valor B colectiva
A = contable viene del
operaciones comparar éste anulación de
B = contable documento de Resolución
incorrectas? al número de operaciones
B = número de incorrectas especificación del problema
modelo de
operaciones de
operaciones
incorrectas del requerimientos
incorrectas a
modelo a ser
ser
consideradas.
consideradas.
62
Contar el A = número
número de de funciones
(o tipo de Especificación
¿Qué funciones de Desarrolladores
proporción de que son funciones) X = contable/
0<= X <= 1 requerimientos Verificación
Funciones las funciones evidentes al evidentes al contable Analistas
Evidentes usuario El límite a 1 Absoluto Revisión
del producto usuario y A = contable Diseño
son evidentes comprar con es el mejor. colectiva
B = contable Reporte de
al usuario? el número
total de B = número revisión
funciones. total de
funciones (o
tipo de
funciones).
63
X=A/B
Contar el
número de A=Número de
mensajes mensajes
La
¿Qué implementados llevados a 0 <= X <= 1
X=contable / especificación
proporción del con cabo con Comprobación Diseñadores
Claridad del contable de Requisitos
mensaje es explicaciones explicaciones El más cercano Absoluto Revisión
mensaje A= contable Diseño Analistas
auto claras y claras. a 1, el más colectiva
B= contable Informe de
explicativo? comparar con el claro.
revisión
número total de B= Número de
mensajes mensajes
implementados. llevados a
cabo
X=A/B
Contar el
número de
A=Número de
funciones
funciones
¿Qué implementadas
implementadas La
proporción que toleran
con tolerancia 0 <= X <= 1 X=contable / especificación
Recuperabilidad de funciones errores de Comprobación Diseñadores
de error de El más cercano contable de Requisitos
de error pueden usuarios y Absoluto Revisión
usuarios. a 1, el más A= contable Diseño Analistas
operacional tolerar comparar con colectiva
recuperable. B= contable Informe de
errores de el número total
B=Número total revisión
usuario? de funciones
de funciones
requeridas que
requeridas con
tiene
capacidad de
capacidad
tolerancia.
de tolerancia.
64
Contar el X=A/B
número de
estructuras de A=Número de
datos que son estructuras de
operables y no datos que son
tienen ninguna operables y no
limitación tienen ninguna
¿Cuán después de la limitación La
0 <= X <= 1
Adaptabilidad adaptable es adaptación y después de la X=contable / especificación
Comprobación Diseñadores
de la el producto a comparar con adaptación, contable de Requisitos
El más Absoluto Revisión
estructura de los cambios de el número total conformada la A= contable Diseño Analistas
cercano a 1. colectiva
datos estructura de de estructuras revisión B= contable Informe de
Es el mejor
datos? de datos que revisión
requieren B=Número
capacidad de total
adaptación. de estructuras
de datos que
requieren
capacidad de
adaptación
4
http://www.lisi.usb.ve
66
3.2.3.1.1. Introducción
El propósito de realizar el Plan es el de definir cada una de las actividades a
ejecutarse en la evaluación de la herramienta EVAC, especificar los objetivos para
los cuales se realiza la evaluación, identificar las características de calidad a ser
utilizadas, determinar la lista de prioridades en base a los componentes del
producto de software, se definirá los recursos humanos, técnicos y administrativos
a utilizarse para la evaluación de la calidad de la aplicación, realizar un
cronograma de actividades (carta Gantt) en el cual se definirá el tiempo empleado
para cumplir cada una de las actividades para ejecutar la evaluación, definir la
técnica, procedimiento y herramientas a utilizar para llevar a cabo la evaluación,
finalmente especificar las fórmulas para la sumarización de subcaracterísticas y
características según la norma ISO/IEC 14598-6 para su posterior análisis.
3.2.3.1.2. Objetivos
ITEM PRIORIDAD
3.2.3.1.6. Recursos
RECURSO VALOR
HUMANO 800
TECNICO 31.6
ADMINISTRATVO 264.75
TOTAL 1096.35
3 % IMPREVISTOS 32.89
15 % UTILIDAD 164.45
3.2.3.1.7. Cronograma
TAREA RESPONSABLE
Documentación Evaluador
TAREA RESPONSABLE
x Examinador de Objetos
x Vista de Clases
x Ir a referencia
x Esquematización (Colapsar rutina o clase)
x Comando Buscar
71
CARACTERÍSTICA: FIABILIDAD
NUEVO
public void newFile(final int x,final int y)
ABRIR
public String openFile()
//Si no existe el archivo .C que se desea abrir
if (extFile.equals(".C")||extFile.equals(".c")) {
if (!selected.exists()) {
JOptionPane.showMessageDialog(frameEvac,
"File " +nameCurrentFile+" does not exist",
"Information",
JOptionPane.ERROR_MESSAGE); }
else {
//Si desea abrir un archivo que no sea .C
JOptionPane.showMessageDialog(frameEvac,
"Only allows to open files written in C ",
"Information",
JOptionPane.ERROR_MESSAGE);
}
CERRAR
public int exitFile(String codeSourceB, String codeSourceE, String pathCloseF, String nameCloseF)
GUARDAR
public boolean saveFile(String nameSaveF, String pathSaveF, String codeSourceES)
try {…
}
catch (IOException e) {
JOptionPane.showMessageDialog(frameEvac,"It did not save the changes of the file "+nameSaveF,
"Error",JOptionPane.ERROR_MESSAGE);}
GUARDAR COMO
public boolean saveAsFile(String pathSaveAsF, String codeSourceSave)
try {…
}
catch (SecurityException e) {
73
EVALUAR CALIDAD
Parser
public int evaluateQualityCC(String path, GraphStructure graphStructure)
this.codErrParser= parser.evaluateQualityCC(path,graphStructure);
Registra Flujo
public int markPath(GraphStructure graphStructure,ArrayList listNode, int node) //No Cumple//
managerGraph.markPath(graphStructure,listNodes,1);
Registra Diagrama
public int[] fillMatrix(GraphStructure graphStructure,int[][] matrix, int node, int x, int y2, int m, boolean
incremental, int space) //No Cumple//
managerGraph.fillMatrix(graphStructure,matrix,0,0,0,lenthMatrix*3,true,5);
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 3 8
A 1 1 1 1 1 1 6
A B X
6 8 0,75
FUNCIONALIDAD
FIABILIDAD
USABILIDAD
Operabilidad
Recuperabilidad de error
1
operacional
PORTABILIDAD
Adaptabilidad de la estructura
Adaptabilidad 1
de datos
FUNCIONALIDAD
FIABILIDAD
USABILIDAD
Operabilidad
Recuperabilidad de error
1
operacional
PORTABILIDAD
Adaptabilidad de la estructura
Adaptabilidad 1
de datos
CARACTERISTICA: FUNCIONALIDAD
A B X CRITERIO
10 10 1,00 ACEPTABLE
76
CARACTERISTICA: FIABILIDAD
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 3 8
A 1 1 1 1 1 1 6
A B X CRITERIO
6 8 0,75 ACEPTABLE
CARACTERISTICA: USABILIDAD
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 1 6
A 1 1 1 1 1 1 6
A B X CRITERIO
6 6 1,00 ACEPTABLE
SUBCARACTERISTICA: Operabilidad
A B X CRITERIO
7 7 1,00 ACEPTABLE
A B X CRITERIO
3 3 1,00 ACEPTABLE
CARACTERISTICA: PORTABILIDAD
SUBCARACTERISTICA: Adaptabilidad
A B X CRITERIO
2 2 1.00 ACEPTABLE
77
CARACTERISTICA: FUNCIONALIDAD
A B X CRITERIO
6 6 1,00 ACEPTABLE
CARACTERISTICA: FIABILIDAD
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X CRITERIO
2 2 1,00 ACEPTABLE
CARACTERISTICA: USABILIDAD
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X CRITERIO
2 2 1,00 ACEPTABLE
78
SUBCARACTERISTICA: Operabilidad
A B X CRITERIO
3 3 1,00 ACEPTABLE
A B X CRITERIO
2 2 1,00 ACEPTABLE
CARACTERISTICA: PORTABILIDAD
SUBCARACTERISTICA: Adaptabilidad
A B X CRITERIO
2 2 1.00 ACEPTABLE
Cumplimiento de la Cumplimiento de la
FUNCIONALIDAD 1.00 1.00 1.00
Funcionalidad Funcionalidad
Anulación de
FIABILIDAD Tolerancia a Fallas Operaciones 0.87 0.87 0.87
Incorrectas
Recuperabilidad de
1.00
error operacional
Adaptabilidad de la
PORTABILIDAD Adaptabilidad 1 1 1
Estructura de Datos
Tabla 3.8 Sumarización de los datos obtenidos de las métricas aplicadas a la herramienta EVAC
m=Valor de métrica Vsc= Valor de Subcaracterística Vc= Valor de Característica
Fuente: La autora
4.1. CONCLUSIONES
4.2. RECOMENDACIONES
REFERENCIAS BIBLIOGRÁFICAS
LIBROS Y MANUALES
[3] CARRILLO, BRITO. Evaluación De La Calidad Del Código Fuente En Base A Las
Normas Iso/Iec 9126, Iso/Iec 14598. Escuela Politécnica Nacional. Facultad de
Ingeniería de sistemas. 2005
DIRECCIONES ELECTRÓNICAS
www.cs.man.ac.uk/~velascop/publ/Tesis.pdf, 2006.
www.it.uc3m.es/ttrd/material/05-pruebas-de-programas.pdf, 2007.
http://www.sel.unsl.edu.ar/licenciatura/ingsoft1/Apuntes/2007/teoria7.pdf, 2007.
INTRODUCCIÓN
PROPÓSITO
ALCANCE
Cabe recalcar que el analizador (o parser) es solo a nivel léxico y sintáctico, mas
no semántico. Esto quiere decir, por ejemplo, que el analizador no se encarga de
verificar que las funciones que estén escritas (o desarrolladas), se hayan
declarado al inicio, o que siempre exista la función main, que existan librerías, etc.
SITUACIÓN
DECLARACIÓN DE PROBLEMA
El problema de Generar programas sin una estructura lógica óptima.
Afecta En gran medida a los sistemas computacionales, por el alto
consumo de
sus recursos, como la memoria, el espacio en disco, etc; y
a los programas en si por no ser de fácil mantenimiento.
De lo cual La insatisfacción por parte del usuario en el uso de estos
el impacto programas, debido a su tiempo de respuesta tardía y difícil
es mantenimiento.
Una La creación de una herramienta que permita evaluar la
soluci calidad del código fuente, indicando el nivel de
ón satisfactoria complejidad y su estructura lógica, para saber de que
sería manera se puede mejorar el programa.
90
Usuario
ASUNCIONES Y DEPENDENCIAS
RESTRICCIONES
<<include>>
FLUJO DE EVENTOS
Flujo básico
x Dar clic en Archivo.
x Elegir la opción Nuevo.
Flujos alternativos
x No existe flujo alternativo.
PRECONDICIONES
x No existen precondiciones.
POSCONDICIONES
x No existen poscondiciones.
98
<<extend>>
<<include>>
<<include>>
<<extend>>
Guardar Archivo Guardar Como Archivo
(from Use-Case Model)
(from Use-Case Model)
FLUJO DE EVENTOS
Flujo básico
modificado.
x Seleccionar el path y dar clic en botón “Abrir”.
Segundo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
x Clic en el botón “No”, para no guardar los cambios del archivo abierto
modificado.
x Seleccionar un archivo, dar clic en botón “Abrir”.
Tercer flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
x Clic en el botón “Si”, para guardar el nuevo archivo.
x Seleccionar un path, darle un nombre al archivo, clic en el botón “Guardar”.
x Seleccionar el archivo, dar clic en botón “Abrir”.
Cuarto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
x Clic en el botón “No”, para no guardar el nuevo archivo.
x Seleccionar el archivo, dar clic en botón “Abrir”.
Quinto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
x Clic en el botón “Si”, para guardar los cambios del reporte.
x Seleccionar el archivo, dar clic en botón “Abrir”.
Sexto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
x Clic en el botón “No”, para no guardar los cambios del reporte.
x Seleccionar el archivo, dar clic en botón “Abrir”.
Séptimo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Abrir.
10
0
PRECONDICIONES
x Ningún archivo abierto anteriormente.
x Tener un archivo abierto (tiene path) sin modificaciones.
x Tener un archivo abierto (tiene path) con modificaciones y si guardar los
cambios.
x Tener un archivo abierto (tiene path) con modificaciones y no guardar los
cambios.
x Tener un archivo nuevo editado (no tiene path) y si guardar los cambios.
x Tener un archivo nuevo editado (no tiene path) y no guardar los cambios.
x Tener un reporte que ya tiene path y ha sido actualizado (regenerado
porque su código fuente fue evaluado de nuevo) y si guardar los cambios.
x Tener un reporte que ya tiene path y ha sido actualizado (regenerado
porque su código fuente fue evaluado de nuevo) y no guardar los cambios.
x Tener un reporte nuevo (no tiene path) y si guardarlo.
x Tener un reporte nuevo (no tiene path) y no guardarlo.
POSCONDICIONES
x No existen poscondiciones.
10
1
<<extend>>
<<include>>
<<extend>>
FLUJO DE EVENTOS
Flujo básico
x Dar clic en Archivo.
x Elegir la opción Cerrar.
Flujos alternativos
Primer flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “Si”, para guardar los cambios del archivo abierto
modificado.
Segundo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
100
x Clic en el botón “No”, para no guardar los cambios del archivo abierto
modificado.
Tercer flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “Si”, para guardar el nuevo archivo.
x Seleccionar un path, darle un nombre al archivo, clic en el botón “Guardar”.
Cuarto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “No”, para no guardar el nuevo archivo.
Quinto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “Si”, para guardar los cambios del reporte.
Sexto flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “No”, para no guardar los cambios del reporte.
Séptimo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “Si”, para guardar el nuevo reporte.
x Seleccionar un path para el reporte, dar clic en el botón “Guardar”.
Octavo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Cerrar.
x Clic en el botón “No”, para no guardar el nuevo reporte.
PRECONDICIONES
x Archivo abierto (tiene path) sin modificaciones.
x Archivo abierto (tiene path) con modificaciones y si guardar los cambios.
101
POSCONDICIONES
x No existen poscondiciones.
102
<<include>>
<<extend>>
<<include>>
Filtrar Archivos Guardar Como Archivo
(from Use-Case Model)
FLUJO DE EVENTOS
Flujo básico
x Clic en Archivo.
x Elegir la opción Guardar.
Flujos alternativos
Primer flujo alternativo
x Clic en Archivo.
x Elegir la opción Guardar.
x Seleccionar path y darle un nombre al nuevo archivo, clic en el botón
“Guardar”.
PRECONDICIONES
x Archivo abierto con o sin modificaciones
x Archivo nuevo editado o no.
POSCONDICIONES
x No existen poscondiciones.
103
Guardar Archivo
Administrar Archivo
Usuario
<<include>> (from Use-Case Model)
(from Business Use-Case Model )
(f rom Business Use-Case Model)
<<include>>
<<include>>
Filtrar Archivos Guardar Como Archivo
(from Use-Case Model)
FLUJO DE EVENTOS
Flujo básico
x Clic en Archivo.
x Elegir la opción Guardar Como.
x Seleccionar un path, darle un nombre y dar clic en el botón “Guardar”.
Flujos alternativos
x No existen flujos alternativos
PRECONDICIONES
x No existen precondiciones.
POSCONDICIONES
x No existen poscondiciones.
104
Administrar Archivo Evaluar Calidad Archivo Analizar Lexico-Sintaxis Archivo Estructurar Grafo CC
Usuario
(from Business Use-Case Model ) (from Use-Case Model)
(f rom Business Use- ...)
<<include>>
<<include>>
<<extend>>
<<include>>
<<include>>
<<extend>>
FLUJO DE EVENTOS
Flujo básico
x Dar clic en Archivo.
x Elegir la opción Evaluar Calidad.
Flujos alternativos
Primer flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Evaluar Calidad.
x Clic en el botón “Si”, para guardar los cambios del archivo abierto
modificado.
Segundo flujo alternativo
x Dar clic en Archivo.
x Elegir la opción Evaluar Calidad.
x Clic en el botón “No”, para no guardar los cambios del archivo abierto
modificado.
105
PRECONDICIONES
x Archivo abierto (tiene path) sin modificaciones.
x Archivo abierto (tiene path) con modificaciones y si guardar los cambios.
x Archivo abierto (tiene path) con modificaciones y no guardar los cambios.
x Archivo nuevo editado (no tiene path) y si guardar los cambios.
x Archivo nuevo editado (no tiene path) y no guardar los cambios.
POSCONDICIONES
x No existen poscondiciones.
106
<<include>>
<<extend>>
<<include>>
FLUJO DE EVENTOS
Flujo básico
x Dar clic en Reporte.
x Elegir la opción Guardar.
Flujos alternativos
Primer flujo alternativo
x Clic en Reporte.
x Elegir la opción Guardar.
x Seleccionar un path, darle un nombre al nuevo reporte, clic en el botón
“Guardar”.
PRECONDICIONES
x Reporte que ya tiene path, este o no modificado.
x Reporte nuevo (no tiene path).
POSCONDICIONES
x No existen poscondiciones.
107
<<include>>
<<include>>
FLUJO DE EVENTOS
Flujo básico
x Clic en Reporte.
x Elegir la opción Guardar Como.
x Seleccionar un path, darle un nombre al reporte y dar clic en el botón
“Guardar”.
Flujos alternativos
x No existen flujos alternativos.
PRECONDICIONES
x Archivo correctamente evaluado.
POSCONDICIONES
x No existen poscondiciones.
108
Estereotipo Descripción
ABSTRACCIONES CLAVE
En base a los requerimientos funcionales del Documento de Especificación de
Requerimientos (Anexo A) se determinaron las siguientes clases entidad:
Flujo Grafo
(f rom Abstracciones) Estructura Grafo
(f rom Abstracciones)
nodoInicial
nodoFinal sentenciaControl
sentenciaControl nombreFuncion
grafoEstructura
Obtener ArrayList Flujo()
Llenar ArrayList Flujo() Obtener ArrayList Estructura()
Llenar ArrayList Estructura()
Clase Descripción
ELEMENTOS DE ANÁLISIS
Para los casos de uso Administrar Archivo y Administrar Reporte se definen dos
tipos de clases de análisis que corresponden a los estereotipos <<boundary>> y
<<control>> (Tabla 3).
Filtro Archivos
Gestión Grafo
Filtro Archivos
HerramientaUI
codigoFuente
matrizUbicacionNodos
sentenciasControlNodos
valorComplejidadCiclomatica
flujoGrafo
Gestion Archivo
Objeto Gestion Grafo
Gestion Grafo
Estructura Grafo
Flujo Grafo
(f rom Abstracciones)
(f rom Abstracciones)
sentenciaControl
nodoInicial
nombreFuncion
nodoFinal
grafoEstructura
sentenciaControl
Obtener ArrayList Estructura()
Llenar ArrayList Flujo()
Llenar ArrayList Estructura()
HerramientaUI
(f rom Clases Archiv o)
codigoFuente
matrizUbicacionNodos
sentenciasControlNodos
valorCom plejidadCiclomatica
flujoGrafo Gestion Reporte Filtro Archivos
(f rom Clases Archiv o)
HARDWARE
x Pentium IV 2.40 GHz
x 512 MB de memoria RAM
SOFTWARE
x Windows XP Home
ABREVIACIONES
CC = Complejidad Ciclomática
LDC = Líneas de código
PRUEBA DE RESISTENCIA
Las pruebas de resistencia están diseñadas para enfrentar a los programas con
situaciones anormales.
Datos de Entrada
Nombre del Archivo Líneas de Complejidad
Código Ciclomática
Brick Game.c 420 57
Análisis de resultados
Tiempo de Tamaño
Evaluación memoria
(seg) RAM (MB)
749,427 800
844.965 750
894.756 700
918.536 675
121
Falló 650
Falló 600
950.00
900.00
Tiempo Ejecución (s)
850.00
800.00
750.00
700.00
660 680 700 720 740 760 780 800 820
Tamaño RAM (MB)
Datos de Entrada
Análisis de resultados
functions.c
Tree manipulation and traversing.c 47 9 0,36
Display a date.c 58 16 0,36
Week Calculation.c 68 20 0,861
BUSCADOR_DE _CARACTERES.C 91 16 0,681
124
30
25
20
Tiempo (s)
15
10
5
0
-5 0 50 100 150 200 250
Líneas de Código
30
25
20
Tiempo (s)
15
10
5
0
-5 0 5 10 15 20 25 30 35 40
Complejidad Ciclomática
evaluación, es decir, entre mayor sea el número de CC mayor será el tiempo que
se utilicen los recursos de hardware.
LDC vs. CC
40
Complejidad Ciclomática
35
30
25
20
15
10
5
0
0 50 100 150 200 250
Líneas de Código
Para los recursos humanos se indica el rol, cantidad, su costo, tiempo y total.
Para el caso de los recursos técnicos (hardware, software, comunicaciones) se
tendrá la columna ítem, cantidad, descripción, costo total, tiempo de vida, el índice
de prorrateo, y su valor luego del prorrateo. Se realizará una tabla resumen de los
tres recursos técnicos. Para el caso de los recursos administrativos se tendrán las
mismas columnas que en los recursos técnicos, de igual forma se realizará una
tabla resumen de cada uno de los recursos.
Finalmente se tendrá una tabla resumen en la que se indica los valores de todos
los recursos utilizados y el costo final del proyecto.
RECURSOS HUMANOS
TIEMPO
TOTAL(cantidad*costo/mes*tiempo
ROL CANTIDAD COSTO/MES TRABAJO
de trabajo)
(meses)
800 USD
TOTAL
127
RECURSOS TECNICOS
PRORRATEO VALOR
TIEMPO
COSTO (meses de (cantidad*costo
ITEM CANTIDAD DESCRIPCION VIDA
UNITARIO proyecto / unitario
(meses)
tiempo vida) *prorrateo)
Pentium IV
1.5GH
Estación 1 400 24 0.04 16
256 RAM
80 GB (HD)
Impresora
1 HP Injet 150 24 0.04 6
(Inyección)
TOTAL 22 USD
PRORRATEO VALOR
TIEMPO
COSTO (meses de (cantidad*costo
ITEM CANTIDAD DESCRIPCION VIDA
UNITARIO proyecto / unitario
(meses) *prorrateo)
tiempo vida)
Sistema
Windows XP
Operativo 1 70 24 0.04 2.8
Professional
estación
Microsoft
Office 2 170 24 0.04 6.8
Office 2003
RECURSO VALOR
Hardware 22
Software 9.6
RECURSOS ADMINISTRATIVOS
COSTO
ITEM DESCRIPCION COSTO/MES (costo/mes*tiempo de
proyecto)
Internet Ilimitado 35 35
VALOR
PRORRATE
TIEMPO (cantidad*c
COSTO O (meses de
ITEM CANTIDAD DESCRIPCION VIDA osto
UNITARIO proyecto /
(meses) unitario
tiempo vida)
*prorrateo)
COSTO VALOR
ITEM CANTIDAD DESCRIPCION (cantidad*costo
UNITARIO
unitario)
Cartuchos 1 HP 35 35
TOTAL 53 USD
COSTO VALOR
ITEM CANTIDAD DESCRIPCION (cantidad*costo
UNITARIO
unitario)
Escoba 1 - 2 2
COSTO VALOR
ITEM CANTIDAD DESCRIPCION (cantidad*costo
UNITARIO
unitario)
RECURSO VALOR
Oficina 80
Servicios 117
Mobiliario 1.75
Suministros 53
Aseo 5.25
Cafetería 7.75
RECURSO VALOR
HUMANO 800
TECNICO 31.6
ADMINISTRATVO 264.75
TOTAL 1096.35
3 % IMPREVISTOS 32.89
15 % UTILIDAD 164.45
CARACTERÍSTICA: FUNCIONALIDAD
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
DISEÑO
CODIGO FUENTE
Existen clases tanto para la capa de presentación y la de negocio pero no para la
capa de datos porque no es un sistema que almene información.
Clases implementadas
public class IEvac //Interface
public class ManagerFile //Negocio
132
RELACIÓN
CODIGO
DISEÑO FUENTE RELACION TOTAL
B 6 2 2 10
A 6 2 2 10
A B X
10 10 1,00
CARACTERISTICA: FIABILIDAD
NUEVO
public void newFile(final int x,final int y)
ABRIR
public String openFile()
//Si no existe el archivo .C que se desea abrir
if (extFile.equals(".C")||extFile.equals(".c")) {
if (!selected.exists()) {
JOptionPane.showMessageDialog(frameEvac,
"File " +nameCurrentFile+" does not exist",
"Information",
JOptionPane.ERROR_MESSAGE); }
else {
//Si desea abrir un archivo que no sea .C
JOptionPane.showMessageDialog(frameEvac,
"Only allows to open files written in C ",
133
"Information",
JOptionPane.ERROR_MESSAGE);
}
CERRAR
public int exitFile(String codeSourceB, String codeSourceE, String pathCloseF, String nameCloseF)
GUARDAR
public boolean saveFile(String nameSaveF, String pathSaveF, String codeSourceES)
try {…
}
catch (IOException e) {
JOptionPane.showMessageDialog(frameEvac,"It did not save the changes of the file "+nameSaveF,
"Error",JOptionPane.ERROR_MESSAGE);}
GUARDAR COMO
public boolean saveAsFile(String pathSaveAsF, String codeSourceSave)
try {…
}
catch (SecurityException e) {
JOptionPane.showMessageDialog(frameEvac,"Error of access to the directory "+currentLocation,
"Error",JOptionPane.ERROR_MESSAGE);}
EVALUAR CALIDAD
Parser
public int evaluateQualityCC(String path, GraphStructure graphStructure)
this.codErrParser= parser.evaluateQualityCC(path,graphStructure);
Registra Flujo
public int markPath(GraphStructure graphStructure,ArrayList listNode, int node) //No Cumple//
managerGraph.markPath(graphStructure,listNodes,1);
Registra Diagrama
public int[] fillMatrix(GraphStructure graphStructure,int[][] matrix, int node, int x, int y2, int m, boolean
incremental, int space) //No Cumple//
managerGraph.fillMatrix(graphStructure,matrix,0,0,0,lenthMatrix*3,true,5);
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 3 8
A 1 1 1 1 1 1 6
A B X
6 8 0,75
134
CARACTERISTICA: USABILIDAD
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 1 6
A 1 1 1 1 1 1 6
A B X
6 6 1,00
Subcaracterística: operabilidad
Métrica: claridad del mensaje
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
public String openFile()
//No existe el archivo
JOptionPane.showMessageDialog(frameEvac,
135
public int exitFile(String codeSourceB, String codeSourceE, String pathCloseF, String nameCloseF)
//Desea almacenar los cambios
JOptionPane.showConfirmDialog(frameEvac,
"Do you want to save the changes of "+ nameCloseF,
"EVAC",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
A B X
7 7 1,00
Subcaracterística: operabilidad
Métrica: recuperabilidad del error operacional
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
A B X
3 3 1,00
CARACTERISTICA: PORTABILIDAD
Subcaracterística: Adaptabilidad
Métrica: Adaptabilidad De La Estructura De Datos
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
A B X
1 1 1,00
137
CARACTERÍSTICA: FUNCIONALIDAD
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
DISEÑO
CODIGO FUENTE
Existen clases tanto para la capa de presentación y la de negocio pero no para la
capa de datos porque no es un sistema que almene información.
Clases implementadas
public class IEvac
public class ManagerReport
138
RELACIÓN
Se refiere al cumplimiento del diseño y del código fuente con respecto al
cumplimiento de la funcionalidad
CODIGO
DISEÑO FUENTE RELACION TOTAL
B 2 2 2 6
A 2 2 2 6
A B X
6 6 1,00
CARACTERISTICA: FIABILIDAD
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
GUARDAR
public boolean saveReport(String nameReport,String pathReport, String informationR, BufferedImage
bufferedImage)
if (pathReport==null){
return saveAsReport(nameReport,informationR,bufferedImage);
} else{}
GUARDAR COMO
public boolean saveAsReport(String pathReport, String informationR, BufferedImage bufferedImage)
if (fileS.exists()){…}
else{…}
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X
2 2 1,00
139
CARACTERISTICA: USABILIDAD
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
public boolean saveReport(String nameReport,String pathReport, String informationR, BufferedImage
bufferedImage)
public boolean saveAsReport(String pathReport, String informationR, BufferedImage bufferedImage)
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X
2 2 1,00
Subcaracterística: operabilidad
Métrica: claridad del mensaje
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
"Error",JOptionPane.ERROR_MESSAGE);
//Error al acceder al directorio
JOptionPane.showMessageDialog(null,"Error of access to the directory "+currentLocation,
"Error",JOptionPane.ERROR_MESSAGE);
//Desea reemplazar el archivo existente
JOptionPane.showConfirmDialog(null,"Do you want to replace the file exists "+nameR,
"EVAC", JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
A B X
3 3 1,00
Subcaracterística: operabilidad
Métrica: recuperabilidad del error operacional
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
A B X
2 2 1,00
CARACTERISTICA: PORTABILIDAD
Subcaracterística: Adaptabilidad
Métrica: Adaptabilidad De La Estructura De Datos
El código fuente (clases implementadas) que se utilizó para realizar los cálculos
de las diferentes métricas seleccionadas se presentan a continuación:
A B X
1 1 1,00
142
CARACTERISTICA: FUNCIONALIDAD
A B X CRITERIO
10 10 1,00 ACEPTABLE
CARACTERISTICA: FIABILIDAD
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 3 8
A 1 1 1 1 1 1 6
A B X CRITERIO
6 8 0,75 ACEPTABLE
CARACTERISTICA: USABILIDAD
GUARDAR EVALUAR
NUEVO ABRIR CERRAR GUARDAR COMO CALIDAD TOTAL
B 1 1 1 1 1 1 6
A 1 1 1 1 1 1 6
143
A B X CRITERIO
6 6 1,00 ACEPTABLE
SUBCARACTERISTICA: Operabilidad
A B X CRITERIO
7 7 1,00 ACEPTABLE
A B X CRITERIO
3 3 1,00 ACEPTABLE
CARACTERISTICA: PORTABILIDAD
SUBCARACTERISTICA: Adaptabilidad
A B X CRITERIO
2 2 1.00 ACEPTABLE
CARACTERISTICA: FUNCIONALIDAD
A B X CRITERIO
6 6 1,00 ACEPTABLE
CARACTERISTICA: FIABILIDAD
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X CRITERIO
2 2 1,00 ACEPTABLE
CARACTERISTICA: USABILIDAD
GUARDAR
GUARDAR COMO TOTAL
B 1 1 2
A 1 1 2
A B X CRITERIO
2 2 1,00 ACEPTABLE
SUBCARACTERISTICA: Operabilidad
A B X CRITERIO
3 3 1,00 ACEPTABLE
A B X CRITERIO
2 2 1,00 ACEPTABLE
CARACTERISTICA: PORTABILIDAD
SUBCARACTERISTICA: Adaptabilidad
A B X CRITERIO
2 2 1.00 ACEPTABLE
145
a) Prólogo e Introducción
Prólogo
La aplicación a ser evaluada es EVAC, la cual permite evaluar la calidad del
código fuente generado en C ANSI en base a la utilización de la métrica de
complejidad ciclomática.
Introducción
b) Alcance
Características
Cumplimiento de la Cumplimiento de la
FUNCIONALIDAD
Funcionalidad Funcionalidad
Anulación de Operación
FIABILIDAD Tolerancia a Fallas
Incorrecta
Recuperabilidad de error
operacional
Adaptabilidad de la estructura
PORTABILIDAD Adaptabilidad
de datos
Nivel de evaluación
Técnicas
x Examinador de Objetos
x Vista de Clases
x Ir a referencia
x Esquematización (Colapsar rutina o clase)
x Comando Buscar
Aplicabilidad
El propósito de la evaluación es determinar la calidad del código fuente de la
aplicación EVAC desarrollado en lenguaje JAVA, usando métricas de las normas
internacionales ISO/IEC 9126 e ISO/IEC 14598
147
c) Referencias
d) Términos y Definiciones
[5] CARRILLO, BRITO. Evaluación De La Calidad Del Código Fuente En Base A Las Normas Iso/Iec 9126, Iso/Iec 14598.
2005.
148
e) Entradas y Métricas
Métricas y medidas
¦m
Vsc ; donde: Vsc=Valor de subcaracterística, m= Valor de Métrica y n= número de métricas.
n
f) Interpretación de Resultados
Mapeo de medidas
Informes
SUMARIZACIÓN DE SUBCARACTERÍSTICAS
FUNCIONALIDAD
FIABILIDAD
USABILIDAD
PORTABILIDAD
SUMARIZACIÓN DE CARACTERÍSTICAS
Se refiere a los tipos de niveles existentes para los diferentes aspectos cuando se
realiza evaluación.
Desastre
Protección de Daño
Muchas personas financiero
A datos estratégicos medioambiental
muertas (Compañía no
y servicios. irrecuperable.
puede sobrevivir)
Grandes pérdidas
Protección de
Amenaza a las económicas Recuperable daño
B datos críticos y
vidas humanas (Compañía medioambiental.
servicios.
comprometida)
Pérdidas
Daño a la económicas
Protección contra
C propiedad, pocas significantes Contaminación local.
riesgo del error.
personas heridas (Compañía
afectada)
Pequeños daños a
Pérdidas Ningún riesgo
la propiedad, sin Ningún riesgo
D económicas específico
riesgos a las medioambiental
despreciables identificado.
personas.