You are on page 1of 13

Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Análisis Orientado a Objetos.


Indice
1.- Introducción.
2.- Problemas del Análisis:
2.1.- Tratamiento de la complejidad del dominio del problema en AOO
3.- Métodos de análisis
4.- Búsqueda de clases y objetos
5.- Identificar estructuras
6.- Identificación de Areas.
7.- Definición de Atributos.
8.- Definición de Procesos.

1.- Introducción.
La programación orientada a Objetos surgió en los años 70. Como ha ocurrido
con otras metodologías de desarrollo del software los conceptos O.O. se extendieron
hacia atrás dándose forma al Diseño orientado a Objetos, pero dejándose de lado el
Análisis. En la actualidad son varias las metodologías de Análisis Orientado a Objeto
que se han desarrollado, UML se perfila como estándar. Vamos a estudiar una de las
primeras que surgieron, ya que ofrecen un enfoque relativamente simple e intuitivo.
Esta es la metodología debida a Coad y Yourdon que tiene su continuación en un
Diseño Orientado a Objetos.
Una de las ventajas que ofrece el enfoque orientado a objeto es que permite
mantener un lenguaje común entre las diferentes fases del ciclo de vida, evitándose el
problema que surge en las metodologías estructuradas relativo al cambio de
nomenclatura al pasar de una fase a otra por cambiarse de herramienta o modo de
expresión o al realizar el estudio de los procesos y de los datos.
Una de las razones de ese paso de metodologías estructuradas a las orientadas a
objeto se deben en parte a que los sistemas a desarrollar son mucho más grandes y
complejos, dándose cada vez más importancia a las interfaces de usuario. Por otra parte
se consigue una complejidad funcional mucho menor y llegando a darse más
importancia al modelado de los datos.
En el conocimiento del mundo real, se emplean 3 métodos de organización:
1.- Se diferencia entre los objetos particulares y sus características (o atributos).
Ej. Un árbol, su tamaño, y su relación con otros objetos
2.- Distinción entre objetos (como un todo) y las partes que los componen. Ej.:
El árbol y las ramas que lo componen.
3.- La formación de, y la distinción entre clases de objetos. Ej. Clase de los
arboles, de piedras...

1
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

El modelo de AOO se basa en estos tres modelos de organización empleados en


la vida real. Así, de un modelo simplificado, podemos mencionar como beneficios que
aporta el AOO los siguientes:
- Se pueden asumir mayores desafíos en el dominio del problema. Esto supone
hacer más énfasis en el conocimiento del mismo.
- Existe una mayor interacción entre el analista y el dominio del problema. Es
decir, se organiza el análisis y la especificación utilizando los mismos métodos
de trabajo que los que rigen el pensamiento humano.
- Aumenta la consistencia interna de los resultados del análisis. Es decir, reduce
el gap semántico entre las diferentes actividades del análisis y el diseño, tratando
atributos y procesos como un todo.
- Se construyen especificaciones fácilmente modificables proporcionando
estabilidad frente a las modificaciones de los requerimientos.
- Da reusabilidad de los resultados del Análisis, permitiendo definir familias de
sistemas.
- Da una representación consistente para el análisis y el Diseño mediante una
representación continua para la expansión sistemática de los resultados del
Análisis al Diseño.

2.- Problemas del Análisis:


Fundamentalmente podemos distinguir:
1. Comprensión del dominio del problema. - Este es realmente el punto central del
análisis.
2. Comunicación.- Es fundamental en la labor de análisis ya que el analista ha de
transmitir la gestión del análisis realizado así como extraer del cliente todo lo que le
pueda aportar para el conocimiento del problema y los requerimientos. A su vez ha
de comunicar las conclusiones a las que haya llegado. Los métodos aplicables en
Ingeniería del Software han de facilitar la comunicación y se construyen a partir de
métodos de organización humana.
3. Continua modificación. La característica de todo sistema es que cambia con el
tiempo, por lo tanto cambian también los requerimientos que lo definen, aunque se
intenten congelar durante un tiempo. Por tanto, es necesario organizar el trabajo del
análisis de forma que se amolde fácilmente a los cambios.
4. Reusabilidad. En el sentido del análisis de sistema, significa la utilización de
resultados obtenidos en análisis anteriores al actual.

