Ingeniería del Software de Gestión II Curso 2004/2005
Introducción al diseño
El Camino Cuerpo de conocimiento de la IS Cuerpo de conocimiento del diseño software Atributos y requisitos de calidad Ingeniería del Software de Gestión II 3
Cuerpo de conocimiento de la IS Qué es la IS? F.L. Bauer [1972]: El establecimiento y uso de principios de ingeniería robustos (métodos) para obtener de forma económica software que sea fiable y trabaje en máquinas reales. H. Mills [1980]: la ingeniería del software tiene como uno de sus principales objetivos la producción de programas que cumplan las especificaciones, y que se demuestren correctos, producidos en el plazo y coste adecuados. G. Ford del SEI (Software Engineering Institute, de la Universidad de Carnegie Mellon) [1990]: ingeniería del software es una forma de ingeniería que aplica los principios de la ciencia de los computadores y matemáticas para conseguir soluciones a los problemas del software de forma efectiva y económica. IEEE [1990]: ingeniería del software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir la aplicación de la ingeniería al software. Ingeniería del Software de Gestión II 4
Cuerpo de conocimiento de la IS Es la IS una profesión? Cómo conseguir la profesionalización? Todavía sin cuerpo de conocimiento? Desarrollo de los curricula para Ingeniería del Software Influencia Influencia Consenso sobre el Núcleo del Cuerpo de Conocimiento Influencia Desarrollo de los criterios y exámenes de certificación Desarrollo de los programas de acreditación universitarios Ingeniería del Software de Gestión II 5
Cuerpo de conocimiento de la IS Los estudiantes de una ingeniería de software deben ser capaces de: Trabajar dentro de un grupo para desarrollar y entregar artefactos ejecutables Comprender el proceso de determinar las necesidades del cliente y trasladarlas a los requisitos del software Reconciliar los objetivos en conflicto, encontrar los compromisos aceptables dentro de las limitaciones de coste, tiempo, conocimiento, sistemas existentes y organizaciones Diseñar las soluciones adecuadas en uno o más dominios de aplicación, utilizando los enfoques de ingeniería que integren las preocupaciones éticas, sociales, legales y económicas Comprender y ser capaz de aplicar las teorías actuales, modelos y técnicas que proporcionen la base para el diseño y desarrollo de software Negociar, trabajar de manera efectiva, proporcionar liderazgo cuando sea necesario y comunicarse con los interesados en un entorno de desarrollo típico Aprender nuevos modelos, técnicas y tecnologías según van apareciendo IS de gestión es una especializacion Ingeniería del Software de Gestión II 6
Cuerpo de conocimiento de la IS Cómo afecta al diseño de los planes de estudio? El SEEK identifica 10 áreas de conocimiento CMP. Informática Básica FND. Fundamentos Matemáticos e Ingenieriles PRF. Práctica Profesional MAA. Análisis y Modelado del Software DES. Diseño del Software VAV. Verificación y Validación del Software EVO. Evolución del Software PRO. Proceso del Software QUA. Calidad del Software MGT. Gestión del Software Ingeniería del Software de Gestión II 7
El Camino Cuerpo de conocimiento de la IS Cuerpo de conocimiento del diseño software Atributos y requisitos de calidad Ingeniería del Software de Gestión II 8
Cuerpo de conocimiento del DS Qué es el diseño de un sistema software? L. Fiadeiro [2002] es la organización en módulos/ subsistemas/ componentes / clases u otras unidades; la definición de sus responsabilidades en cuanto al comportamiento y almacenamiento de datos y la definición de las interacciones y colaboraciones entre ellas para satisfacer las funcionalidades requeridas Es difícil diseñar? Programar es divertido, pero desarrollar software de calidad es difícil (Kruchten) Es complejo satisfacer los requisitos no funcionales, en especial, si hay conflictos En ocasiones es más importante el aspecto de la calidad que el aspecto funcional Las técnicas para conseguir la calidad están menos desarrolladas que las utilizadas para conseguir la funcionalidad Ingeniería del Software de Gestión II 9
Cuerpo de conocimiento del DS Caminos posibles durante el desarrollo de un proyecto software Aspectos no funcionales Deseable Previsión de entregas Habitual Aspectos funcionales Ingeniería del Software de Gestión II 10
El Camino Cuerpo de conocimiento de la IS Cuerpo de conocimiento del diseño software Atributos y requisitos de calidad Ingeniería del Software de Gestión II 11
Catálogo de atributos Flexibilidad Portabilidad Mantenibilidad Reutilización Contestación Revisión Transición Interoperabilidad Operación Corrección Fiabilidad Usabilidad Integridad Eficiencia Ingeniería del Software de Gestión II 12
Catálogo de atributos Revisión Operación Transición Atributos derivados Corrección Fiabilidad Eficiencia Atributos básicos Tpo. entre fallos Tpo. de recuperación Reconexión Ingeniería del Software de Gestión II 13
Requisito de calidad Una condición definida sobre las valoraciones de un conjunto de atributos de calidad Condición El servicio deberá tener un tiempo entre fallos superior a 90 minutos Atributo Ingeniería del Software de Gestión II 14
Un requisito de calidad no es... Un objetivo El sistema será fiable, portable y su coste será razonable Una característica Fiabilidad, robustez, facilidad de mantenimiento, confidencialidad,... Ingeniería del Software de Gestión II 15