SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
República Bolivariana de Venezuela

  Ministerio del P. P. Fuerzas Armadas

      U.N.E.F.A. – Núcleo Guacara

      7to Semestre Sección: “2”




 DISEÑO Y SISTEMAS
ORIENTADO A OBJETOS


                                         Bachilleres:

                                    Sanoja H. José G.

                                    Arias Juan Carlos

                                         García Kelvin

                                         Ubiedo Daniel

                                           Farid Obeid

        Guacara, Julio del 2010
Introducción


  El diseño orientado a objeto constituye una nueva forma de
pensar acerca de problemas empleando modelos que se han
organizado tomando como base conceptos del mundo real.


Los modelos orientados a objetos son útiles para comprender
problemas, comunicarse con expertos en esa aplicación, modelar
empresas, preparar documentación y diseñar programas y bases
de datos.


  El beneficio principal no es un tiempo de desarrollo más
reducido, el desarrollo orientado a objetos puede requerir más
tiempo que el desarrollo convencional porque se pretende que
promueva la reutilización futura y la reducción de los posteriores
errores y el futuro mantenimiento.
Desarrollo


El Diseño Orientado a Objetos se define como un diseño de
sistemas que utiliza objetos auto-contenidos y clases de objetos.


Características    principales    del    Diseño   Orientado     a
Objetos:


     Los objetos son abstracciones del mundo real o entidades
     del sistema que se administran entre ellas mismas
     Los objetos son independientes y encapsulan el estado y la
     representación de información
     La funcionalidad del sistema se expresa en términos de
     servicios de los objetos
     Las áreas de datos compartidas son eliminadas. Los
     objetos se comunican mediante paso de parámetros
     Los objetos pueden estar distribuidos y pueden ejecutarse
     en forma secuencial o en paralelo


Ventajas del Diseño Orientado a Objetos:


     Fácil de mantener, los objetos representan entidades auto-
     contenidas
     Los objetos son componentes reutilizables
     Para algunos sistemas, puede haber un mapeo obvio entre
     las entidades del mundo real y los objetos del sistema
Orientado a Objetos:


     El análisis, diseño y programación orientada a objetos
     están relacionados pero son diferentes
     El análisis orientado a objetos concierne al desarrollo del
     modelo de objetos del dominio de la aplicación
     El Diseño Orientado a Objetos trata del desarrollo del
     modelo del sistema orientado a objetos para implementar
     los requerimientos


La programación orientada a objetos trata de la realización del
Diseño Orientado a
Objetos utilizando algún lenguaje de programación orientada a
objetos como C++


Métodos de Diseño Orientado a Objetos


     Algunos métodos que fueron originalmente basados en
     funciones (método de Yourdon) han sido adaptadas al
     diseño orientado a objetos.
     Otros métodos como el método de Booch han sido
     específicamente    desarrolladas   específicamente   para   el
     Diseño Orientado a Objetos
     El Diseño Orientado a Objetos es un método de diseño
     desarrollado para soportar la programación en Ada.
     JSD   (Jackson    system   development)   tiene   una   cierta
     orientación a objetos pero no contiene información sobre
     estados entidad
Componentes del Diseño Orientado a Objetos


     La identificación de objetos, sus atributos y servicios
     La organización de objetos dentro de una jerarquía
     La construcción de descripciones dinámicas de objetos que
     muestran como se usan los servicios
     La especificación de interfaces de objetos


Objetos, Clases y Herencia:


     Los objetos son entidades en un sistema de software que
     representan instancias de entidades del mundo real
     Las clases objetos son templates para objetos. Pueden
     usarse para crear objetos
     Las clases objetos pueden heredar atributos y servicios de
     otras clases objetos


Objetos:


   Un objeto es una entidad que tiene un estado y un
     conjunto definido de operaciones que operan sobre este
     estado.
   El estado se representa mediante un conjunto de atributos
     del objeto.
   Las operaciones asociadas con el objeto proveen servicios
     a otros objetos (clientes) que requieren estos servicios
     cuando necesitan realizar alguna actividad de cómputo.
   Los objetos se crean de acuerdo a una definición de la
     clase objeto.
 La definición de la clase objeto sirve como template para
     los objetos. Esta incluye las declaraciones de todos los
     atributos y servicios los cuales deben estar asociados con
     un objeto de esta clase.