2.1.- Tratamiento de la complejidad del dominio del problema en AOO


Los principios en los que se basa son:
a) Abstracción.
Consiste en ignorar aquellos aspectos del problema en estudio que no son
relevantes para centrarse en aquellos que sí son importantes.

2
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

La abstracción procedural consiste en dividir sucesivamente los procesos en


subprocesos.
La abstracción de datos consiste en definir los tipos de datos en término de
operaciones que se aplican a los objetos de ese tipo. Así se definen atributos de
los objetos, y procesos que los manipulan. El único modo de acceder a los
atributos es vía proceso.
b) Encapsulamiento.
Es otro de los principios del tratamiento de la complejidad que consiste en la
ocultación de la información.
c) Heredabilidad.
Este principio básico en el AOO permite que atributos y procesos comunes a
clases similares se definan sólo una vez, simplificando así la definición de cada
una de ellas. Además esta característica permite llevar a cabo la generalización y
especialización de esos atributos y procesos a casos específicos.
d) Asociación.
Se refiere a la unión o conexión de cosas que en un cierto momento tienen algo
en común.
e) Comunicación de mensajes.
Es uno de los principios relativos al tratamiento de la complejidad.
f) Métodos de Organización del AOO (Coad y Yourdon). Introducción.
La notación y estrategia del AOO se puede construir a partir de los 3 métodos de
organización mencionados más arriba:
.- Objetos y atributos. Todo y parte. Clases y miembros.
g) Escala
Es la relación que existe entre los términos que representan las partes y el todo.
h) Modos de comportamiento de los objetos.
Se refiere a cómo evolucionan los objetos durante su ciclo de vida ( como se
comporta.)

3.- Métodos de análisis


De un modo general entendemos por Análisis de sistemas el estudio de un
problema de mayor o menor complejidad. Según la nomenclatura que estamos
utilizando, diremos que el análisis es el estudio del Dominio del Problema, llegando a
una especificación completa del comportamiento del mismo, consistente y viable, en el
que se especifican las características funcionales y operacionales (facilidad de uso,
seguridad, disponibilidad, mantenimiento, etc.) del mismo.
El análisis es el proceso de extraer las necesidades de un sistema - qué es lo que
debe hacer el sistema, no cómo se va a implementar. La documentación de
requerimientos debe dar una visión completa del Sistema y de lo que debe hacer. Otros
métodos de Análisis son:
- Descomposición funcional de Yourdon /Constantine en 79 y Page/Jones en 88.

3
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

- Técnica de FD de DeMarco en 78, Gane y Sarson en 77. Moderno Yourdon 89


- Modelado de la Información: Chen 76 Shlaer /Mellor 88. Del Modelo Entidad
Relación se pasa a modelos semánticos de datos.
Orientación a Objetos debida a Shlaer y Mellor en 88, Coad/Yourdon en 89 y
otros como Booch, OMT.
La Orientación a Objetos está constituida por Clases y Objetos, las propiedades
y características de la Herencia y la posibilidad de comunicación con mensajes,
lo que permite el manejo de la complejidad.
AOO se construye a partir de conceptos de diversas estrategias de desarrollo:
a) Por una parte, a partir del Modelado de información se toman construcciones
análogas a atributos, conexiones entre elementos, Generaliz.- Espec. y todo-
parte
b) Por otra parte, de los Lenguajes O.O., de los que se toma la encapsulación de
atributos, comunicación de mensajes, gen - espec, y heredabilidad.
AOO es especialmente interesante cuando se tratan problemas amplios y de
complejidad alta, no siendo especialmente útiles en el caso de sistemas pequeños.
El método propuesto por Coad y Yourdon se enmarca en 5 actividades:
- Búsqueda de clases y objetos.
- Identificar Estructuras.
- Identificar Areas.
- Definir atributos.
- Definición de procesos
Considerando que normalmente las actividades guían al analista desde los altos
niveles de abstracción (Clases y objetos) hasta los más bajos (estructuras, atributos y
procesos), la secuencia que se suele seguir a estas 5 actividades es el propuesto. Sin
embarco las actividades no son pasos secuenciales. A veces, el analista, al encontrar
una/s clase/s y objeto/s sigue con el estudio de un proceso asociado para después
continuar buscando más clases y objetos. Otros analistas prefieren detenerse en la
búsqueda de atributos y luego las estructuras, antes de avanzar más en el estudio de las
clases y objetos.
A partir de las 5 actividades definidas en AOO, éste se desarrolla según un
modelo de 4 niveles que permiten ir bajando el nivel de detalle del estudio:
Nivel de Area.
Nivel de clase y objeto
NO
ESTUDIAR Nivel de estructura
Nivel de atributo
Nivel de proceso

