SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
CAPITULO II
METODOS Y MODELOS
20
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
2. MÉTODOS Y MODELOS
2.1 DEFINICIÓN DE "MÉTODO"
Al estudiar las metodologías de análisis y diseño orientadas a objetos, se manejan algunos
conceptos que es bueno definir de manera precisa.
Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes.
Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un
problema y su solución.
• Modelo es una representación formal de un sistema con cierto nivel de abstracción. En las
etapas de especificación de requerimientos y análisis el nivel de abstracción normalmente
es alto, omitiendo detalles de implementación.
o Meta modelo. Es un modelo que describe otros modelos, describe los conceptos del
método modelo y sus relaciones, define los modelos legales que pueden ser
construidos dentro del método, describe la información que debe ser capturada usando
herramientas CASE que soporten el método.
• Vistas y notaciones. Son útiles en la presentación fundamental del modelo de información
para que los seres humanos puedan comprenderla, examinarla y modificarla en su caso.
o Una vista solo muestra una parte de la semántica del modelo y diferentes vistas
pueden presentar la misma información en varias formas.
o Notación. Permite construir, examinar y manipular modelos, el mismo modelo se puede
dibujar de diferentes maneras mediante el uso de diferentes símbolos, donde algunos
de ellos pueden tener el mismo significado. Cada persona puede adoptar su propio
formato para describir sus diagramas.
o Artifacts. Están representados por los modelos y los diagramas del proceso de
desarrollo. Son los documentos de desarrollo que los expertos del dominio, directores
y clientes pueden examinar, comentar acerca de ellos y criticar. Son las variables que
miden el progreso, son aquellos que las herramientas deberán de producir. Son los
archivos que pueden ser intercambiados entre diseñadores y entre herramientas.
o Proceso de desarrollo iterativo. Representa una secuencia de pasos para la
construcción e implementación de modelos. El proceso puede estar distribuido en
varios niveles de detalle, desde el nivel más alto del proyecto, hasta etapas específicas
para la construcción de modelos de bajo nivel. El proceso indica que modelos se
deberán construir y como construirlos.
! Proceso. Es la guía que indica como producir un modelo, proporciona un esqueleto
de trabajo (frameworks) para el desarrollo, describe los artifacts a ser producidos y
las etapas para producirlos. A alto nivel, describe el desarrollo del ciclo de vida y
las etapas de iteración dentro de él. A bajo nivel describe un esqueleto de trabajo
para la producción de modelos; las etapas para la construcción del modelo,
lineamientos para describir componentes de él, principios de diseño a seguirse,
mediciones de calidad, referencias cruzadas, reglas de consistencia y banderas
rojas para identificar posibles problemas.
o Patrón. Es una solución estándar escrita para resolver un problema, basada en una
secuencia de tiempo. No existen museos de programas donde los nuevos diseñadores
puedan aprender, emulando programas que allí existen, mas bien, tratan de captar
ideas de los diseñadores expertos. Actualmente existe un Movimiento de Patrones,
con el propósito de coleccionar, catalogar y explicar patrones útiles de diseño, de tal
forma que otros diseñadores puedan aprender de ellos. Por lo tanto, Los Patrones,
son resúmenes de casos de diseño basados en la experiencia.
21
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
o Reglas de Diseño. Son estados o propiedades que deberán llevarse a cabo u omitirse
en un diseño o estrategias generales de diseño a utilizar.
o Tips y Reglas de dedo. Son recomendaciones que se aplican donde sea necesario, no
se organizan en etapas. Son presentaciones informales de patrones.
2.1.1 Modelos Orientados a Objetos (OO)
Cuando analizamos sistemas, creamos modelos del área de aplicación que nos interesa.
Un modelo puede incorporar un sistema, centrarse en el área de la empresa o abarcar toda la
empresa. El modelo de empresas es importante para la planeación de la automatización de las
mismas.
El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a
comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a
escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos
ayudara a idear sistemas o rediseñar áreas de una empresa.
Con el análisis orientado a objetos, la forma de modelar la realidad difiere del análisis
convencional. Modelamos el mundo en términos de tipos de objetos y lo que le ocurre a éstos. Esto
implica también diseñar y construir sistemas de forma orientada a objetos.
Los modelos que construimos en el análisis OO reflejan la realidad de modo más natural
que los del análisis tradicional de sistemas. Después de todo, la realidad consta de objetos y
eventos que cambian el estado de dichos objetos. Mediante las técnicas OO, construimos software
que modela mas fielmente el mundo real. Cuando el mundo real cambia, nuestro software es más
fácil de cambiar, lo que es una ventaja real.
2.2 MODELANDO EL MUNDO REAL.
Cuando se analizan sistemas se crean modelos del área de la aplicación en cuestión. El
modelo representa un aspecto del mundo real y se construye de modo que ayude a comprender a
éste. El modelo debe ser mucho más sencillo que la realidad, es una abstracción de ésta, se puede
lidiar con el modelo, cosa en muchas situaciones no sería posible hacer en el mundo real.
En el análisis orientado a objetos se modela en el mundo real en términos de tipos de
objetos y lo que les ocurre a éstos
En la Figura # 1 se ilustra de manera gráfica la forma de construir sistemas:
• El análisis crea un modelo en el dominio de la aplicación.
• El modelo se convierte en un diseño
• El diseño se convierte en código.
El modelo debe representar la forma en que los usuarios finales perciben el área de
dominio en cuestión, en la medida de lo posible el modelo debe ser presentado de forma que sea
comprensible para los usuarios finales.
Los modelos construidos en el análisis orientado a objetos reflejan la entidad del mundo
real de forma más natural que en el análisis tradicional de sistemas, ya que el mundo esta formado
por objetos y eventos que cambian el estado de dichos objetos. Utilizando las técnicas orientadas a
objetos, se construye software que modela el mundo real de manera más fiel, entonces, cuando el
mundo real cambia, el software es más fácil de cambiar, lo que representa una verdadera ventaja.
22
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
En el proceso de análisis se captura el punto de vista de los usuarios con respecto al área
de dominio del mundo real y posteriormente se traduce a software de la manera más
automáticamente posible, por lo tanto, al cambiar las necesidades de los usuarios, el software
cambiará con ellas.
El análisis orientado a objetos es análisis, pero también contiene una cierta cantidad de
síntesis. La abstracción de requisitos del usuario y la identificación de los objetos clave del área de
dominio van seguidas por el ensamblaje de estos objetos en estructuras, de una forma que admita
el diseño físico en alguna fase posterior. El aspecto de síntesis aparece precisamente porque se
esta utilizando un sistema, en otras palabras, porque se está imponiendo una estructura al área de
dominio.
Los sistemas pueden ser descritos en tres dimensiones:
a) Los datos, objetos o conceptos y su estructura.
b) Arquitectura o proceso no temporal.
c) La dinámica, comportamiento del sistema o el control del sistema.
Para validar la congruencia de estos aspectos, se realiza una comprobación cruzada, de tal
manera de comprobar que procesos usan cuales datos y como están siendo utilizados éstos,
aunque estas verificaciones incrementan los gastos tan solo en términos de documentación, sin
Mundo real
Modelo OO
Diseño OO
Código
El modelo debe representar la
realidad de manera que tenga
sentido para los usuarios finales
El diseño debe tener la misma
estructura básica que el modelo
El código se debe generar lo
más automáticamente
posible a partir del diseño.
Figura # 1
Datos
Dinámica Procesos
Figura # 2
23
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
embargo, se asegura que se traten todos los aspectos del sistema, siempre y cuando no sea
deficiente la extracción de conocimientos. También se tiene la ventaja de que se utilizan dos
técnicas para llegar a la misma conclusión; por lo tanto, si concuerdan los resultados, el grado de
confianza será mayor.
La orientación a objetos, combina 2 de estos aspectos, los datos y los procesos,
encapsulando los datos, también es posible encapsular el control. De esta forma, un análisis
orientado a objetos se puede considerar como una manera de traslado de silogismos, que parte de
lo particular (las clases), atraviesa lo individual (las instancias) y llega a lo universal (el control).
2.2.1 Modelado del mundo real
La solución de problemas comprende el entendimiento o conceptualización del problema,
su resolución e implementación de su solución. Conceptualizar un problema involucra su
representación usando construcciones representativas (nociones mentales o ideas). El solucionar
el problema involucra la manipulación de las construcciones representativas del dominio del
problema y del dominio de la solución para derivar hacia la representación de la solución deseada.
La realización de la solución involucra el mapeo de las construcciones representativas de la
solución en el entorno de la solución, o sea, construir la solución. El uso de las construcciones
representativas es un proceso muy natural que a menudo ocurre sutilmente y a veces
inconscientemente en la solución del problema. Subyacente a este esquema está el uso de un
paradigma en la determinación de los posibles tipos de representaciones usadas en los esfuerzos
de resolución del problema.
El paradigma orientado al objeto deriva de la convergencia de otros paradigmas
fundamentales, y se reduce a los otros paradigmas tanto como sea requerido por su aplicación a
través de un lenguaje o método. La flexibilidad alcanzada usando este paradigma puede ser
entendida mejor examinando las raíces del mismo dentro de la Teoría de las Formas de Platón.
El Mundo Real
El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver
los problemas. El mundo real incluye:
Cosas o entidades que tienen un propósito o rol dentro del mundo.
Las entidades tiene características estructurales que representan lo que las cosas
"saben" y características de comportamiento que representan lo que las cosas "hacen". Una
entidad agregada puede contener entidades componentes que son características estructurales y
de comportamiento.
Relaciones entre entidades.
Las relaciones pueden ser tratadas como características estructurales compartidas entre
múltiples entidades que tienen una relación con alguna otra. Una entidad agregada puede contener
entidades componentes que están relacionadas vía un atributo de la entidad agregada.
Ocurrencias entre entidades.
Las ocurrencias pueden ser tratadas como características de comportamiento compartidas
entre múltiples entidades que interactúan con alguna otra. Una entidad agregada puede contener
entidades componentes que son manipuladas vía una operación de la entidad agregada.
Estos conceptos son fundamentales para la interacción con el mundo real.
24
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
2.3 TIPOS BÁSICOS DE LOS MÉTODOS ORIENTADOS A OBJETOS.
Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos
tipos básicos:
a) Ternaria o trilateral. La que utilizan los métodos estructurados ya existentes mediante tres
notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía
como sus notaciones por personas familiarizadas con los métodos estructurados. Las
metodologías orientadas a objetos más conocidas que usan esta aproximación son:
• Técnica de Modelado de Objetos, OMT de Rumbaugh 1991. Es un método muy
rico, pero resulta difícil de aprender, es pobre en la especificación de reglas y
limitaciones.
• Ptech modificado de Martín Odell 1992. Es sencillo.
• Análisis de Sistemas Orientados a Objetos, OSA de Embly 1992. Es sencillo,
permite escribir limitaciones en los diagramas como si fuese un pensamiento
posterior adicional.
b) Uniría. Dado que los objetos combinan de manera innata los procesos (métodos) y los
datos, solamente es necesaria una notación, son
• Más congruentes con la metáfora de orientación a objetos.
• Más fáciles de aprender, partiendo desde cero.
Las metodologías orientadas a objetos más conocidas que usan esta aproximación
son:
• Clase, Responsabilidad, Colaboración, CRC de Rebecca Wirfs y Brock
1990. También se le conoce como "Diseño Controlado por Responsabilidades"
(RDD). Resulta útil para documentar diseños orientados a objetos y también
para enseñar los conceptos básicos. Tiene la ventaja de no necesitar nada
mas que una caja de fichas de cartón como herramienta CASE.
• Coad y Yourdon 1990. Es sencillo pero carece de apoyo para describir la
dinámica del sistema.
2.4 CONCEPTOS BÁSICOS DE TECNOLOGÍA DE OBJETOS.
2.4.1 Introducción.
Las aplicaciones de software de hoy son más capaces y más fáciles de usar que antes.
Estos han llegado a ser cada vez más difíciles y costosos para diseñar, mantener, mejorar e
integrar. La mayoría de las aplicaciones son monolíticas, proveyendo ricos conjuntos de
características pero no fáciles de manejar en su futura modificación, mejoramiento y actualización
de nuevas características y/o implementaciones.
Los sistemas operativos tienen un conjunto común de problemas. Porque la mayoría de los
sistemas operativos no son suficientemente modulares, actualizados, reemplazables, o capaces de
imponerse a los servicios existentes de una manera fácil y flexible (Difícil acoplamiento entre
plataformas).
A la opinión de los desarrolladores de aplicaciones, los ejecutivos de sistemas encaran la
difícil elección de qué mejoramientos se necesitan, en función de mantener la compatibilidad con
versiones anteriores o nuevas posibilidades en tecnología de Software.
Tecnología de Objetos (Object technology, OT) en ingeniería de software facilita el
desarrollo, mantenimiento y rehúso de un rango de aplicaciones amplio. La Tecnología de Objetos
hace lo posible por romper aplicaciones monolíticas en módulos funcionales, o componentes, que
pueden agregarse o ser eliminados según la aplicación lo requiera.
25
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
La tecnología de objetos puede potencialmente reducir el gasto de implementar nuevos
objetos por los ya disponibles, mediante mecanismos como el encapsulamiento, herencia,
polimorfismo, y la agregación, etc. haciendo uso extensivo de la re-utilización (uso de objetos ya
existentes). Estas aplicaciones están relacionadas con el procesamiento y transferencia de datos,
interfase de usuario. Existen dos tecnologías de objetos básicas:
1).- Tecnología Orientada a Objetos (Object Oriented Technology, OOT) que incluye:
" Programación orientada a objetos,
" Análisis, diseño y modelado orientado a objetos.
2).- Tecnología Basada en Objetos (Object Based Technology, OBT), usa mecanismos cliente /
servidor, incluyendo:
" Programación basada en componentes
" Análisis, diseño y modelado de componentes (objetos) distribuidos
" Computo distribuido y concurrente.
Estas tecnologías tienen muchas ideas y enfoques en común, su principal diferencia es
que los métodos orientados a objetos usan herencia y son presentados en especificaciones de
programas o códigos y los métodos basados en objetos usan herencia de interfaces y son
presentados en código binario ejecutable o código basado en DLL (La biblioteca de vínculos
dinámicos).
Esta clasificación es muy parecida al concepto "white box" y "black box" donde en el
concepto de caja negra el usuario no sabe nada sobre estructura de componente y puede usar
comportamiento de esta caja en sus metas solo a través de las interfaces, pero para caja blanca
conocemos propiedades de esta "caja" y podemos re-usar estos conocimientos en nuestras metas
a través de herencia, u otras tecnologías.
2.5 TIPOS BASICOS DE METODOS ORIENTADOS A OBJETOS
2.5.1 Análisis y diseño orientados a objetos
Si damos una ojeada al panorama actual de análisis y diseño orientados a objetos nos
encontraremos con pocas metodologías y muchos métodos, buena parte de los cuales observan
un carácter básicamente "propietario", siendo muy pocos los que cubren el ciclo completo de vida
del software. Aparecerá claro, a la vez, que existe un escaso interés, ajeno a las cuitas
comerciales, en estandarizar los métodos: es más: cuando el OMG (Object Management Group),
en un intento normalizador, requirió la colaboración de los autores de métodos de OOA/OOD, un
nutrido e importante grupo de éstos replicó con una carta pública en la que afirmaban que tal
estandarización no era en absoluto deseable. Parece que es ridículo pensar que existe un método
orientado a objetos bueno para todo, como es risible afirmar que no existe ningún hombre
absolutamente estúpido. Se aprecia, también, la difuminación del hasta ahora habitual gap
semántico entre análisis y diseño, pero aun esto resulta turbador, pues la planificación práctica
usualmente necesita de fases claras que permitan la evaluación de resultados y los pertinentes
controles de integridad y estabilidad. Las grafías, por último, resultan sospechosamente parecidas
entre sí, y oscilan entre la simplicidad sospechosa y la prolijidad culpable.
Tras todo lo anterior no hay que intimidarse, la orientación a objetos realmente "funciona",
y ya existe un importante acervo práctico de soluciones de software basadas en análisis y diseños
orientados a objetos. Pero también existe un nada despreciable anecdotario de fracasos y
despropósitos. La realidad es que el camino de la productividad, como el del infierno, está
fatalmente empedrado de ilusiones e intentos aventurados.
26
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
Se necesitará alguna luz. Se intentará una revisión de los métodos comerciales.
2.6 METODOS COMERCIALES DE OOA/OOD
Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes
principales, dividiendo a estos en:
Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a
los objetos y las operaciones que sobre ella operan.
Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto
tiene sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de
los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden
operarse en su representación interna), o bien a sus relaciones con otros objetos.
Pero la verdad es que ésta es una diferencia puramente académica. Lo cierto es que la
mayoría de los métodos viene desplazándose, afianzados en el borboteo comercial de las Bases
de Objetos (OODBMSs), hacia esquemas puramente dinámicos. Y es que divisiones como la
anterior pueden encontrarse con demasiada frecuencia en la literatura, cada vez más extensa,
sobre el tema, fundamentalmente debido a la gran profusión de métodos con bases teóricas un
tanto difusas. Y si no échenle un vistazo a algunos (imposible disponer de una lista actualizada de
todos ellos) de los actuales métodos de OOA/OOD (intencionadamente desordenados, para no
generar falsas esperanzas):
Object Oriented Design OOD Grady Booch
Object Behaviour Analysis OBA Rubin & Goldberg
Methodology for Object Oriented
Software Engineering of Systems MOSES Henderson-Sellers & Edwards
General Object Oriented Design GOOD Seidewitz & Stark
Object Oriented Software
Engineering
OOSE Ivar Jacobson
Visual Modeling Technique VMT IBM
Texel Texel
Object Modeling Technique OMT Rumbaugh y otros
Better Object Notation BOM Nerson
Object Oriented System Analysis OOSA Shlaer & Mellor
Object Oriented Structured Design OOSD Wasserman et al.
Systems Engineering OO SEOO LBMS
Syntropy Cook y otros
METODOS SIGLAS AUTORES
27
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
Object Oriented Jackson OOJSD Jackson
Structured Design HOOD ESA
Hierarchical Object Oriented Design OOA Coad & Yourdon
Object Oriented Analysis OOD Coad & Yourdon
Object Oriented Design OSA Embley y otros
Object Oriented System Analysis FOA
Embley y otros
Colbert E. Colbert
Frame Object Analysis SOMA Andleigh/Gretzingr
Semantic Object Modelling Approach Ian Graham
Berard Berard
ADM3 Donald Firesmith
Ptech OOA&D Martin & Odell
Object Oriented Rôle Analysis
Synthesis and Structuring OORASS Reenskaug et al.
Fusion Coleman y otros
Desfray Softeam
Como fácilmente se comprobará, en la tabla anterior se mezclan métodos de análisis y de
diseño porque, pese a lo que anuncien sus autores o aun su mismo nombre, la distinción entre
análisis y diseño se difumina, como antes comentábamos, de forma turbadora (aunque claramente
deseable respecto al modelado de la realidad).
2.7 METODOS DE ANALISIS ORIENTADOS A OBJETOS
2.7.1 Método OOSA de Shlaer/Mellor
El primer paso del método de Shaler y Mellor es la definición de objetos y de sus atributos.
La notación de modelado de entidades desciende de la notación de Ward/Mellor. Este método se
puede clasificar como trilateral, y se desarrolla creando un modelo de información (o de datos) que
muestran los objetos, atributos y relaciones. Este método recibe un apoyo parcial de la
herramienta CASE, llamada teamwork.
METODOS SIGLAS AUTORES
28
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
2.7.2 Método Coad Yourdon
Existe una aproximación que surgió de los sicarios de Yourdon y se debe mucho a la
tradición de modelado de entidades y relaciones, esta aproximación se resume en Coad Yourdon y
resulto especialmente interesante al ser la primera descripción ampliamente difundida de un
método de análisis y una notación de apoyo razonablemente completos, prácticos, orientados a
objetos y adecuados para proyectos comerciales. Coad Yourdon presenta una notación menos
torpe que la que se encontraba en Booch, Shlaer/Mellor o a la mayoría de las aproximaciones de
diseño orientado a objetos.
Una de las características más notables de las notaciones de Shlaer/Mellor y Coad
Yourdon es que los atributos resultan completamente explícitos. Coad Yourdon sugiere que el
análisis se produce en cinco fases a las que dan los nombres siguientes:
♦ Temas: los temas son de tamaño tratable en cuanto contendrán solo aproximadamente entre
cinco y nueve objetos.
♦ Objetos: se identifican los objetos con detalle.
♦ Estructuras: se identifican dos estructuras completamente distintas.
" Estructuras de clasificación.
" Estructuras de composición.
♦ Atributos: los atributos son detallados y se especifican las relaciones de modalidad y de
multiplicidad.
♦ Servicios: esta es la palabra que emplea Coad Yourdon para las operaciones.
El método no es perfecto pero resulta sencillo y unario.
2.7.3 Método Rumbaugh-OMT
La técnica de modelado de objetos (OMT) es considerado ampliamente como uno de los
sistemas de análisis orientados a objetos más completos que se han publicado hasta el momento.
OMT consta de tres fases o actividades principales: análisis, diseño de sistemas y diseño de
objetos.
El análisis presupone que existe una especificación de los requisitos y se desarrolla
construyendo tres modelos distintos mediante el uso de tres notaciones diferentes.
El diseño de sistemas se realiza organizando los objetos en subsistemas identificando la
concurrencia a partir del modelo dinámico (DM), asignando subsistemas a procesadores o tareas,
diciendo si los datos deben o no estar almacenados en archivos, en memoria o en un sistema de
administración de base de datos, diciendo el uso de periféricos, y recursos globales.
El diseño de objetos implica transformar la información del DM y del modelo funcional (FM)
en operaciones de modelo objeto (OM), los pasos restantes consisten en:
1. Diseñar algoritmos.
2. Optimizar vías de acceso.
3. Realizar el control.
4. Ajustar estructuras.
5. Indicar los detalles de los atributos.
6. Empaquetar las estructuras en módulos.
7. Escribir el informe de diseño, incluyendo un OM, DM, y FM detallados.
29
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
El OMT tiene la intención de ser un método tanto para el análisis como para el diseño,
pero, aun cuando contiene un método bastante completo para el análisis, solamente tiende a dar
indicaciones practicas para el diseño. El OMT abarca mas temas que la mayoría de los demás
métodos, pero sigue siendo incompleto en algunos aspectos y resulta muy complejo aprender y
utilizar sus notaciones.
2.7.4 Método Soma
Es un método semánticamente rico en análisis orientado a objetos. Añade reglas,
conjuntos difusos, capas con una semántica clara y además permite a los diseñadores transformar
las reglas en afirmaciones. Se desarrolla empleando siete actividades:
♦ Capas
♦ Objetos
♦ Estructuras
Estructuras de utilización
Estructuras de clasificación
Estructuras de descomposición
♦ Semántica de asociaciones y datos
Modalidad y multiplicidad
♦ Atributos
Tipos, valores por omisión, validación, seguridad
♦ Métodos u operaciones
Parámetros y sus tipos, afirmaciones
♦ Reglas
Reglas de control
Reglas de negocios
Actividades
2.8 METODOS DE DISEÑO ORIENTADO A OBJETOS
Los cambios de diseño necesarios están localizados, y son improbables las interacciones
inesperadas con otros módulos del programa.
El diseño basado en objetos es adecuado para una realización distribuida, paralela o
secuencial.
Se eliminan las zonas compartidas de datos, reduciendo, de esta manera, la posibilidad de
modificaciones inesperadas, así como otras anomalías en la actualización.
Los métodos de diseño orientados a objetos comparten los siguientes pasos básicos de
diseño, aunque los detalles varíen mucho.
" Se identifican los objetos y sus atributos, así como los nombres de los métodos.
" Se establece la visibilidad de cada objeto en relación con los demás objetos.
" Se establece la interfaz de cada objeto y el tratamiento de excepciones.
" Se realizan y comprueban los objetos.
2.8.1 Método de Booch
El método original de Booch comienza por un análisis de flujo de datos, que se utiliza
entonces como ayuda para identificar objetos, buscando tanto objetos concretos como objetos
abstractos en el espacio del problema, que se encontraran a partir de las burbujas y almacenes de
datos en el diagrama de flujo de datos (DFD).
30
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
La notación y método de diseño revisados de Booch consta de 4 actividades principales y 6
notaciones. Los primeros pasos tratan los aspectos estáticos del sistema, tanto en su aspecto
lógico como en su aspecto físico.
Estructura lógica
♦ Diagramas de clases
♦ Diagramas de objetos
Estructura física
♦ Diagramas de módulos
♦ Diagramas de procesos
Dinámica de clases
♦ Diagramas de transición de estados
Dinámica de instancias
♦ Diagramas temporales
El de Booch es uno de los métodos de diseño mejor desarrollado y es superior a GOOD y
a HOOD, en tanto en cuanto no esta relacionado con Ada, y por poseer, además una noción de
estructura mucho mas general.
2.8.2 Método Good
El método de diseño general orientado a objetos (GOOD) fue desarrollado en la NASA por
Seidewitz y Stark (1983). Trata tanto la especificación de requisitos como el diseño de proyectos en
Ada. El método se desarrolla, al igual que sucede con el de Booch, partiendo de un conjunto
preliminar de diagramas de flujo por capas, llegando hasta la identificación de los objetos
implicados. En estos DFD se buscan objetos externos, depósitos de datos, interfaces de control y
depósitos de control.
2.8.3 Método Hood
La noción de la jerarquía de prioridades es aprovechada también por otro método, HOOD.
La “H” de HOOD quiere decir jerárquico. Este método también esta muy orientado al desarrollo en
Ada y fue desarrollado en la agencia espacial europea. Sufrió la influencia directa de GOOD, y
también se basa en el método de maquinas abstractas. En HOOD los objetos son o pasivos o
activos. Los objetos pasivos solamente son capaces de utilizar los objetos de otros objetos
pasivos, pero los activos pueden utilizar los servicios de cualquier objeto. HOOD es un método de
refinamiento progresivo que se basa en la descomposición de un objeto del máximo nivel y,
posteriormente, en la descomposición de los objetos así resultantes.
El método HOOD utiliza un cierto numero de pasos para descomponer cada objeto,
comenzando por un paso de diseño básico que podría implicar técnicas de realización de
diagramas de procedentes de otros métodos de análisis y diseño estructurado. El paso siguiente
consiste en generar una estrategia informal de soluciones. Esto se descompone en un cierto
numero de tareas: un esbozo del lenguaje natural, diagramas HOOD de primera mano y una
descripción del nivel actual de abstracción. El tercer paso consiste en formalizar la estrategia de
solución. Esto se hace por fases, identificando y describiendo los objetos y sus operaciones.
2.8.4 Método OOSD
El diseño estructurado orientado a objetos (OOSD), que fuera presentado por Wasserman,
Picher y Muller (1990). Hablando estrictamente OOSD no es un método sino una notación a la cual
se pueden agregar reglas metodológicas. Esta notación es probablemente la que más próxima se
encuentra al espíritu de la orientación a objetos. OOSD es una notación no propietaria para el
31
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
diseño arquitectónico, que cambia el diseño por refinamiento progresivo estructurado y el diseño
orientado a objetos. Una vez mas OOSD emplea una notación que se deriva de la de Booch, pero,
también tiene influencia de los diagramas estructurales.
OOSD no es tanto un método como una notación para apoyar los métodos de diseño
orientado a objetos en general. Los usuarios de OOSD pueden añadir reglas de diseño según cual
sea el método concreto que esté utilizando.
Otros puntos importantes de OOSD son la facilidad con la que es aceptado por los
desarrolladores que ya están familiarizados con el diseño estructurado así como lo adecuado que
resulta para los sistemas de tiempo real.
OOSD es una de las notaciones de diseño mas avanzadas híbrido orientado a objetos de
bajo nivel. Parece improbable que sea posible extenderla hasta una notación de análisis
congruente, como consecuencia de la dificultad que surge al tratar un gran numero de métodos y
como consecuencia también de la ausencia de una forma en la que se puedan tratar estructuras y
atributos de datos muy complejos. Por otra parte, resulta mas adecuada para el diseño
arquitectónico o lógico que para el diseño físico.
2.8.5 Método JSD y OOJSD
El diseño estructurado de Jackson (JSD) es un método basado en objetos mas que un
método completamente orientado a objetos. Los modelos JSD se descomponen en términos de
sucesos o de acciones y de sus dependencias temporales. Dentro de estos sucesos la
aproximación JSD define, en primer lugar los objetos. El paso siguiente construye una
especificación en términos de procesos secuenciales que se comunican, y que pueden acceder los
unos al estado de los otros. El método puede resultar útil si el diseño orientado a objetos debe
realizarse en un lenguaje convencional.
Es posible identificar un cierto numero de similitudes entre JSD y los métodos de diseño
orientados a objetos. JSD contiene técnicas útiles para la identificación de entidades y de métodos
dentro de su fase de modelado. Además, la técnica de análisis por ordenación temporal de JSD y
el diseño orientado a objetos utilizan el concepto de los objetos de forma similar, aun cuando sus
terminologías son distintas.
2.8.6 Método OODLE
El OODLE (lenguaje de diseño orientado a objetos) es un componente especifico de diseño
del método Shlaer/Mellor, cuya aproximación al análisis orientado a objetos, prescribe 4 tipos de
diagramas, interrelacionados mediante un esquema de capas que ayuda con la documentación y
con un potencial de apoyo automático. Se dice que la notación es independiente del lenguaje, aun
cuando se aprecia ciertos aspectos de Ada en la notación y el apoyo de los amigos recuerda al de
C++. Los tipos de diagramas son los siguientes:
♦ Diagramas de dependencia, que muestran relaciones de utilización (cliente/servidor) y de
amigos entre clases.
♦ Diagramas de clases, que muestran el aspecto externo de la clase de forma similar a Booch.
♦ Diagramas de estructuras de clases que muestran la estructura de los métodos de la clase, y el
flujo de datos y de control
♦ Diagramas de herencia, que representan la herencia
2.9 CONCLUSION
Podemos mencionar en lo que respecta a este capítulo, que la propuesta de la
metodología es tomada como una comparación, en donde lo que nos interesa saber, es lo que se
entiende por una tecnología basada en una metodología, para así tener un interés para regresar y
32
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
comprender el significado de lo que es orientado a objetos. Y ver como una metodología responde
con respecto a otras metodologías.
En muchos instancias individuales u organizaciones de compañías han iniciado con la
evaluación y selección de una metodología para el uso de desarrollo de software. En algunos
casos estas instancias tienen un tiempo límite para llevar acabo este recurso, por lo tanto para
ellos la comparación de metodología viene de un atajo de punto medio de selección.
Desafortunadamente la calidad de la decisión descansa únicamente con la calidad de la
comparación de la metodología en uso.
La comparación entre metodologías da la pauta para estar seguro que la selección inicial
es la correcta a otras metodologías apropiadas ya existentes.
La justificación de la tecnología dice que existe una gran comunidad en la ingeniería de
software que ve el cambio. En algunos casos el cambio es encontrar cambios en la practica. Por
eso la razón de la comparación de las metodologías. Se comparan las ideas, pasos, conceptos,
notación, mecanismo de comunicación y la especificación técnica de 6 métodos aceptados.
Los seis métodos son: Booch, Martín/Odell, Coad Yourdon, Rumbaugh, Wirfs-Brock y
Shlaer Mellor.
2.10 RESUMEN
Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes.
Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un
problema y su solución.
Modelo es una representación formal de un sistema con cierto nivel de abstracción.
Metamodelo. Es un modelo que describe otros modelos, describe los conceptos del método
modelo y sus relaciones.
Proceso de desarrollo iterativo. Representa una secuencia de pasos para la construcción e
implementación de modelos.
Modelos Orientados a Objetos
El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a
comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a
escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos
ayudara a idear sistemas o rediseñar áreas de la empresa.
El Mundo Real
El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver
los problemas. El mundo real incluye:
" Cosas o entidades que tienen un propósito o rol dentro del mundo.
" Relaciones entre entidades.
" Ocurrencias entre entidades.
33
Análisis y Diseño Orientado
a Objetos
Instituto Tecnológico
de la Laguna
Paola Romero Guillén
Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos
tipos básicos:
TERNARIA o TRILATERAL. La que utilizan los métodos estructurados ya existentes mediante tres
notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía como sus
notaciones por personas familiarizadas con los métodos estructurados.
UNARIA. Dado que los objetos combinan de manera innata los procesos (métodos) y los datos,
solamente es necesaria una notación, son
" Más congruentes con la metáfora de orientación a objetos.
" Más fáciles de aprender, partiendo desde cero.
Métodos comerciales de OOA/OOD
Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes
principales, dividiendo a estos en:
" Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a los
objetos y las operaciones que sobre ella operan.
" Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto tiene
sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de
los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden
operarse en su representación interna), o bien a sus relaciones con otros objetos.
2.11 CUESTIONARIO
1. ¿Qué es un método?
2. ¿Qué diferencia hay entre un método y una metodología?
3. ¿Qué es un metamodelo?
4. Explique a que se refiere modelado del mundo real.
5. En que consiste lo comercial del AOO y DOO.
6. Mencione algunos métodos de AOO
7. Mencione algunos métodos de DOO

