ANALISIS Y DISEÑO DE SISTEMAS

Maria Eugenia Viloria Ortin – http://es.geocities.com/mariaeugeniaviloriaortin

 

TRABAJO 1

ANÁLISIS Y DISEÑO ESTRUCTURADO

 Y

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

 

 

1. Definición

 

Ante todo debemos puntualizar que el “Análisis y Diseño de un sistema” es una evaluación  referida al "extremo inicial" de un proyecto de desarrollo de sistemas, durante el tiempo en que los requisitos del usuario son definidos y documentados.

Es el procedimiento previo al Diseño pues es el punto de donde la recolección de datos de las necesidades del usuario señalará el camino a seguir en el posterior trabajo de desarrollo de la solución de la necesidad anteriormente mencionada.

 

 

1.1 Qué es Análisis y Diseño Estructurado

 

El Análisis estructurado introduce el uso de las herramientas de documentación gráficas para producir un tipo diferente de especificación funcional: "la especificación estructurada".

 

Muchos especialistas en sistemas de información reconocen la dificultad de comprender de manera completa sistemas grandes y complejos. El método de desarrollo del análisis estructurado tiene como finalidad superar esta dificultad por medio de:

la división del sistema en componentes y la construcción de un modelo del sistema.

 

El método incorpora elementos tanto de análisis como de diseño.

 

El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.). Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado.

 

El análisis estructurado es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. Éste análisis permite al analista conocer un sistema o proceso en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente.

 

 

Diseño estructurado. Es el procedimiento que considera la toma de decisión para el desarrollo de la solución. Durante este desarrollo se determinan qué módulos, interconectados de qué forma, solucionarán mejor un problema definido ¿Como se reconoce un buen diseño? ¿Existe una sola manera de realizar un buen diseño?

El diseño Estructurado es otro elemento del Método de Desarrollo por Análisis Estructurado que emplea la descripción gráfica, se enfoca en el desarrollo de especificaciones del software.

El objetivo del Diseño Estructurado es programas formados por módulos independientes unos de otros desde el punto de vista funcional.

El Diseño Estructurado es una técnica específica para el diseño de programas.

La herramienta fundamental del Diseño Estructurado es el diagrama estructurado que es de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos. Su finalidad no es mostrar la lógica de los programas (que es la tarea de los diagramas de flujo). Los Diagramas Estructurados describen la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él.

El Análisis y Diseño Estructurado se caracteriza por poseer una estructura bien específica para el logro del objetivo, y aun cuando existen varios modelos para el desarrollo de soluciones, éstos giran básicamente sobre los mismos puntos:

 

Ciclo de Vida clásico de un Sistema Estructurado

·   Investigación preliminar (Documentación, factibilidades)

·   Determinación de requisitos del sistema (Comprensión de las necesidades)

·   Diseño del sistema (Diseño lógico)

·   Desarrollo del software (Diseño físico)

·   Prueba del sistema (Experimental)

·   Implantación y Evaluación (instalación, entrenamiento, evaluaciones)

 

 

1.2  Qué es Análisis (OOA) y Diseño orientado a Objetos (OOD)

 

La programación orientada a objetos (OOP) como paradigma es una postura ontológica: el universo computacional está poblado por objetos, cada uno responsabilizándose por sí mismo, y comunicándose con los demás por medio de mensajes".

 

La Programación Orientada a Objetos desde el punto de vista computacional "es un método de implementación en el cuál los programas son organizados como grupos cooperativos de objetos, cada uno de los cuales representa una instancia de alguna clase, y estas clases, todas son miembros de una jerarquía de clases unidas vía relaciones de herencia".

 

Para introducirnos en el complejo pero aparentemente sencillo mundo de la programación orientada a objetos debemos comprender ante todo algunos conceptos básicos.

Objeto. Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos.

Un objeto puede considerarse como una especie de cápsula dividida en tres partes: Relaciones, Propiedades y métodos.

En el análisis y diseño orientados a objetos (OO), interesa el comportamiento del objeto. Si se construye software, los módulos de software OO se basan en los tipos de objetos. El software que implanta el objeto contiene estructuras de datos y operaciones que expresan dicho comportamiento.