Comunicación entre Objetos:
Ejemplo
Objeto FOCO:
Datos: filament o, bombilla, rosca
Operaciones: EncenderFoco()


LA CLASE TRANSPORTES


     Conceptualmente los objetos se comunican mediante paso
     de mensajes.
     Mensajes
        •   El nombre del servicio requerido por algún objeto
            que llama.
        •   Copias de la información requerida para ejecutar el
            servicio y el nombre de quien tiene esta información.
     En la práctica, los mensajes se implementan a menudo
     mediante llamadas de
     procedimientos
        •   Nombre = nombre de procedimiento.
        •   Información = lista de parámetros.


Herencia:
     Los objetos son miembros de clases que define tipos de
     atributos y operaciones
Las clases pueden organizarse en jerarquías de clases
      donde una clase se deriva de
      una clase existente (súper-clase)
      Una sub-clase hereda los atributos y operaciones de su
      súper-clases y puede añadir
      nuevos métodos o atributos propios
Animal
Mamífero Reptil...
Canino Felino...


Herencia y Diseño Orientado a Objetos


Existen distintos puntos de vista de la herencia respecto al
Diseño Orientado a Objetos.
      Punto de vista 1. Identificar la jerarquía de herencias es
      una parte fundamental del
      diseño orientado a objetos. Obviamente esto solo puede
      implementarse    utilizando    lenguajes   de   programación
      orientados a objetos.
      Punto de vista 2.
      La herencia es un concepto útil para implementación que
      permite reusar los atributos y las operaciones.
      La identificación de la jerarquía de herencias en la fase de
      diseño pone muchas restricciones en la implementación.


Identificación de Objetos:


      La identificación de objetos es la parte más difícil del
      diseño orientado a objetos
No hay una fórmula mágica para la identificación de
    objetos. Se base en la experiencia y el conocimiento del
    dominio de los diseñadores del sistema
    la identificación de objetos es un proceso iterativo. Es
    difícil que salga bien la primera vez


En Resumen:


    El    diseño     orientado     a   objetos   es    un   diseño    con
    ocultamiento de información. La representación puede
    cambiarse sin cambios muy extensos.
    Un objeto tiene un estado privado con un constructor
    asociado y operaciones de acceso.
    Los    objetos    proveen      servicios   (operaciones)    a    otros
    objetos.
    La identificación de objetos es un proceso difícil. La
    identificación de sustantivos y verbos en lenguaje natural
    es útil para identificar objetos
    Las    interfaces    de      objetos   deben      ser   precisamente
    definidas. Un lenguaje de programación como Ada, C++ o
    JAVA puede usarse para esto
    Documentación útil para el diseño orientado a objetos
    incluyen, gráficas de jerarquía de objetos y diagramas de
    interacción de objetos.
    Los    objetos      puede     implementarse        como    entidades
    secuenciales o concurrentes.
II. DISEÑO DE SISTEMAS ORIENTADOS AOBJETOS:


El diseño Orientado a Objetos (DOO) difiere considerablemente
del diseño estructurado ya que en DOO no se realiza un
problema en términos de tareas (subrutinas) ni en términos de
datos, sino (como ya se vio en la introducción) se analiza el
problema como un sistema de objetos que interactúan entre sí.


Un problema desarrollado con técnicas orientadas a objetos
requiere, en primer lugar saber cuáles son los objetos del
programa. Como tales objetos son instancias de clases, la
primera etapa en el desarrollo orientado a objetos requiere de la
identificación de dichas clases (atributos y comportamiento), así
como las relaciones entre éstas y su posterior implementación en
un lenguaje de programación.


Existen numerosos métodos de diseño orientado a objetos:
Booch, Yourdon-Coad, Martín, Shlaer & Mellor, Rumbaugh, por
citar algunos. Pero en general como ocurre en
Cualquier proyecto estructurado, un proyecto software OO se
compone de las siguientes etapas:


   Análisis Orientado a Objetos (AOO)
   Diseño Orientado a Objetos (DOO)
   Programación Orientada a Objetos (POO)