Weitere ähnliche Inhalte

Was ist angesagt?

Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosCesar Prado
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datosCaro_Noirgean
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimientoturlahackers
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datosemnero
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 

Was ist angesagt? (20)

Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
UML
UMLUML
UML
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
OOSE
OOSEOOSE
OOSE
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Ingeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientosIngeniería de requisitos e ingeniería de requerimientos
Ingeniería de requisitos e ingeniería de requerimientos
 
Normalizacion de bases de datos
Normalizacion de bases de datosNormalizacion de bases de datos
Normalizacion de bases de datos
 
Analisis de requerimiento
Analisis de requerimientoAnalisis de requerimiento
Analisis de requerimiento
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
metodologia de diseño de base de datos
metodologia de diseño de base de datosmetodologia de diseño de base de datos
metodologia de diseño de base de datos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 

Ähnlich wie METODOS Y MODELOS POO

Metodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de SistemasMetodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de Sistemasalberto_marin11
 
Metodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de SistemasMetodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de Sistemasalberto_marin11
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptRafaelAcedo2
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Metodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasMetodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasElvis Mendoza Sequera
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetosMariana Rodríguez
 
Jose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasJose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasAmerigled Salgado
 
Metodologias para el analisis y diseño de sistemas
Metodologias para el analisis y diseño de sistemasMetodologias para el analisis y diseño de sistemas
Metodologias para el analisis y diseño de sistemasAlexander Pino
 
