0% encontró este documento útil (0 votos)
74 vistas5 páginas

Resumen de ADOO

Este documento describe conceptos clave de análisis y diseño orientado a objetos como programación orientada a objetos, diseño orientado a objetos, análisis orientado a objetos, metodologías como Booch, y conceptos como clases, objetos, herencia, polimorfismo y sobrecarga.

Cargado por

Leyaira Salas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas5 páginas

Resumen de ADOO

Este documento describe conceptos clave de análisis y diseño orientado a objetos como programación orientada a objetos, diseño orientado a objetos, análisis orientado a objetos, metodologías como Booch, y conceptos como clases, objetos, herencia, polimorfismo y sobrecarga.

Cargado por

Leyaira Salas
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Análisis y Diseño Orientado a Objetos

Autor: Juan Manuel Cueva Lovelle

Entregado por:
John Eider Salas Miranda

Resumen

Dirigido al profesor:

Tatiana Mastrascusa Villalobos

Facultad de Ingeniería
Tecnología Desarrollo en de Software
Semestre 4
Sección 1

Cartagena, Bolívar 2019


Programación orientada a objetos (POO)
Es un método de implementación en el que los programas se organizan como colecciones
cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y
cuyas clases son, todas ellas, miembros de una jerarquía de clases unidas mediante relaciones
de herencia

Diseño orientado a objetos (DOO)


Es un método de diseño que abarca el proceso de descomposición orientada a objetos y una
notación para describir los modelos lógico y físico, así como los modelos estático y dinámico del
sistema que se diseña

Análisis orientado a objetos (AOO)


Es un método de análisis que examina los requisitos desde la perspectiva de las clases y objetos
que se encuentran en el vocabulario del dominio del problema
Para la ejecución de la POO se hacen uso de unas metodologías para sus debidas prácticas.
Método y metodología
“Un método es un proceso disciplinado para generar un conjunto de modelos que describen
varios aspectos de un sistema de software en desarrollo, utilizando alguna notación bien
definida” [Booch 94] •
“Una metodología es una colección de métodos aplicados a lo largo del ciclo de vida del
Desarrollo de software y unificados por alguna aproximación general o filosófica” [Booch 94]

Cada metodología puede catalogarse en uno de los grupos siguientes:


• Diseño estructurado descendente – Yourdon y Constantine – Wirth – Dahl, Dijkstra y Hoare
• Diseño dirigido por datos – Jackson – Warnier y Orr
• Diseño orientado a objetos son las que siguen el modelo de objetos – Booch – OMT
(Rumbaugh et al.) – Objectory (Jacobson et al.) – Schlaer-Mellor – Coad/Yourdon

Planteamiento de las metodologías según los autores las han utilizado en el siguiente
tema de enfoque se toma en cuenta a Booch acerca del modelado orientado a objetos.
Un modelo es una representación simplificada de la realidad, se construyen modelos para
comprender mejor el sistema que se está desarrollando para ello es necesario observar el
modelo desde distintas vistas, y que todas ellas tienen que ser compatibles entre sí – Al igual
que en un plano se tienen varias perspectivas (planta, alzado, perfiles) compatibles entre sí.
La arquitectura de un sistema orientado a objetos puede describirse con cinco vistas
interrelacionadas:

 Vista de casos de uso


 Vista de diseño
 Vista de procesos
 Vista de implementación
 Vista de despliegue
Cada vista del modelo que resulta del diseño orientado a objetos es un conjunto de diagramas
y estos diagramas permiten razonar sobre el comportamiento del sistema. Cuando el modelo
es estable cada uno de los diagramas permanece semánticamente consistente con el resto de
los diagramas.
También además de una metodología se toma en cuenta una arquitectura

Arquitectura de sistemas orientados a objetos


La arquitectura de un sistema orientado a objetos puede describirse con cinco vistas
interrelacionadas:

 Vista de casos de uso


Muestra los requisitos del sistema tal como es percibido por los usuarios finales, analistas, y
encargados de pruebas.
 Vista de diseño
Captura el vocabulario del espacio del problema y del espacio de la solución
 Vista de procesos
Modela la distribución de los procesos e hilos
 Vista de implementación
Modela los componentes y archivos que se utilizan para ensamblar y hacer disponible el
sistema físico.
 Vista de despliegue
Modela los nodos de la topología hardware sobre la que se ejecuta el sistema, cada una de
estas vistas representan los planos del sistema. Según la naturaleza del problema unas vistas
tendrán más peso que otras.

Así por ejemplo: – Los sistemas con grandes cantidades de datos dominaran las vistas de
diseño – Los sistemas con uso intensivo de interfaces gráficas de usuario dominarán las vistas
de casos de uso – Los sistemas de tiempo real las vistas de procesos tienden a ser las más
importantes – En los sistemas distribuidos las vistas de implementación y el despliegue pasa a
un plano más importante.

