Está en la página 1de 12

Etapas y actividades en el desarrollo

OO basado en UML
La versin definitiva de la metodologa ser publicada por Booch, Rumbaugh y Jacobson
a finales de este ao. Se pueden tener en cuenta las siguientes etapas

Etapas

Anlisis de Requerimientos
Diseo del sistema
Diseo detallado
Implementacin y pruebas

En cada etapa se resaltan las


actividades que le dan cuerpo y los
documentos que se esperan al final
de cada una de ellas.

1 / 12

Anlisis de Requerimientos
Descripcin
En esta etapa se logra claridad sobre lo que desea el usuario y la forma en la cual se le va
a presentar la solucin que est buscando.

Actividades tcnicas
1. Identificar Casos de Uso del sistema
2. Dar detalle a los casos de uso descritos
3. Definir una interfaz inicial del sistema (si es
aplicable)
4. Desarrollar el modelo del mundo
5. Validar los modelos

Documentos
Entregables
Casos de Uso iniciales
Borradores de Interfaz
Modelo del mundo inicial

Actividades Tcnicas
1. Identificar Casos de Uso del sistema
Esta informacin se representa en un diagrama de casos de uso.
Cmo encontrar un actor?

Identifique los usuarios del sistema


o Porqu se disea el sistema?
o Cules son los actores que el sistema va a beneficiar?
o Qu actores van a interactuar directamente con el sistema? (actores
primarios)
o Qu actores van a supervisar, mantener, recibir informacin del
sistema? (actores secundarios)
Identifique los roles que juegan esos usuarios desde el punto de vista del
sistema
Identifique otros sistemas con los cuales exista comunicacin

Cmo encontrar un caso de uso?


Identifique las operaciones importantes del sistema a construir
Cules son las principales tareas de un actor?
Qu informacin tiene el actor que consultar, actualizar, modificar? Cmo?
Qu cambios del exterior debe informar el actor al sistema?
Qu informacin debe informrsele al actor, con respecto a los cambios del
sistema?
Cmo encontrar relaciones entre actores y casos de uso?
Identifique los casos de uso en los cuales se v implicado un actor
Busque relaciones extends entre casos de uso
Qu casos de uso son similares, diferencindose en la forma en la
cual hacen algunas operaciones?
2 / 12

Qu caso de uso redefine la forma en la cual se realiza una


transaccin dentro de otro caso de uso?
Busque relaciones uses entre casos de uso
Que casos de uso son usados como transacciones de otros?

2. Dar detalle a los casos de uso descritos


Describir la informacin de entrada y salida de cada caso de uso
Descripcin detallada del caso de uso

Descripcin textual de su objetivo


Variantes posibles para realizar este caso de uso. Diagramas de interaccin
de detalle (de secuencia o colaboracin)
Errores y excepciones posibles en el caso de uso

Relacionar el caso de uso con la interfaz a usuario que lo representa


Especificar el dilogo que da solucin al caso de uso (ver definicin de interfaz)

3. Definir una interfaz inicial del sistema (si es aplicable)


Dibujar las pantallas de interaccin para los distintos actores-usuarios
Copiar el modelo mental del usuario
Revisar los elementos del modelo del mundo interesantes para el actor-usuario
(Ver Modelo del Mundo)
Visualizacin tpica de los elementos del modelo del mundo
Informacin relevante para el actor
Metforas de interaccin vlidas
Especificar el dilogo que da solucin a cada caso de uso que se soluciona con la
interaccin con esta interfaz. Puede especificarse este dilogo de varias maneras,
dependiendo de la complejidad de la interfaz definida (en esta etapa se sugiere
escoger el mnimo nivel de detalle posible, para dar ms libertad de diseo en las
etapas posteriores):
1. Por medio de una descripcin textual de su funcionamiento
2. Por medio de diagramas de interaccin que muestren la secuencia de
operaciones entre los objetos de interfaz y los actores involucrados
3. Por medio de diagramas de estados, donde se muestre claramente los estados
de la interfaz
Por medio de un prototipo funcional, en trminos de la interaccin con el
usuario
Definir restricciones para la comunicacin con actores y sistemas
Describir en el detalle del actor o de la relacin con el caso de uso particular

4. Desarrollar el modelo del mundo


3 / 12

Esta informacin se representa en un diagrama de estructura esttica de clases.


Identificar Clases

Elementos fsicos y lgicos dentro del sistema a modelar


