Descargar

Herramientas y metodologías de análisis y diseño estructurado

Enviado por Gerardo


Partes: 1, 2, 3, 4, 5

    edu.red

    Introducción 1 Herramientas y Metodologías de Análisis y Diseño Estructurado

    Apunte de la Cátedra Metodologías de Desarrollo de Software I Claudia Marcos – Edgardo Belloni

    Revisión Abril 1999: Carlos Rodríguez, Marcos Rossi, Maximiliano Suárez, Verónica Targiano Revisión Marzo 2000: Maximiliano Suárez Revisión Abril 2003: Vanesa Dell’acqua, Gastón Martini

    Introducción

    El desarrollo de sistemas pequeños, en la cual participan una o dos personas, es una tarea simple. Los cambios naturales que surgen durante el ciclo de desarrollo del sistema no producen una gran propagación de cambios en el sistema. Sin embargo, si el sistema es grande y en su desa- rrollo participan varios grupos de personas desarrollando una tarea específica, hay que tener en cuenta no solo la comunicación con el usuario sino también la inter-relación entre los distintos gru- pos de trabajo. Algunos de los problemas comunes que los desarrolladores encuentran en la construcción de software de cierta complejidad son los siguientes: P P P P El dominio de aplicación no es conocido. La comunicación con el usuario. La comunicación con el grupo de desarrollo. La carencia de buena documentación. Por esta razón, es necesario seguir una serie de pasos sistemáticos para que los diferentes gru- pos de desarrollo posean una buena comunicación. Estos pasos son brindados por los modelos de ciclo de vida, los cuales están constituidos por diferentes etapas: Especificación de requerimientos: Se realizan entrevistas con el usuario identificando los requerimientos y necesidades del usuario. Análisis: Modela los requerimientos del usuario. Diseño: Se modela la solución del sistema, teniendo en cuenta el ambiente de implementación a utilizar, por ejemplo, si el sistema es centralizado o distribuido, la base de datos a utilizar, lenguaje de programación, performance deseada, etc. Implementación: Dado el lenguaje de programación elegido se implementa el sistema. Testeo: En esta etapa se verifica y valida el sistema teniendo en cuenta algunos criterios de- terminados por el grupo correspondiente. Mantenimiento: Es la etapa más difícil de desarrollo del sistema, actualiza y modifica el sis- tema si surgen nuevos requerimientos. Existen varios métodos para describir el ciclo de vida de un sistema, uno de ellos es el desa- rrollo estructurado en cascada (Fig. 1).

    edu.red

    2 Introducción P P P los métodos y herramientas utilizadas en cada actividad los controles requeridos, paralelismo en las actividades las salidas de cada etapa Análisis Diseño Implementación Código Cómo? Especificación de Requerimientos

    Qué? Testeo

    Mantenimiento

    Fig. 1: Modelo de Ciclo de Vida en Cascada

    En un principio fue de gran utilidad pero el problema es que para pasar de una etapa a la otra había que terminar la primera, produciendo un gran problema si algún cambio era requerido. La etapa de Mantenimiento consumía el 80% del costo de producción. Debido a los nuevos requerimientos en el desarrollo de software, surgieron muchos otros mo- delos que trataban de solucionar los problemas existentes, que se basaron en el modelo en Cascada. Por ejemplo, el Modelo en Espiral, en el cual el sistema se desarrolla incrementalmente (Fig. 2). Los modelos propuestos poseen básicamente las mismas etapas, pero varían en: Análisis No es aconsejable elegir un modelo y seguirlo al detalle sino que se debe adaptar a las carac- terísticas del proyecto que esta siendo desarrollado. Los métodos de desarrollo de software pueden dividirse en dos grupos: función/dato y orien- tados a objetos.

    Diseño Implementación Test

    Fig. 2: Modelo de Ciclo de Vida en Espiral

    edu.red

    Introducción 3 Orientado a Función/Dato P Énfasis en la transformación de datos. P Funciones y datos tratados como entidades separadas.

    P Difícil de entender y modificar. Orientado a Objetos P Énfasis en la abstracción de datos. P Funciones y datos encapsulados en entidades fuertemente relacionadas. P Facilidades de mantenimiento. P Funciones, usualmente, dependientes de la estructura de P Mapeo directo a entidades del mundo real. los datos.

    Orientado a Función/Dato: Aquellos métodos en los cuales las funciones y/o los datos son tratados como entidades independientes. Estos sistemas resultan difíciles de mantener. El mayor problema es que las funciones generalmente dependen de la estructura de los datos. A menudo dife- rentes tipos de datos tienen distintos formatos y se necesita verificar el tipo del dato (con sentencias If-Then o CASE), produciendo programas difíciles de leer y modificar. Si se desea hacer alguna modificación en la estructura de los datos se debe modificar en todos los lugares donde es utilizado. Otro problema es que una persona no piensa naturalmente en términos de una estructura. La especificación de requerimientos se hace en lenguaje común, se especifica la funcionalidad que de- be tener el sistema y no en cómo se deben estructurar los datos. Orientado a Objetos: Son aquellos métodos en los cuales datos y funciones están altamente relacionados. El énfasis está centrado en la abstracción de datos. Se piensa en forma natural, los objetos son mapeados a entidades del mundo real. Los programas son fácilmente mantenibles y extensibles por medio de la construcción de subclases. Varios métodos de desarrollo de software han sido propuestos para cada uno de estos grupo, algunos de los cuales son descriptos en la Fig. 3. Donde: SADT: RDD: SA/SD: OOSE: OOA: OMT: UP: Catalysis: Structured Analysis and Design Technique Requirement Driven Design Structured Analysis and Structured Design Object-Oriented Software Engineering Object-Oriented Analysis Object Modeling Technique Unified Process Catálisis [Ross85] [Alf

    Partes: 1, 2, 3, 4, 5
    Página siguiente