|
|
|
Diferencias Entre Análisis y Diseño Estructurado y Orientado a Objetos
Refinamiento.
Modularidad.
Objeto
Caracteristicas de los objetos.
El análisis estructurado, como todos los demás métodos de análisis de requisitos, es una actividad de construcción de modelos. Mediante una notación que es única de este método, se crean modelos que reflejan el flujo y el contenido de la información (datos y control); se parte el sistema funcionalmente y, según los distintos comportamientos, se establece la esencia de lo que se debe construir.
Una de las principales labores del analista es descubrir detalles y documentar la política de un negocio que pudieran existir sólo en forma implícita, "transmitidas de generación en generación" por los usuarios, nunca documentadas formalmente. El analista debe distinguir entre síntomas, problemas del usuario y causas. Con sus conocimientos de la tecnología de los computadores, el analista debe ayudar al usuario a explorar aplicaciones novedosas y más útiles de éstos así como nuevas formas de hacer negocios. Aunque muchos de los sistemas antiguos sólo se limitaban a perpetuar el negocio original del usuario, pero a velocidades electrónicas, hoy en día los analistas se enfrentan al desafío de ayudar al usuario a encontrar productos y mercados radicalmente innovadores, con la ayuda del computador.
Fundamentos del Análisis y Diseño.
Abstracción.
Cuando se considera una solución modular para cualquier problema, pueden formularse muchos niveles de abstracción. En el nivel superior de abstracción, se establece una solución en términos amplios, usando el lenguaje del entorno del problema. En los niveles inferiores de abstracción se toma una orientación más procedimental. La terminología orientada al problema se acompaña con una terminología orientada a la implantación, en un esfuerzo para establecer una solución. Por último, en el nivel más bajo de abstracción, se establece la solución de forma que pueda implementarse directamente.
Refinamiento
El refinamiento sucesivo es una primera estrategia de diseño descendente (propuesta por Niklaus Wirth). Un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales. Se desarrolla una jerarquía descomponiendo una declaración macroscópica de una función en forma sucesiva hasta que se llega a las sentencias del lenguaje de programación. Cada paso de refinamiento implica algunas decisiones de diseño. Es importante que el programador sea consciente de sus decisiones y de la existencia de soluciones alternativas.
Modularidad
Se ha dicho que modularidad es el atributo individual del software que permite a un programa ser intelectualmente manejable. El software monolítico (compuesto por sólo un módulo) no puede ser fácilmente abarcado por un lector. El número de caminos de control, la expansión de referencias, el número de variables y la complejidad global podrían hacer imposible su correcta comprensión.
La modularidad se deriva naturalmente de un principio elemental para manejar la complejidad: divide y vencerás.
Permite al analista conocer un sistema o proceso (actividad) en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente".
El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta de una situación dada.
Componentes:
Símbolos gráficos: sirven para identificar y describir los componentes de un sistema y las relaciones entre estos.
Diccionarios de datos: Descripciones de todos los datos utilizados en el sistema pueden ser manual o automatizado.
Descripciones de procesos y procedimientos: emplean técnicas y lenguajes que permiten describir actividades del sistema.
Reglas: Estándares par describir y documentar el sistema en forma correcta y completa.
Análisis de flujo de datos:
Estudia el empleo de los datos en cada actividad, documenta los hallazgos con diagramas de flujo de datos.
Herramientas:
Diagrama de flujo de datos: son la herramienta mas importante y la base en donde se desarrolla otros componentes
Diccionario de datos: contienen las características lógicas de los lugares donde se almacenan los datos del sistema, incluyendo nombre, alias, descripción, contenido y organización.
Diagrama de estructuras de datos: este es una descripción de la relación entre entidades (personas, lugares, eventos y objetos ) y el conjunto de información relacionado con la entidad.
Gráfica de estructura: es la herramienta del diseño que muestra con símbolos la relación entre los módulos de procesamiento y el software de la comp.
Significa que el sistema se organiza como una colección de objetos que interactúan entre sí y que contienen tanto estructuras de datos como un comportamiento.
Esto se opone a la programación convencional, en la cual las estructuras de datos y el comportamiento solamente están relacionadas de forma débil, ya que estos se enfocan principalmente a las funciones.
Objeto.
Los objetos son las cosas físicas y conceptuales que encontramos en el universo alrededor de nosotros. Hardware, software, documentos, seres humanos, los conceptos son todos los ejemplos de los objetos.
Características de los Objetos.
Identidad. Los datos están cuantificados en entidades discretas y distinguibles denominadas objetos. Ejem una televisión, una bicicleta, un árbol. Los objetos pueden ser concretos, como un archivo en un sistema de archivos, o bien conceptuales como la política de planificación en un sistema operativo con multiprocesos. Cada objeto posee su propia identidad inherente. En otras palabras: dos objetos serán distintos aun cuando los valores de todos sus atributos (tales como el nombre y el tamaño) sean idénticos.
Clasificación. Significa que los objetos con la misma estructura de datos (atributos) y comportamiento (operaciones) se reúnen para formar una clase. La selección de clases es arbitraria y depende de la aplicación.
Objetos: Bicicleta de montaña, Bicicleta de carreras, Bicicleta de niños
Clase Bicicleta:
Atributos: Tamaño del cuadro, tamaño de rueda, material, marca, velocidad
Operaciones: mover, reparar, cambiar velocidad
Objetos : Triangulo, Cuadrado, Octágono
Clase Polígonos:
Atributos: Vértices, color del borde, color del interior
Operaciones: dibujar, borrar, mover
Polimorfismo. Significa que una misma operación puede comportarse de modos distintos en distintas clases. La operación mover por ejem, se puede comportar de modo distinto en las clases Ventana y Pieza de ajedrez. Una operación es una acción o una transformación que se lleva a cabo o que se aplica a un objeto. Justificar a la derecha, visualizar y mover son ejemplos de operaciones. Una implementación específica de una operación por parte de una cierta clase es lo que se denomina método. Dado que los operadores orientados a objetos son polimórficos es posible que haya más de un método que lo implemente.
En el mundo real una operación es simplemente, una abstracción de comportamiento análogo entre distintas clases de objetos. Cada objeto “sabe” llevar a cabo sus propias operaciones. Sin embargo, en un lenguaje orientado a objetos es este el que selecciona automáticamente el método correcto para implementar una operación basándose en el nombre de la operación y en la clase del objeto que esta siendo afectado. El usuario de una operación no necesita ser consciente del número de métodos que existen para implementar una cierta operación polimórfica. Se pueden añadir nuevas clases sin modificar el código existente, siempre y cuando se proporcionen métodos para todas las operaciones aplicables a las nuevas clases.
Herencia. Es compartir atributos y operaciones entre clases tomando como base una relación jerárquica. En términos generales se puede definir una clase que después se irá refinando sucesivamente para producir subclases. Todas las subclases poseen o heredan, todas y cada una de las propiedades de su superclase y añaden, además, sus propiedades exclusivas. No es necesario repetir las propiedades de las superclases en cada subclase. Por ejem Ventanadedesplazamiento y ventanafija son subclases de ventana. Ambas subclases heredan las propiedades de ventana tales como una región visible de la pantalla. La ventanadedesplazamiento añade una barra de desplazamiento y un ascensor. La capacidad de sacar factor común a las propiedades de varias clases en una superclase común y de heredar las propiedades de la superclase puede reducir muchísimo la repetición en el diseño y en los programas siendo una de las ventajas principales de un sistema orientado a objetos.
ANÁLISIS Y DISEÑO ESTRUCTURADO |
ORIENTADO A OBJETO |
Las metodologías de análisis y diseño estructurado, se examinan los sistemas desde el punto de vista de las funciones o tareas que deben realizar, tareas que se van descomponiendo sucesivamente en otras tareas mas pequeñas y que forman los bloques o módulos de las aplicaciones
|
En la orientación a objeto, por su parte, cobra mucho más importancia el aspecto de “modelado” del sistema, examinando el dominio del problema como un conjunto de objetos que interactúan entres sí. |
En las metodologías tradicionales se produce una división entre los dos elementos de un sistema: funciones que llevan a cabo los programas y datos que se almacenan en archivos o bases de datos.
|
Y por otro lado, la orientación al objeto da un enfoque unificador de ambos aspectos, que se unen en los objetos. |
En las metodologías tradicionales las herramientas que utilizan para el análisis son:
|
En las metodologías orientadas a objetos se emplean distintos modelos depende de la metodología, entre los principales están:
|
A continuación veremos un ejemplo de un sistema de Cuentas Bancarias, visto por los dos enfoques:
Representada por Diagrama de Flujo de Datos
|
Representada por Diagrama de Objetos de Rumbaugh
|
Ahora veamos un ejemplo de la representación de dinámica de un sistema de Clima (Aire acondicionado), modelado por los dos enfoques de metodologías:
Representada por Diagrama de Flujo
|
Representada por un Diagrama de Transición de Estado de Booch
|
Última Actualización: 22/01/2004 01:57:23 p.m.