Top-down: Comenzar por la clase del objeto ms general (el mundo).
Encontrar sus componentes hasta llegar a clases de tipos bsicos
Identificar los sustantivos del enunciado del problema y determinar si son
clases del modelo del mundo
Identificar clases desde el punto de vista de la informacin
o Identifique los elementos del espacio del problema
o Identifique otros sistemas relacionados como objetos externos
o Identifique dispositivos relacionados
o Identifique los eventos que el sistema debe recordar y manipular
o Identifique los roles de los elementos del mundo
o Identifique sitios
o Identifique unidades organizacionales importantes en el problema
Identificar clases desde el punto de vista funcional (casos de uso)
o Identifique los objetos que participan en un caso de uso particular
o Continue con los mensajes de cada objeto, dejando para el final los
atributos.
Identificar clases desde el punto de vista de sus estados
o En qu estados est en sistema? Cules objetos determinan estos
estados?
o Cmo es el ciclo de vida de estos objetos?

Posibles errores:

Una clase HACE en vez de una clase ES


Solo se requiere un objeto de la clase
Dificultad para encontrar atributos
Objetos con iniciativa propia
Es un objeto y un usuario a la vez
Solo se encuentra un servicio
Varias clases tienen los mismos atributos o servicios
Solo tienen informacin o mensajes no relevantes para el problema
Vista Funcional: Dividir un sistema de la manera clsica

Identificar atributos y asociaciones.

Cules son las caractersticas determinantes del objeto en el dominio del


problema?
Con qu objetos esta relacionado?
Con qu objetos debe estar relacionado para realizar sus mensajes?
Identificar el nombre, los roles y cardinalidad de las asociaciones
Qu asociaciones hay de tipo partes y un todo (composicin)?
Qu informacin se requiere en una clase para realizar su comportamiento?

Posibles errores

Identificar atributos o relaciones no relevantes a los casos de uso


4 / 12

identificados
Las relaciones no reflejan directamente la realidad

Identificar mensajes

Punto de vista funcional


o Qu mensajes debe tener un objeto para colaborar en un caso de uso?
Punto de vista de comportamiento
o Qu comportamiento se espera de un objeto dado en el modelo del
mundo?
o Qu mensajes se requieren para manipular la informacin que
contienen?
o Qu mensajes requieren para manipular las relaciones que tiene?
o Qu mensajes hacen que el objeto cambie de un estado a otro?

Posibles errores

Identificar servicios no relevantes a los casos de uso identificados


Identificar servicios que no puede realizar la clase por falta de informacin

Identificar relaciones de herencia

Qu clases son abstracciones naturales de clases ya existentes?


Qu clases comparten atributos o servicios?
Qu clases extienden atributos o servicios de otras?

Posibles Errores

No tener una relacin Es Un entre las clases

Identificar restricciones del modelo

Identificar valores posibles y no posibles de los atributos. Describirlos como


restricciones de las clases
Identificar valores permitidos para las asociaciones. Describirlos como
restricciones de la asociacin
Identificar restricciones que relaciones dos o ms atributos o relaciones.
Describirlas dentro de la clase correspondiente

Posibles errores

Hay estados en el modelo imposibles en el mundo real


Hay estados en el mundo real no considerados en el modelo

Identificar paquetes

Qu subdivisiones lgicas pueden tener las clases identificadas?


Que subconjunto de clases y casos de uso pueden ser reutilizados en otros
dominios?
5 / 12

Combinar clases fuertemente relacionadas en un paquete


Combinar clases que tienen que ver con los mismos casos de uso en un
paquete

Consideraciones de reutilizacin

Reutilizar modelos de dominio existentes


Identificar posibles variantes en el futuro tenerlas en cuenta para diseo
(patrones)

5. Validar los modelos


Validar las restricciones descritas para las clases

Para cada clase evaluar la completitud de las restricciones


Desarrollar objetos ejemplo que cumplan con las restricciones y que no sean
vlidos en el mundo real

Validar atributos y mensajes

La clase tiene toda la informacin necesaria para desarrollar la tarea?


La clase tiene las relaciones necesarias para propagar el mensaje y cumplir
con la tarea?
Los mensajes si son utilizados dentro del contexto del problema?
Los mensajes obligan la conservacin de las restricciones del modelo?

Desarrollar diagramas de interaccin (diagramas de secuencia o de colaboracin)


para la variante por defecto de cada caso de uso, usando los objetos del modelo del
mundo encontrados y sus mensajes.

Escoger la opcin por defecto de cada caso de uso


Identificar los objetos involucrados
Desarrollar el diagrama de secuencia o el de colaboracin para la interaccin

Validar los diagramas de Interaccin

Todo mensaje de un objeto a otro implica una asociacin y un rol en el


diagrama de clases
Todo mensaje est definido en su correspondiente clase
Opcional: Completar el diagrama de clases con asociaciones de dependencia
a las clases de los argumentos de los mensajes

Validar con un experto del dominio

Validar estructura del mundo


Validar funcionalidad esperada del sistema
Validar los diagramas de interaccin descritos como detalle de los casos de
6 / 12

