Los patrones de diseño son soluciones simples a problemas específicos y comunes del diseño orientado a objetos. Se basan en la experiencia y se ha demostrado que funcionan correctamente. Los diseños serán mucho más flexibles, modulares y reutilizables. Los patrones de diseño permiten reutilizar cierta parte de un software en otros proyectos.
Características Generales de un Patrón de Diseño
En general, un patrón de diseño es:
- Una solución a un problema en un contexto particular.
- Recurrente, lo que hace la solución relevante a otras situaciones.
- Educativo, permite entender cómo adaptarlo a la variante particular del problema donde se quiere aplicar.
- Identificado por un nombre que lo define.
Clasificación de los Patrones de Diseño
Existen 23 patrones de diseño divididos en tres grupos principales según su propósito:
- Patrones de Creación: Expresan esquemas para definir estructuras de diseño (o sus relaciones) con las que construir sistemas de software.
- Patrones Estructurales: Aquellos que expresan un esquema organizativo estructural fundamental para sistemas de software.
- Patrones Funcionales: Patrones de bajo nivel específicos para un lenguaje de programación o entorno concreto.
Atributos de un Buen Patrón de Diseño
Un buen patrón debe tener las siguientes características:
- Resolver un problema: Los patrones capturan soluciones, no sólo principios abstractos o estrategias.
- Ser un concepto probado: Los patrones capturan soluciones con un registro de los pasos a llevar a cabo, no teorías o especulaciones.
- La solución propuesta no es obvia: Los mejores patrones generan una solución a un problema de manera indirecta, una aproximación necesaria para los problemas más difíciles de diseño.
- Describir una relación: Los patrones no sólo describen módulos, sino estructuras y mecanismos del sistema en detalle.
- Tener un componente humano significativo, minimizando así su intervención: El software sirve a la comodidad humana o a la calidad de vida; los mejores patrones explícitamente apelan a la estética y a la utilidad.
Calidad del Software y su Medición
Medición de los Atributos del Diseño
Existen normas como la ISO 9126 (ISO/IEC, 2001), en la cual se establece que la medición de la calidad de un producto software debe realizarse basándose en sus atributos, los cuales pueden ser internos (propiedades características de cómo se estructura el software) o externos (cualidades observables aún sin conocer cómo está construido). En este sentido, en dicha norma no se habla de calidad en general, sino de calidad interna y calidad externa, alegándose que la calidad interna de un producto software interviene directamente en su calidad externa.
Definición de Calidad del Software
La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.
¿Cómo Obtener un Software de Calidad?
La obtención de un software con calidad implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.
Principios Básicos para una Política de Calidad
La política establecida debe estar sustentada sobre tres principios básicos:
- El principio tecnológico define las técnicas a utilizar en el proceso de desarrollo del software.
- El principio administrativo contempla las funciones de planificación y control del desarrollo del software, así como la organización del ambiente o centro de ingeniería de software.
- El principio ergonómico define la interfaz entre el usuario y el ambiente automatizado.
¿Cómo Controlar la Calidad del Software?
Para controlar la calidad del software es necesario, ante todo, definir los parámetros, indicadores o criterios de medición, ya que, como bien plantea Tom De Marco, «usted no puede controlar lo que no se puede medir».
Una vez seleccionados los índices de calidad, se debe establecer el proceso de control, que requiere los siguientes pasos:
- Definir el software que va a ser controlado: clasificación por tipo, esfera de aplicación, complejidad, etc.
- Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores y sus magnitudes.
- Crear o determinar los métodos de valoración de los indicadores: métodos manuales como cuestionarios o encuestas estándares para la medición de criterios periciales y herramientas automatizadas para medir los criterios de cálculo.
- Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados y elaborados, etc.
Características de la Calidad del Software
- Funcionalidad: La capacidad del software de proveer las funciones que cumplen con las necesidades implícitas y explícitas cuando el mismo es utilizado bajo ciertas condiciones.
- Fiabilidad: La capacidad del software de mantener un nivel específico de rendimiento bajo determinadas condiciones de uso.
- Usabilidad: La capacidad del producto software de ser entendido, aprendido, usado y atractivo al usuario, cuando se usa bajo ciertas condiciones.
- Eficiencia: La capacidad del software de ofrecer el rendimiento apropiado con respecto a la cantidad de recursos utilizados, bajo condiciones prefijadas.
- Mantenibilidad: La capacidad del producto de ser modificado. Dichas modificaciones pueden incluir correcciones, mejoras o adaptaciones a cambios en el entorno y en los requisitos y especificaciones funcionales.
- Portabilidad: La capacidad del software de ser trasladado de un entorno (informático) a otro.
Medición del Software
En el software lo que se mide son atributos propios del mismo, se descompone un atributo general en otros más simples de medir. A veces se mide bien o mal, ya que la descomposición del atributo genérico de calidad en otros sub-atributos se torna irreal, se mide con datos estadísticos no avalados, es imposible decir que la medición se hace en forma correcta.
Tipos de Medidas
- Número de errores durante un periodo determinado.
- Fallo en la codificación o diseño de un sistema que causa que el programa no funcione correctamente o falle.
- Tamaño de un producto informático (líneas de código).