Aplicacion RUP Y UML
Aplicacion RUP Y UMLAplicacion RUP Y UML
Aplicacion RUP Y UMLEsraelita
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian OblitasChristian1705
 
Alejandro soto ingeneria sistema
Alejandro soto ingeneria sistemaAlejandro soto ingeneria sistema
Alejandro soto ingeneria sistemaAlejandross1
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelaaularjesus
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasUNEFA
 

Ähnlich wie METODOS Y MODELOS POO (20)

Modelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones webModelado y metodologias para aplicaciones web
Modelado y metodologias para aplicaciones web
 
Tecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones WebTecnicas de modelado y metodologias para aplicaciones Web
Tecnicas de modelado y metodologias para aplicaciones Web
 
Uml
UmlUml
Uml
 
Metodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de SistemasMetodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de Sistemas
 
Metodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de SistemasMetodologías para el Análisisy Diseño de Sistemas
Metodologías para el Análisisy Diseño de Sistemas
 
Tema 2.UML parte 1.ppt
Tema 2.UML parte 1.pptTema 2.UML parte 1.ppt
Tema 2.UML parte 1.ppt
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Analisis orientados a objetos
Analisis orientados a objetosAnalisis orientados a objetos
Analisis orientados a objetos
 
Is.exp.329466
Is.exp.329466Is.exp.329466
Is.exp.329466
 
Metodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de SistemasMetodologias de Analisis y Diseno de Sistemas
Metodologias de Analisis y Diseno de Sistemas
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetos
 
Jose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemasJose marcano analisis y diseño de sistemas
Jose marcano analisis y diseño de sistemas
 
Metodologias para el analisis y diseño de sistemas
Metodologias para el analisis y diseño de sistemasMetodologias para el analisis y diseño de sistemas
Metodologias para el analisis y diseño de sistemas
 
Aplicacion RUP Y UML
Aplicacion RUP Y UMLAplicacion RUP Y UML
Aplicacion RUP Y UML
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 
Alejandro soto ingeneria sistema
Alejandro soto ingeneria sistemaAlejandro soto ingeneria sistema
Alejandro soto ingeneria sistema
 
Presentación2
Presentación2Presentación2
Presentación2
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Metodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemasMetodologías para el desarrollo de sistemas
Metodologías para el desarrollo de sistemas
 

Mehr von johnny herrera

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrerajohnny herrera
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900johnny herrera
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-partejohnny herrera
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1johnny herrera
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .netjohnny herrera
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0johnny herrera
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetosjohnny herrera
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilarjohnny herrera
 
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 johnny herrera
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60johnny herrera
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitariajohnny herrera
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++johnny herrera
 

