Sei sulla pagina 1di 42

Etapas y actividades en el desarrollo

OO basado en UML

Prof. Norka Pareles

Etapas y actividades en el desarrollo


OO basado en UML
Etapas
Anlisis de Requerimientos
Diseo del sistema
Diseo detallado
Implementacin y pruebas

Anlisis de Requerimientos
Pasos:
Identificar Casos de Uso del sistema
Dar detalle a los casos de uso descritos
Definir una interfaz inicial del sistema (si es
aplicable)
Desarrollar el modelo del mundo
Validar los modelos

Identificar Casos de Uso del sistema

Cmo encontrar un actor?


Identifique los usuarios del sistema

Porqu se disea el sistema?


Cules son los actores que el sistema va a beneficiar?
Qu actores van a interactuar directamente con el sistema?
(actores primarios)
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

Identificar Casos de Uso del sistema

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?

Identificar Casos de Uso 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?
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?

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

Dar detalle a los casos de uso


descritos
Relacionar

el caso de uso con la interfaz a


usuario que lo representa.
Especificar el dilogo que da solucin al
caso de uso.

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
Visualizacin tpica de los elementos del modelo del
mundo
Informacin relevante para el actor
Metforas de interaccin vlidas

Definir una interfaz inicial del sistema


(si es aplicable)

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):
Por medio de una descripcin textual de su funcionamiento
Por medio de diagramas de interaccin que muestren la
secuencia de operaciones entre los objetos de interfaz y los
actores involucrados
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 una interfaz inicial del sistema


(si es aplicable)
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.

Desarrollar el modelo del mundo


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

Identifique los elementos del espacio del problema


Identifique otros sistemas relacionados como objetos externos
Identifique dispositivos relacionados
Identifique los eventos que el sistema debe recordar y manipular
Identifique los roles de los elementos del mundo
Identifique sitios
Identifique unidades organizacionales importantes en el problema

Desarrollar el modelo del mundo


Identificar Clases cont..
Identificar clases desde el punto de vista funcional
(casos de uso)

Identifique los objetos que participan en un caso de uso


particular
Continue con los mensajes de cada objeto, dejando para el
final los atributos.

Identificar clases desde el punto de vista de sus


estados

En qu estados est en sistema? Cules objetos


determinan estos estados?
Cmo es el ciclo de vida de estos objetos?

Desarrollar el modelo del mundo


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

Desarrollar el modelo del mundo


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?

Desarrollar el modelo del mundo


Posibles errores
Identificar atributos o relaciones no
relevantes a los casos de uso identificados
Las relaciones no reflejan directamente la
realidad

Desarrollar el modelo del mundo


Identificar mensajes
Punto de vista funcional

Qu mensajes debe tener un objeto para colaborar en un caso de


uso?

Punto de vista de comportamiento

Qu comportamiento se espera de un objeto dado en el modelo


del mundo?
Qu mensajes se requieren para manipular la informacin que
contienen?
Qu mensajes requieren para manipular las relaciones que tiene?
Qu mensajes hacen que el objeto cambie de un estado a otro?

Desarrollar el modelo del mundo


Posibles errores
Identificar servicios no relevantes a los casos
de uso identificados
Identificar servicios que no puede realizar la
clase por falta de informacin

Desarrollar el modelo del mundo


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?

Desarrollar el modelo del mundo


Posible Error
No tener una relacin Es Un entre las clases

Desarrollar el modelo del mundo


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

Desarrollar el modelo del mundo


Posibles errores
Hay estados en el modelo imposibles en el
mundo real
Hay estados en el mundo real no
considerados en el modelo

Desarrollar el modelo del mundo


Identificar paquetes
Qu subdivisiones lgicas pueden tener las clases
identificadas?
Que subconjunto de clases y casos de uso pueden
ser reutilizados en otros dominios?
Combinar clases fuertemente relacionadas en un
paquete
Combinar clases que tienen que ver con los mismos
casos de uso en un paquete

Desarrollar el modelo del mundo


Consideraciones de reutilizacin
Reutilizar modelos de dominio existentes
Identificar posibles variantes en el futuro
tenerlas en cuenta para diseo (patrones)

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 los modelos


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?

Validar los modelos


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 modelos


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 los modelos


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 uso

Validar los modelos


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

Diseo del Sistema


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.

Diseo del Sistema


Identificar la arquitectura del sistema cont..

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.

Diseo detallado
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.

Diseo detallado
Detalles

de implementacin del modelo del

mundo
Desarrollar el modelo de interfaz
Desarrollar los modelos de control,
persistencia y comunicaciones

Diseo detallado

Completar el detalle de las clases:

Tipos de los atributos


Atributos y mtodos 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

Diseo detallado

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

Desarrollar el modelo de interfaz


Conocer

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

Desarrollar los modelos de control,


persistencia y comunicaciones
Conocer

los frameworks de base


Enlazar las clases del framework con las
dems clases del sistemas

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

Definir estndares de programacin


Codificacin y pruebas unitarias
Pruebas de mdulos y de sistema

Definir estndares de programacin


Asimilar

los idioms aplicables al lenguaje


Conocer y adecuar estndares de
programacin al lenguaje
Definir estructura de directorios
Disear makefiles

Codificacin y pruebas unitarias


Revisiones

de cdigo
Tratamiento de Trace y Log

Pruebas de mdulos y de sistema


Casos

de prueba
Procedimiento de instalacin

Potrebbero piacerti anche