Terminología:

4
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Mod. de datos Leng POO AOO


Objeto Clase Clase
Atributo Variable Atributo
- Método Proceso, Operación
Ocurrencia Objeto( instancia) Objeto(instancia)
Supertipo/subtipo Superclase/subclase Estructura Gen-Espec.
Agregación - Estructura Todo-Parte
Relación - Conexión típica
- Mensaje Conexión de mensaje

4.- Búsqueda de clases y objetos:


Recordemos las definiciones de objeto y clase:
Objeto: Una abstracción de algo en el dominio del problema, que mantiene
información del sistema y/o que interactúa con él. Por otra parte lleva consigo la
encapsulación de datos (atributos) y sus procesos exclusivos.
Clase: Descripción de uno o más objetos con el mismo conjunto de atributos y
procesos, incluso una descripción de cómo crear nuevos objetos dentro de la clase.
Clase y Objeto: Término que se refiere a una clase y los objetos en esa clase.
Mediante la definición de clases y objetos en el dominio del problema se llega a
una mejor comprensión del mismo. Esta abstracción del mundo real es una herramienta
para el análisis y la especificación. Además las clases y objetos son relativamente
estables con el paso del tiempo, a diferencia de los atributos y procesos que los
componen.
Otra gran ventaja del desarrollo Orientado a Objetos es que se mantiene la
misma notación durante el Análisis y el Diseño e incluso la implementación, evitándose
así los problemas en este sentido que surgían en otras metodologías.

objetos de
la clase

clase

Símbolo de clase y objeto

Este símbolo representa una clase (rectángulo interior dividido en 3 secciones) y


sus objetos (rectángulo exterior). En el interior se presentarán el nombre de la clase, sus
atributos, y procesos. Es posible utilizar como notación sólo el rectángulo interior para
representar una generalización de clase en el dominio del problema, cuyos objetos
correspondientes se representan del modo anterior.
Nombre de la clase: Sustantivo singular, adjetivo + sustantivo.

5
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Nombre de objeto: Debe describir un único objeto incluido dentro de la clase.


Los nombres de clases y objetos se elegirán entorno al dominio del problema.
El número de clases a definir en el modelo AOO dependerá del problema.
Para encontrar las clases y objetos en el dominio del problema se dieron ya las
normas propuestas por varios autores en el tema relativo al desarrollo Orientado a
Objetos (Tema 3). De cualquier modo hay que llevar a cabo un estudio en profundidad
del dominio del problema. Así mismo se considerará la posibilidad de reutilizar clases
ya definidas en análisis previos o en dominios similares.
Las clases descubiertas en este estudio se convierten en clases candidatas. Las
razones de su inclusión en el modelo de AOO también se dieron con anterioridad.

5.- Identificar estructuras