Clases
Las clases son necesarias para la creación de objetos siendo las clases en si un conjunto de
objetos que comparten una estructura común y un comportamiento común
Una clase. Las clases tienen miembros formados por campos y métodos.

Las características de una clase son las siguientes:

 Los atributos y las operaciones pueden ser visibles o no según el detalle deseado
 Un atributo es un dato que se almacenará en los objetos que son instancias de la clase.
 Un método es la implementación de una operación para la clase
 Un adorno de clase es una propiedad por ejemplo indicar que la clase es abstracta (no
puede tener instancias, sólo se puede heredar de ella)
Objetos
Un objeto tiene estado, comportamiento e identidad; la estructura y comportamiento de
objetos similares están definidos en su clase común; los términos “instancia” y “objeto” es
intercambiables.
Los objetos contienen:

 Estado: El estado de un objeto abarca todas las propiedades


(Normalmente estáticas) del mismo más los valores actuales
(Normalmente dinámicos) de cada una de esas propiedades
 Comportamiento: El comportamiento es cómo actúa y reacciona un objeto, en términos
de sus cambios de estado y paso de mensajes.
– El estado de un objeto representa los resultados acumulados de su comportamiento

 Operaciones: Una operación denota un servicio que una clase ofrece a sus clientes
Los tipos de operaciones más frecuentes son:
 Modificador: Una operación que altera el estado de un objeto
 Selector: Una operación que accede al estado de un objeto, pero no altera este estado
 Iterador: Una operación que permite acceder a todas las partes de un objeto en algún
orden perfectamente establecido
 Constructor: Una operación que crea un objeto y/o inicializa su estado
 Destructor: Una operación que libera el estado de un objeto y/o destruye el propio
objeto

 Subprogramas libres: En los lenguajes OO puros (Smalltalk,


Eiffel, Java) sólo pueden declararse las operaciones como métodos

Herencia

La herencia es una delas jerarquías de clases más importante y es uno de los elementos
esenciales de los sistemas orientados a objetos. Aunque es necesaria manejarla con
cuidado y sólo cuando es necesario.
La herencia define una relación entre clases, en la que una clase comparte la estructura
de comportamiento definida en una o más clases (herencia simple o múltiple)
La herencia denota una relación “es-un” (“is-a”). Algunos autores también la denotan
como “is-a-kind-of”.
La herencia implica una jerarquía de generalización/especialización, en la que una
subclase especializa el comportamiento o estructura, más general, de sus superclases
• Las superclases representan abstracciones generalizadas
• Las subclases representan especializaciones en las que los atributos y métodos de la
superclase. Pueden añadirse, modificarse o incluso ocultarse.
• La herencia puede violar los principios de la encapsulación
• Los lenguajes OO ofrecen mecanismos para acoplar encapsulación y herencia
Riesgos de la Herencia:

 La herencia promueve una fuerte encapsulación con respecto a otras clases


fuera de la jerarquía de herencia. Sin embargo la encapsulación es frágil entre
las clases de la jerarquía, dado que un cambio en una superclase se trasmite a
todas las subclases
 La herencia promueve un acomodo frágil a objetos que cambian de subclase con
el tiempo

Polimorfismo
Es un mecanismo que permite a un método realizar distintas acciones al ser aplicado
sobre distintos tipos de objetos que son instancias de una misma jerarquía de clases
Características del polimorfismo:

 Polimorfismo significa “muchas formas”


 El polimorfismo se realiza en tiempo de ejecución gracias a la ligadura dinámica.
 No se debe confundir polimorfismo con sobrecarga.
 La sobrecarga se resuelve en tiempo descompilación, dado que los métodos se
deben diferenciar en el tipo o en el número de parámetros
 El polimorfismo se resuelve en tiempo de ejecución, todos los métodos tienen
los mismos parámetros, las acciones cambian en función del objeto al que se le
aplica.
 El lenguaje C++ utiliza los denominados métodos virtuales y punteros a objetos
para implementar el polimorfismo.

Sobrecarga (Overloading)
Se produce cuando existen dos o más métodos con el mismo identificador pero
con distinto número o tipo de parámetros resolviendo el compilador en tiempo
de compilación.

Características del polimorfismo:

 Algunos autores también denominan a la sobrecarga polimorfismo


estático.
 Cada método realiza una operación en función de los argumentos que
recibe
 Algunos lenguajes como C++ también soportan sobrecarga de
operadores, en este caso el significado de cada operador depende del
operando al que se aplique.

También podría gustarte