Ingeniería de Software IV: Requerimientos (cont.) Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan at inf.utfsm.cl>
Introducción Proceso y ciclo de vida Manejo de proyectos Análisis de Requerimientos Arquitectura y Diseño Contenidos hasta ahora Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 2
Estáticas Entidades del sistema Atributos y funciones Relaciones Dinámicas Estados Estímulos y efectos Técnicas de Descripción O.O. Encapsulan comportamiento y estado Otras Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 3
Técnicas Estáticas Permiten razonar sobre comportamiento de sistemas que cambian poco (o nada) en el tiempo Referencia indirecta indican propiedades de la solución pero no funcionalidad Definición axiomática Axiomas (propiedades) Abstracción de datos Prioriza datos más que funciones ADTs (tipos de dato abstractos) Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 4
Técnicas dinámicas Permiten razonar sobre comportamiento de sistemas que cambian en el tiempo Tablas de decisión Permiten examinar completitud y consistencia Diagramas de transición Estados Transiciones: condición / acción UML Redes de Petri Tokens Reglas de disparo ( join ) Razonamiento sobre concurrencia Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 5
Otras técnicas Técnicas jerárquicas Diagrams de Warnier (ver ej.) Diagramas de Flujo de Datos DFDs Procesos, flujos, repositorios SREM (Software Requirements Engineering Methodology) SADT (Structured Analysis and Design Technique) (IDEF0) Actividades, control, entrada, salida, mecanismo (ver ej.) Z ( zzzed ) Lenguaje formal Usado para sistemas críticos o muy seguros Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 6
Prototipos ( Rapid prototyping ) Throw away Exploratorio Se bota después de usado Evolutivo Hecho para aprender sobre el problema Forma la base de sistema desarrollado Prototipos Prototipos son herramientas de control de riesgo Prototipos funcionales Reducen riesgo de no entender lo que el usuario quiere Prototipos tecnológicos Reducen riesgo de asumir que ciertas cosas son posibles Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 7
Plantilla de requerimientos
Plantilla de requerimientos [1] Restricciones (restricciones y limitaciones del proyecto y del producto) 1. Propósito (razón y ventajas) 2. Cliente y otros implicados (los interesados) 3. Usuarios (usuarios finales e impacto en usabilidad) 4. Restricciones a los Requerimientos (limitaciones al proyecto y al diseño) 5. Esquemas de nombres y Definiciones (vocabulario del producto) 6. Hechos relevantes (influencias externas) 7. Suposiciones Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 9
Plantilla de requerimientos [2] Requerimientos Funcionales (capacidades del producto) 1. Ámbito del producto (límites y conexiones con otros) 2. Requerimientos funcionales y de datos (cosas que el producto debe hacer y datos manipulados) Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 10
Plantilla de requerimientos [3] Requerimientos No-Funcionales (cualidades del producto) 1. Look and feel (apariencia deseada) 2. Usabilidad (basada en los usuarios esperados) 3. Rendimiento (velocidad, tamaño, seguridad, disponibilidad ) 4. Reqs. operacionales (ambiente esperado de uso) 5. Mantenibilidad y portabilidad (tolerancia a cambios) 6. Seguridad (seguridad, confidencialidad, integridad) 7. Culturales y Políticos (factores humanos) 8. Legales (ajuste a leyes aplicables) Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 11
Plantilla de requerimientos [4] Temas del proyecto (no del producto) 1. Temas abiertos (que pueden afectar al proyecto) 2. Soluciones listas (alternativas a construir algo) 3. Nuevos problemas (causados por la introducción del producto) 4. Tareas (que hacer para poner el producto en producción) 5. Migración (tareas para convertir desde sistemas existentes) 6. Riesgos (del proyecto) 7. Costos (estimaciones iniciales) 8. Documentación (plan para hacer manuales y documentación) 9. Futuros requerimientos (no incluidos en esta versión) Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 12
Recursos y referencias Software Engineering: Theory and Practice (2nd Ed.) Shari Pfleeger Prentice Hall (2001) Cap. 4 Sesión 03 [2004/iv/13] Ingeniería de Software - H.Astudillo 13