Aunque no siempre están bien delimitadas las etapas de análisis
y diseño en la OO, se pueden sintetizar de alguna forma las
ideas claves de las distintas tecnologías existentes dentro del
desarrollo orientado a objetos al que denominaremos diseño.


El método de Booch considera que las etapas del proceso en un
desarrollo orientado a objetos son:


1. Identificar las claves y objetos en un nivel dado de abstracción
2. Identificar la semántica de estas clases y objetos
3. Identificar las relaciones entre clases y objetos
4. Especificar la interfaz y la implementación de estas clases y
objetos
Estas etapas suelen seguirse por la mayoría de los métodos de
diseño OO existentes. De hecho, para los sistemas orientados a
objetos se define el siguiente         diseño en pirámide que
contempla el método de Booch.


EL DISEÑO ORIENTADO A OBJETOS EN PIRÁMIDE


La capa del subsistema.- Contiene una representación de cada
uno de los subsistemas que le permiten al software conseguir los
requisitos   definidos   por   el     cliente   e   implementar   la
infraestructura técnica que los soporta.


La capa de clases y Objetos.- Contiene las jerarquías de clase
que permiten crear el sistema usando generalizaciones y
especializaciones mejor definidas. Esta capa también contiene
representaciones de diseño para cada objeto.
RESPONSABILIDADES DEL DISEÑO


La capa de mensajes.- Contiene los detalles que le permiten a
cada objeto comunicarse con sus colaboradores. Esta capa
establece las interfaces externas e internas para el sistema.


La capa de responsabilidades.- Contiene las estructuras de
datos   y   el   diseño   algorítmico   para   todo    los   atributos   y
operaciones de cada objeto.
Esta pirámide de diseño se centra entonces en el diseño de un
producto o sistema específico.


II.1. EL ENFOQUE CONVENCIONAL Y EL ENFOQUE OO
Los enfoques convencionales para el diseño del software aplican
notaciones       y   heurísticas    diferentes        para    establecer
correspondencias entre el modelo de análisis y el diseño. Si
recordamos la ingeniería de software clásica (imperativa),
veremos que cada elemento del modelo de análisis convencional
tiene correspondencia con una o más capas del modelo de diseño


a.- Descripción de los objetos de datos
b.- Especificación del proceso D.- Diseño Procedimental
c.- Especificación de control D.- Diseño Procedimental
d.- Diagrama Entidad-Relación A.- Diseño de Datos
e.- Diagrama de flujo de datos B.- Diseño Arquitectónico
C .- Diseño de Interfaz
f.- Diagrama de transición de estado D.- Diseño Procedimental
g.- Diccionario de datos A.- Diseño de datos
Al igual que el diseño de software convencional, el DOO aplica
diseño de datos (cuando se representan atributos), diseño de
interfaces (cuando se presenta el intercambio de mensajes) y
diseño procedimental (en el diseño de operaciones), no obstante
el diseño arquitectónico es diferente.


La   arquitectura   de   diseño   OO     se   centra   más   en   las
colaboraciones entre los objetos que con el flujo de control de
datos. De esta manera las capas de la pirámide se renombran
para reflejar de forma más exacta la naturaleza del DOO. La
siguiente figura muestra ahora la correspondencia entre el AOO
con las correspondientes capas de la pirámide de diseño OO.


II.2.- EL DISEÑO:


Bertrand Meyer sugiere los siguientes criterios para poder juzgar
la capacidad que poseé un método de diseño en poder lograr
ciertos elementos importantes tales como la modularidad:


Descomponibilidad.- Facilidad con la cual un método de diseño
ayuda al diseñador a descomponer un gran problema en
subproblemas más sencillos de resolver.


Componibilidad.- Grado con el cual un método de diseño
asegura que los componentes de un programa (módulos), una
vez diseñados y construidos, pueden reusarse para crear otros
sistemas.
Comprensibilidad.-     Facilidad    de    comprensión     de      un
componente de programa sin referencia a otra información o
módulos.


Continuidad.- Facilidad de hacer pequeños cambios en un
programa y hacer que estos se manifiesten por sí mismos en
cambios correspondientes solamente en no o unos pocos
módulos más.


