Disec3b1o de Software Unidad 5 Metricas
Disec3b1o de Software Unidad 5 Metricas
Disec3b1o de Software Unidad 5 Metricas
Estándares de Diseño
1. Métricas del diseño.
2. Análisis formal del diseño.
3. Técnicas de reingeniería e Ingeniería de reverso.
4. Estándares de calidad.
5. Herramientas Case
INTRODUCCIÓN
Permiten medir de forma cuantitativa la calidad de los atributos internos del software.
Esto permite al ingeniero evaluar la calidad durante el desarrollo del sistema.
Generalidades.
Son varios los puntos de vista relacionados con la calidad del software. Las métricas de
diseño a nivel de componentes se concentran en las características internas de los
componentes del software con medidas que pueden ayudar al desarrollador a juzgar la
calidad de un diseño a nivel de componente.
Está dado por el número de métodos asignados a una clase y evalúa los siguientes
atributos de calidad:
Reutilización: Un aumento del TOC implica una disminución del grado de reutilización
de la clase. Relaciones entre clases (RC) Está dado por el número de relaciones de uso de
una clase con otra y evalúa los siguientes atributos de calidad:
La transición entre las fases de análisis y diseño en la orientación al objeto es mucho más
suave que en las metodologías estructuradas, no habiendo tanta diferencia entre las
etapas. Es difícil determinar dónde acaba el AOO y donde comienza el DOO, siendo la
frontera entre el AOO y DOO totalmente inconsistente, de forma que lo que algunos
autores incluyen en el AOO otros lo hacen en el DOO.
Según Monarchi, los objetos del dominio del problema representan cosas o conceptos
utilizados para describir el problema, denominándose objetos semánticos porque ellos
tienen el significado del dominio del problema. El análisis se centra en la representación
del problema, la identificación de las abstracciones que tienen el significado de las
especificaciones y de los requisitos del sistema. El énfasis del diseño está en definir la
solución. Las clases semánticas pueden ser extendidas durante el análisis o el diseño. Los
objetos del dominio de la solución incluyen: objetos de interfaz, objetos de aplicación y
objetos base o de utilidad. Estos no forman parte directamente de los objetos del dominio
problema, pero representan la vista del usuario de los objetos semánticos.
Se puede definir AOO como el proceso que modela el dominio del problema identificando
y especificando un conjunto de objetos semánticos que interaccionan y se comportan de
acuerdo a los requisitos del sistema. Se puede definir DOO como el proceso que modela el
dominio de la solución, lo que incluye a las clases semánticas con posibles añadidos, y las
clases de interfaz, aplicación y utilidad identificadas durante el diseño.
El AOO y el DOO no deben separarse en fases muy separadas, siendo recomendable
llevarlas a cabo concurrentemente, así el modelo de análisis no puede completarse en
ausencia de un modelo de diseño, ni viceversa.
Uno de los aspectos más importantes de ADOO es la sinergia entre los dos conceptos.
Restructuración de Datos: Esto es reversar el modelo físico al modelo lógico para obtener
el modelo de E-R de la base de datos, recuperando el diccionario de datos, atributos,
entidades, dominios, cardinalidad, etc, la mayoría de las herramientas CASE del mercado
cumplen con esta función.
Restructuración de Código: Llevar a cabo esta actividad requiere analizar el código fuente
empleando una herramienta de restructuración, de no tener el código fuente disponible
puede aplicarse ingeniería inversa sobre el compilado para obtener el código fuente
original siempre y cuando la licencia del software lo permita, inmediatamente se indican
las violaciones de las estructuras de programación estructurada u orientada a objetos, y
entonces se restructurar el código (esto se puede hacer automáticamente). El código
restructurado resultante se revisa y se comprueba para asegurar que no se hayan
introducido anomalías. Se actualiza la documentación interna del código
Los requisitos del software son la base de las medidas de calidad. La falta de concordancia
con los requisitos es una falta de calidad. Los estándares o metodologías definen un
conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del
software. Si no se sigue ninguna metodología siempre habrá falta de calidad.
La política establecida debe estar sustentada sobre tres principios básicos: tecnológico,
administrativo y ergonómico.
La adopción de una buena política contribuye en gran medida a lograr la calidad del
software, pero no la asegura. Para el aseguramiento de la calidad es necesario su control o
evaluación.
Aseguramiento de la calidad:
El control de la calidad
Se debe conocer:
En general, se puede decir que el control de de la calidad del software son las actividades
para evaluar la calidad de los productos desarrollados.
Las estrategias de trabajo se representan como sigue:
El estándar, que ha sido adoptado por más de 130 países para su uso, se está
convirtiendo en el medio principal con el que los clientes pueden juzgar la competencia de
un desarrollador de software. Uno de los problemas con el estándar ISO 9001 está en que
no es específico de la industria: está expresado en términos generales, y puede ser
interpretado por los desarrolladores de diversos productos como cojinetes de bolas,
secadores de pelo, automóviles, equipamiento deportivo, televisores, así como por los
desarrolladores de software. Se han realzado muchos documentos que relacionan el
estándar con la industria del software, pero no entran en una gran cantidad de detalles.
• ISO 9001: este es un estándar que describe el sistema de calidad utilizado para
mantener el desarrollo de un producto que implique diseño.
• ISO 9000-3: este es un documento específico que interpreta el ISO 9001 para el
desarrollador de software.
• ISO 9004-2: este documento proporciona las directrices para el servicio de facilidades
del software como soporte de usuarios.
• Responsabilidad de la gestión
• Sistema de calidad
• Revisión de contrato
• Acción correctiva
• Control de diseño
• Control de documento
• Compras
• Registros de calidad
• Formación
• Servicios
• Técnicas estadísticas.
Factores de calidad ISO 9126
El estándar ISO 9126 ha sido desarrollado en un intento de identificar los atributos clave
de calidad para el software. El estándar identifica 6 atributos clave de calidad:
• Funcionalidad: el grado en que el software satisface las necesidades indicadas por los
siguientes subatributos: idoneidad, corrección, interoperatividad, conformidad y
seguridad.
• Confiabilidad: cantidad de tiempo que el software está disponible para su uso. Está
referido por los siguientes subatributos: madurez, tolerancia a fallos y facilidad de
recuperación.
• Usabilidad: grado en que el software es fácil de usar. Viene reflejado por los siguientes
subatributos: facilidad de comprensión, facilidad de aprendizaje y operatividad.
• Eficiencia: grado en que el software hace óptimo el uso de los recursos del sistema. Está
indicado por los siguientes subatributos: tiempo de uso y recursos utilizados.
• Facilidad de mantenimiento: la facilidad con que una modificación puede ser realizada.
Está indicada por los siguientes subatributos: facilidad de análisis, facilidad de cambio,
estabilidad y facilidad de prueba.
• Portabilidad: la facilidad con que el software puede ser llevado de un entorno a otro.
Está referido por los siguientes subatributos: facilidad de instalación, facilidad de ajuste,
facilidad de adaptación al cambio.
• ISO 9001: este es un estándar que describe el sistema de calidad utilizado para
mantener el desarrollo de un producto que implique diseño.
• ISO 9000-3: este es un documento específico que interpreta el ISO 9001 para el
desarrollador de software.
• ISO 9004-2: este documento proporciona las directrices para el servicio de facilidades
del software como soporte de usuarios
Certificación del desarrollo de Software
Esta norma tiene como objetivo la mejora de la gestión de los proyectos en una
organización. Para ello, define una serie de prácticas técnicas y de gestión que deben
adoptarse en los proyectos informáticos para asegurar el cumplimiento de los plazos, los
presupuestos y las exigencias de calidad de los clientes.
Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por
Computadora) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el
desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero.
Estas herramientas pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del
software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos,
implementación de parte del código automáticamente con el diseño dado, compilación
automática, documentación o detección de errores entre otras.
Ya en los años 70 un proyecto llamado ISDOS diseñó un lenguaje y por lo tanto un producto que
analizaba la relación existente entre los requisitos de un problema y las necesidades que éstos
generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la
aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement
Analyzer). Aunque ésos son los inicios de las herramientas informáticas que ayudan a crear nuevos
proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz en el año
1984 y trabajaba bajo una plataforma PC.
Las herramientas CASE alcanzaron su techo a principios de los años 90. En la época en la que IBM
había conseguido una alianza con la empresa de software AD/Cycle para trabajar con sus
mainframes, estos dos gigantes trabajaban con herramientas CASE que abarcaban todo el ciclo de
vida del software. Pero poco a poco los mainframes han ido siendo menos utilizados y
actualmente el mercado de las Big CASE ha muerto completamente abriendo el mercado de
diversas herramientas más específicas para cada fase del ciclo de vida del software.
Objetivos
1. Mejorar la productividad en el desarrollo y mantenimiento del software.
8. Gestión global en todas las fases de desarrollo de software con una misma
herramienta.
Clasificación
Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas
CASE se pueden clasificar teniendo en cuenta los siguientes parámetros:
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
4. Su funcionalidad.
Existen otros nombres que se le dan a este tipo de herramientas, y que no es una
clasificación excluyente entre sí, ni con la anterior:
Editores UML.