Mehr von johnny herrera (20)

Presentación de johnny herrera
Presentación de johnny herreraPresentación de johnny herrera
Presentación de johnny herrera
 
Tiristores
TiristoresTiristores
Tiristores
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
Introduccin a-programacin-orientada-a-objetos-oop-clases-y-objetos900
 
Desarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parteDesarrollo de-software-poo-2-parte
Desarrollo de-software-poo-2-parte
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
Mapas conceptual, evolucion de la Web 1.0 hasta la Web 5.0
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes AguilarProgramacion Orientada a Objetos Luis Joyanes Aguilar
Programacion Orientada a Objetos Luis Joyanes Aguilar
 
Programacioncon Visual Basic 6
Programacioncon Visual Basic 6 Programacioncon Visual Basic 6
Programacioncon Visual Basic 6
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Tutorial de Visual
Tutorial de  VisualTutorial de  Visual
Tutorial de Visual
 
Practicas visualbasic60
Practicas visualbasic60Practicas visualbasic60
Practicas visualbasic60
 
Modulo Derivadas
Modulo DerivadasModulo Derivadas
Modulo Derivadas
 
Matematica 1 usb
Matematica 1 usbMatematica 1 usb
Matematica 1 usb
 
Matematica universitaria
Matematica universitariaMatematica universitaria
Matematica universitaria
 
Matematica1 usb
Matematica1 usbMatematica1 usb
Matematica1 usb
 
Problemas resueltos de c++
Problemas  resueltos de c++Problemas  resueltos de c++
Problemas resueltos de c++
 

Kürzlich hochgeladen

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfGuillermoBarquero7
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptxEncomiendasElSherpa
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralAitana
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaKANTUPAULAPORCELYUCR
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSBeatrizGonzales19
 

Kürzlich hochgeladen (6)

Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 

