INSTITUTO TECNOLÓGICO SUPERIOR DE ÁLAMO-TEMAPACHE

INGENIERIA EN SISTEMAS COMPUTACIONALES

Integrantes

Grecia Guadalupe Zavala Vázquez

Osiel Reyes Casanova

Gustavo Pérez Guzmán

Juan Felipe Lara Martínez

Betsayda Martinez Perez

Análisis y Diseño OO

Fundamentos de Desarrollo de Sistemas

Ing. Karyme Vizcarra Can

MATUTINO

“601A”

XOYOTITLA, ALAMO TEMAPACHE, VER.MAYO 2010


INTRODUCCIÓN

El desarrollo de sistemas orientados a objeto es nuevo para muchos de nosotros. Uno de los aspectos de la orientación a objetos es el hecho de que es relativamente nuevo de usar. Debido a esta novedad estamos casi constantemente encontrando barreras de ideas a superar.

En el análisis se trata de identificar los tipos de objeto más que los objetos individuales en un sistema. Los tipos de objetos se definen en base a la comprensión del analista de nuestro mundo. Un objeto puede categorizarse de variadas formas.

Es importante modelar la forma como los objetos se asocian entre sí. Además es necesario identificar el significado de la asociación y la cantidad de objetos con los que un objeto dado puede y debe asociarse (cardinalidad).

Una de las vías de sentido común por las que el hombre organiza su volumen de conocimiento es el de las jerarquías, de lo más general a lo más específico. Esta es una representación de una Jerarquía de generalización, para el tipo de objeto Persona.

En las jerarquías se habla de subtipo o especialización de un supertipo o generalización.

Un objeto se denomina complejo si está formado por otros. Las jerarquías Compuestas permiten realizar agregaciones de objetos.

ANALISIS Y DISEÑO ORIENTADO A OBJETOS

Es un enfoque de la ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional.

En este método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un contexto – por ejemplo, un sistema de negocio, un conjunto de módulos de software – y para diseñar una solución para mejorar los procesos involucrados. No está restringido al diseño de programas de computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son casos de uso guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue.

El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos.

Programación Orientada a Objetos

La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.

Paradigma de la Integración

Un paradigma es un patrón, ejemplo o método para la realización de una tarea. Entonces, cuando hablamos del modelado y el diseño a objetos es un paradigma de integración, que enlazará todas las herramientas y las técnicas poderosas para la creación de software.

El análisis y diseño orientado a objeto es una forma general de ver el software, la que integrará todas las últimas tecnologías. Esta integración provocará una revolución industrial del software. Al ser así reconocida, la industria del software construirá las herramientas y los estándares que facilitarán dicha integración.

Mientras más pronta sea la difusión del análisis y del diseño orientado a objetos, más rápidamente pasará la creación del software de ser una industria de campo a una disciplina de la ingeniería.

¿Qué es un Objeto?

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 y estos a su vez también pueden estar compuestos por otros objetos. Esta intrincada estructura es la que permite construir objetos muy complejos.

Un objeto del mundo real es cualquier cosa que vemos a nuestro alrededor. Digamos que para leer este artículo lo hacemos a través del monitor y una computadora, ambos son objetos, al igual que nuestro teléfono celular, un árbol o un automóvil.

Tipos de Objetos

Los conceptos que poseemos se aplican a tipos determinados de objetos. Por ejemplo, empleado se aplica a los objetos que son personas empleadas por alguna organización. Algunas instancias de empleado podrían ser Juan Pérez, Ana Smith, etc. En el análisis orientado a objetos, estos conceptos se llaman tipos de objetos; las instancias se llaman objetos.

Así, un tipo de objeto es una categoría de objeto, mientras que un objeto es una instancia de un tipo de objeto.

Entidad vs. Objeto

La entidad sólo se refiere a los datos, mientras que objeto se refiere a los datos y a los métodos mediante los cuales se controlan a los propios datos.

Métodos

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.

Un objeto entonces es una cosa cuyas propiedades están representadas por tipos de datos y su comportamiento por métodos.

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.

Abstracción

La abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.

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.

Un mensaje es una solicitud para que se lleve a cabo la operación indicada y se produzca el resultado.

Clases

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.

En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo, nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en términos de la programación orientada a objetos, podemos decir que nuestro objeto celular es una instancia de una clase conocida como “celular”. Los celulares tienen características (marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar mensajes multimedia, transmisión de datos, etc.).

Herencia

Un tipo de objeto de alto nivel puede especializarse en tipos de objeto de bajo nivel. Un tipo de objeto puede tener subtipos. 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.

Cardinalidad

Las relaciones entre objetos no solo están definidas por los objetos que participan y la circunstancia que los relaciona, sino también por la cantidad de objetos (cardinalidad de la relación) y la dirección de la misma. Una relación puede tener cardinalidad:

ü  Uno a uno, ejemplo: un auto tiene un motor

ü  Uno a muchos, ejemplo: un auto tiene muchas ruedas