Protección.-   Característica   arquitectónica   que   reducirá   la
propagación de efectos colaterales si ocurre un error en un
módulo dado. Estos criterios y principios de diseño presentados
por Meyer pueden aplicarse a cualquier método de diseño
(incluyendo diseño estructurado), no obstante el método de
diseño orientado a objetos alcanza cada uno de los principios de
manera más eficiente que otros enfoques y el resultado final es
una arquitectura modular que permite cumplir con todos los
principios de modularidad de una manera más eficiente.


Herramientas y sistemas que lo emplean

MDA está siendo implementada en herramientas, los cuales
integran la modelación y el desarrollo de un solo ambiente que
lleva una aplicación desde el PIM, pasando por el PSM, y luego
llevando la generación de código a un conjunto de lenguaje y
archivos de configuración implementando interfaces, puentes a
servicios y posiblemente hasta funcionalidades de negocio.
Existen varias compañías que ya proveen herramientas que
soportan este nivel de integración, incluyendo la generación de
código. Actualmente las herramientas logran automatizar de un
50% a 70% la transformación de PIM a PSM, y debido a que el
segundo   paso   se   empezó   a    desarrollar   desde    antes,   la
automatización de la transformación de PSM a código ya es casi
del 100% (Code Generation Network, 2004).
Entre   los   generadores    que    se   encuentran       disponibles
actualmente se encuentran:
1. AndroMDA: Este generador lee modelos UML exportados
como XML y genera código Java.
2. iQgen: Generador basado en Java, que puede generar código
C#, XML, Java y COBOL desde un modelo informático en formato
XML y plantillas creadas en Java.

3. Pluggable Transformations (MDA-Catridges): Genera
código Java y C# desde modelos UML.
Conclusión


     Los sistemas construidos hoy en día son más complejos
que los sistemas construidos en los años 70s y 80s. La
complejidad funcional es menos preocupante de como lo era
antes, lo que ahora ha tomado una prioridad alta es el modelar
la comprensión del dominio del problema y las responsabilidades
del sistema, por lo que estas metodologías se han convertido en
una herramienta necesaria y de mucha importancia para el
desarrollo de software.


     El DOO es una nueva forma de desarrollo de software que
aun está siendo desarrollada, el cual facilita la creación de
aplicaciones subiendo los niveles de abstracción. En la actualidad
ya se encuentran disponibles distintas herramientas que tienen
implementado generadores de código basados en DOO para
distintos lenguajes, lo cual lo requerimientos que se necesitan
son modelos y diagramas, principalmente UML.

Más contenido relacionado

La actualidad más candente

Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosLex Marin
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A Objetosjose
 
Trabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosTrabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosdouglimar89
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 
Poo Programacion Orientada A Objetos Java
Poo   Programacion Orientada A Objetos   JavaPoo   Programacion Orientada A Objetos   Java
Poo Programacion Orientada A Objetos JavaC_QUENGUAN
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a ObjetosMegaMono
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)Eric Martinez Aguilar
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosEdna Rheiner
 

La actualidad más candente (20)

Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
 
DiseñO Orientado A Objetos
DiseñO Orientado A ObjetosDiseñO Orientado A Objetos
DiseñO Orientado A Objetos
 
Trabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetosTrabajo de diseño de sistemas orientados a objetos
Trabajo de diseño de sistemas orientados a objetos
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Desarrollo Orientado a Objetos
Desarrollo Orientado a ObjetosDesarrollo Orientado a Objetos
Desarrollo Orientado a Objetos
 
Tc2 301403 21
Tc2 301403 21Tc2 301403 21
Tc2 301403 21
 
Poo Programacion Orientada A Objetos Java
Poo   Programacion Orientada A Objetos   JavaPoo   Programacion Orientada A Objetos   Java
Poo Programacion Orientada A Objetos Java
 
Diseño Orientado a Objetos
Diseño Orientado a ObjetosDiseño Orientado a Objetos
Diseño Orientado a Objetos
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Cap3.0
Cap3.0Cap3.0
Cap3.0
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
10. programación orientada a objetos (java)
10. programación orientada a objetos (java)10. programación orientada a objetos (java)
10. programación orientada a objetos (java)
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
Adoo martha hidalgo
Adoo   martha hidalgoAdoo   martha hidalgo
Adoo martha hidalgo
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentos
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 