Una vez que se han definido los objetos, el analista pasa a centrarse en la
estructura de clasificación. Se considera cada objeto como una generalización, y luego
como una especificación. Es decir, se definen y nombran las instancias de un objeto.
Puede ser que un objeto representado en el modelo inicial esté realmente compuesto por
varias partes que pueden ser definidas en sí mismas como objeto.
La representación estructural proporciona al analista un medio de partición del
modelo de requisitos. LA expansión de cada objeto proporciona los detalles necesarios
para las revisiones y el subsiguiente diseño.
Una estructura en AOO es una expresión de la complejidad del dominio del
problema, relativo a las responsabilidades del sistema. Este término se usa de un modo
global, describiendo tanto la estructura de Generalización-Especialización como la de
Todo-Parte.
Estructura Generlización -Especialización: Es un método básico de organización
que se basa en considerar cada clase como una generalización que tendrá un
conjunto de posibles especializaciones. Con las estructuras Generalización-
Especialización se aplica la heredabilidad .
Estructura Todo-Parte. Es un método básico de organización que se basa en
considerar cada objeto como un todo que tendrá una serie de posibles partes (ej.
objeto: Vehículo, parte: motor), y considerar también cada objeto como una
posible parte.
La definición de estructuras centran la atención del desarrollador en el dominio
del problema sobre la complejidad de objetos y clases múltiples, además de permitir la
detección de objeto y clases no detectadas hasta ahora, así como la aplicación de la
heradabilidad.

5.1.- Definición y representación de estructuras.


Para cada clase se examina la estructura de Gen-Espec., y cada objeto para la
estructura todo-parte.

a) Estructura Generalización-Especialización.

6
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

La clase generalización se representa en la parte alta de un diagrama, poniendo


en la parte inferior la/s clase/s especialización:

Generalizacion

Especializacion Especializacion

- El semicírculo indica la dirección de la generalización.


El nombre de las especializaciones viene dado por el nombre de la
generalización y el nombre que describe la especificación.
Si la clase generalización no tiene instancias de objetos, el símbolo asociado es
el interior solamente.

* Modo definir Estructuras de Gen-ESpec.


1.- Considerar cada clase como una generalización. Para cada una de sus
posibles especializaciones, considerar si:
- Está en el dominio del problema.
- Está dentro de las responsabilidades del problema.
- Habrá heredabilidad.
- Coinciden las especificaciones con el criterio de inclusión para clases y
objetos.
2.- Considerar cada clase como una especialización, y hacer el mismo estudio
para posibles generalizaciones.
3.- Estudiar dominios similares, ver si hay estructuras reutilizables, o si hay que
tener en cuenta alguna consideración particular en las nuevas definiciones.
4.- Si son posibles varias especializaciones, considerar las más sencilla y la más
compleja, y situar las otras entre ellas.

Jerarquía y entramado.
La forma más común de expresar una Generalización-Especialización es en una
jerarquía de Gen-Espec. También pueden representarse en forma de entramado:
Resalta especializaciones adicionales, e incrementa la complejidad del modelo.

7
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Si la complejidad fuera muy alta, conviene reorganizar parte del entramado en


una jerarquía.

b) Estructura Todo-Parte
Este es uno de los métodos básicos que utiliza la mente humana en la
elaboración de cualquier razonamiento. También ayuda en el estudio del dominio del
problema.
Se representa como un objeto Todo en la parte superior del esquema, y un objeto
Parte debajo, uniendo ambos componentes una línea con un triángulo. La notación es
direccional, por lo que la estructura podría ser representada en cualquier ángulo.

Todo

1,m 1,m

1 1

Parte Parte

También se representa en el diagrama el número de partes que puede tener un


todo, y viceversa.

* Modo de definir estructuras Todo-Parte.


Se considerará cada objeto como un todo y se estudia sus posibles partes
componentes, sus posibles contenidos, o posibles elementos.

c) Estructuras múltiples.
Las estructuras múltiples incluyen varias combinaciones de Estructuras Gen-
Espec., y Todo-Parte

6.- Identificación de Areas.


Un Area es un mecanismo para guiar al analista a través de un modelo complejo.
Sirven de ayuda para la organización de paquetes de trabajo en proyectos más grandes,
basándose en investigaciones de AOO iniciales. Un área es una parte de un problema
complejo. Así las áreas dan una vista del modelo del AOO al más alto nivel. En este
sentido permiten centrar el estudio del problema en los subproblemas considerados en

