Desarrollo de Software II Agosto Diciembre 2008 Calidad Definicin de diccionario: Conjunto de Cualidades que constituyen la manera de ser de una persona o cosa. Superioridad en su lnea; nobleza de linaje; importancia o gravedad de una cosa Sensacin de realidad tctil de cualquier materia En trminos generales podemos definir la calidad como conjunto de caractersticas que se pueden esperar de algo. Calidad en Software FUNCIONAMIENTO: Nivel elemental de calidad. El software siempre debe funcionar, debe permitirnos usarlo cuando sea necesario (cajero funciona para una poblacin de usuarios muy amplia menos cuando tenemos que usarlos a las 3a.m). FUNCIONALIDAD: Nivel intermedio de calidad. El software debe hacer los que dice que hace. Es importante contar con las facilidades para conocer las tareas que hace ( manual de usuario completo) USABILIDAD: Nivel superior de calidad. El software no solo debe hacer lo que dice que hace sino permitirnos hacerlo de forma adecuada, natural. Calidad en Software En el software se esperan algunas de estas cualidades: Robustez: El sistema funciona aun en circunstancias anormales. Confiabilidad: Funcionalidad + Robustez. Extendibilidad: Facilidad de adaptarse a cambios en las especificaciones. Reutilizacin: Capacidad del software para ser utilizado total o parcialmente en otros software. Eficiencia: Capacidad del software para usar el mnimo de recursos en sus procesos. Cundo un programa es correcto? 1. Cuando un programa no tiene errores de sintaxis. 2. Cuando un programa no arroja fallas durante su ejecucin 3. Existen datos de pruebas para los cuales el programa arroja salidas correctas. 4. Para conjunto tpicos de datos, el programa arroja salidas correctas. 5. Para conjunto difciles de datos, el programa arroja salidas correctas Cundo un programa es correcto? 6. Para todos los posibles conjuntos de datos, que son vlidos con respecto a las especificaciones del problema, el programa da respuestas correctas. 7. Para todos los posibles conjuntos de datos de prueba vlidos y todas las condiciones comunes de entrada invlida, el programa da respuestas correctas. 8. Para todas las posibles entradas, el programa da respuestas correctas. Quin es el responsable de la calidad? Un conjunto de caractersticas de calidad determinados deben ser comunes a todos los productos creados por un ente dado. Es por ello que un ente debe ser encargado de definir e implementar la calidad de su producto. En el software este es, la Fabrica de Software. La fbrica de Software Gestin de infraestructuras (Adm de BD y de S.O) Equipos de documentacin (Describe funcionalidades del producto) Equipos de pruebas del software Equipos de apoyo a la gestin (Econmico y recursos humanos) EQUIPO DE DESARROLLO Ncleo * * * * *Equipos de apoyo La fbrica de Software - Se responsabiliza de la realizacin de un producto, no de disponer de las personas para realizarlo. - Se orienta a la realizacin de productos, es decir, soluciones software genricas orientadas a las necesidades generales de un sector o negocio. Fbrica de Software Orientada a la calidad Recursos Humanos: Las personas son el engranaje principal de la fabrica de software, de ellos se espera: Profesionalidad (Conocimientos, tica). Aptitud Critica y de Aprendizaje continuo. Trabajo en equipo. Infraestructura: Las instalaciones debe ser acordes al proyecto a realizar y debe ofrecer todas la necesidades al equipo de desarrollo. Fbrica de Software Orientada a la calidad Metodologa: Define el procedimiento como se generara el producto, debe estar asociada a la sensatez. Gestin: Define la manera como se van a distribuir todos los recursos (incluyendo el tiempo) en la diferentes actividades definida por la metodologa De igual manera debe estar asociada a la sensatez, y estar basada en elementos para determinar el estado de cualquier proceso (Mtricas). Ms all de la Fbrica de Software La fbrica de software solo es un componente de una gran cadena de suministro compuesta de: Universidades: Proveen nuevo conocimiento (Conceptos y Tecnologas). Constructores de Componentes: Toma los conocimientos dados por la universidades y los transforman en componentes de alto nivel. Fabrica de Software: Ensambla los componentes para construir software para propsitos especficos Administradores de Informacin. Roles en un proyecto de Software Administrador del Proyecto: Determina las actividades a realizar y los recursos dados a cada una. Asegura el cumplimiento de plazos y de la ejecucin de las polticas de la Fabrica de Software. Gestor de Calidad: Es el que se encarga de implementar el SGC, nombrar los inspectores de las tareas del proceso de desarrollo, controlar las pruebas, el anlisis de las mediciones y proponer con el grupo de desarrollo modificaciones o mejoras al proceso. Roles en un proyecto de Software Lder de Configuracin: Es el que se encarga de manejar los elementos generados en el proceso de software y registrar sus cambios. Analistas: Analizan el problema y determinan las soluciones a estos, dichas soluciones se plasman como requerimientos Arquitectos: Disean el sistema a diferentes niveles y perspectivas, a partir de un anlisis del negocio (Requerimientos). Roles en un proyecto de Software Programadores: Son los encargados de construir los diseos de los arquitectos. Equipo de Pruebas: Son los encargados de probar los diferentes elementos generados en el proyecto, en supervisin del gestor de calidad. Administracin de calidad Actividades Garanta de la Calidad: Establecimiento de un conjunto de procedimientos y estndares que lleven a la calidad. Planificacin de la Calidad: Adaptacin de los procedimientos y entandares a un proyecto definido. Control de la Calidad: Definicin y ejecucin de procedimientos, que garanticen la ejecucin de los mecanismos de calidad definidos. Garanta de la Calidad Se definen un conjunto de estndares de producto y de proceso. Los estndares representan las buenas practicas las cuales se han aprendido. Tambin ayudan a la continuidad de un trabajo cuando participan varias persona de manera secuencial. Estos estndares deben ser prcticos y fciles de seguir y deben ser construidos en colaboracin con diferentes participantes de la Fabrica de Software Planificacin de la Calidad Puede ser dispendioso aplicar los mismos estndares y procedimientos de calidad a todos los procesos. Los elementos de calidad seleccionados se introducen en el Plan de Administracin del Proyecto de Software. (El cual ser visto en prximas clases). Control de la Calidad Involucra el continuo chequeo del proceso de desarrollo de software para garantizar que se estn llevando a cabo los mecanismos de calidad acordados. Este control se realizan a partir de elementos como: Revisiones Tcnicas Formales (RTF). Mtricas