Similar a Diseño oo

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..jasped
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion pooRicardo Garcia
 
Unidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareUnidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareAndhy H Palma
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetosjoalmerca6
 
Diseno orientado a objetos
Diseno orientado a objetosDiseno orientado a objetos
Diseno orientado a objetosCecilia Lemus
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosalexmoncada21
 
Guia flash
Guia flashGuia flash
Guia flashnatalia
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacionAmado Arcaya
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetosalcrrsc
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 

Similar a Diseño oo (20)

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..
 
Tema1
Tema1Tema1
Tema1
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Poo
PooPoo
Poo
 
Unidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del softwareUnidad 3 paradigmas de la ingeniería del software
Unidad 3 paradigmas de la ingeniería del software
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Doo
DooDoo
Doo
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetos
 
Diseno orientado a objetos
Diseno orientado a objetosDiseno orientado a objetos
Diseno orientado a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Guia flash
Guia flashGuia flash
Guia flash
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetos
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 

Más de Solution´s System (15)

Facundo cabral
Facundo cabralFacundo cabral
Facundo cabral
 
Auditoria Sistemas
Auditoria SistemasAuditoria Sistemas
Auditoria Sistemas
 
Auditoria de Sistemas
Auditoria de SistemasAuditoria de Sistemas
Auditoria de Sistemas
 
Auditoria dde Sistemas
Auditoria dde SistemasAuditoria dde Sistemas
Auditoria dde Sistemas
 
Auditoria de Sitemas
Auditoria de SitemasAuditoria de Sitemas
Auditoria de Sitemas
 
Formato de Inventario Hardware && Software
Formato de Inventario Hardware && SoftwareFormato de Inventario Hardware && Software
Formato de Inventario Hardware && Software
 
Fallas Hardware && Software
Fallas Hardware && SoftwareFallas Hardware && Software
Fallas Hardware && Software
 
Proyecto Gerencia de Informatica
Proyecto Gerencia de InformaticaProyecto Gerencia de Informatica
Proyecto Gerencia de Informatica
 
La administracion
La administracionLa administracion
La administracion
 
Centro de computo
Centro de computoCentro de computo
Centro de computo
 
Introduccion inv. oper
Introduccion inv. operIntroduccion inv. oper
Introduccion inv. oper
 
Investigaciondeoperacionesintroducción
InvestigaciondeoperacionesintroducciónInvestigaciondeoperacionesintroducción
Investigaciondeoperacionesintroducción
 
Clase1
Clase1Clase1
Clase1
 
Contenido programatico
Contenido programaticoContenido programatico
Contenido programatico
 
Proyecto scn modificado
Proyecto scn modificadoProyecto scn modificado
Proyecto scn modificado
 