uso
Validar con un usuario representativo de cada actor

Validar la funcionalidad esperada para el actor en particular: completitud,


relevancia
Validar los diagramas de interaccin descritos como detalle de los casos de
uso del actor
Validar la interfaz diseada y el dilogo descrito

Iterar si es necesaria ms informacin

Documentos Entregables
Casos de Uso iniciales
Borradores de Interfaz
Modelo del mundo inicial.
Versin de requerimientos

Requerimientos ms importantes del sistema


Usuarios y sistemas externos en comunicacin
Especificacin de requerimientos
Presentaciones iniciales para los distintos usuarios de
la forma de solucionar sus requerimientos
Clases, relaciones entre clases y especificacin

7 / 12

Diseo del Sistema


Descripcin
En esta etapa se define una subdivisin en aplicaciones del sistema (si es lo
suficientemente grande) y la forma de comunicacin con los sistemas ya existentes con
los cuales debe interactuar.

Actividades tcnicas
1. Identificar la arquitectura del sistema

Documentos Entregables
Diagramas de Ejecucin, versin inicial

Actividades Tcnicas
1. Identificar la arquitectura del sistema
Definir componentes del sistema, las aplicaciones y su ubicacin. Representarlos por
medio de nodos, componentes y objetos activos (representando las aplicaciones)
dentro de los nodos.
Definir mecanismos de comunicacin. Expresarlos por medio de asociaciones de
dependencia entre los nodos, componentes o aplicaciones y, si es conocido, agregar
un estereotipo para definir el protocolo de comunicacin requerido. Agregar notas
con restricciones, rendimiento esperado y dems detalles de las conexiones.
Particularizar los casos de uso a la arquitectura planteada. Refinar los casos de uso
ya existentes de la etapa anterior para adecuarse a la arquitectura planteada.
Validar arquitectura. Comprobar la validez tcnica, econmica y organizacional de
la propuesta.

Documentos Entregables
Procesadores
Procesos
Mecanismos de comunicacin
Descripcin detallada

Diagramas de Ejecucin, versin inicial

Diseo detallado
Descripcin

8 / 12

En esta etapa se adeca el anlisis a las caractersticas especficas del ambiente de


implementacin y se completan las distintas aplicaciones del sistema con los modelos de
control, interfaz o comunicaciones, segn sea el caso.

Actividades tcnicas
1. Agregar detalles de implementacin
al modelo del mundo
2. Desarrollar el modelo de interfaz
3. Desarrollar los modelos de control,
persistencia y comunicaciones

Documentos Entregables
Diagramas de clases y paquetes, con el detalle
de la implementacin
Diagramas de interaccin con el detalle de las
operaciones ms importantes del sistema
Diagramas de estados y/o actividades para las
clases concurrentes o complejas

Actividades Tcnicas
1. Detalles de implementacin del modelo del mundo
Completar el detalle de las clases:
Tipos de los atributos
Atributos y metodos de clase
Diseo de asociaciones
Completar los mtodos
Enriquecer el modelo con el framework de base en el ambiente de implementacin
escogido
Incorporar patrones de diseo
Subdividir en paquetes
Definir excepciones
Completar comportamiento de las clases: Constructores, destructores, modificadores,
consultores
Adecuar el modelo a las caractersticas del lenguaje de programacin
Evaluar eficiencia
Validar el sistema

2. Desarrollar el modelo de interfaz


Conocer el framework de base
Enlazar las clases de interfaz con las clases del modelo del mundo

3. Desarrollar los modelos de control, persistencia y


comunicaciones
Conocer los frameworks de base
Enlazar las clases del framework con las dems clases del sistema

Documentos Entregables
9 / 12

Diagramas de clases y paquetes, con el detalle de la implementacin


Diagramas de interaccin con el detalle de las operaciones ms importantes del sistema
Diagramas de estados y/o actividades para las clases concurrentes o complejas

10 / 12

Implementacin y pruebas
Descripcin
Se desarrolla el cdigo de una manera certificada.

Actividades tcnicas

Documentos Entregables

1. Definir estndares de programacin


2. Codificacin y pruebas unitarias
3. Pruebas de mdulos y de sistema

Cdigo fuente
Soporte de pruebas unitarias
Documentacin del cdigo

Actividades Tcnicas
1. Definir estndares de programacin
Asimilar los idioms aplicables al lenguaje
Conocer y adecuar estndares de programacin al lenguaje
Definir estructura de directorios
Disear makefiles

2. Codificacin y pruebas unitarias


Revisiones de cdigo
Tratamiento de Trace y Log

3. Pruebas de mdulos y de sistema


Casos de prueba
Procedimiento de instalacin

11 / 12

Documentos Entregables
Cdigo fuente
Soporte de pruebas unitarias
Documentacin del cdigo

12 / 12