640 likes | 868 Views
Modelado Semi formal: Etapas. Métodos Estructurados de Análisis y Diseño Origen: La Programación Estructurada Predomina el enfoque de Edward Yourdon Inicialmente tenían un claro enfoque “procedural” (reproducir en la computadora un proceso que con anterioridad se efectuaba manualmente)
E N D
Modelado Semi formal: Etapas • Métodos Estructurados de Análisis y Diseño • Origen: La Programación Estructurada • Predomina el enfoque de Edward Yourdon • Inicialmente tenían un claro enfoque “procedural” (reproducir en la computadora un proceso que con anterioridad se efectuaba manualmente) • Ingeniería de la Información • Origen: Fuertemente influido por la disponibilidad de la Tecnología de Base de datos • Decididamente orientada al Modelado de Datos • Existieron muchas y muy buenas metodologías: SSADM; Merise: Jackson: James Martin • Análisis y Diseño Orientado a Objetos • Origen: Paradigma de Orientación a Objetos • Surgen muchas metodologías en forma caótica • Los trabajos de Jacobson, Booch, Rumbaugh • Luego del UP - UML
Modelo del Ciclo de Vida • Conjunto de las fases por las que atraviesa un producto de software desde su estudio de viabilidad hasta que es retirado de operaciones por obsolescencia; incluye la forma en la que se relacionan las mencionadas fases entre sí. • Desarrollo por ciclo de vida y desarrollo por prototipo no son opciones contrapuestas; todos los modelos de Ciclo de Vida vigentes a la fecha incluyen el prototipado en sus fases y en la relación entre sus fases (no podría ser de otra manera)
Ciclo de Vida Lineal Secuencial Viabilidad Análisis Diseño Programación Pruebas Implantación Ventajas: - Es muy fácil de comprender - Es útil para introducir el concepto de “Ciclo de Vida” Desventajas - Ineficiencias por “esperas” - Los usuarios “ven” el producto al final del “Ciclo de Vida”
Ciclo de Vida “en Cascada” Ventajas: - Introduce el concepto de interactividad - Introduce el concepto de iteractividad Desventajas - Casi todos los reciclos propuestos son inviables Viabilidad Análisis Diseño Programación Pruebas Implantación
Análisis Análisis Análisis Diseño Diseño Diseño Programación Programación Programación Pruebas Pruebas Pruebas Implantación Implantación Implantación Ciclo de Vida Lineal Incremental tiempo Ventajas - Introduce el concepto de Incrementalidad - Más flexible que el Lineal Secuencial Desventajas - Su capacidad para absorber el concepto de Prototipo es escasa - Al igual que el Lineal Secuencial evidencia cierta ineficiencia en la utilización de los recursos (aunque en menor medida)
Modelado del Negocio Modelado del Negocio Modelado del Negocio Modelado de Datos Modelado de Datos Modelado de Datos Modelado de Aplicaciones Modelado de Aplicaciones Modelado de Aplicaciones Prototipo de Aplicaciones Prototipo de Aplicaciones Prototipo de Aplicaciones Desarroll de Aplicaciones Desarroll de Aplicaciones Desarroll de Aplicaciones Implantación y Pruebas Implantación y Pruebas Implantación y Pruebas Ciclo de Vida RAD (Desarrollo Rápido) Ventajas: - Incremento significativo de la productividad - Compatible con Métodos más sofisticados y potentes que los Métodos Estructurados Desventajas - Tentación de no alcanzar niveles de robustez y confiabilidad aceptables Equipo 1 Equipo 2 Equipo 3 Equipo n La disponibilidad de Tecnología de Bases de Datos induce su utilización
Prototipado Evolutivo y Ciclo de Vida en Espiral Concepto de Prototipo Evolutivo tiempo ¡¡Diferencias con lo que el Arquitecto considera “Prototipo”!!
14. 14. 13. 13. BIT Agregación Category Test Test Prueba de Integración 7. 7. SW OOD- SW OOD- Vista de los Process Procesos View 15. 15. Prueba del System Sistema Test 12. 12. 8. 8. Clases Class 3. SW OOD- SW OOD- Test de Implementación Implementation/Test System OOA- Vista Estática Static View Dynamic View 6. SW OOA- 1. Dynamic View Requerimientos 2. 2. System OOA- System OOA- Static View Static View 4. 4. 16. HW/SW HW/SW Requerimientos Split Split Trace (Traza) 11. 9. 11. 9. SW OOD- SW OOD- SW OOD- SW OOD- Diseño (Métodos) Vista Dinámica Method Design DynamicView 5. SW OOA- Static View 10. 10. SW OOD- SW OOD- 17. 17. Language Language Mantenimiento Maintenance Representation Representation Modelo de Ciclo de Vida en Espiral
Proceso de desarrollo de software Requisitos del usuario Sistema de software Ciclo de Vida “Proceso Unificado” • UP es un proceso de desarrollo de software: • Es una forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quién hace qué, cuándo y cómo). Es más que un Modelo de Ciclo de Vida • Objetivos: • Posibilitar un gerenciamiento centrado en la arquitectura, iterativo e incremental (facilitando el control de versiones) • Asegurar la producción de software ajustado a estándares de calidad basados en el Proceso • Facilitar los procesos de certificación de calidad • Apoyar un desarrollo basado en componentes, tanto nuevos como preexistentes
Flujos de Trabajo de Ingeniería Aspectos de la Capa 3 Flujos de Trabajo de Apoyo (Environment incluye “Risk Management”) Aspectos de la Capa 1 Fases y flujos de trabajo del UP Aspectos de la Capa 2 Organización a lo largo del tiempo Fases Flujos de trabajo principales Organización según la naturaleza de las tareas Flujos de trabajo de apoyo
Otros enfoques para el desarrollo Existen otros enfoques: 1. Más exigentes y rigurosos: 1.1. Métodos Formales (son métodos de especificación de raíz algebraica) 1.2. Redes de Petri (utilizan la Teoría de Grafos en forma dinámica para la especificación de sistemas distribuidos, concurrentes con especificaciones “duras” de Tiempo Real) 2. Más ágiles, menos formales, menos rigurosos: 2.1. Metodologías Ágiles (“el código es la especificación”) 2.2. El lenguaje Haskell como herramienta de especificación, programación y verificación de sistemas. Se destaca que: - Los Métodos Estructurados - Todas las Metodologías incluidas en la Ingeniería de la Información - El Análisis y Diseño Orientados a Objetos Constituyen enfoques “semi formales” (también llamados enfoques “gráficos”) para el Desarrollo de Sistemas de Información
Los Métodos Estructurados • Presentación de dos “gurúes” • Ed Yourdon (ámbito técnico profesional) • Donald Knuth (ámbito académico) • La propuesta de Yourdon (Métodos Estructurados) • La Utilización del Diagrama de Flujos de Datos en el contexto de los Métodos Estructurados • Ejemplos de utilización del DFD • ¿Cómo se llega a la estructura de un programa a partir del Diagrama de Flujo de Datos
Métodos estructurados: Ed Yourdon Edward Yourdon es ampliamente reconocido como el líder del desarrollo de los métodos estructurados de análisis y diseño en los 70´s y al comienzo de los 80´s. Fue realmente exitoso al extender, al ámbito del Análisis y Diseño, los conceptos de la Programación Estructurada. Si bien es el co desarrollista del Yourdon/Whitehead method of object-oriented analysis/design y de la difundida metodología Yourdon / Coad de análisis y diseño Orientados a Objetos, el cambio de paradigma eclipsó a quien fuera por década y media el referente mundial en todo lo que tuviese que ver con desarrollo de software. Toda una generación de primeras figuras mundiales, en lo que hace al desarrollo de software, en algún momento, estuvo relacionada con Yourdon: De Marco, Gane, Ward, Mellor, etc. Yourdon comienza su carrera profesional en Digital Equipment Company; allí es un pionero en temas tales como time-sharing operating systems and virtual memory systems. En 1974 Yourdon fundó YOURDON Inc destinada a poveer servicos educacionales, de publicaciones y de consultoría. YOURDON Inc formó en métodos estructurados a más de 250,000 profesionales en el mundo. La división editorial (ahora parte de Prentice Hall), editó más de 150 libros relacionados con el desarrollo de software. Semi retirado, en la actualidad, Yourdon es asesor en software "best-practices" en el US Department of Defense. Yourdon escribió más de 200 artículos técnicos relevantes y 24 libros de desarrollo de software desde 1967. Ed Yourdon recibió un B.S. in Applied Mathematics en el MIT; sus estudios de post grado (maestría) los desarrolló en el Polytechnic Institute of New York.
La Programación Estructurada: D. Knuth Donald Ervin Knuth, nacido el 10 de enero de 1938 en Milwaukee, Wisconsin, es uno de los más reconocidos expertos en todo lo relacionado con la programación de computadoras. Actualmente es Profesor Emérito de la Universidad de Stanford. Se le conoce principalmente como autor de la obra “The Art of Computer Programming” la referencia insoslayable en lo que hace a la programación algorítmica / estructurada. Junto con los Profesores Aho y Ullmann (también de Stanford) constituyen el equipo que más ha contribuido en el campo de los algoritmos computacionales. Knuth obtuvo casi simultáneamente su BSc y su MSc en Matemáticas en 1960 en el Case Institute of Technology (ahora Case School of Engineering, una parte de la Case Western Reserve University). En 1963 obtuvo su Ph.D. en Matemáticas en el California Institute of Technology. Puede afirmarse que, los trabajos e ideas del Dr Knuth en el ámbito de la Programación, inspiraron los primeros trabajos en el ámbito de las metodologías de desarrollo de software (Análisis y Diseño)
Modelo Esencial Modelo Ambiental Modelo de Comportamiento Modelo de Procesos Modelo de Datos Modelo de Implementación Modelo de Implementación del Usuario Modelo de Implementación del Sistema Modelo de Transacciones Modelo de Procesadores Modelo de Implementación de Programas Métodos Estructurados: Metodología Yourdon Técnicas o herramientas Lista de Eventos - DFD DFD Diagrama Entidad Relación Según convenga Diagrama de Transición de Estados DFD Diagrama de Estructura ¿QUÉ? Especificaciones y Análisis ¿CÓMO? Diseño Conceptual y Físico
Cliente Datos Orden de Compra Se consolidan todos los DFD de todos los eventos Registrar Orden de Compra Datos acuse recibo Orden de Compra Clientes Lista de Eventos y Diagrama de ContextoModelo Ambiental: Lista de Eventos + “mini” DFD de cada Evento + Diagrama de Contexto El Cliente coloca la Orden de Compra Se genera el Diagrama de Contexto El Cliente efectúa un Pago El Cliente consulta Precio Etc.; etc.; ... La Lista de Eventos consiste en una descripción detallada del ámbito relevado mediante oraciones simples (único verbo); evitando la voz pasiva y evitando también el sujeto tácito ¡¡VER APUNTE!!
Flujo de Datos Flujo de Control Entidad Externa Proceso Almacenamiento de Datos Diagrama de Flujo de Datos: Componentes
Recibo de Haberes Datos Liquidación Oficina de Recursos Humanos Liquidar Haberes Empleados Datos para Liquidación Un ejemplo muy simple de DFD
CLIENTE COCINA Orden del Cliente Sistema de Registro de Pedidos Orden a Cocina Factura al Cliente Informes a Gerencia GERENTE DEL LOCAL Otro formato de Diagrama de Flujo de Datos Ejemplo de Diagrama de Contexto
CLIENTE COCINA GERENTE DEL LOCAL Desagregando el Diagrama de Contexto Orden del Cliente Orden de Comida Procesar Orden del Cliente Factura Artículos vendidos Actualizar Archivo de Ar´t. vendidos Actualizar Archivo de Inventario Datos de Inventario Datos de Artículos Vendidos Datos de Inventario Archivo de Art. vendidos Arch.ivo de Inventario Artículos vendidos en el día Bajas diarias de Inventario Generar Informes Gerenciales Informes Gerenciales Ahora expandiremos este Proceso
Descuentos disrios de Inventarios Cantidad diaria de artículos vendidos Datos de Inventarios Acceder a Datos de artículos vendidos e Inventario Consolidar Datos de artículos vendidos e Inventario Datos de Artículos vendidos Datos consolidados Informes Gerenciales Preparar Informes a Gerencia Un nuevo nivel de desagregación
Capturar “a” y Transformarlo en “c” d a b c e f Consolidar y Transformar Formatear y Emitir Capturar “b” y Transformarlo en “d” Programa Principal e c d Validar y Transformar Consolidar y Transformar Formatear y Emitir a f b e d e Capturar “a” Capturar “b” Del DFD al Diagrama de Estructura¿cómo llegar al “mapa” del Programa? Una vez que, mediante desagregaciones sucesivas, se ha llegado a un nivel de detalle adecuado en cada Proceso (“burbuja”), será posible lo- grar un “mapa” del programa correspondiente a cada segmento del DFD. En el contexto de los Métodos Estructurados, dicho “mapa” de los futuros programas se denomina: “Diagrama de Estructura” (“Modelo de Diseño a Nivel Programa”). Es importante hacer la salvedad de que el Diagrama de Estructura, como modelo de un programa, es útil cuando el lenguaje de programación es algorítmico o procedural o de 3ra Generación (sinónimos). Ejemplo: Cobol, Fortran, Pascal, Algol, Basic , e, inclusive, C. No resulta posible utilizar el Diagrama de Estructura como modelo de programa si el lenguaje es “no estructurado”. En lenguajes con “intercambio de mensajes” no estructurado como C++; Java (y todos sus dialectos), Smalltalk, etc., todas las técnicas de “descomposición funcional” (esencia de los Métodos Estructurados) tienen dificultades.
TABLA DE DECISION Política de facturación Condiciones 1. Factura > U$S 500 2. Facturas vencidas (>60 días) ARBOL DE DECISION Reglas 1 2 3 4 si no si no si si no no no si si si no si si si no si no no 1.Suspender tareas Demoras > 60 días Cuenta al día Factura > U$S 500 2. Emitir y enviar factura Acciones 1. Emitir factura 2. Enviar factura 3. Enviar reclamo Demoras > 60 días Cuenta al día 3. Emitir y enviar factura con reclamo Factura <= U$S 500 4. Emitir y enviar factura Especificación de Procesos SEUDO CÓDIGO Si el monto de la factura excede los U$S 500 Si la cuenta tiene alguna factura vencida por más de 60 días suspender las tareas hasta la solución del pendiente En caso contrario (no hay facturas vencidas) emitir y enviar la factura En caso contrario (la factura es de U$S 500 o menos) Si la cuenta tiene alguna factura vencida por más de 60 días emitir y enviar la factura y enviar mensaje de reclamo En caso contrario (no hay facturas vencidas) emitir y enviar la factura
Proceso de desarrollo de software Requisitos del usuario Sistema de software ¿Qué es RUP? • RUP es un proceso de desarrollo de software: • Forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quién hace qué, cuándo y cómo). • Objetivos: • Asegurar la producción de software de calidad dentro de plazos • y presupuestos predecibles. Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental (versiones). • Es también un producto: • Desarrollado y mantenido por Rational. • Actualizado constantemente para tener en cuenta las mejores prácticas de acuerdo con la experiencia.
¿Qué es RUP? Pruebas de rendimiento y carga (Performance Awareness) Diseño OO de IU Rational Unified Process 5.0 1998 Ingeniería de Datos (Vigortech) Ingeniería de Negocios Administración de Configuración y Cambios (Pure-Atria) UML 1.2 Rational Objectory Process 4.1 Proceso SQA (SQA Inc.) Escuela de Requerimientos (Requisite Inc.) 1997 UML 1.0 Rational Objectory Process 4.0 OMT Booch UML 0.8 1996 Rational Approach Objectory Process 1995 1987 Ericsson method 1967
Las mejores prácticas • RUP pretende implementar las mejores prácticas actuales en ingeniería de software: • Desarrollo iterativo del software • Administración de requerimientos • Uso de arquitecturas basadas en componentes • Modelamiento visual del software • Verificación de la calidad del software • Control de cambios
Desarrollo iterativo • El software moderno es complejo y novedoso. No es realista usar un modelo lineal de desarrollo como el de cascada. • Un proceso iterativo permite una comprensión creciente de los requerimientos a la vez que se va haciendo crecer el sistema. • RUP sigue un modelo iterativo que aborda las tareas más riesgosas primero. • Con esto se logra reducir los riesgos del proyecto y tener un subsistema ejecutable tempranamente.
Administración de requerimientos • RUP describe cómo: • Obtener los requerimientos • Organizarlos • Documentar requerimientos de funcionalidad y restricciones • Rastrear y documentar decisiones • Captar y comunicar requerimientos del negocio • Los casos de uso y los escenarios indicados por el proceso han probado ser una buena forma de captar requerimientos y guiar el diseño, la implementación y las pruebas.
Arquitecturas basadas en componentes • El proceso se basa en diseñar tempranamente una arquitectura base ejecutable. • La arquitectura debe ser: • Flexible • Fácil de modificar • Intuitivamente comprensible • Promueve la reutilización de componentes • RUP apoya el desarrollo basado en componentes, tanto nuevos como preexistentes.
Modelamiento visual • Modelamiento visual de la estructura y el comportamiento de la arquitectura y los componentes. • Bloques de construcción: • Ocultan detalles • Permiten la comunicación en el equipo de desarrollo • Permiten analizar la consistencia: • entre las componentes • entre diseño e implementación • UML es la base del modelamiento visual de RUP.
Verificación de cualidades • No sólo la funcionalidad es esencial, también el rendimiento y la confiabilidad. • RUP ayuda a planificar, diseñar, implementar, ejecutar y evaluar pruebas que verifiquen estas cualidades. • El aseguramiento de la calidad es parte del proceso de desarrollo y no la responsabilidad de un grupo independiente.
Control de cambios • Los cambios son inevitables, pero es necesario evaluar si éstos son necesarios y rastrear su impacto. • RUP indica como controlar, rastrear y monitorear los cambios dentro del proceso iterativo de desarrollo.
Ciclos y fases • RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo. • Cada ciclo se divide en cuatro Fases: • Inicio • Elaboración • Construcción • Transición • Cada fase concluye con un hito bien definido donde deben tomarse ciertas decisiones.
Fases de RUP: Inicio • Se establece la oportunidad y alcance el proyecto. • Se identifican todas las entidades externas con las que se trata (actores) y se define la interacción a un alto nivel de abstracción: • Identificar todos los casos de uso • Describir algunos en detalle • La oportunidad del negocio incluye: • Criterios de éxito • Identificación de riesgos • Estimación de recursos necesarios • Plan de las fases incluyendo hitos
Fases de RUP: Inicio Productos: • Un documento de visión general: • Requerimientos generales del proyecto • Características principales • Restricciones • Modelo inicial de casos de uso (10% a 20 % listos). • Glosario. • Caso de negocio: • Contexto • Criterios de éxito • Pronóstico financiero • Identificación inicial de riesgos. • Plan de proyecto. • Uno o más prototipos.
Fases de RUP: Inicio Hito: Objetivos del Ciclo de Vida Inicio Elaboración Construcción Transición • Las partes interesadas deben acordar el alcance y la estimación de tiempo y costo. • Comprensión de los requerimientos plasmados en casos de uso.
Fases de RUP: Elaboración • Objetivos: • Analizar el dominio del problema • Establecer una arquitectura base sólida • Desarrollar un plan de proyecto • Eliminar los elementos de mayor riesgo para el desarrollo exitoso del proyecto • Visión de “una milla de amplitud y una pulgada de profundidad” porque las decisiones de arquitectura requieren una visión global del sistema.
Fases de RUP: Elaboración Productos: • Es la parte más crítica del proceso: • Al final toda la ingeniería “dura” está hecha • Se puede decidir si vale la pena seguir adelante • A partir de aquí la arquitectura, los requerimientos y los planes de desarrollo son estables. • Ya hay menos riesgos y se puede planificar el resto del proyecto con menor incertidumbre. • Se construye una arquitectura ejecutable que contemple: • Los casos de uso críticos • Los riesgos identificados
Fases de RUP: Elaboración Productos: • Modelo de casos de uso (80% completo) con descripciones detalladas. • Otros requerimientos no funcio-nales o no asociados a casos de uso. • Descripción de la Arquitectura del Software. • Un prototipo ejecutable de la arquitectura. • Lista revisada de riesgos y del caso de negocio. • Plan de desarrollo para el resto del proyecto. • Un manual de usuario preliminar.
Fases de RUP: Elaboración Hito: Arquitectura de Ciclo de Vida Concepción Elaboración Construcción Transición • Condiciones de éxito de la elaboración: • ¿Es estable la visión del producto? • ¿Es estable la arquitectura? • ¿Las pruebas de ejecución demuestran que los riesgos han sido abordados y resueltos? • ¿Es el plan del proyecto algo realista? • ¿Están de acuerdo con el plan todas las personas involucradas?
Fases de RUP: Construcción • En esta fase todas las componentes restantes se desarrollan e incorporan al producto. • Todo es probado en profundidad. • El énfasis está en la producción eficiente y no ya en la creación intelectual. • Puede hacerse construcción en paralelo, pero esto exige una planificación detallada y una arquitectura muy estable.
Fases de RUP: Construcción Productos: • El producto de software integrado y corriendo en la plataforma adecuada. • Manuales de usuario. • Una descripción del “release” actual.
Fases de RUP: Construcción Hito: Capacidad Operacional Concepción Elaboración Construcción Transición • Se obtiene un producto Beta que debe decidirse si puede ponerse en ejecución sin mayores riesgos. • Condiciones de éxito: • ¿El producto está maduro y estable para instalarlo en el ambiente del cliente? • ¿Están los interesados listos para recibirlo?
Fases de RUP: Transición • El objetivo es traspasar el software desarrollado a la comunidad de usuarios. • Una vez instalado surgirán nuevos elementos que implicarán nuevos desarrollos (ciclos). • Incluye: • Pruebas Beta para validar el producto con las expectativas del cliente • Ejecución paralela con sistemas antiguos • Conversión de datos • Entrenamiento de usuarios • Distribuir el producto
Fases de RUP: Transición Objetivos: • Obtener autosuficiencia de parte de los usuarios. • Concordancia en los logros del producto de parte de las personas involucradas. • Lograr el concenso cuanto antes para liberar el producto al mercado. Concepción Elaboración Construcción Transición Producto
Definiciones Trabajador • Un trabajador define el comportamiento y las responsabilidades de un individuo. • Es como un “sombrero” que la persona usa durante el proyecto: • Una persona puede tener varios sombreros • Es el rol que desempeña en un momento dado • Responsabilidades: • Hacer una serie de actividades • Ser el responsable de una serie de artefactos
Definiciones Actividades • Una actividad es una unidad de trabajo que se asigna a un trabajador. Ej.: • Crear o modificar un artefacto • Una actividad lleva entre un par de horas y un par de días, involucra un solo trabajador y un número pequeño de artefactos. • Las actividades se consideran en la planificación y evaluación del progreso del proyecto. • Ejemplos: • Planificar una iteración - Administrador de proyecto • Encontrar actores y casos de uso - Analista • Revisar el diseño - Revisor de diseño • Ejecutar pruebas de performance - Ing. de pruebas de performance