Diseño oo

  • 1. República Bolivariana de Venezuela Ministerio del P. P. Fuerzas Armadas U.N.E.F.A. – Núcleo Guacara 7to Semestre Sección: “2” DISEÑO Y SISTEMAS ORIENTADO A OBJETOS Bachilleres: Sanoja H. José G. Arias Juan Carlos García Kelvin Ubiedo Daniel Farid Obeid Guacara, Julio del 2010
  • 2. Introducción El diseño orientado a objeto constituye una nueva forma de pensar acerca de problemas empleando modelos que se han organizado tomando como base conceptos del mundo real. Los modelos orientados a objetos son útiles para comprender problemas, comunicarse con expertos en esa aplicación, modelar empresas, preparar documentación y diseñar programas y bases de datos. El beneficio principal no es un tiempo de desarrollo más reducido, el desarrollo orientado a objetos puede requerir más tiempo que el desarrollo convencional porque se pretende que promueva la reutilización futura y la reducción de los posteriores errores y el futuro mantenimiento.
  • 3. Desarrollo El Diseño Orientado a Objetos se define como un diseño de sistemas que utiliza objetos auto-contenidos y clases de objetos. Características principales del Diseño Orientado a Objetos: Los objetos son abstracciones del mundo real o entidades del sistema que se administran entre ellas mismas Los objetos son independientes y encapsulan el estado y la representación de información La funcionalidad del sistema se expresa en términos de servicios de los objetos Las áreas de datos compartidas son eliminadas. Los objetos se comunican mediante paso de parámetros Los objetos pueden estar distribuidos y pueden ejecutarse en forma secuencial o en paralelo Ventajas del Diseño Orientado a Objetos: Fácil de mantener, los objetos representan entidades auto- contenidas Los objetos son componentes reutilizables Para algunos sistemas, puede haber un mapeo obvio entre las entidades del mundo real y los objetos del sistema
  • 4. Orientado a Objetos: El análisis, diseño y programación orientada a objetos están relacionados pero son diferentes El análisis orientado a objetos concierne al desarrollo del modelo de objetos del dominio de la aplicación El Diseño Orientado a Objetos trata del desarrollo del modelo del sistema orientado a objetos para implementar los requerimientos La programación orientada a objetos trata de la realización del Diseño Orientado a Objetos utilizando algún lenguaje de programación orientada a objetos como C++ Métodos de Diseño Orientado a Objetos Algunos métodos que fueron originalmente basados en funciones (método de Yourdon) han sido adaptadas al diseño orientado a objetos. Otros métodos como el método de Booch han sido específicamente desarrolladas específicamente para el Diseño Orientado a Objetos El Diseño Orientado a Objetos es un método de diseño desarrollado para soportar la programación en Ada. JSD (Jackson system development) tiene una cierta orientación a objetos pero no contiene información sobre estados entidad
  • 5. Componentes del Diseño Orientado a Objetos La identificación de objetos, sus atributos y servicios La organización de objetos dentro de una jerarquía La construcción de descripciones dinámicas de objetos que muestran como se usan los servicios La especificación de interfaces de objetos Objetos, Clases y Herencia: Los objetos son entidades en un sistema de software que representan instancias de entidades del mundo real Las clases objetos son templates para objetos. Pueden usarse para crear objetos Las clases objetos pueden heredar atributos y servicios de otras clases objetos Objetos:  Un objeto es una entidad que tiene un estado y un conjunto definido de operaciones que operan sobre este estado.  El estado se representa mediante un conjunto de atributos del objeto.  Las operaciones asociadas con el objeto proveen servicios a otros objetos (clientes) que requieren estos servicios cuando necesitan realizar alguna actividad de cómputo.  Los objetos se crean de acuerdo a una definición de la clase objeto.
  • 6.  La definición de la clase objeto sirve como template para los objetos. Esta incluye las declaraciones de todos los atributos y servicios los cuales deben estar asociados con un objeto de esta clase. Comunicación entre Objetos: Ejemplo Objeto FOCO: Datos: filament o, bombilla, rosca Operaciones: EncenderFoco() LA CLASE TRANSPORTES Conceptualmente los objetos se comunican mediante paso de mensajes. Mensajes • El nombre del servicio requerido por algún objeto que llama. • Copias de la información requerida para ejecutar el servicio y el nombre de quien tiene esta información. En la práctica, los mensajes se implementan a menudo mediante llamadas de procedimientos • Nombre = nombre de procedimiento. • Información = lista de parámetros. Herencia: Los objetos son miembros de clases que define tipos de atributos y operaciones
  • 7. Las clases pueden organizarse en jerarquías de clases donde una clase se deriva de una clase existente (súper-clase) Una sub-clase hereda los atributos y operaciones de su súper-clases y puede añadir nuevos métodos o atributos propios Animal Mamífero Reptil... Canino Felino... Herencia y Diseño Orientado a Objetos Existen distintos puntos de vista de la herencia respecto al Diseño Orientado a Objetos. Punto de vista 1. Identificar la jerarquía de herencias es una parte fundamental del diseño orientado a objetos. Obviamente esto solo puede implementarse utilizando lenguajes de programación orientados a objetos. Punto de vista 2. La herencia es un concepto útil para implementación que permite reusar los atributos y las operaciones. La identificación de la jerarquía de herencias en la fase de diseño pone muchas restricciones en la implementación. Identificación de Objetos: La identificación de objetos es la parte más difícil del diseño orientado a objetos
  • 8. No hay una fórmula mágica para la identificación de objetos. Se base en la experiencia y el conocimiento del dominio de los diseñadores del sistema la identificación de objetos es un proceso iterativo. Es difícil que salga bien la primera vez En Resumen: El diseño orientado a objetos es un diseño con ocultamiento de información. La representación puede cambiarse sin cambios muy extensos. Un objeto tiene un estado privado con un constructor asociado y operaciones de acceso. Los objetos proveen servicios (operaciones) a otros objetos. La identificación de objetos es un proceso difícil. La identificación de sustantivos y verbos en lenguaje natural es útil para identificar objetos Las interfaces de objetos deben ser precisamente definidas. Un lenguaje de programación como Ada, C++ o JAVA puede usarse para esto Documentación útil para el diseño orientado a objetos incluyen, gráficas de jerarquía de objetos y diagramas de interacción de objetos. Los objetos puede implementarse como entidades secuenciales o concurrentes.
  • 9. II. DISEÑO DE SISTEMAS ORIENTADOS AOBJETOS: El diseño Orientado a Objetos (DOO) difiere considerablemente del diseño estructurado ya que en DOO no se realiza un problema en términos de tareas (subrutinas) ni en términos de datos, sino (como ya se vio en la introducción) se analiza el problema como un sistema de objetos que interactúan entre sí. Un problema desarrollado con técnicas orientadas a objetos requiere, en primer lugar saber cuáles son los objetos del programa. Como tales objetos son instancias de clases, la primera etapa en el desarrollo orientado a objetos requiere de la identificación de dichas clases (atributos y comportamiento), así como las relaciones entre éstas y su posterior implementación en un lenguaje de programación. Existen numerosos métodos de diseño orientado a objetos: Booch, Yourdon-Coad, Martín, Shlaer & Mellor, Rumbaugh, por citar algunos. Pero en general como ocurre en Cualquier proyecto estructurado, un proyecto software OO se compone de las siguientes etapas:  Análisis Orientado a Objetos (AOO)  Diseño Orientado a Objetos (DOO)  Programación Orientada a Objetos (POO) Aunque no siempre están bien delimitadas las etapas de análisis y diseño en la OO, se pueden sintetizar de alguna forma las
  • 10. ideas claves de las distintas tecnologías existentes dentro del desarrollo orientado a objetos al que denominaremos diseño. El método de Booch considera que las etapas del proceso en un desarrollo orientado a objetos son: 1. Identificar las claves y objetos en un nivel dado de abstracción 2. Identificar la semántica de estas clases y objetos 3. Identificar las relaciones entre clases y objetos 4. Especificar la interfaz y la implementación de estas clases y objetos Estas etapas suelen seguirse por la mayoría de los métodos de diseño OO existentes. De hecho, para los sistemas orientados a objetos se define el siguiente diseño en pirámide que contempla el método de Booch. EL DISEÑO ORIENTADO A OBJETOS EN PIRÁMIDE La capa del subsistema.- Contiene una representación de cada uno de los subsistemas que le permiten al software conseguir los requisitos definidos por el cliente e implementar la infraestructura técnica que los soporta. La capa de clases y Objetos.- Contiene las jerarquías de clase que permiten crear el sistema usando generalizaciones y especializaciones mejor definidas. Esta capa también contiene representaciones de diseño para cada objeto.
  • 11. RESPONSABILIDADES DEL DISEÑO La capa de mensajes.- Contiene los detalles que le permiten a cada objeto comunicarse con sus colaboradores. Esta capa establece las interfaces externas e internas para el sistema. La capa de responsabilidades.- Contiene las estructuras de datos y el diseño algorítmico para todo los atributos y operaciones de cada objeto. Esta pirámide de diseño se centra entonces en el diseño de un producto o sistema específico. II.1. EL ENFOQUE CONVENCIONAL Y EL ENFOQUE OO Los enfoques convencionales para el diseño del software aplican notaciones y heurísticas diferentes para establecer correspondencias entre el modelo de análisis y el diseño. Si recordamos la ingeniería de software clásica (imperativa), veremos que cada elemento del modelo de análisis convencional tiene correspondencia con una o más capas del modelo de diseño a.- Descripción de los objetos de datos b.- Especificación del proceso D.- Diseño Procedimental c.- Especificación de control D.- Diseño Procedimental d.- Diagrama Entidad-Relación A.- Diseño de Datos e.- Diagrama de flujo de datos B.- Diseño Arquitectónico C .- Diseño de Interfaz f.- Diagrama de transición de estado D.- Diseño Procedimental g.- Diccionario de datos A.- Diseño de datos
  • 12. Al igual que el diseño de software convencional, el DOO aplica diseño de datos (cuando se representan atributos), diseño de interfaces (cuando se presenta el intercambio de mensajes) y diseño procedimental (en el diseño de operaciones), no obstante el diseño arquitectónico es diferente. La arquitectura de diseño OO se centra más en las colaboraciones entre los objetos que con el flujo de control de datos. De esta manera las capas de la pirámide se renombran para reflejar de forma más exacta la naturaleza del DOO. La siguiente figura muestra ahora la correspondencia entre el AOO con las correspondientes capas de la pirámide de diseño OO. II.2.- EL DISEÑO: Bertrand Meyer sugiere los siguientes criterios para poder juzgar la capacidad que poseé un método de diseño en poder lograr ciertos elementos importantes tales como la modularidad: Descomponibilidad.- Facilidad con la cual un método de diseño ayuda al diseñador a descomponer un gran problema en subproblemas más sencillos de resolver. Componibilidad.- Grado con el cual un método de diseño asegura que los componentes de un programa (módulos), una vez diseñados y construidos, pueden reusarse para crear otros sistemas.
  • 13. Comprensibilidad.- Facilidad de comprensión de un componente de programa sin referencia a otra información o módulos. Continuidad.- Facilidad de hacer pequeños cambios en un programa y hacer que estos se manifiesten por sí mismos en cambios correspondientes solamente en no o unos pocos módulos más. Protección.- Característica arquitectónica que reducirá la propagación de efectos colaterales si ocurre un error en un módulo dado. Estos criterios y principios de diseño presentados por Meyer pueden aplicarse a cualquier método de diseño (incluyendo diseño estructurado), no obstante el método de diseño orientado a objetos alcanza cada uno de los principios de manera más eficiente que otros enfoques y el resultado final es una arquitectura modular que permite cumplir con todos los principios de modularidad de una manera más eficiente. Herramientas y sistemas que lo emplean MDA está siendo implementada en herramientas, los cuales integran la modelación y el desarrollo de un solo ambiente que lleva una aplicación desde el PIM, pasando por el PSM, y luego llevando la generación de código a un conjunto de lenguaje y archivos de configuración implementando interfaces, puentes a servicios y posiblemente hasta funcionalidades de negocio. Existen varias compañías que ya proveen herramientas que soportan este nivel de integración, incluyendo la generación de código. Actualmente las herramientas logran automatizar de un
  • 14. 50% a 70% la transformación de PIM a PSM, y debido a que el segundo paso se empezó a desarrollar desde antes, la automatización de la transformación de PSM a código ya es casi del 100% (Code Generation Network, 2004). Entre los generadores que se encuentran disponibles actualmente se encuentran: 1. AndroMDA: Este generador lee modelos UML exportados como XML y genera código Java. 2. iQgen: Generador basado en Java, que puede generar código C#, XML, Java y COBOL desde un modelo informático en formato XML y plantillas creadas en Java. 3. Pluggable Transformations (MDA-Catridges): Genera código Java y C# desde modelos UML.
  • 15. Conclusión Los sistemas construidos hoy en día son más complejos que los sistemas construidos en los años 70s y 80s. La complejidad funcional es menos preocupante de como lo era antes, lo que ahora ha tomado una prioridad alta es el modelar la comprensión del dominio del problema y las responsabilidades del sistema, por lo que estas metodologías se han convertido en una herramienta necesaria y de mucha importancia para el desarrollo de software. El DOO es una nueva forma de desarrollo de software que aun está siendo desarrollada, el cual facilita la creación de aplicaciones subiendo los niveles de abstracción. En la actualidad ya se encuentran disponibles distintas herramientas que tienen implementado generadores de código basados en DOO para distintos lenguajes, lo cual lo requerimientos que se necesitan son modelos y diagramas, principalmente UML.