8
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

cada área. Las áreas ayudan al analista a revisar el modelo, considerando las áreas
comprendidas en el dominio del problema y las responsabilidades del problema bajo su
consideración.
Hay 3 modos de representarlos:
a) Notación reducida. Sólo figura el nombre del área.

1. Area1

1. Area2
.
b) Notación parcialmente expandidas. Figuran clases y objetos

1.- Area 1 1.- Area 2

Clase y Objeto 1 Clase y Objeto 3


Clase y Objeto 2 Clase y Objeto 4
..... .....

c) Notación expandida. Cuando se muestra con otros estratos. Es decir al


representar otros estratos, se indica el área en que está incluida
1 1 2 2

1 1 2 2

* Cómo seleccionar arreas.


Se tomará la Clase de más alto nivel de cada Estructura y se considerará la
posibulidad de definir subdominios . Se debe procurar que la interrelación entre las
áreas sea mínima.
- Cada área se identifica con un nombre y un número. Se dibujará en un
rectángulo. En él se puede incluir también la lista de las clases que incluye.
- Una Clase y Objeto puede estar en más de un área.
- Las áreas pueden contener subareas.
- El número de áreas que compongan un modelo depende de la complejidad de
éste. Incluso puede no ser necesaria su inclusión si es relativamente pequeño.
En un modelo con un número de clases del orden de 35, se debe definir algún
área para facilitar el seguimiento del AOO.
En proyectos más grandes, la definición de áreas es imprescindible, para dividir
el dominio del problema en subdominios (subproblemas), y llevar a cabo la división del
trabajo entre varias personas, o equipos.

9
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

7.- Definición de Atributos.


En AOO un atributo se define como un dato (información de estado) para el cual
cada objeto en una clase tiene su propio valor.
Las Clases y Objetos se describen detalladamente mediante sus atributos.
Los atributos se definen para añadir detalle a las abstracciones de clase y Objeto
y Estructura. Los atributos describen el estado de un objeto y sólo pueden ser
manipulados por los Servicios (métodos) de ese objeto. Para acceder a los atributos de
un objeto por parte de otro, se ha de hacer mediante un mensaje a un método definido
para ese objeto. Esta es una manera de mantener la encapsulación y la abstracción.
Los atributos se anotan en la parte central de los rectángulos que representan un
objeto o una clase y objeto.
1.- Identificar atributos:
Son atributos todos aquellas cosas que debe conocer un objeto y que lo
caracteriza: Qué es y qué lo caracteriza, qué información debe guardar y conocer,
estados por los que pasa.
Antes de definir los atributos de un objeto se deben repasar Análisis anteriores
para dominios similares.
Cada atributo debe ser un concepto atómico, significando un único valor (código
de un artículo) o conjunto de valores estrechamente relacionados (datos personales).
En el AOO no debemos preocuparnos por la normalización de las tablas en
cuanto a eliminación de redundancia. Se hará en diseño.

2.- Posicionar los atributos.


Los atributos se definen asociados a una clase y objeto. Se definirán tantos
atributos como se considere necesario para que la clase y objeto quede bien definida.
Cuando se trate de estructuras Generalización- Especificación, se pondrán más arriba
los atributos más generales, y más abajo los mas especializados.

3.- Identificar conexiones de instancias.


Los atributos describen el estado de un objeto. Las conexiones de instancias
describen el tipo de asociación que existe entre las clases y objeto relacionados. Para
representarlas en el esquema, se dibuja una línea entre los objetos y se expresa el tipo de
asociación indicando el número de proyecciones que pueden ocurrir en la conexión de
esos elementos (1, m, o rango n-m)

C la se y O bjeto C la se y O bjeto

1,m 1

10
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Casos especiales.
.- Clase y objeto con un solo atributo. Es un caso raro pero que puede ocurrir.
Hay que comprobar que realmente está bien definida la clase y objeto de este modo.
.- Un atributo con n valores repetidos. En estos casos, revisar la definición de
clases y objetos, para ver la posibilidad de descomponer la clase y objeto con e l
atributo de valores repetido en 2 clases y objeto.

