F
ACULTAD DEI
NGENIERÍAD
EPARTAMENTO DEI
NGENIERÍA DES
ISTEMASNombre de la Asignatura Ingeniería de Requerimientos
Código de la Asignatura
Tipo de Asignatura Maestría – Formación Especializada
Modalidad de la Asignatura Investigación y Profundización
Créditos Académicos 4
Intensidad Horaria Semanal Contacto Presencial 3 Horas
Trabajo Independiente 9 Horas
Habilidades Previas Requeridas
El estudiante debe tener experiencia (práctica y teórica) del proceso de Ingeniería de Software acordes al SWEBOK (Software Engineering Body of Knowledge).
Pre-Requisitos Maestría
Pre-Requisitos Pregrado Ingeniería de Software
Fecha de Actualización Julio de 2009
Objetivos
El tema de Ingeniería de Requerimientos en el ámbito del software es usualmente demeritado y se le da más importancia al momento mismo del diseño. En la actualidad se ha comprobado que la parte más difícil del desarrollo de software es efectivamente saber realmente que es lo que se desea construir. Ninguna parte del trabajo conceptual del proceso de desarrollo de software es más compleja como lo es establecer los requerimientos técnicos de software necesarios para cumplir con las expectativas de los clientes, incluyendo las interfaces con los mismos y con otros sistemas.
El propósito de este curso es brindar al estudiante los detalles concernientes a la ingeniería de requerimientos y su estado del arte, así como brindarle la posibilidad de practicar y crear nuevo conocimiento por medio de la investigación.
Al finalizar el curso, el estudiante debe estar en la capacidad de:
Comprender y describir las distintas fases, tareas y productos (artefactos) del proceso general de ingeniería de requerimientos, con la integración de metodologías de apoyo a cada etapa.
Desarrollar un plan de definición de requerimientos para proyectos pequeños con un grupo pequeño de analistas.
Evaluar con visión crítica, la completitud y utilidad para una audiencia particular de documentos de requerimientos, los cuales serán la base para el proceso de diseño de una aplicación software. Generar modelos de análisis asociados a un proceso de ingeniería de requerimientos así como a los
artefactos generados por él.
Poder comprender la naturaleza y gestión de los requerimientos dentro del proceso de desarrollo de software.
Contenidos Temáticos
1. Proceso de Ingeniería de Requerimientos a. Presentación de la asignatura
b. Introducción (relación con el Proceso de Ingeniería de software, historia, y consideraciones éticas) 2. Recolección de Requerimientos a. Recolección de Requerimientos b. Técnicas de Recolección 3. Calidad de Requerimientos 4. Análisis de Requerimientos a. Estructurando Requerimientos b. CMMI
c. Análisis Orientado a Aspectos
5. Métodos Formales
6. Validación y Verificación – Administración - Herramientas a. Trazabilidad
b. Herramientas
c. Verificación y Validación
7. Administración de Requerimientos
a. Relación con la gestión de procesos y producto (Gerencia y gestión informática) b. Técnicas de Negociación - Adopción de Usuarios
Estrategias Pedagógicas
El desarrollo de las actividades ligadas a las estrategias descritas a continuación se apoyará mediante la creación de foros, blogs y otras herramientas virtuales.
- Aprendizaje Directivo: Esta estrategia pretende que por medio de exposiciones del profesor, con alta participación de los estudiantes (preguntas, anotaciones, pasadas al tablero, etc.), el docente pueda transmitir las ideas y conceptos fundamentales de los temas y contenidos del curso. Normalmente, esta aproximación se utiliza al inicio de los diferentes módulos del curso debido a que permite sentar las bases conceptuales sobre las cuales se desarrolla el trabajo restante.
- Autoaprendizaje y Proyección: Se promoverá dentro de los estudiantes el desarrollo de competencias de investigación autónoma, a través de la consecución, lectura y análisis de artículos científicos y de aplicación, estudios de casos y tutoriales técnicos relacionados con los temas asociados a la asignatura. El trabajo se desarrollará sobre la exigencia de que el estudiante prepare los temas señalados, utilizando para esto la bibliografía del curso y los artículos recientes publicados en el tema de trabajo. En la clase, los
estudiantes socializarán el resultado del análisis realizado, generando una discusión abierta en la clase, en la cual el profesor se concentrará en la resolución de dudas, contribuirá con explicaciones complementarias y el análisis de los impactos en los contextos de aplicación y propenderá por la generación colectiva de una conclusión general.
- Exposición Grupal: El trabajo de investigación en grupo se promoverá e incentivará mediante la exploración y exposición de temas de las áreas del curso. Este trabajo de investigación se basará principalmente en la consecución y análisis de artículos científicos con enfoque de aplicación que complementen los temas propuestos en los textos de la bibliografía del curso. Los alumnos, organizados en grupos, realizarán exposiciones presentando su trabajo de investigación; las exposiciones deben hacer énfasis sobre los temas de aplicación y tecnológicos asociados, analizando el impacto y proyección potencial en el contexto nacional. La preparación de las exposiciones incluye dos reuniones de trabajo previo con el profesor. En la primera, los estudiantes presentan un primer esquema de la exposición; el profesor aclara preguntas, complementa las ideas, sugiere material a utilizar y reorienta el esquema propuesto en caso de ser necesario. En la segunda reunión, los estudiantes traen la presentación lista y completa para la revisión final; el profesor sugiere los últimos ajustes y soluciona las dudas que aún existan. Este proceso busca que la exposición cumpla con los estándares de excelencia propios del nivel de maestría; únicamente, las exposiciones con el nivel suficiente serán presentadas en clase. Durante la presentación, el profesor contribuirá en la resolución de dudas y con explicaciones complementarias, de igual forma hará énfasis en los impactos en los contextos de aplicación.
- Proyecto de Apropiación Práctica: El curso se estructura alrededor de al menos tres proyectos que tienen por objeto lograr que el estudiante profundice y apropie los conceptos mediante la solución de un problema práctico. En estos proyectos se pretende que los estudiantes: profundicen el estado del arte, identifiquen problemas en los cuales los conocimientos del curso se pueden aplicar, apliquen los conceptos y algoritmos, realicen un proceso riguroso de desarrollo del proyecto, apliquen elementos metodológicos apropiados, realicen protocolos experimentales, analicen los impactos sobre el entorno, generen un informe con el suficiente formalismo y obtengan un mayor conocimiento de las herramientas disponibles. En el caso particular de este curso, dada su naturaleza mixta de investigación y profundización, los proyectos se realizaran abordando en forma progresiva, iniciando por establecer el conocimiento de estándares por parte de los estudiantes, pasando por la verificación y validación de una especificación de requerimientos, y terminado con un análisis formal aplicando métodos formales junto con técnicas adicionales de análisis acordes al problema analizado. Se espera además la construcción de un artículo de publicación que relacione algunos de los temas del curso con otras áreas del proceso de ingeniería de software o incluso con otras áreas del conocimiento.
- Resolución de Problemas: Se llevarán al aula de clase, problemas de aplicación y casos de estudio; los cuales se trabajaran por medio de talleres. Los estudiantes presentarán ante la clase los análisis realizados y las posibles soluciones propuestas relacionándolas con los conocimientos dados en clase. Este análisis debe tener un sustento conceptual y teórico; además, esta presentación debe ser realizada utilizando el formalismo y rigor adecuado. Las soluciones propuestas, en la medida de lo posible, no deben limitarse a una propuesta puramente técnica, sino que también deben tener en cuenta factores del contexto de aplicación y uso. En el contexto de esta asignatura, los talleres son una herramienta muy importante para afianzar los conceptos en su proyección de aplicación práctica.
Evaluación
El tema del curso será evaluado de la siguiente forma: Quices sobre cada tema tratado 30%
Exposición(es) 30%
o Criterios: Material
Los estudiantes deben proveer a sus compañeros y al profesor con por lo menos una semana de anticipación de un articulo asociado al tema que consideren sea relevante, con el fin de complementar la lectura del artículo base)
Dominio del tema Investigación
Preparación de un taller (ejercicios o ejemplos) Solución de dudas
Presentación Artículos: Durante el semestre cada estudiante presentara de manera corta (2) artículos asignados con anticipación por el profesor. 5%
Presentación de un artículo de publicación (en parejas o individual) en temas relacionados con la asignatura, el articulo será evaluado a lo largo del semestre por avances
o Avance 1 Marco Teórico y Definición del problema 15% Entrega final 20%
Sem. Clase Temas
Referencia
Bibliográf. Actividades Trabajo Independiente
Proceso de Ingeniería de Requerimientos
1 1 Presentación de la asignatura, reglas de Juego 1,2 1,2 * Introducción SWEBOK Cap.2 Thayer Cap.1 Young Cap.1,2,3 y 4 SWEBOK Cap. 2
Requirements Engineering, Merlin Dorfman
Recolección de Requerimientos 3 * Recolección de Requerimientos Young Cap.5 4 *Técnicas de Recolección: Viewpoint, JAD, Casos de Uso. (ENTREGA 0) Thayer
Cap.3 Requirements Engineering With Viewpoints, Kotonya - Sommerville
5
*Calidad de
Requerimientos Thayer
Cap.3
Identifying and Measuring Quality In a Software Requirements Specification, Davis, et.al.
Análisis de Requerimientos
6 Estructurando
Requerimientos
Young Cap.
4 Objetivos, Tipos de requerimientos. Wieger 2n edition Cap. 10 y 11
7 Análisis
Estructurado – Thayer Cap.4
Structured Análisis, Svoboda - (Y otras formas de modelado de datos) Entity-Relationship Approach to Data Modeling, Reilly -Object-Oriented Requirements Análisis, Bailin
E/R – OO 9 Análisis Orientado a Aspectos (Entrega Primer Avance de Paper) 10 Métodos Formales Thayer
Cap.4 A Review of Formal Methods, Vienneau
Validación y Verificación – Administración - Herramientas
11 Trazabilidad Thayer
Cap.4 Traceability, Palmer
12 Herramientas Thayer
Cap.4 A Classification of CASE Technology, Fuggeta
13 Verificación y
Validación
Thayer Cap.5
Verifying and Validating Software Requirements Specifications, Wallace – Hipólito 14 Administración de Requerimientos Young Cap.6 y 7 16 Consideraciones Finales (ENTREGA FINAL) Temas y Expositores Estructurando Requerimientos
Análisis Estructurado – E/R – OO – OTROS (UML, Relación CMMI)
Análisis de Orientado a Aspectos Métodos Formales
Trazabilidad
Herramientas CASE de apoyo al proceso Verificación y Validación
Bibliografía
Textos Principales
1. Software Requirements Engineering, Second Edition edited by Richard H. Thayer & Merlin Dorfman IEEE Computer Society Press (1999) ISBN 0-8186-7738-4
2. Young, Ralph, The Requirements Engineering Handbook, Artech House Inc. 2004 Textos
Complemetarios 3. SOMMERVILLE, I. Ingeniería de Software, Sexta Edición, Addison Wesley, México, 2002.PRESSMAN, R. Ingeniería de Software: Un enfoque práctico. Quinta Edición. McGraw-Hill, 2002.
4. ANSI/IEEE Std 1002-1987: IEEE Standard Taxonomy for Software Engineering Standards
5. COCKBURN, A. Basic Use Case Template. Disponible: http://alistair.cockburn.us/usecases/uctempla.doc [Ene. 2005]
6. IEEE Std. 610.12-1990: Standard Glossary of Software Engineering Terminology 7. IEEE Std 1074-1997: Standard for Developing Software Life Cycle Processes 8. IEEE Std 830-1998: Recommended Practice for Software Requirements
Specifications (SRS)
9. IEEE Std 1012-1986: Standard for Software Verification and Validation Plans 10. IEEE Computer Society, SWEBOK: Guide to the Software Engineering Body of
Knowledge, 2004 Version, Disponible: http://www.swebok.org [Ene, 2005]
11. LARMAN, C. Applying UML and Patterns: an introduction to object-oriented analysis and design, 2nd Edition, Prentice Hall, 2001
REFERENCIAS WEB
12. http://www.swebok.org Software Engineering Body of Knowledge
13. http://www.sei.cmu.edu Software Engineering Institute
14. http://sern.ucalgary.ca/courses/seng/621/W97/johnf/reqeng.htm John Frankovich - Texto introductorio al Proceso de Ingeniería de Requerimientos. Universidad de Calgary
15. http://www.rspa.com/ Pagina Oficial de Roger S. Pressman – Incluye links a todo lo relacionado con Ingeniería de Requerimientos
16. http://citeseer.ist.psu.edu/ Computer and Information Science Papers CiteSeer Publications ResearchIndex – Buscador de Artículos de NEC