Conceptos importantes Segundo Parcial Ingeniería de Requisitos
El documento de especificación de requisitos
Sección 1: Introducción
Sección 2: Descripción General
-  2.1 Perspectiva del producto 
-  2.2 Funciones del producto 
-  2.3 Características del usuario 
-  2.4 Restricciones generales 
-  2.5 Asunciones y dependencias 
 
Sección 3: Requisitos específicos
-  3.1 Interfaces externas 
-  3.2 Funciones 
-  3.3 Requisitos de rendimiento 
-  3.4 Restricciones de diseño 
-  3.5 Atributos de calidad del software 
-  3.6 Otros requisitos. 
 
Metodologías Ágiles
Son metodologías alternativas a las tradicionales que dan soporte a los valores incluidos en el manifiesto Ágil. Suelen ser iterativas de ciclo corto y flexibles. Se centran principalmente en el código.
 
Manifiesto Ágil
-  Valorar a los individuos y su interacción sobre los procesos y herramientas 
-  Valorar el software que funciona sobre la documentación 
-  Valorar la colaboración con el cliente sobre la negociación contractual 
-  Valorar la respuesta al cambio sobre el seguimiento de un plan 
 
Principios Ágiles
-  La prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor. 
-  Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. 
-  Entregar con frecuencia software que funcione en períodos de un par de semanas a un par de meses con preferencia en los períodos breves 
-  Las personas de negocio y los desarrolladores deben trabajar juntos 
-  La forma más eficiente de comunicar información es cara a cara 
-  Los procesos Ágiles promueven el desarrollo sostenido 
-  La atención a la excelencia técnica enaltece la agilidad. 
 
Tipos de metodologías Ágiles
-  Extreme Programming (XP) - 
-  No habla explícitamente de técnicas de ingeniería de requisitos 
-  Usa entrevistas, brainstrorming y prioriza las historias de usuario. 
 
-  Modelado Ágil (AM) 
-  Scrum 
 
Scrum
Es una metodología framework, un conjunto de buenas prácticas para la gestión de proyectos. Consiste en la iteración de entregas incrementales
 
Roles
-  Product owner - 
-  Gestiona las necesidades que serán satisfechas en el proyecto 
-  Debe recoger y tener claras las necesidades de la aplicación 
-  Fijar criterios de aceptación para cada historia de usuario 
 
-  Equipo de desarrollo 
-  Scrum Master 
 
Artefactos
Son lo que el cliente quiere que se implemente. Descripción breve de una funcionalidad tal y como la percibe el usuario.
-  Product backlog 
-  Sprint backlog 
 
Eventos
-  Sprint 
-  Planificación del Sprint 
-  Daily Meeting 
-  Revisión del sprint 
-  Retrospectiva 
 
Scrum vs requisitos
Las historias de usuario no son requisitos por lo que según algunos autores se puede considerar que en scrum no hay requisitos, aunque algunos autores consideran que las historias de usuario pueden ser consideradas requisitos poco detallados.
 
Diferencia metodologías Ágiles y Tradicionales
-  Captura de requisitos 
-  Especificación de requisitos - 
-  Las reuniones de análisis son frecuentes durante todo el proceso pero la documentación es menos rígida 
-  Las técnicas de modelado solo se usan para facilitar comprensión en Ágil 
-  No se pretende generar una documentación completa 
-  Se deja mucha libertad al equipo de desarrollo 
-  Las historias de usuario son las técnicas más utilizadas en Ágil 
 
-  Validación de requisitos 
-  Gestión de Requisitos - 
-  No es posible la trazabilidad total de los requisitos como en las metodologías tradicionales 
-  Proporcionan buena base con el backlog y un listado de características 
-  Aproximación poco detallada a la captura de requisitos, se omiten detalles para completarlos más tarde. 
 
-  Las fases de las metodologías tradicionales no son fácilmente separables en las metodologías ágiles 
-  Las técnicas utilizadas en las metodologías tradicionales se encuentran vagamente descritas ya que se confía mucho en el equipo de desarrollo 
-  La documentación es poco extensa y compacta, lo que la hace sencilla de mantener. 
 
Notaciones en Z
-  Las especificaciones se presenta como un texto informal complementado con descripciones formales, estas últimas contienen pequeños trozos fáciles de leer. 
-  Los esquemas introducen variables de estado y define restricciones y operaciones en el estado 
-  Ejemplo: 
-  Los esquemas pueden ser manipulados utilizando operaciones como la composición de esquemas, renombrado de esquemas o la ocultación de esquemas 
-  La signatura del esquema define las entidades que forma el estado del sistema y el predicado del esquema establece las condiciones en que deberían cumplirse estas condiciones 
-  Cuando un esquema define una operación, el predicado puede establecer precondiciones y postcondiciones 
-  Estas definen el estado antes y después de la operación, la diferencia entre ambas define la acción especificada en el esquema de la operación. 
 
Notaciones algebraicas
-  Introducción: se define el tipo y declaran otras especificaciones que se usan 
-  Descripción: Describe informalmente las operaciones del tipo 
-  Signatura: Define la sintaxis de las operaciones, número y clase de sus parámetros y las clases de los resultados 
-  Axiomas: Define la semántica de las operaciones mediante la definición de axiomas que caracterizan su comportamiento