UNIVERSIDAD YACAMBU
ANÁLISIS Y DISEÑO DE SISTEMAS
Profesor: Yaros Pérez
Trabajo Nº 1
Integrantes
Colmenares, Lelia
Gil, Cecilia
Méndez, Aldo
Diferencia entre Análisis y Diseño Estructurado y Orientado a Objetos.
Definiciones
¿Qué es el análisis estructurado?
El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. No se establece cómo se cumplirán los requerimientos o la forma en que implantará la aplicación. Más bien permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadoras, sistemas de almacenamiento, etc.) Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado.
¿Que es el diseño estructurado?
Se enfoca en el desarrollo de especificaciones del software. La meta del diseño estructurado es crear 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 y no un método de diseño de comprensión. Esta técnica conduce a la especificación de módulos de programa que son funcionalmente independientes. La herramienta fundamental del diseño estructurado es el diagrama estructurado, los cuales son de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos.
El diseño estructurado busca establecer la organización interna del software, produciendo sistemas que sean fáciles de entender (y por ende de construir y mantener).
Las salidas del análisis estructurado son entradas (input) para el diseño estructurado.
Las salidas (output) del diseño estructurado son:
Diagrama Estructurado (estructura de software).
Especificación de Módulos.
Diccionario de Datos del Sistema.
El Análisis Estructurado.
Dirigido a la primer etapa del proceso de desarrollo. Se basa en construir un modelo de las prácticas administrativas que deben ser realizadas por el nuevo sistema (desde el punto de vista lógico).
Es crítica en esta fase la determinación y la definición de requerimientos ya que el fracaso de las especificaciones rompen todo el esfuerzo de desarrollo. Se busca conocer y especificar lo que se quiere. Si no se sabe lo que se desea no se puede esperar éxito. Las salidas (output) del análisis estructurado son (especificaciones estructuradas):
El análisis
estructurado se basa en el modelo del flujo como primer elemento de la
representación gráfica de un sistema basado en computadora. Usando como base
diagramas de flujo de datos y de control, el analista separa las funciones que
transforman el flujo. Después, crea un modelo de comportamiento usando el
diagrama de transición de estados y un modelo de contenido de los datos con un
diccionario de requisitos. Las especificaciones de los procesos y del control
proporcionan una elaboración adicional de los detalles.
El análisis estructurado nos permite:
Intentar estructurar el proceso de determinación de los requerimientos.
Incluir todos los detalles relevantes que describen al sistema en uso.
Una fácil verificación cuando se han omitido detalles relevantes.
La identificación de los requerimientos.
Generar una documentación más eficiente.
Análisis
y diseño orientado al objeto
Para el desarrollo de software
orientado a objetos no basta usar un lenguaje orientado a objetos. También se
necesitará realizar un análisis y diseño orientado a objetos.
La habilidad más
importante en el análisis y diseño orientado al objeto es asignar
eficientemente las responsabilidades a los componentes de software.
El análisis orientado a objetos y
su diseño se enfoca en los objetos. Los objetos tienen ciertos comportamientos
y atributos que determinan la manera en que interactúan y funcionan. No se
intenta proporcionar un orden para las acciones al momento del diseño debido a
que los objetos funcionan basados en la manera en que funcionan otros objetos.
La programación orientada a objetos ayuda a los desarrolladores a crear objetos
que reflejan escenarios del mundo real.
El modelamiento visual es la clave para realizar el análisis OO. Desde los inicios del desarrollo de software OO han existido diferentes metodologías para hacer esto del modelamiento, pero sin lugar a duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologías.
Según los mismos diseñadores del lenguaje UML, éste tiene como fin modelar cualquier tipo de sistemas (no solamente de software) usando los conceptos de la orientación a objetos. Y además, este lenguaje debe ser entendible para los humanos y máquinas.
Actualmente en la industria del desarrollo de software tenemos al UML como un estándar para el modelamiento de sistemas OO. Fue la empresa Racional que creó estas definiciones y especificaciones del estándar UML, y lo abrió al mercado. La misma empresa creó uno de los programas más conocidos hoy en día para este fin; el Racional Rose, pero también existen otros programas como el Poseidon que trae licencias del tipo community edition que permiten su uso libremente.
El UML consta de todos los elementos y diagramas que permiten modelar los sistemas en base al paradigma orientado a objetos. Los modelos orientados a objetos cuando se construyen en forma correcta, son fáciles de comunicar, cambiar, expandir, validar y verificar. Este modelamiento en UML es flexible al cambio y permite crear componentes plenamente reutilizables.
El Análisis Orientado a Objetos (AOO) se basa en conceptos sencillos, conocidos desde la infancia y que aplicamos continuamente: objetos y atributos, el todo y las partes, clases y miembros. Puede parecer llamativo que se haya tardado tanto tiempo en aplicar estos conceptos al desarrollo de software. Posiblemente, una de las razones es el éxito de los métodos de análisis estructurados, basados en el concepto de flujo de información, que monopolizaron el análisis de sistemas software durante los últimos veinte años.
El AOO ofrece un enfoque nuevo para el análisis de requisitos de sistemas software. En lugar de considerar el software desde una perspectiva clásica de entrada/proceso/salida, como los métodos estructurados clásicos, se basa en modelar el sistema mediante los objetos que forman parte de él y las relaciones estáticas (herencia y composición) o dinámicas (uso) entre estos objetos. Este enfoque pretende conseguir modelos que se ajusten mejor al problema real, a partir del conocimiento del llamado dominio del problema, evitando que influyan en el análisis consideraciones de que estamos analizando un sistema para implementarlo en un ordenador. Desde este punto de vista, el AOO consigue una abstracción mayor que el análisis estructurado, que modela los sistemas desde un punto de vista más próximo a su implementación en un ordenador (entrada/proceso/salida).
El uso de AOO puede facilitar mucho la creación de prototipos, y las técnicas de desarrollo evolutivo de software. Los objetos son inherentemente reutilizables, y se puede crear un catálogo de objetos que podemos usar en sucesivas aplicaciones. De esta forma, podemos obtener rápidamente un prototipo del sistema, que pueda ser evaluado por el cliente, a partir de objetos analizados, diseñados e implementados en aplicaciones anteriores. Y lo que es más importante, dada la facilidad de reutilización de estos objetos, el prototipo puede ir evolucionando hacia convertirse en el sistema final, según vamos refinando los objetos de acuerdo a un proceso de especificación incremental.
Deficiencias del análisis estructurado.
Ventajas del AOO.
Diferencias
|
Diseño Estructurado |
Diseño Orientado a Objeto |
|
|
En las técnicas estructuradas las unidades fundamentales son los procedimientos (subrutinas o subprogramas), mientras que en la programación orientada a objetos las unidades básicas se conocen como objetos los cuales contienen tanto datos (es decir, variables de estado que describen el objeto en un cierto instante) como métodos (es decir reglas dinámicas, reglas que explican la interacción del objeto con el mundo exterior). En la terminología OO, lo anterior quiere decir que el objeto encapsula sus datos y su comportamiento. Los objetos interactúan intercambiando mensajes para producir un comportamiento colectivo, que en principio debe resolver un problema.
Caso Práctico:
Tomando en cuenta los conceptos antes estudiados, podríamos aplicar esta metodológia, al Postgrado de Manejo de Fauna Silvestre de la Universidad Nacional Experimental de los Llanos "Ezequiel Zamora" Unellez, diseñando un proyecto de entorno hipertextual aplicando las fases de estructura y orientación a objetos.
Diseño estructurado
El Postgrado está estructurado en 8 subproyectos y en cada subproyecto hay 4 unidades crédito.
La arquitectura de información de las 32 unidades es muy similar y existen las siguientes subdivisiones:
Artículo central con el contenido general y/o esencial del subproyecto.
Documentos que complementan el artículo principal.
Referencias externas a documentos complementarios al artículo principal.
Ejercicios de autoevaluación.
Foros de temas sugeridos por el profesor.
Cartelera informativa del profesor.
Cartelera informativa de la coordinación del Postgrado.
Información general sobre como se debe utilizar el entorno hipertextual, consejos de como se debe organizar la forma de estudio, fechas claves para el proceso de enseñanza.
Orientación a Objeto
La materialización de estos elementos en nodos y enlaces hipertextuales se debe realizar utilizando la orientación a objeto, que consiste en la identificación de las clases de objetos que corresponden a los tipos de nodos que estan implicados en el hiperdocumento, los cuales son los siguientes:
Clase artículo.
Clase complemento básico.
Clase complemento avanzado.
clase examén de autoevaluación.
Clase foros sugeridos (Debates/Charlas).
Clase Cartelera informativa.
Distintas clases de información general. (Calendarios, lista de participantes, guía didáctica, ayuda etc.)
La definición de clases se deben realizar de acuerdo a estos criterios:
Las referencias externas no formarán un objeto, sino una relación entre un objeto del hiperdocumento y un objeto externo de internet.
Los distintos tipos de ejercicios deben ser modelados con las clases de evaluación y autoevaluación. Todas las clases que esten relacionadas con la evaluación tienen una relación de agregación con la clase "menu de evaluación" y estas constituiran una unidad de navegación.
El contenido de las unidades pueden ser de tres tipos: seminario, taller o artículo.
Los foros, las charlas, cartelera del profesor y cartelera de la coordinación formarán un grupo de nodos especializados en gestionar la comunicación entre la coordinación del postgrado, los profesores y los participantes. Estos nodos serán modelados con las clases, charlas, cartelera profesores y cartelera de coordinación. Todas las clases realcionadas relacionadas con la comunicación tienen una relación de agregación con la clase "menu de comunicación" y esta tambien constituirá unidad independiente de navegación.
El siguiente paso del diseño es identificar las asociaciones entre los objetos o sea, enlaces hipertextuales unidireccionales entre tipos de nodos, para así poder representar un diagrama de clases.
Finalmente, en función de la tecnología a utilizar aplicaremos el diseño tecnológico para adaptar a cada elemento a implementaciones concretas que se generaran por la tecnología elegida.
INFOGRAFIA
http://www.elguille.info/colabora/NET2005/Percynet_Conceptosyprincipiosorientadoaobjetos.htm
Hacia mediados de los 80, los beneficios de la programación orientada a objetos empezaron a obtener reconocimiento, y el diseño de objetos pareció ser un enfoque sensato para la gente que deseaba utilizar el lenguaje de programación orientada a objetos. Un enfoque orientado a objetos para programar ofrece muchos beneficios sobre un enfoque estructurado.
El análisis orientado a objetos y su diseño se enfoca en los objetos. Los objetos tienen ciertos comportamientos y atributos que determinan la manera en que interactúan y funcionan. No se intenta proporcionar un orden para las acciones al momento del diseño debido a que los objetos funcionan basados en la manera en que funcionan otros objetos. La programación orientada a objetos ayuda a los desarrolladores a crear objetos que reflejan escenarios del mundo real.
http://www.isi.unanleon.edu.ni/gbai/Ing_Soft_PII/Capitulo_11.htm
Actualmente, los
investigadores nos se han puesto de acuerdo al respecto de sí es posible la
integración de estas dos estrategias de análisis y diseño en un solo método
único. Algunos piensan que las dos estrategias son muy diferentes, mientras que
otros creen que se pueden utilizar elementos de ambos métodos para desarrollar
un modelo completo del problema. Primero, se tratara el área donde ambos métodos
tienen alguna similitud y convergencia conceptual, o sea situaciones en las que
pueden coexistir pacíficamente ambas técnicas.
Los elementos claves de
AE/DE son:
El modelo de flujo.
Diccionario de
datos.
La especificación
del control.
La especificación
de procesos.
Un diagrama de
entidad-relación ( E- R ), para la modelización de datos.
La orientación a los objetos crea una representación del campo del problema del mundo real y la hace corresponder con el ámbito de la solución que es el software. Por esta razón, las representaciones de AE/DE que reflejan los elementos del mundo real relativos al problema proporcionarían un mejor puente con el AOO/DOO. Las entidades externas (cuadros) que representan a los productores y consumidores del flujo de datos será posible candidato a objetos. Los objetos de datos definidos como parte del diagrama E-R también son candidatos a objetos. Es cierto que los DFDs de menor nivel podrían proporcionar una indicación de los atributos de algunos objetos y que los procesos indicados a esos diagramas podrían ser operaciones aplicadas a los objetos. Pero un DFD no refleja un sistema desde el punto de vista orientado a los objetos.
http://www.monografias.com/trabajos/anaydisesis/anaydisesis.shtml
La
función del Análisis puede ser dar soporte a las actividades de un negocio, o
desarrollar un producto que pueda venderse para generar beneficios. Para
conseguir este objetivo, un Sistema basado en computadoras hace uso de seis (6)
elementos fundamentales:
·
Software,
que son Programas de computadora, con estructuras de datos y su documentación
que hacen efectiva la logística metodología o controles de requerimientos del
Programa.
·
Hardware,
dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos
y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias,
bombas, lectores, etc.), que proporcionan una función externa dentro de los
Sistemas.
·
Personal,
son los operadores o usuarios directos de las herramientas del Sistema.
·
Base de
Datos, una gran colección de informaciones organizadas y enlazadas al Sistema a
las que se accede por medio del Software.
·
Documentación,
Manuales, formularios, y otra información descriptiva que detalla o da
instrucciones sobre el empleo y operación del Programa.
·
Procedimientos,
o pasos que definen el uso especifico de cada uno de los elementos o componentes
del Sistema y las reglas de su manejo y mantenimiento.
http://www.monografias.com/trabajos28/programacion-objetos/programacion-objetos.shtml
La programación orientada a objetos es la expresión de uno de los más avanzados paradigmas en el campo de la programación, y es, al mismo tiempo, el resultado de la evolución experimentada por los paradigmas anteriores.
A diferencia de otros paradigmas de programación, que intentan, al abordar un problema, representarlo o modelarlo empleando entidades cercanas a la computadora (arreglos, subrutinas, módulos) la programación orientada a objetos se propone emplear entidades lo más cercanas posibles a la realidad.
La programación orientada a objetos tiene como conceptos fundamentales los conceptos de objeto y clase.
Un objeto es un ente que posee sus características propias (propiedades) y un conjunto de acciones que es capaz de realizar (métodos). Una clase es un ente abstracto que permite declarar las propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos debe permitir al programador realizar definiciones de clases, y construir objetos a partir de esas clases. Para resolver un problema bajo el paradigma de la programación orientada a objetos basta con determinar y caracterizar los diferentes objetos que intervienen en el problema, definir sus propiedades y métodos y ponerlos a interactuar entre sí.
http://www.monografias.com/trabajos4/cicdevida/cicdevida.shtml
ANALISIS ESTRUCTURADOhttp://www.inf.udec.cl/~mvaras/estprog/cap41.html
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. Las operaciones se codifican como métodos. Las representación en software OO del objeto es entonces una colección de tipos de datos y objetos.
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.
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.
http://www.inf.udec.cl/~mvaras/estprog/cap42.html
http://www.inf.udec.cl/~mvaras/estprog/cap43.html
http://www.inf.udec.cl/~mvaras/estprog/cap44.html
http://glud.udistrital.edu.co/glud/proyectos/zope/c711.html
Objetos
Los objetos son "paquetes" autocontenidos de datos y lógica, estos son fáciles de diferenciar comparandolos con otros conceptos de programación.
En una aplicación típica no orientada a objetos, usted tiene dos cosas:
Código: por ejemplo usted puede tener un código con la forma de un script de Perl, en una típica aplicación CGI que toma datos de una base de datos y muestra una tabla al usuario.
Datos: por ejemplo usted puede tener datos de empleados guardados en una base de datos como MySQL o Oracle en la cual su código realiza operaciones como lectura o actualización. Esos datos existen casi únicamente para los propositos del código que los opera. Estos casi no tiene valor sin el código.
En una aplicacion tipica orientada a objetos usted tiene una cosa, y una sola cosa:
Objetos: son colecciones de código y datos empaquetados juntos, por ejemplo, usted puede tener un objeto "empleado" que representa a un empleado. Este contendra datos acerca del empleado, como su número telefónico, nombre, dirección y muchos de los datos que podrian ser guardados en una base de datos como MySQL o Oracle. Sin embargo, el objeto también contiene la lógica (código) para manipular y mostrar los datos.
La orientación a objetos es una medotología de programación la cual permite a los desarrolladores de software desarrollar y crear programas en términos del "mundo real", como carpetas, paneles de control, formularios, empleados, en lugar del diseño de programas basados en conceptos computacionales como bits, flujos y enteros. En lugar de mostrar al computador nuestro código en su lenguaje básico (bits y bytes), nosotros usamos una abstracción para enseñarle al computador acerca del problema a solucionar en términos de un vocabulario más natural para los humanos. El propósito básico de la orientacion a objetos es permitir a los desarroladores crear lo menos complicadamente posible un sistema basado en abstracciones del lenguaje natural de una máquina (bits y bytes) con cosas del mundo real (empleados y formularios) que se puedan enteder más rápido y sean más fáciles de leer.
Glosario
AE: Análisis estructurado.
AOO: Análisis Orientado a Objeto
DE: Diseño Estructurado.
DOO: Diseño Orientado a Objeto.
NODO: Es el punto de unión entre varias redes. Es importante para la rapidez de las conexiones que el ordenador gestor sea potente y capaz de soportar un alto nivel de tráfico. Cada nodo de una red tiene un nombre distinto.
OO: Orientación Objeto.
PROGRAMACIÓN: Acto de crear un programa de computadora, un conjunto concreto de instrucciones que una computadora puede ejecutar. El programa se escribe en un lenguaje de programación, aunque también se pueda escribir directamente en lenguaje de máquina, con cierta dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas en lenguajes distintos.
UML: Lenguaje de Modelamiento Unificado.