Los Objetos de tienen características y comportamientos. Un objeto de software mantiene sus características en una o más "variables", e implementa su comportamiento con "métodos".

 Un objeto puede estar compuesto por otros objetos. Estos últimos a su vez también pueden estar compuestos por otros objetos. Esta intrincada estructura es la que permite construir objetos muy complejos.

Clase. Las clases son la descripción de los elementos comunes y básicos de los objetos que deben representar. Así las clases se definen y pueden ser usadas para crear innumerables objetos de este tipo en los más diferentes contextos. Así, una clase es una implantación de un tipo de objeto. Especifica una estructura de datos y los métodos operativos permisibles que se aplican a cada uno de sus objetos.

La clase es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase. También se puede decir que una clase es una plantilla genérica para un conjunto de objetos de similares características.

Las clases se pueden catalogar como clases visuales, clases no visuales y clases abstractas.

Las clases visuales son las que derivan en objetos que forman parte de la interfaz grafica con el usuario.

Las clases abstractas son clases que sólo pueden tener subclases.

Para que la clase tenga funcionalidad es necesario definirle cuáles son los métodos y propiedades que van a formar parte de ella.

Herencia. Un tipo de objeto de alto nivel puede especializarse en tipos de objeto de bajo nivel. Un tipo de objeto puede tener subtipos. Por ejemplo, el tipo de objeto persona puede tener subtipos estudiante y empleado. A su vez, el tipo de objeto estudiante puede tener como subtipo estudiante de pregrado y estudiante de postgrado, mientras que empleado puede tener como subtipo a académico y administrativo. Existe de este modo una jerarquía de tipos, subtipos, subsubtipos, etc.

 Una clase implanta el tipo de objeto. Una subclase hereda propiedades de su clase padre; una sub-subclase hereda propiedades de las subclases; etc. Una subclase puede heredar la estructura de datos y los métodos, o algunos de los métodos, de su superclase. También tiene sus métodos e incluso tipos de datos propios.

Mensajes. Para que un objeto haga algo, le enviamos una solicitud. Esta hace que se produzca una operación. La operación ejecuta el método apropiado y, de manera opcional, produce una respuesta. El mensaje que constituye la solicitud contiene el nombre del objeto, el nombre de una operación y, a veces, un grupo de parámetros.

 La programación orientada a objetos es una forma de diseño modular en la que con frecuencia el mundo se piensa en términos de objetos, operaciones, métodos y mensajes que se transfieren entre tales objetos. Un mensaje es una solicitud para que se lleve a cabo la operación indicada y se produzca el resultado.

Método. Son los procedimientos declarados de cada objeto. Los métodos especifican la forma en que se controlan los datos de un objeto. Los métodos en un tipo de objeto sólo hacen referencia a la estructura de datos de ese tipo de objeto. No deben tener acceso directo a las estructuras de datos de otros objetos. Para utilizar la estructura de datos de otro objeto, deben enviar un mensaje a éste. El tipo de objeto empaca juntos los tipos de datos y su comportamiento.

Un método es una función o subrutina asociada a un objeto. Entonces, dentro del software orientado a objeto, un objeto es cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los métodos que controlan dichos datos.

Eventos. Son también código escrito dentro de procedimientos, pero que no se ejecutan a través de una invocación especifica, sino que se “auto” ejecutan por alguna acción en particular que se esté llevando a cabo, vale decir el movimiento del mouse (mousemove), el clic del mouse (clic), etc.

Encapsulado. El empaque conjunto de datos y métodos se llama encapsulado. El objeto esconde sus datos de los demás objetos y permite el acceso a los datos mediante sus propios métodos. Esto recibe el nombre de ocultamiento de información. El encapsulamiento evita la corrupción de los datos de un objeto. Si todos los programas pudieran tener acceso a los datos de cualquier forma que quisieran los usuarios, los datos se podrían corromper o utilizar de mala manera. El encapsulado protege los datos del uso arbitrario y no pretendido.

El encapsulado, al separar el comportamiento del objeto de su implantación, permite la modificación de ésta sin que se tengan que modificar las aplicaciones que lo utilizan.

 

En Análisis Orientado a Objetos (OOA por sus siglas en inglés de Object Oriented Analysis) "es un método de análisis que examina los requerimientos desde la perspectiva de las clases y objetos encontrados en el vocabulario de del dominio del problema".  En OOA lo que nos importa es distinguir cuáles serán los objetos que van a ser parte de la aplicación. Tal vez ésta es la tarea más complicada del analista. En un primer momento, no debemos intentar enfocar con rigurosidad los objetos que nos puedan hacer falta en nuestra aplicación. Lo que haremos, un Brain Storming (tormenta de ideas que depuremos con posterioridad).

El Diseño Orientado a Objetos "es un método de diseño abarcando el proceso de descomposición orientado a objetos y una notación para representar ambos modelos lógico y físico tal como los modelos estáticos y dinámicos del sistema bajo diseño".

Actualmente las metodologías más importantes de análisis y diseño de sistemas han confluido en lo que se es el UML, bajo el respaldo del Object Management Group.

 

2. Diferencias

 

Estructurado

Orientado a Objetos

·   El desarrollo requiere de especificaciones funcionales gráficas, particionadas y mínimamente redundantes

·   La esencia del desarrollo orientado a objetos es la identificación y organización de conceptos del dominio de a aplicación

·   Programación estructurada

·   Diseño Estructurado

·   Análisis Estructurado

·   Se basa en estructura de datos

·   Se eliminan fronteras entra las fases del desarrollo

·   Reutilización de componentes (a través de objetos)

·   Incorporación de bibliotecas de clases

·   Iteración y solapamiento

·   Requiere diagramas de flujo de datos, diccionario de datos y especificaciones de procesos, definiendo las estructuras de los datos de entrada y salida, ordenando según la lógica procedimental para que responda a los requerimientos.

·   Se utilizan objetos de software como si fuesen ojetos del mundo real para construir modelos, los cuales interactuarán para responder a los requerimientos. Estos emergen en el proceso como los eventos en la vida real. Estos objetos, al poseer “vida propia”, actúan en la medida que son activados por los eventos, sin requerir ser involucrados por una lógica y subsecuente  ejecución de un código estructurado

 

 

3. Caso Práctico.

Utilizando la Metodología OO en una Base de Datos de http://www.dirfinanzas.mil.ve

 

Caso: Sistema de Comunicaciones del sitio http://www.dirfinanzas.mil.ve

  1. Análisis del problema.

Todo el personal militar y civil adscrito al Ejército venezolano, ubicado en cualquier punto de la geografía nacional e internacional recibe el beneficio económico a través de la Dirección de Finanzas del Ejército.

La presencia de este personal fuera del alcance físico del Comando General del Ejército ubicado en Fuerte Tiuna, genera dificultades de comunicación entre la organización y sus miembros, dificultando el proceso de consulta de dudas que este personal tiene. Por ello se requiere de un sistema interactivo que permita que hasta el soldado o el empleado civil en frontera y más alejado de la capital pueda exponer sus inquietudes ante la Dirección de Finanzas.

  1. Identificación de elementos interactivos

Se requiere la utilización de dos objetos del mismo tipo: casillas de texto, y otros dos objetos de botón.

Objetos de Casilla: Uno para exposición de la duda o inquietud del usuario del sitio. La otra casilla para permitir al usuario identificarse si así lo desea.

Objetos de botón: Uno de ellos permitirá la limpieza de los objetos de texto; el otro botón activará el código Summit.

  1. Definición de las operaciones

El formulario que contiene los objetos será enviado al email: [email protected] a través de Summit.

El sistema se desarrollará con JavaScript de tal forma que no requiera que el expositor deba poseer necesariamente un correo electrónico para enviar su comentario, por lo cual el servicio no será invasivo.

  1. Implementar diseño

http://www.dirfinanzas.mil.ve/contactos.htm

 

4. Infografía

 

·   http://www.monografias.com/trabajos4/cicdevida/cicdevida.shtml

·   http://www.monografias.com/trabajos5/inso/inso.shtml

·   http://www.inf.udec.cl/~mvaras/estprog/cap41.html

·   http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5040/TECN08.htm

·   http://www.microsoft.com/spanish/msdn/comunidad/dce/1/entrenamiento/foxpro/1b.asp

·   http://java.ciberaula.com/articulo/tecnologia_orientada_objetos/

·   http://monografias.com/trabajos10/soft/soft.shtml

·   http://www.monografias.com/trabajos/objetos/objetos.shtml

·   http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html

·   http://www.monografias.com/trabajos14/progorie/progorie.shtml

·   http://www.desarrolloweb.com/articulos/1540.php?manual=12

 

 

Hosted by www.Geocities.ws

1