METODOS Y MODELOS POO

  • 2. 20 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén 2. MÉTODOS Y MODELOS 2.1 DEFINICIÓN DE "MÉTODO" Al estudiar las metodologías de análisis y diseño orientadas a objetos, se manejan algunos conceptos que es bueno definir de manera precisa. Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes. Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un problema y su solución. • Modelo es una representación formal de un sistema con cierto nivel de abstracción. En las etapas de especificación de requerimientos y análisis el nivel de abstracción normalmente es alto, omitiendo detalles de implementación. o Meta modelo. Es un modelo que describe otros modelos, describe los conceptos del método modelo y sus relaciones, define los modelos legales que pueden ser construidos dentro del método, describe la información que debe ser capturada usando herramientas CASE que soporten el método. • Vistas y notaciones. Son útiles en la presentación fundamental del modelo de información para que los seres humanos puedan comprenderla, examinarla y modificarla en su caso. o Una vista solo muestra una parte de la semántica del modelo y diferentes vistas pueden presentar la misma información en varias formas. o Notación. Permite construir, examinar y manipular modelos, el mismo modelo se puede dibujar de diferentes maneras mediante el uso de diferentes símbolos, donde algunos de ellos pueden tener el mismo significado. Cada persona puede adoptar su propio formato para describir sus diagramas. o Artifacts. Están representados por los modelos y los diagramas del proceso de desarrollo. Son los documentos de desarrollo que los expertos del dominio, directores y clientes pueden examinar, comentar acerca de ellos y criticar. Son las variables que miden el progreso, son aquellos que las herramientas deberán de producir. Son los archivos que pueden ser intercambiados entre diseñadores y entre herramientas. o Proceso de desarrollo iterativo. Representa una secuencia de pasos para la construcción e implementación de modelos. El proceso puede estar distribuido en varios niveles de detalle, desde el nivel más alto del proyecto, hasta etapas específicas para la construcción de modelos de bajo nivel. El proceso indica que modelos se deberán construir y como construirlos. ! Proceso. Es la guía que indica como producir un modelo, proporciona un esqueleto de trabajo (frameworks) para el desarrollo, describe los artifacts a ser producidos y las etapas para producirlos. A alto nivel, describe el desarrollo del ciclo de vida y las etapas de iteración dentro de él. A bajo nivel describe un esqueleto de trabajo para la producción de modelos; las etapas para la construcción del modelo, lineamientos para describir componentes de él, principios de diseño a seguirse, mediciones de calidad, referencias cruzadas, reglas de consistencia y banderas rojas para identificar posibles problemas. o Patrón. Es una solución estándar escrita para resolver un problema, basada en una secuencia de tiempo. No existen museos de programas donde los nuevos diseñadores puedan aprender, emulando programas que allí existen, mas bien, tratan de captar ideas de los diseñadores expertos. Actualmente existe un Movimiento de Patrones, con el propósito de coleccionar, catalogar y explicar patrones útiles de diseño, de tal forma que otros diseñadores puedan aprender de ellos. Por lo tanto, Los Patrones, son resúmenes de casos de diseño basados en la experiencia.
  • 3. 21 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén o Reglas de Diseño. Son estados o propiedades que deberán llevarse a cabo u omitirse en un diseño o estrategias generales de diseño a utilizar. o Tips y Reglas de dedo. Son recomendaciones que se aplican donde sea necesario, no se organizan en etapas. Son presentaciones informales de patrones. 2.1.1 Modelos Orientados a Objetos (OO) Cuando analizamos sistemas, creamos modelos del área de aplicación que nos interesa. Un modelo puede incorporar un sistema, centrarse en el área de la empresa o abarcar toda la empresa. El modelo de empresas es importante para la planeación de la automatización de las mismas. El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos ayudara a idear sistemas o rediseñar áreas de una empresa. Con el análisis orientado a objetos, la forma de modelar la realidad difiere del análisis convencional. Modelamos el mundo en términos de tipos de objetos y lo que le ocurre a éstos. Esto implica también diseñar y construir sistemas de forma orientada a objetos. Los modelos que construimos en el análisis OO reflejan la realidad de modo más natural que los del análisis tradicional de sistemas. Después de todo, la realidad consta de objetos y eventos que cambian el estado de dichos objetos. Mediante las técnicas OO, construimos software que modela mas fielmente el mundo real. Cuando el mundo real cambia, nuestro software es más fácil de cambiar, lo que es una ventaja real. 2.2 MODELANDO EL MUNDO REAL. Cuando se analizan sistemas se crean modelos del área de la aplicación en cuestión. El modelo representa un aspecto del mundo real y se construye de modo que ayude a comprender a éste. El modelo debe ser mucho más sencillo que la realidad, es una abstracción de ésta, se puede lidiar con el modelo, cosa en muchas situaciones no sería posible hacer en el mundo real. En el análisis orientado a objetos se modela en el mundo real en términos de tipos de objetos y lo que les ocurre a éstos En la Figura # 1 se ilustra de manera gráfica la forma de construir sistemas: • El análisis crea un modelo en el dominio de la aplicación. • El modelo se convierte en un diseño • El diseño se convierte en código. El modelo debe representar la forma en que los usuarios finales perciben el área de dominio en cuestión, en la medida de lo posible el modelo debe ser presentado de forma que sea comprensible para los usuarios finales. Los modelos construidos en el análisis orientado a objetos reflejan la entidad del mundo real de forma más natural que en el análisis tradicional de sistemas, ya que el mundo esta formado por objetos y eventos que cambian el estado de dichos objetos. Utilizando las técnicas orientadas a objetos, se construye software que modela el mundo real de manera más fiel, entonces, cuando el mundo real cambia, el software es más fácil de cambiar, lo que representa una verdadera ventaja.
  • 4. 22 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén En el proceso de análisis se captura el punto de vista de los usuarios con respecto al área de dominio del mundo real y posteriormente se traduce a software de la manera más automáticamente posible, por lo tanto, al cambiar las necesidades de los usuarios, el software cambiará con ellas. El análisis orientado a objetos es análisis, pero también contiene una cierta cantidad de síntesis. La abstracción de requisitos del usuario y la identificación de los objetos clave del área de dominio van seguidas por el ensamblaje de estos objetos en estructuras, de una forma que admita el diseño físico en alguna fase posterior. El aspecto de síntesis aparece precisamente porque se esta utilizando un sistema, en otras palabras, porque se está imponiendo una estructura al área de dominio. Los sistemas pueden ser descritos en tres dimensiones: a) Los datos, objetos o conceptos y su estructura. b) Arquitectura o proceso no temporal. c) La dinámica, comportamiento del sistema o el control del sistema. Para validar la congruencia de estos aspectos, se realiza una comprobación cruzada, de tal manera de comprobar que procesos usan cuales datos y como están siendo utilizados éstos, aunque estas verificaciones incrementan los gastos tan solo en términos de documentación, sin Mundo real Modelo OO Diseño OO Código El modelo debe representar la realidad de manera que tenga sentido para los usuarios finales El diseño debe tener la misma estructura básica que el modelo El código se debe generar lo más automáticamente posible a partir del diseño. Figura # 1 Datos Dinámica Procesos Figura # 2
  • 5. 23 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén embargo, se asegura que se traten todos los aspectos del sistema, siempre y cuando no sea deficiente la extracción de conocimientos. También se tiene la ventaja de que se utilizan dos técnicas para llegar a la misma conclusión; por lo tanto, si concuerdan los resultados, el grado de confianza será mayor. La orientación a objetos, combina 2 de estos aspectos, los datos y los procesos, encapsulando los datos, también es posible encapsular el control. De esta forma, un análisis orientado a objetos se puede considerar como una manera de traslado de silogismos, que parte de lo particular (las clases), atraviesa lo individual (las instancias) y llega a lo universal (el control). 2.2.1 Modelado del mundo real La solución de problemas comprende el entendimiento o conceptualización del problema, su resolución e implementación de su solución. Conceptualizar un problema involucra su representación usando construcciones representativas (nociones mentales o ideas). El solucionar el problema involucra la manipulación de las construcciones representativas del dominio del problema y del dominio de la solución para derivar hacia la representación de la solución deseada. La realización de la solución involucra el mapeo de las construcciones representativas de la solución en el entorno de la solución, o sea, construir la solución. El uso de las construcciones representativas es un proceso muy natural que a menudo ocurre sutilmente y a veces inconscientemente en la solución del problema. Subyacente a este esquema está el uso de un paradigma en la determinación de los posibles tipos de representaciones usadas en los esfuerzos de resolución del problema. El paradigma orientado al objeto deriva de la convergencia de otros paradigmas fundamentales, y se reduce a los otros paradigmas tanto como sea requerido por su aplicación a través de un lenguaje o método. La flexibilidad alcanzada usando este paradigma puede ser entendida mejor examinando las raíces del mismo dentro de la Teoría de las Formas de Platón. El Mundo Real El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver los problemas. El mundo real incluye: Cosas o entidades que tienen un propósito o rol dentro del mundo. Las entidades tiene características estructurales que representan lo que las cosas "saben" y características de comportamiento que representan lo que las cosas "hacen". Una entidad agregada puede contener entidades componentes que son características estructurales y de comportamiento. Relaciones entre entidades. Las relaciones pueden ser tratadas como características estructurales compartidas entre múltiples entidades que tienen una relación con alguna otra. Una entidad agregada puede contener entidades componentes que están relacionadas vía un atributo de la entidad agregada. Ocurrencias entre entidades. Las ocurrencias pueden ser tratadas como características de comportamiento compartidas entre múltiples entidades que interactúan con alguna otra. Una entidad agregada puede contener entidades componentes que son manipuladas vía una operación de la entidad agregada. Estos conceptos son fundamentales para la interacción con el mundo real.
  • 6. 24 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén 2.3 TIPOS BÁSICOS DE LOS MÉTODOS ORIENTADOS A OBJETOS. Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos tipos básicos: a) Ternaria o trilateral. La que utilizan los métodos estructurados ya existentes mediante tres notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía como sus notaciones por personas familiarizadas con los métodos estructurados. Las metodologías orientadas a objetos más conocidas que usan esta aproximación son: • Técnica de Modelado de Objetos, OMT de Rumbaugh 1991. Es un método muy rico, pero resulta difícil de aprender, es pobre en la especificación de reglas y limitaciones. • Ptech modificado de Martín Odell 1992. Es sencillo. • Análisis de Sistemas Orientados a Objetos, OSA de Embly 1992. Es sencillo, permite escribir limitaciones en los diagramas como si fuese un pensamiento posterior adicional. b) Uniría. Dado que los objetos combinan de manera innata los procesos (métodos) y los datos, solamente es necesaria una notación, son • Más congruentes con la metáfora de orientación a objetos. • Más fáciles de aprender, partiendo desde cero. Las metodologías orientadas a objetos más conocidas que usan esta aproximación son: • Clase, Responsabilidad, Colaboración, CRC de Rebecca Wirfs y Brock 1990. También se le conoce como "Diseño Controlado por Responsabilidades" (RDD). Resulta útil para documentar diseños orientados a objetos y también para enseñar los conceptos básicos. Tiene la ventaja de no necesitar nada mas que una caja de fichas de cartón como herramienta CASE. • Coad y Yourdon 1990. Es sencillo pero carece de apoyo para describir la dinámica del sistema. 2.4 CONCEPTOS BÁSICOS DE TECNOLOGÍA DE OBJETOS. 2.4.1 Introducción. Las aplicaciones de software de hoy son más capaces y más fáciles de usar que antes. Estos han llegado a ser cada vez más difíciles y costosos para diseñar, mantener, mejorar e integrar. La mayoría de las aplicaciones son monolíticas, proveyendo ricos conjuntos de características pero no fáciles de manejar en su futura modificación, mejoramiento y actualización de nuevas características y/o implementaciones. Los sistemas operativos tienen un conjunto común de problemas. Porque la mayoría de los sistemas operativos no son suficientemente modulares, actualizados, reemplazables, o capaces de imponerse a los servicios existentes de una manera fácil y flexible (Difícil acoplamiento entre plataformas). A la opinión de los desarrolladores de aplicaciones, los ejecutivos de sistemas encaran la difícil elección de qué mejoramientos se necesitan, en función de mantener la compatibilidad con versiones anteriores o nuevas posibilidades en tecnología de Software. Tecnología de Objetos (Object technology, OT) en ingeniería de software facilita el desarrollo, mantenimiento y rehúso de un rango de aplicaciones amplio. La Tecnología de Objetos hace lo posible por romper aplicaciones monolíticas en módulos funcionales, o componentes, que pueden agregarse o ser eliminados según la aplicación lo requiera.
  • 7. 25 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén La tecnología de objetos puede potencialmente reducir el gasto de implementar nuevos objetos por los ya disponibles, mediante mecanismos como el encapsulamiento, herencia, polimorfismo, y la agregación, etc. haciendo uso extensivo de la re-utilización (uso de objetos ya existentes). Estas aplicaciones están relacionadas con el procesamiento y transferencia de datos, interfase de usuario. Existen dos tecnologías de objetos básicas: 1).- Tecnología Orientada a Objetos (Object Oriented Technology, OOT) que incluye: " Programación orientada a objetos, " Análisis, diseño y modelado orientado a objetos. 2).- Tecnología Basada en Objetos (Object Based Technology, OBT), usa mecanismos cliente / servidor, incluyendo: " Programación basada en componentes " Análisis, diseño y modelado de componentes (objetos) distribuidos " Computo distribuido y concurrente. Estas tecnologías tienen muchas ideas y enfoques en común, su principal diferencia es que los métodos orientados a objetos usan herencia y son presentados en especificaciones de programas o códigos y los métodos basados en objetos usan herencia de interfaces y son presentados en código binario ejecutable o código basado en DLL (La biblioteca de vínculos dinámicos). Esta clasificación es muy parecida al concepto "white box" y "black box" donde en el concepto de caja negra el usuario no sabe nada sobre estructura de componente y puede usar comportamiento de esta caja en sus metas solo a través de las interfaces, pero para caja blanca conocemos propiedades de esta "caja" y podemos re-usar estos conocimientos en nuestras metas a través de herencia, u otras tecnologías. 2.5 TIPOS BASICOS DE METODOS ORIENTADOS A OBJETOS 2.5.1 Análisis y diseño orientados a objetos Si damos una ojeada al panorama actual de análisis y diseño orientados a objetos nos encontraremos con pocas metodologías y muchos métodos, buena parte de los cuales observan un carácter básicamente "propietario", siendo muy pocos los que cubren el ciclo completo de vida del software. Aparecerá claro, a la vez, que existe un escaso interés, ajeno a las cuitas comerciales, en estandarizar los métodos: es más: cuando el OMG (Object Management Group), en un intento normalizador, requirió la colaboración de los autores de métodos de OOA/OOD, un nutrido e importante grupo de éstos replicó con una carta pública en la que afirmaban que tal estandarización no era en absoluto deseable. Parece que es ridículo pensar que existe un método orientado a objetos bueno para todo, como es risible afirmar que no existe ningún hombre absolutamente estúpido. Se aprecia, también, la difuminación del hasta ahora habitual gap semántico entre análisis y diseño, pero aun esto resulta turbador, pues la planificación práctica usualmente necesita de fases claras que permitan la evaluación de resultados y los pertinentes controles de integridad y estabilidad. Las grafías, por último, resultan sospechosamente parecidas entre sí, y oscilan entre la simplicidad sospechosa y la prolijidad culpable. Tras todo lo anterior no hay que intimidarse, la orientación a objetos realmente "funciona", y ya existe un importante acervo práctico de soluciones de software basadas en análisis y diseños orientados a objetos. Pero también existe un nada despreciable anecdotario de fracasos y despropósitos. La realidad es que el camino de la productividad, como el del infierno, está fatalmente empedrado de ilusiones e intentos aventurados.
  • 8. 26 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén Se necesitará alguna luz. Se intentará una revisión de los métodos comerciales. 2.6 METODOS COMERCIALES DE OOA/OOD Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes principales, dividiendo a estos en: Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a los objetos y las operaciones que sobre ella operan. Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto tiene sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden operarse en su representación interna), o bien a sus relaciones con otros objetos. Pero la verdad es que ésta es una diferencia puramente académica. Lo cierto es que la mayoría de los métodos viene desplazándose, afianzados en el borboteo comercial de las Bases de Objetos (OODBMSs), hacia esquemas puramente dinámicos. Y es que divisiones como la anterior pueden encontrarse con demasiada frecuencia en la literatura, cada vez más extensa, sobre el tema, fundamentalmente debido a la gran profusión de métodos con bases teóricas un tanto difusas. Y si no échenle un vistazo a algunos (imposible disponer de una lista actualizada de todos ellos) de los actuales métodos de OOA/OOD (intencionadamente desordenados, para no generar falsas esperanzas): Object Oriented Design OOD Grady Booch Object Behaviour Analysis OBA Rubin & Goldberg Methodology for Object Oriented Software Engineering of Systems MOSES Henderson-Sellers & Edwards General Object Oriented Design GOOD Seidewitz & Stark Object Oriented Software Engineering OOSE Ivar Jacobson Visual Modeling Technique VMT IBM Texel Texel Object Modeling Technique OMT Rumbaugh y otros Better Object Notation BOM Nerson Object Oriented System Analysis OOSA Shlaer & Mellor Object Oriented Structured Design OOSD Wasserman et al. Systems Engineering OO SEOO LBMS Syntropy Cook y otros METODOS SIGLAS AUTORES
  • 9. 27 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén Object Oriented Jackson OOJSD Jackson Structured Design HOOD ESA Hierarchical Object Oriented Design OOA Coad & Yourdon Object Oriented Analysis OOD Coad & Yourdon Object Oriented Design OSA Embley y otros Object Oriented System Analysis FOA Embley y otros Colbert E. Colbert Frame Object Analysis SOMA Andleigh/Gretzingr Semantic Object Modelling Approach Ian Graham Berard Berard ADM3 Donald Firesmith Ptech OOA&D Martin & Odell Object Oriented Rôle Analysis Synthesis and Structuring OORASS Reenskaug et al. Fusion Coleman y otros Desfray Softeam Como fácilmente se comprobará, en la tabla anterior se mezclan métodos de análisis y de diseño porque, pese a lo que anuncien sus autores o aun su mismo nombre, la distinción entre análisis y diseño se difumina, como antes comentábamos, de forma turbadora (aunque claramente deseable respecto al modelado de la realidad). 2.7 METODOS DE ANALISIS ORIENTADOS A OBJETOS 2.7.1 Método OOSA de Shlaer/Mellor El primer paso del método de Shaler y Mellor es la definición de objetos y de sus atributos. La notación de modelado de entidades desciende de la notación de Ward/Mellor. Este método se puede clasificar como trilateral, y se desarrolla creando un modelo de información (o de datos) que muestran los objetos, atributos y relaciones. Este método recibe un apoyo parcial de la herramienta CASE, llamada teamwork. METODOS SIGLAS AUTORES
  • 10. 28 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén 2.7.2 Método Coad Yourdon Existe una aproximación que surgió de los sicarios de Yourdon y se debe mucho a la tradición de modelado de entidades y relaciones, esta aproximación se resume en Coad Yourdon y resulto especialmente interesante al ser la primera descripción ampliamente difundida de un método de análisis y una notación de apoyo razonablemente completos, prácticos, orientados a objetos y adecuados para proyectos comerciales. Coad Yourdon presenta una notación menos torpe que la que se encontraba en Booch, Shlaer/Mellor o a la mayoría de las aproximaciones de diseño orientado a objetos. Una de las características más notables de las notaciones de Shlaer/Mellor y Coad Yourdon es que los atributos resultan completamente explícitos. Coad Yourdon sugiere que el análisis se produce en cinco fases a las que dan los nombres siguientes: ♦ Temas: los temas son de tamaño tratable en cuanto contendrán solo aproximadamente entre cinco y nueve objetos. ♦ Objetos: se identifican los objetos con detalle. ♦ Estructuras: se identifican dos estructuras completamente distintas. " Estructuras de clasificación. " Estructuras de composición. ♦ Atributos: los atributos son detallados y se especifican las relaciones de modalidad y de multiplicidad. ♦ Servicios: esta es la palabra que emplea Coad Yourdon para las operaciones. El método no es perfecto pero resulta sencillo y unario. 2.7.3 Método Rumbaugh-OMT La técnica de modelado de objetos (OMT) es considerado ampliamente como uno de los sistemas de análisis orientados a objetos más completos que se han publicado hasta el momento. OMT consta de tres fases o actividades principales: análisis, diseño de sistemas y diseño de objetos. El análisis presupone que existe una especificación de los requisitos y se desarrolla construyendo tres modelos distintos mediante el uso de tres notaciones diferentes. El diseño de sistemas se realiza organizando los objetos en subsistemas identificando la concurrencia a partir del modelo dinámico (DM), asignando subsistemas a procesadores o tareas, diciendo si los datos deben o no estar almacenados en archivos, en memoria o en un sistema de administración de base de datos, diciendo el uso de periféricos, y recursos globales. El diseño de objetos implica transformar la información del DM y del modelo funcional (FM) en operaciones de modelo objeto (OM), los pasos restantes consisten en: 1. Diseñar algoritmos. 2. Optimizar vías de acceso. 3. Realizar el control. 4. Ajustar estructuras. 5. Indicar los detalles de los atributos. 6. Empaquetar las estructuras en módulos. 7. Escribir el informe de diseño, incluyendo un OM, DM, y FM detallados.
  • 11. 29 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén El OMT tiene la intención de ser un método tanto para el análisis como para el diseño, pero, aun cuando contiene un método bastante completo para el análisis, solamente tiende a dar indicaciones practicas para el diseño. El OMT abarca mas temas que la mayoría de los demás métodos, pero sigue siendo incompleto en algunos aspectos y resulta muy complejo aprender y utilizar sus notaciones. 2.7.4 Método Soma Es un método semánticamente rico en análisis orientado a objetos. Añade reglas, conjuntos difusos, capas con una semántica clara y además permite a los diseñadores transformar las reglas en afirmaciones. Se desarrolla empleando siete actividades: ♦ Capas ♦ Objetos ♦ Estructuras Estructuras de utilización Estructuras de clasificación Estructuras de descomposición ♦ Semántica de asociaciones y datos Modalidad y multiplicidad ♦ Atributos Tipos, valores por omisión, validación, seguridad ♦ Métodos u operaciones Parámetros y sus tipos, afirmaciones ♦ Reglas Reglas de control Reglas de negocios Actividades 2.8 METODOS DE DISEÑO ORIENTADO A OBJETOS Los cambios de diseño necesarios están localizados, y son improbables las interacciones inesperadas con otros módulos del programa. El diseño basado en objetos es adecuado para una realización distribuida, paralela o secuencial. Se eliminan las zonas compartidas de datos, reduciendo, de esta manera, la posibilidad de modificaciones inesperadas, así como otras anomalías en la actualización. Los métodos de diseño orientados a objetos comparten los siguientes pasos básicos de diseño, aunque los detalles varíen mucho. " Se identifican los objetos y sus atributos, así como los nombres de los métodos. " Se establece la visibilidad de cada objeto en relación con los demás objetos. " Se establece la interfaz de cada objeto y el tratamiento de excepciones. " Se realizan y comprueban los objetos. 2.8.1 Método de Booch El método original de Booch comienza por un análisis de flujo de datos, que se utiliza entonces como ayuda para identificar objetos, buscando tanto objetos concretos como objetos abstractos en el espacio del problema, que se encontraran a partir de las burbujas y almacenes de datos en el diagrama de flujo de datos (DFD).
  • 12. 30 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén La notación y método de diseño revisados de Booch consta de 4 actividades principales y 6 notaciones. Los primeros pasos tratan los aspectos estáticos del sistema, tanto en su aspecto lógico como en su aspecto físico. Estructura lógica ♦ Diagramas de clases ♦ Diagramas de objetos Estructura física ♦ Diagramas de módulos ♦ Diagramas de procesos Dinámica de clases ♦ Diagramas de transición de estados Dinámica de instancias ♦ Diagramas temporales El de Booch es uno de los métodos de diseño mejor desarrollado y es superior a GOOD y a HOOD, en tanto en cuanto no esta relacionado con Ada, y por poseer, además una noción de estructura mucho mas general. 2.8.2 Método Good El método de diseño general orientado a objetos (GOOD) fue desarrollado en la NASA por Seidewitz y Stark (1983). Trata tanto la especificación de requisitos como el diseño de proyectos en Ada. El método se desarrolla, al igual que sucede con el de Booch, partiendo de un conjunto preliminar de diagramas de flujo por capas, llegando hasta la identificación de los objetos implicados. En estos DFD se buscan objetos externos, depósitos de datos, interfaces de control y depósitos de control. 2.8.3 Método Hood La noción de la jerarquía de prioridades es aprovechada también por otro método, HOOD. La “H” de HOOD quiere decir jerárquico. Este método también esta muy orientado al desarrollo en Ada y fue desarrollado en la agencia espacial europea. Sufrió la influencia directa de GOOD, y también se basa en el método de maquinas abstractas. En HOOD los objetos son o pasivos o activos. Los objetos pasivos solamente son capaces de utilizar los objetos de otros objetos pasivos, pero los activos pueden utilizar los servicios de cualquier objeto. HOOD es un método de refinamiento progresivo que se basa en la descomposición de un objeto del máximo nivel y, posteriormente, en la descomposición de los objetos así resultantes. El método HOOD utiliza un cierto numero de pasos para descomponer cada objeto, comenzando por un paso de diseño básico que podría implicar técnicas de realización de diagramas de procedentes de otros métodos de análisis y diseño estructurado. El paso siguiente consiste en generar una estrategia informal de soluciones. Esto se descompone en un cierto numero de tareas: un esbozo del lenguaje natural, diagramas HOOD de primera mano y una descripción del nivel actual de abstracción. El tercer paso consiste en formalizar la estrategia de solución. Esto se hace por fases, identificando y describiendo los objetos y sus operaciones. 2.8.4 Método OOSD El diseño estructurado orientado a objetos (OOSD), que fuera presentado por Wasserman, Picher y Muller (1990). Hablando estrictamente OOSD no es un método sino una notación a la cual se pueden agregar reglas metodológicas. Esta notación es probablemente la que más próxima se encuentra al espíritu de la orientación a objetos. OOSD es una notación no propietaria para el
  • 13. 31 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén diseño arquitectónico, que cambia el diseño por refinamiento progresivo estructurado y el diseño orientado a objetos. Una vez mas OOSD emplea una notación que se deriva de la de Booch, pero, también tiene influencia de los diagramas estructurales. OOSD no es tanto un método como una notación para apoyar los métodos de diseño orientado a objetos en general. Los usuarios de OOSD pueden añadir reglas de diseño según cual sea el método concreto que esté utilizando. Otros puntos importantes de OOSD son la facilidad con la que es aceptado por los desarrolladores que ya están familiarizados con el diseño estructurado así como lo adecuado que resulta para los sistemas de tiempo real. OOSD es una de las notaciones de diseño mas avanzadas híbrido orientado a objetos de bajo nivel. Parece improbable que sea posible extenderla hasta una notación de análisis congruente, como consecuencia de la dificultad que surge al tratar un gran numero de métodos y como consecuencia también de la ausencia de una forma en la que se puedan tratar estructuras y atributos de datos muy complejos. Por otra parte, resulta mas adecuada para el diseño arquitectónico o lógico que para el diseño físico. 2.8.5 Método JSD y OOJSD El diseño estructurado de Jackson (JSD) es un método basado en objetos mas que un método completamente orientado a objetos. Los modelos JSD se descomponen en términos de sucesos o de acciones y de sus dependencias temporales. Dentro de estos sucesos la aproximación JSD define, en primer lugar los objetos. El paso siguiente construye una especificación en términos de procesos secuenciales que se comunican, y que pueden acceder los unos al estado de los otros. El método puede resultar útil si el diseño orientado a objetos debe realizarse en un lenguaje convencional. Es posible identificar un cierto numero de similitudes entre JSD y los métodos de diseño orientados a objetos. JSD contiene técnicas útiles para la identificación de entidades y de métodos dentro de su fase de modelado. Además, la técnica de análisis por ordenación temporal de JSD y el diseño orientado a objetos utilizan el concepto de los objetos de forma similar, aun cuando sus terminologías son distintas. 2.8.6 Método OODLE El OODLE (lenguaje de diseño orientado a objetos) es un componente especifico de diseño del método Shlaer/Mellor, cuya aproximación al análisis orientado a objetos, prescribe 4 tipos de diagramas, interrelacionados mediante un esquema de capas que ayuda con la documentación y con un potencial de apoyo automático. Se dice que la notación es independiente del lenguaje, aun cuando se aprecia ciertos aspectos de Ada en la notación y el apoyo de los amigos recuerda al de C++. Los tipos de diagramas son los siguientes: ♦ Diagramas de dependencia, que muestran relaciones de utilización (cliente/servidor) y de amigos entre clases. ♦ Diagramas de clases, que muestran el aspecto externo de la clase de forma similar a Booch. ♦ Diagramas de estructuras de clases que muestran la estructura de los métodos de la clase, y el flujo de datos y de control ♦ Diagramas de herencia, que representan la herencia 2.9 CONCLUSION Podemos mencionar en lo que respecta a este capítulo, que la propuesta de la metodología es tomada como una comparación, en donde lo que nos interesa saber, es lo que se entiende por una tecnología basada en una metodología, para así tener un interés para regresar y
  • 14. 32 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén comprender el significado de lo que es orientado a objetos. Y ver como una metodología responde con respecto a otras metodologías. En muchos instancias individuales u organizaciones de compañías han iniciado con la evaluación y selección de una metodología para el uso de desarrollo de software. En algunos casos estas instancias tienen un tiempo límite para llevar acabo este recurso, por lo tanto para ellos la comparación de metodología viene de un atajo de punto medio de selección. Desafortunadamente la calidad de la decisión descansa únicamente con la calidad de la comparación de la metodología en uso. La comparación entre metodologías da la pauta para estar seguro que la selección inicial es la correcta a otras metodologías apropiadas ya existentes. La justificación de la tecnología dice que existe una gran comunidad en la ingeniería de software que ve el cambio. En algunos casos el cambio es encontrar cambios en la practica. Por eso la razón de la comparación de las metodologías. Se comparan las ideas, pasos, conceptos, notación, mecanismo de comunicación y la especificación técnica de 6 métodos aceptados. Los seis métodos son: Booch, Martín/Odell, Coad Yourdon, Rumbaugh, Wirfs-Brock y Shlaer Mellor. 2.10 RESUMEN Método. Es un conjunto de lineamientos y reglas, incluyendo los siguientes componentes. Conceptos de modelado. Permiten la captura de la semántica y el conocimiento acerca de un problema y su solución. Modelo es una representación formal de un sistema con cierto nivel de abstracción. Metamodelo. Es un modelo que describe otros modelos, describe los conceptos del método modelo y sus relaciones. Proceso de desarrollo iterativo. Representa una secuencia de pasos para la construcción e implementación de modelos. Modelos Orientados a Objetos El modelo representa un aspecto de la realidad y se construye de modo que nos ayude a comprender a esta. El modelo es mucho más sencillo que la realidad, al igual que un avión a escala es mucho más sencillo que un avión de verdad. Podemos manejar el modelo y esto nos ayudara a idear sistemas o rediseñar áreas de la empresa. El Mundo Real El mundo real es el dominio que abarca problemas, soluciones y esfuerzos para resolver los problemas. El mundo real incluye: " Cosas o entidades que tienen un propósito o rol dentro del mundo. " Relaciones entre entidades. " Ocurrencias entre entidades.
  • 15. 33 Análisis y Diseño Orientado a Objetos Instituto Tecnológico de la Laguna Paola Romero Guillén Los métodos de análisis y diseño orientados a objetos pueden ser desglosados en dos tipos básicos: TERNARIA o TRILATERAL. La que utilizan los métodos estructurados ya existentes mediante tres notaciones distintas; datos, dinámica y procesos. Es fácil de entender tanto su filosofía como sus notaciones por personas familiarizadas con los métodos estructurados. UNARIA. Dado que los objetos combinan de manera innata los procesos (métodos) y los datos, solamente es necesaria una notación, son " Más congruentes con la metáfora de orientación a objetos. " Más fáciles de aprender, partiendo desde cero. Métodos comerciales de OOA/OOD Es opinión extendida que en la arena de los métodos OOA/OOD existen dos corrientes principales, dividiendo a estos en: " Estáticos (enfocados a datos), en lo que lo importante es la estructura de datos anexa a los objetos y las operaciones que sobre ella operan. " Dinámicos (enfocados a comportamientos o enfocados a responsabilidades): un objeto tiene sentido en estos métodos cuando exhibe un comportamiento diferencial respecto del resto de los objetos. Tal comportamiento puede referirse bien al objeto en sí (los cambios que pueden operarse en su representación interna), o bien a sus relaciones con otros objetos. 2.11 CUESTIONARIO 1. ¿Qué es un método? 2. ¿Qué diferencia hay entre un método y una metodología? 3. ¿Qué es un metamodelo? 4. Explique a que se refiere modelado del mundo real. 5. En que consiste lo comercial del AOO y DOO. 6. Mencione algunos métodos de AOO 7. Mencione algunos métodos de DOO