ü  Muchos a muchos, ejemplo: un auto se puede servir en muchas gasolineras y una gasolinera puede servir a muchos autos.

Diagramas de Relación entre Objetos

Los tipos de objetos están relacionados con otros tipos de objeto. Por ejemplo, un empleado trabaja en una sucursal, o un cliente realiza un pedido de varios productos.

Un objeto del tipo cliente puede ordenar muchos objetos del tipo pedidos, y un objeto del tipo pedido es ordenado por un y sólo un objeto del tipo cliente. Un objeto del tipo producto está en muchos o ningún objeto del tipo pedido, mientras que un objeto del tipo pedido tiene al menos un objeto del tipo producto.

Estado de un Objeto

Todo objeto posee un estado, definido por sus atributos. Con él se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia.

Eventos

Un evento produce un cambio en el estado de un objeto. Los eventos sirven como indicadores de los instantes en que ocurren los cambios de estado.

Tipos de Eventos

Los tipos de eventos indican los cambios sencillos en el estado de un objeto; por ejemplo, cuando se deposita dinero en una cuenta bancaria o se actualiza el sueldo de un trabajador.

Operaciones

En el análisis OO, una operación se refiere a una unidad de procesamiento que puede ser solicitada. El procedimiento se implanta mediante un método. El método es la especificación de cómo llevar a cabo la operación. A nivel de programa, el método es el código que implanta la operación.

Las operaciones se invocan. Una operación invocada es una instancia de una operación. Una operación puede o no cambiar el estado de un objeto, si lo cambiara ocurriría un evento.

Herencia de Clase

La generalización es una noción conceptual. La herencia de clase (que sólo se conoce como herencia) es una implantación de la generalización. La generalización establece que las propiedades de un tipo se aplican a sus subtipos.

La herencia de clase hace que la estructura de datos y operaciones sean disponibles para su reutilización por parte de sus subclases. La herencia de las operaciones de una superclase permite que las clases compartan código. La herencia de la estructura de datos permite la reutilización de la estructura.

Polimorfismo

Uno de los objetivos principales de las técnicas OO es utilizar otra vez el código. Sin embargo, algunas de las operaciones requieren adaptación para resolver necesidades particulares.

Esta necesidad, se da generalmente entre superclases y subclases, donde una subclase es una especialización de su superclase, y puede requerir alcanzar los mismos objetivos, pero con distintos mecanismos.

El fenómeno recién descrito se conoce como polimorfismo, y se aplica a una operación que adopta varias formas de implantación según el tipo de objeto, pero cumple siempre el mismo objetivo.

Diferencias y Similitudes

Como hemos podido observar el Análisis y Diseño Orientado a Objeto permite unificar y emplear diversas metodologías de forma uniforme para optimizar la realización de sistema, dado por el paradigma de la integración.

Existen similitudes en los conceptos si son llevados a la interpretación por cada metodología.

El enfoque de AOO es modular, mientras que en otras metodologías el enfoque es de proceso.

La Tecnología Orientada a Objeto

VENTAJAS DESVENTAJAS
  • Reutilización
  • Estabilidad
  • Comportamiento de objetos
  • Construcción de clases más complejas
  • Confiabilidad
  • Nuevos mercados de software
  • Rápido diseño
  • Mayor calidad de diseño
  • Integridad
  • Programación más sencilla
  • Mantenimiento más sencillo
  • Alta curva de aprendizaje
  • Costosa
  • Requiere conocimientos adicionales
  • No recomendable para proyectos pequeños
  • Requiere personal especializado

CONCLUSION

El análisis, diseño y programación orientada a objetos, ha sido dsarrollado para responder a las necesidades de flexibilidad en los sistemas de información basados en computadora. La encapsulación, herencia y polimorfismo, tienen como objeto proporcionar sistemas complejos con mecanismos para un rápido, fácil y confiable mantenimiento y cambio de los programas. Aunque el desarrollo Orientado a Objeto típico involucra una fase de análisis y diseño más amplia, esta inversión se traduce en menores costos de operación de los sistemas que es probable que requiera una gran actividad de mantenimiento.

Existen varias metodologías orientadas a objetos, a pesar que tienen variantes entre ellas, todas trabajan con el mismo paradigma por tanto se basan en los mismo fundamentos de modelación de objetos.

Las técnicas para el análisis y diseño Orientadas a Objetos todavía están en desarrollo, esto debido a que la programación misma todavía se encuentra en esta etapa.

Por consiguiente han surgido tantas metodologías que tratan este modelo de programación, llegando a destacarse un enfoque de Modelación de Lenguaje Unificado (UML) como uno de los más prácticos y eficientes. Sin embargo, no existe una técnica que se haya definido como estándar para este paradigma.

BIBLIOGRAFÍA

  1. Aprendiendo UML en 24 Horas

Joseph Schmuller

Prentice Hall

2. Análisis y Diseño OO de sistemas usando UML

Simon Bennet

Mcgraw-hill (2007, 3ª edición)

3. http://www.monografias.com

4. http://www.wikipedia.com

Posted in Uncategorized | Leave a comment

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment