Notas de la Unidad 7
Transcripción
Notas de la Unidad 7
Unidad 7 Ingeniería de Requisitos y Análisis OO M.C. Martín Olguín Conceptos Requisitos del Software Es la descripción de los servicios y restricciones de un sistema de software, es decir, lo que el software debe hacer y bajo qué circunstancias debe hacerlo. M.C. Martín Olguín (C) 2004 …Conceptos Ingeniería de Requisitos del Software Es el proceso de descubrir, analizar, documentar y verificar los requisitos del software. Captura de Requisitos Es el proceso de descubrir, normalmente en circunstancias difíciles, lo que se debe construir. Es tan difícil hacerlo, que es una práctica común comenzar a escribir código (lo fácil) antes de formalizar el qué debe hacer este código. M.C. Martín Olguín (C) 2004 …Conceptos Stakeholders Este término se utiliza para referirse a cualquier persona que tiene influencia directa o indirecta sobre los requisitos del sistema. Entre los stakeholders se encuentran los usuarios finales que interactúan con el sistema y todos aquellos en la organización se que verán afectados por dicho sistema. Los stakeholders también son los ingenieros que desarrollan o dan mantenimiento a otros sistemas relacionados, los administradores del negocio, los expertos en el dominio del sistema, los representantes de los trabajadores, etc. M.C. Martín Olguín (C) 2004 El Proceso y su contexto M.C. Martín Olguín (C) 2004 La Visión del Proyecto El proceso de ingeniería de requisitos inicia con una visión del proyecto. El documento de Visión debe capturar los requisitos y restricciones de diseño de alto nivel para dar una idea del sistema a desarrollar. Será la guía de todo el proyecto. Sirve como base para un contrato de desarrollo. M.C. Martín Olguín (C) 2004 Formatos de Visión de Proyecto RUP Process Impact M.C. Martín Olguín (C) 2004 Actividades principales La ingeniería de requisitos incluye dos actividades principales: la obtención de requisitos, que da como resultado una especificación del sistema que el cliente comprende, y el análisis, que da como resultado un modelo de análisis que los desarrolladores pueden interpretar sin ambigüedad. [BRUEGGE, 2002] M.C. Martín Olguín (C) 2004 Contexto de las Actividades Principales Obtención de Requisitos Especificación del sistema (SRS) Análisis Modelo de análisis M.C. Martín Olguín (C) 2004 Actividades del Proceso de Obtención y Análisis de Requisitos 1. 2. 3. 4. 5. 6. 7. Comprensión del dominio Recolección de requisitos Clasificación Resolución de conflictos Priorización Verificación de requisitos Especificación de requisitos M.C. Martín Olguín (C) 2004 Comprensión del Dominio Los ingenieros de requisitos deben desarrollar su propia comprensión del dominio de la aplicación. Por ejemplo, si se requiere un sistema para supermercados, deben averiguar cómo operan éstos. M.C. Martín Olguín (C) 2004 Recolección de requerimientos Es el proceso de interactuar con los stakeholders del sistema para descubrir sus requisitos. En esta actividad se profundiza la comprensión del dominio. M.C. Martín Olguín (C) 2004 Clasificación Esta actividad considera la recolección no estructurada de requisitos y los organiza en grupos coherentes. En esta etapa se empiezan a definir los casos de uso. M.C. Martín Olguín (C) 2004 Resolución de conflictos De forma inevitable, cuando existen muchos stakeholders involucrados, los requerimientos entrarán en conflicto. Esta actividad se refiere a encontrar y resolver los conflictos. Es probable que se determine hacer primero actividades de ingeniería de sistemas. M.C. Martín Olguín (C) 2004 Priorización En cualquier conjunto de requisitos, algunos de ellos serán más importantes que otros. Esta etapa comprende la interacción con los stakeholders para descubrir los requisitos más importantes. M.C. Martín Olguín (C) 2004 Verificación de requisitos Los requisitos se verifican para descubrir si están completos, son consistentes y acordes con lo que realmente quieren los stakeholders del sistema. M.C. Martín Olguín (C) 2004 Actividades de la Ingeniería de Requisitos M.C. Martín Olguín (C) 2004 Tipos de Requisitos Requisitos funcionales: Describen las interacciones entre el sistema y su ambiente, en forma independiente a su implementación. El ambiente incluye al usuario y cualquier otro sistema externo con el cual interactúe el sistema. Requisitos no funcionales: Describen atributos sólo del sistema o del ambiente del sistema que no están relacionados directamente con los requisitos funcionales. Los requisitos no funcionales incluyen restricciones cuantitativas, como el tiempo de respuesta o precisión, tipo de plataforma (lenguajes de programación y/o sistemas operativos, etc.) M.C. Martín Olguín (C) 2004 Técnicas para la obtención de requisitos Tormenta de ideas Storyboarding Role playing CRC cards Entrevistas Observación directa M.C. Martín Olguín (C) 2004 Características de una buena SRS [IEEE Std 830-1998] 1. Correcta 2. No ambigua 3. Completa 4. Consistente 5. Calificada de acuerdo a la importancia y/o estabilidad 6. Verificable 7. Modificable 8. Rastreable M.C. Martín Olguín (C) 2004 IEEE Std 830-1998 Correcta Una SRS es correcta, sí y solo sí, cada requisito especificado es un requisito que el software debe cumplir. No ambigua Una SRS no es ambigua sí y solo sí cada requisito especificado tiene sólo una interpretación. M.C. Martín Olguín (C) 2004 ...IEEE Std 830-1998 Completa Una SRS es completa, sí y solo sí, incluye los siguientes elementos: Todos los requisitos significativos Definición de las respuestas del software a todos los tipos posibles de clases de datos de entrada en todos los tipos posibles de clases de situaciones. Etiquetas y referencias completas a todas las figuras, tablas y diagramas en la SRS así como la definición de todos los términos y unidades de medida. M.C. Martín Olguín (C) 2004 ...IEEE Std 830-1998 Consistente Uns SRS es consistente, sí y solo sí, no se contradice a sí misma, es decir, si ningún subconjunto de requisitos ahí descritos se contradicen o entran en conflicto. Jerarquizada de acuerdo a la importancia y/o estabilidad Si cada requisito tiene un identificador que indique la importancia o estabilidad del requisito. M.C. Martín Olguín (C) 2004 ...IEEE Std 830-1998 Verificable Una SRS es verificable, sí y solo sí, cada requisito especificado es verificable. Un requisito es verificable sí y solo sí existe un proceso finito de costo-efectivo con el cual una persona o una máquina puede verificar que el producto de software cumple con el requisito. En general cualquier requisito ambiguo no es verificable. M.C. Martín Olguín (C) 2004 ...IEEE Std 830-1998 Modificable Una SRS es modificable, sí y solo sí, su estructura y estilo son tales que, cualquier cambio a los requisitos pueden ser hechos fácil, completa y consistentemente sin perder la estructura y el estilo. La modificabilidad generalmente requiere que una SRS: a) Tenga una organización coherente y fácil de usar con una tabla de contenido, un índice y referencias cruzadas explícitas. b) No sea redundante (esto es, el mismo requisito no debe aparecer en más de una parte en la SRS). c) Expresa cada requisito de manera separada, en vez de hacerlo mezclado con otros requisitos. M.C. Martín Olguín (C) 2004 ...IEEE Std 830-1998 Rastreable Una SRS es rastreable si el origen de cada uno de sus requisitos es clara y si facilita la referencia de cada requisito en el desarrollo futuro o mejora de la documentación. Tipos de rastreabilidad: Hacia enfrente Hacia atrás M.C. Martín Olguín (C) 2004 Formatos para SRS RUP Process Impact M.C. Martín Olguín (C) 2004 Modelo de Casos de Uso Una forma de construir la SRS es basada en casos de uso. Cada caso de uso puede agrupar a uno o varios requisitos. Cada caso de uso se debe documentar. M.C. Martín Olguín (C) 2004 Documentación de Caso de Uso X. Flujo de Eventos para el Caso de Uso <nombre> X.1 Precondiciones X.2 Flujo principal X.3 Subflujos X.4 Flujos alternos X.5 Postcondiciones M.C. Martín Olguín (C) 2004 Formatos para documentación de Casos de Uso RUP Process Impact M.C. Martín Olguín (C) 2004 Modelo de Análisis Una vez especificados los requisitos y definidos los casos de uso, se procede a la construcción del modelo de análisis. Los modelos de análisis OO contienen: Realizaciones de casos de uso. Clases de análisis con sus responsabilidades, atributos y relaciones. Paquetes. La vista de la arquitectura. M.C. Martín Olguín (C) 2004 Realización de casos de uso Colaboración Consultar Kardex ConsultarKardex Realización del caso de uso M.C. Martín Olguín (C) 2004 Colaboración Es una descripción de una colección de objetos que interactúan para implementar algún comportamiento dentro de un contexto. Una colaboración tiene aspectos estructurales y aspectos de comportamiento. El aspecto estructural es una vista estática. El aspecto de comportamiento es el conjunto de mensajes intercambiados por los objetos. M.C. Martín Olguín (C) 2004 Escenarios Son utilizados para describir una colaboración. Un escenario es una instancia de un caso de uso. Constituye un camino a través del flujo de eventos del caso de uso. M.C. Martín Olguín (C) 2004 Escenarios y Casos de Uso Un caso de uso está compuesto de varios escenarios. Escenarios primarios: Escenarios secundarios: El flujo normal del caso de uso. La lógica si-entonces del caso de uso. Las fases tempranas del análisis se concentran en los escenarios primarios. M.C. Martín Olguín (C) 2004 Interacción Es el conjunto de mensajes dentro de una colaboración. Es decir, una interacción define el aspecto de comportamiento de una colaboración. El UML provee dos tipos de diagramas para documentar las interacciones: Diagrama de Secuencia Diagrama de Colaboración M.C. Martín Olguín (C) 2004 Realización de casos de uso Flujo Básico 1. El sistema solicita usuario y password 2. El maestro introduce la información 3. El sistema la valida 4. El sistema otorga acceso Escenario: Flujo Básico profesor : Maestro cont rolA cceso pantallaLogin captura datos valida busca despliega FormaAcceso crea Menu crea TablaUsuarios ControlAcceso consulta consulta Validador M.C. Martín Olguín (C) 2004 usuarios:Tabla despliega Flujos Alternos 3. 1 Si el usuario o password es incorrecto, el sistema despliega mensaje de error. 3.2 Si es el tercer intento bloquea la cuenta del usuario validador menuPrincipal Clases de Análisis Una clase de análisis representa una abstracción de una o varias clases y/o subsistemas del diseño del sistema. Se centra en el tratamiento de los requisistos funcionales. Raramente define u ofrece una interfaz en términos de operaciones y sus firmas. Define atributos de alto nivel. Las relaciones que se definen para estas clases son más conceptuales que las de las clases del diseño. M.C. Martín Olguín (C) 2004 Clases Estereotipadas Interfaz M.C. Martín Olguín (C) 2004 Control Entidad Clases Interfaz Se utilizan para modelar la interacción entre el sistema y sus actores. Esta interacción regularmente implica recibir (y presentar) información y peticiones de (y hacia) los usuarios y los sistemas externos. Representan abstracciones de ventanas, formularios, paneles, interfaces de comunicación, de impresoras, sensores, etc. M.C. Martín Olguín (C) 2004 Clases Entidad Se utilizan para modelar información que posee una vida larga y que comúnmente es persistente. Modelan la información y el comportamiento asociado de algún fenómeno o concepto, como una persona, objeto del mundo real, o un suceso del mundo real. Suelen mostrar una estructura de datos lógica y contribuyen a comprender de qué información depende el sistema. M.C. Martín Olguín (C) 2004 Clases de Control Representan coordinación, secuencia, transacciones y control de otros objetos. Se usan para encapsular el control de un caso de uso en concreto. También se usan para representar lógica de negocios que no puede asociarse a una clase entidad. Modelan los aspectos dinámicos del sistema. M.C. Martín Olguín (C) 2004 Clases Estereotipadas 3: 2: captura datos 1: despliega profesor : Maestro pantallaLogin : FormaAcceso controlAcceso : ControlAcceso 7: 4: valida menuPrincipal : Menu validador : Validador 6: usuarios : TablaUsuarios M.C. Martín Olguín (C) 2004 8: despliega 5: busca Identificación de Clases No existe una receta de cocina para encontrar las clases en el dominio de un problema. Un buen comienzo para encontrar las clases del sistema en desarrollo es buscando las clases límite, entidad y control. Ya que el proceso de análisis y diseño es iterativo, la lista de clases se modificará conforme avance el tiempo. M.C. Martín Olguín (C) 2004 Buenas clases Una buena clase captura una y sólo una abstracción, deberá tener un sólo tema principal. Las clases deberán ser nombradas utilizando el vocabulario del dominio. El nombre deberá ser el sustantivo singular que mejor caracterice la abstracción. M.C. Martín Olguín (C) 2004 Documentación de Clases Conforme las clases se van creando, deben ser documentadas. La documentación deberá enunciar el propósito de la clase y no la estructura de la clase. Si se tiene dificultad para nombrar o documentar una clase, puede ser un indicador de que no es una buena abstracción. M.C. Martín Olguín (C) 2004 Formatos para Documentar Clases Formato del RUP M.C. Martín Olguín (C) 2004 Organización en Paquetes Los artefactos que se van generando requieren ser organizados, esto se hace mediante paquetes. Los paquetes deben ser altamente cohesivos y débilmente acoplados. Deben crearse basándose en requisitos funcionales y en el dominio del problema. M.C. Martín Olguín (C) 2004 Ejemplo de paquetes Compras Ventas Inventario M.C. Martín Olguín (C) 2004 Vista de la Arquitectura Muestra los artefactos significativos para la arquitectura: Descomposición del modelo de análisis en paquetes y sus dependencias. Clases fundamentales del análisis Realizaciones de casos de uso que describen la funcionalidad importante. Formato del RUP M.C. Martín Olguín (C) 2004