Casos especiales de conexiones de instancias.


- Conexión de instancias muchos a muchos.
- Conexión de instancia entre objetos de la misma clase.
- Conexión de instancia múltiples entre objetos.

4 Nombrar atributos.
Nombrar cada atributo con el nombre más apropiado. Deben ser legibles y
suficientemente claros

8.- Definir Procesos.


En AOO el analista debe hacer una descripción completa del procesamiento y
los requerimientos de ejecución del sistema.
En AOO entendemos por proceso como el comportamiento de un objeto
(método en LPOO).
Los procesos detallan el comportamiento de un objeto dentro de una clase, a
partir del modelo abstracto que se está diseñando.
Los procesos identificados para una clase y objeto se anotan en la sección
inferior de los símbolos de clase y objeto y de clase.

Clase y Objeto Clase

Proceso 1 Proceso 1
Proceso 2 Proceso 2

8.1.- Identificar los estados de cada objeto.


Cada objeto pasa por diferentes estados, desde que se crea hasta que desaparece.
El estado de un atributo viene dado por los valores que puede tener.: Cualquier cambio
en el valor de un atributo provoca un cambio en el estado del objeto. Para identificar los
estados de un objeto hay que examinar los valores potenciales de los atributos y después
examinar si el objeto se comporta de diferente manera para cada uno de esos valores

11
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

potenciales. Los estados por los que pasa un objeto en el tiempo se representa mediante
los Diagramas de Estado en los que se representan también las transiciones de un estado
a otro.
* Identificar procesos.
Podemos distinguir entre los procesos algorítmicamente simples y los
algoritmicamente complejos:
Procesos algoritmicamente simples:
Se aplican a todos y cada uno de los objetos del modelo. Su modo de operación
es siempre el mismo. Entre ellos:
Crear: Crea un objeto en una clase. También lo inicializa.
Conectar: Conecta/desconecta un objeto a otro Establece relaciones entre ellos.
Acceder: Toma o asocia los valores de un atributo a un objeto
Liberar: Libera ( desconecta o borra) un objeto.
Procesos algoritmicamente complejos. Podemos distinguir 2 categorías
- Calcular. Calcula el resultado a partir de los valores de un atributo de un
objeto.
- Monitorizar: Controla el Sistema. o un dispositivo externo. Trabaja con E/S.

Se debe asignar nombre a los procesos que sean claros y representativos de la


acción que realizan.

* Identificar conexiones de mensaje


Una conexión de mensaje es una proyección de un objeto sobre otros objetos.
Un emisor envía un mensaje al receptor, solicitando la realización de un proceso.
Una conexión de mensaje se representa mediante una flecha que relaciona los
dos objetos (emisor y receptor) implicados en el mensaje. El origen se sitúa en el emisor
y el destino en el receptor. El emisor envía un mensaje al receptor quien realiza alguna
acción y devuelve el resultado al emisor. La conexión aunque suele ser entre objetos,
también puede darse entre un objeto y una clase(para crear un nuevo objeto. )
La comunicación entre objeto. mediante mensaje es una manera de manejar la
complejidad.

Clase y Objeto Clase y Objeto

Proceso 1 Proceso 1
Proceso 2 Proceso 2

Las líneas de conexión de mensajes pueden etiquetar con nombres de procesos.


Si hay un objeto emisor y varios receptores, se pueden usar varias flechas.

12
Ingenieria del software Analisis Orientado a Objetos. Una metodología.

Para identificar las conexiones de mensaje necesarias, para cada objeto hay que
considerar:
- De qué otros objeto necesita información este proceso. Dibujar la
correspondiente conexión de mensaje.
- Que otros objeto necesitan información de este..
- Repetir el proceso para cada objeto.

Los procesos se especifican usando diagramas de Proceso, que representan


gráficamente los requerimientos del proceso.

13

You might also like