Unidad 2
Unidad 2
Conceptos fundamentales:
Un sistema orientado a objetos es un sistema donde los elementos son entidades
denominadas “objetos”, que “colaboran” con otros objetos comunicándose mediante
“mensajes” para cumplir un objetivo dado, cada uno con tareas definidas o un rol
dedo acorde a su “responsabilidad”.
Objeto
Encapsulado de datos que modela algo real u abstracto, y operaciones que tratan
dichos datos. Tiene un estado interno, osea, posee identidad. Cada objeto es una
instancia de la clase a la que pertenece. Los objetos no son simplemente
abstracciones de datos como las entidades de un modelo de entidad relacion, sino
que tienen un “comportamiento”, es decir, las operaciones que puede realizar.
Clase
Es a su vez un conjunto de objetos que comparten atributos, metodos, relaciones
y semantica, y una plantilla o molde para crear objetos con identidad.
Responsabilidad
Todo objeto tiene definidoun rol dentro del sistema. Que sabe el objeto y que
debe hacer, basicamente el scope/alcance.
Colaboración
Los objetos deben colaborar entre si para cumplir sus resplonsabilidades.
Es cuando dos o mas objetos interactuan entre si mediante mensajes. Un objeto
delegara la responsabilidad en otro objeto para que realice una tarea que le
solicita.
Mensajes.
Es el mecanismo por el cual se comunican los objetos para poder colaborar.
Relacion de conocimiento:
El emisor debe conocer el objeto receptor del mensaje.
Principios fundamentales.
SOLID: Es un acrónimo mnemónico introducido por Robert C. Martín a comienzos de
la década del 2000 que representa cinco principios básicos de la programación
orientada a objetos y el diseño. Cuando estos principios se aplican en conjunto
es más probable que un desarrollador cree un sistema que sea más fácil de
mantener y ampliar con el tiempo.
Principio abierto/cerrado
Este principio establece que una entidad de software (clase, módulo, función,
etc.) debe quedar abierta para su extensión, pero cerrada para su modificación.
Es decir, se debe poder extender el comportamiento de tal entidad pero sin
modificar su código fuente.
Una clase está cerrada, dado que puede ser compilada, almacenada en una librería
y usada por otras clases. Pero también está abierta, dado que a partir de ella
podríamos crear nuevas subclases que incorporaran características nuevas. Y al
crear una subclase, no hay ninguna necesidad de modificar la superclase.
• Se dice que un módulo está abierto si se puede extender.
• Se dice que un módulo queda cerrado si no se puede modificar por otros
módulos.
• Si un cambio impacta a varios modulos, entonces la aplicacion no está
bien diseñada.
• Se deben diseñar modulos que nunca cambien para reutilizarlos más
adelante a través de su extensión (herencia).
• Cada clase que hereda de otra puede usarse como su padre sin necesidad
de conocer las diferencias entre ellas.
• Funciones que usen punteros o referencias a clases base deben poder
usar objetos de clases derivadas sin saberlo.
Otros Conceptos:
Los lenguajes y sistemas deben mostrar los siguientes conceptos para ser
considerados Orientados a Objetos.
Abstracción
Es el principio en el cual la mente se enfoca en los aspectos importantes de un
problema y descarta los irrelevantes.
No es propio de la orientacion a objetos. Este principio es fundamental porque
nos permite crear modelos encapsulados.
En la orientacion a objetos se abstaen tanto datos, como comportamientos y se
los encapsula juntos en los objetos.
Encapsulamiento
Mecanismo que permite ocultar los detalles de implementacion de un objeto. El
objeto solo es conocido y manipulado mediante su interface.
Herencia
Es una relacion entre clases que permite reusar los atributos y operaciones de
una clase general en otras mas particulares.
Polimorfismo
Es un principio por el cual una misma operación puede ser resuelta diferente
dependiendo del objeto que recibe el mensaje.
(Sobrecarga)
Un objeto responde de diferente manejara a un mismo mensaje.
Conceptos
Vistas, Diagramas
Es un subconjunto de contrucciones de modelado que se enfocan en un aspecto
particular del sistema. Las vistas pueden dividirse en 3 areas: clasificacion
estructural, comportamiento dinamico y gestion de modelo. La division puede ser
arbitraria pero apunta a ser intuitiva.
La clasificacion estructural: describe los elementos del sistema y sus
relaciones entre si.
Los Clasificadores: modela los elementos del sistema. Son la base sobre la que
se construye el comportamiento dinamico. Son: clases, casos de uso, componentes,
nodos, actores y colaboraciones.
Artefacto
Es una unidad física de informacion o descripcion de comportamiento en un
sistema computacional. Los artefectos de despliegan en nodos. Un artefacto puede
ser una manifestacion, es decir una implementacion, de un componenente.
La vista de Deployment describe la configuracion de nodos del sistema corriendo
y los artefactos en ellos, incluidas las relaciones de manifestacion a
componentes.
En el diagrama de secuencia:
Clasificadores
Es un concepto discreto en el modelo que tiene identidad, estado, comportamiento
y relaciones.
modela los elementos del sistema. Son la base sobre la que se construye el
comportamiento dinamico.
Son clasificadores:
• Clases, interfaces y tipos de datos.
• Los casos de uso, que mapean aspectos de comportamiento.
• Los subsistemas, componentes y nodos.
• Los paquetes.
Tipos de Clasificadores:
1. Clasificadores de elementos del Sistema:
Clase
Interfaz
Tipo de datos
2. Clasificacodres de conceptos de comportamiento:
Caso de uso
3. Clasificadores del entorno:
Actores
4. Clasificadores de estructuras de implementacion:
Componente
Nodo
Subsistema.
Relaciones
Las relaciones entre Clasificadores son:
Asociacion Ordenada:
Una asociacion que requiere que uno de los extremos presente ordenamientos, como
las diapositivas de una presentacion.
Agregacion y composicion
La agregacion es una relacion Todo-Partes. Como las partes de un auto con el
auto.
La composicion implica una asociacion mas fuerte, implica:
• Dependencia Existencial, el elemento desaparece al destruirse al otro.
• Pertenencia Fuerte: el elemento contenido es parte vital de el contenedor.
• Los objetos no son compartidos, no hacen parte del estado de otro objeto.
• Un ejemplo seria la alu de una computadora.
2. Generalizacion
Relacion taxonomica entre la descripcion general y una mas especifica.
Proposito de la generalizacion: tiene 2.
El primero es definir las condiciones bajo las cuales una instancia de una
clase, puede ser utilizado cuando se declara una variable, conteniendo valores
de la clase dada esto se llama el principio de sustitucion de Liskov).
El segundo proposito es permitir la descripcion incremental de un elemento que
comparte descripciones con sis antecesores. Esto se conoce como herencia.
3.Realizacion:
Conecta un elemento del modelo, como un clase, con otro, como una interfaz, que
especifica su comportamiento pero no su estructura o implementacion. El cliente
debera tener al menos todas las operaciones que tiene el proveedor.
4.Dependencias:
Es una relacion semantica entre dos o mas elementos del modelo. Implica que un
cambio en el elemento proveedor puede producir un cambio en su
dependiente(cliente). Las herencias son un tipo especial de dependencia.
Diagramas de Clases
un Diagrama de una instantanea es una imagen del sistema, en un instante en el
tiempo. Se llama diagrama de objetos porque consiste de imagenes de objetos.
Recuerde que las instantaneas no son definiciones del sistema,sino ejemplos del
mismo.
La vista estatica describe los casos que pueden ocurrir.
Concepto de Actor
Es una idealizacion de una persona externa, de un proceso, o de una cosa que
interactua con el sistema. Son objetos que reciden FUERA del sistema, en tanto
que los casos de uso son objetos internos al sistema.
Un actor participa en uno o mas casos de uso.
Los actores pueden ser definidos en jerarquias de generalizacion.
El usuario es una persona que usa un sistema, el actor es un rol que asume ese
usuario.
Un usuario puede actuar como instancias de distintos actores.
Caso de Uso
Es una secuencia de transacciones realizadas por el sistema que brinda un
resultado de valor a un actor en particular.
Es una forma de usar el sistema. El usuario interactua con el sistema
interactuando con sus casos de uso.
Es una unidad coherente de funcionalidad, externamente visible, proporsionada
por una unidad del sistema y expresada por secuencias de mensajes entre actor/es
y sistema.
Cumplen dos funciones importantes:
• Capturan requerimientos funcionales del sistema: definen el comportamiento
esperado del sistema.
• Estructuran los modelos de objetos en vistas manejables: es practico
construir modelos de objetos para cada caso de uso con los objetos que
participan. El modelo de objetos completo se obtiene al combinar todos los
modelos de objetos de casos de uso. Puede verse la responsabilidad de un
objeto al ver todos sus roles en distintos casos de uso.
Escenarios.
Un escenario es una secuencia de pasos que describen una interaccion entre actor
y sistema. Un caso de uso es un conjunto de escenarios con un mismo objetivo
para el actor. Los Escenarios son los distintos caminos posibles, el camino
Estandar y los caminos alternativos.
Ejemplo:
Caso de uso: Presionar boton rojo para ganar
precondiciones: usuario registrado.
1.el sistema informa que se debe presionar el boton rojo para ganar.
2.el usuario presiona el boton rojo.
3.el sistema anucia que ha ganado.
Post condiciones: el sistema imprime un boleto de ganador.
Caminos alternativos:
El usuario presiona boton azul.
2.1 el usuario presiona boton azul
2.2. el sistema informa que no se ha ganado.
Post condicion: el sistema imprime una hoja burlandose del usuario.
Inclusión
Un caso de uso puede incluir en su comportamiento el comportamiento de otro caso
de uso mediante una relacion de inclusion.
Si varios casos de uso comparten secuencias de pasos, para evitar redundacia se
las extrae en secuencias comunes. Una secuencia comun es un caso abstracto que
no se puede instanciar por si mismo.
Los casos de uso que INCLUYEN la secuencia comun son casos comunes y se pueden
instanciar.
Es una relacion de dependencia entre casos de uso.
Extensión
Un caso de uso puede definirse como una extension incremental de un caso de uso
base. Los casos de uso base son instanciables siempre. Pero las extensiones solo
son instanciables en casos particulares. Toda extension debe incluirse como
camino alternativo en la descripcion textual.
Se utiliza esta relacion para:
➢ Partes opcionales de un caso de uso.
➢ Cursos complejos y alternativos
➢ Subsecuencias que se ejecutan en condiciones excepcionales.
Generalización.
Un caso de uso se puede especializar en casos de uso hijos utilizando una
relacion de generalizacion.
Eventos
Es una ocurrencia significativa que tiene una localizacion en el tiempo y
espacio. No tiene duracion.
Se habla de Evento como una descripcion de todas las ocurrencias individuales
del evento que tienen la misma forma general. Una ocurrencia especifica de un
evento es por lo tanto una Instancia del evento.
Pueden tener parametros que caracterizan las instancias.
Se pueden organizar en jerarquias degeneralizacion para compartir estructura en
comun.
Evento de Señal
Una señal es una entidad con nombre que se piensa especificamente como vehiculo
de comunicación entre dos objetos. La recepcion de una señal es un evento para
el objeto receptor.
Las señales se pueden modelar en diagramas de clases como clasificadores
utilizando el estereotipo “señal/signal”. Los parametros de la señal se declaran
como atributos.
Evento de Cambio
Es la satisfaccion de una expresion booleana que dependa de ciertos valores de
un atributo.
Es una manera declarativa de esperar a que una condicion sea satisfecha.
La diferencia entre una condicion de guarda y un evento de cambio es que una
condicion de guarda se evalua una vez caundo ocurre el evento disparador de la
transicion y si es falsa la transicion no ocurre. Un evento de cambio se evalua
continuamente hasta que llega a ser verdad, en cuyo caso se disara la
transicion.
Evento de Tiempo
Representan el paso del tiempo. Un evento de tiempo se puede especificar de modo
absoluto(hora) o de modo relativo (2 segundos despues de).
Evento de Llamada
Es la recepcion de una llamada por un objeto que elige poner una operación en
ejecucion, como transicion de la maquina de estados.
Para el objeto llamador un evento de llamada es indistinto de una llamada a un
metodo ordinaria.
Y el objeto receptor elige si la operación sera implementada con un metodo o con
un disparador de un evento de llamada en la maquina de estados. Los parametros
de la operación son los parametros del evento.
A diferencia de una llamada ordinaria el receptor puede continuar su propia
ejecucion en paralelo.
Estado
Describe un periodo de tiempo durante la vida de un objeto de una clase. Puede
ser caracterizado de tres maneras complementarias: como un conjunto de valores
de objeto cualitativamente similares en cierta forma; como periodo de tiempo,
durante el cual un objeto espera que ocurra algun evento o eventos; o como
periodo de tiempo durante el cual el objeto realiza cierta actividad.
Un estado puede tener un nombre, aunque a menudo es anonimo y se describe por
sus acciones.
En una maquina de estados, un conjunto de estados esta conectado mediante
transiciones. Aunque las transiciones conectan dos estados, las transiciones son
procesadas por el estado del que salen. Cuando un objeto esta en un estado es
sencible a tener una transicion cuando ocurren los eventos(correspondientes a
esa transicion) que salen de ese estado.
Transiciones
Es el cambio de un estado a otro. En general una transicion tiene un evento
disparardor, una condicion de guarda, una acción, y un destino.
Existen dos tipos de transiciones:
• Transicion Externa: cambia el estado activo
• Transicion Interna: Tiene un estado origen pero no tiene un estado
destino, o dicho de otra forma, el origen es el destino.
Si una transicion interna tiene una acción, se ejecuta, pero no existe
cambio de estado.
Evento disparador:
Es un evento cuya ocurrencia permite la transicion.
Si una señal tiene decendientes cualquier descendiente permite la transicion.
Los eventos se manejan uno solo a la vez.
Condicion de Guarda:
Es una condicion booleana referida a los atributos del objeto o a los parametros
del evento disparador, que se evalua cuando ocurre el evento disparador. Si la
expresion se evalua como cierta entonces se dispara la transicion.
Accion:
Cuando uno dispara una transion, su acción (si la hay) es ejecutada. Una acción
es un computo atomico y breve. A menudo es:
• una sentencia de asignacion
• una operación aritmetica
• el envio de una señal a otro objeto.
• La invocacion de una iperacion propia
• asignacion de valores de retorno
• creacion o destruccion de objetos
• una secuencia de acciones simples.
Atomico: no puede ser interrumpida por otro evento, Se ejecuta hasta terminar.
Cambio de estado:
Cuando se completa la ejecucion de la acción, el estado destino de la transicion
pasa a ser activo.
Transicion de Finalizacion:
Es una transicion que carece de un evento disparador explicito. Es accionada por
la terminacion de la actividad del estado que sale.
Puede tener una condicion de guarda que se evalua en el momento en que termina
la actividad.
Estados de acción: son similares a los de actividad, excepto que son atomicos y
no permiten transiciones mientras estan activos. Se usan por lo general para las
actividades cortas de mantenimiento.
Transiciones
Una transicion de terminacion es activada en un diagrama de actividades cuando
se completa la actividad procedente.
Diagrama de Actividades.
Es una notacion para un grafor de actividades. Incluye algunos simbolos
especiales, abreviados por conveniencia. Estos simbolos pueden usarse en
cualquier diagrama de estados.
Es como un organigrama tradicional, excepto que prermite control de concurrencia
ademas de control secuencial, una gran diferencia.
Es escencialmente un diagrama de flujo que destaca la actividad que tiene lugar
a lo largo del tiempo. Muestra las operaciones que pasan entre objetos.
Muestra el “Flujo de Actividades” es decir, la ejecucion no atomica en curso.
Hilos Concurrentes: Puede contener bifurcaciones, asi como divisiones de control
en hilos concurrentes. Los hilos concurrentes representan actividades que se
pueden realizar concurrentemente por los diversos objetos o personas de una
organización. Las actividades concurrentes se pueden realizar simultaneamente o
en cualquier orden.
Colaboración de Objetos.
Es una descripcion de una colección de objetos que interactuan para implementar
un comportamiento en un contexto dado. Describe una sociedad de objetos
cooperantes ensamblados para llevar adelante algun proposito.
Cada colaboracion contiene roles que son ocupados por objetos y enlaces(links)
en tiempo de ejecucion. Cada objeto y/o enlace(link) cumple un rol dentro de una
colaboracion.
Un objeto puede participar en mas de una colaboracion.
Diagramas de colaboración
Es un diagrama de clases que contiene roles de clasficador y roles de
asociacion(instancias de clases) en vez de clasificadores y asociaciones a
secas. Los roles de clasificacion y roles de asociacion describen la
configuracion de objetos y enlaces que pueden ocurrir cuando una instancia de
colaboracion es ejecutada. Cuando una colaboracion es instanciada, los objetos
son ligados a roles de clasificador y los enlaces son ligados a roles de
asociacion.-
Se enfoca en las relaciones entre objetos.
Solo se representan los objetos que estan implicados en la colaboracion, aunque
puede haber otros en el sistema completo. Es decir, un diagrama de colaboracion,
modela los objetos y enlaces implicados en la implementacion de una interaccion
y no hace caso a de las otras.
Es util agrupar los objetos en una de cuatro categorias:
• Objetos que existe durante toda la interaccion
• Objetos creados durante la interaccion (constraint{new})
• Objetos destruidos durante la interaccion (constraint{destroy})
• Objetos creados y destruidos durante la interaccion
(constraint{transient})
Durante el diseño esto ayuda a determinar como debe fluir el flujo de control
dentro de la interaccion.
Aunque las colaboraciones muestran directamente la implementacion de una
operación, pueden también mostrar la realizacion de una clase entera. Esto
permite que el modelador vea roles multiples que los objetos pueden desempeñar
en varias operaciones. Esta Vista puede ser construida tomando la union de todas
las colaboraciones necesarias para describir todas las operaciones del objeto.
Flujos: Generalmente un diagrama de colaboracion contiene un simbolo para un
objeto durante una operación completa. Sin embargo a veces un objeto tiene
distintos estados que se deban hacer explicidtos. Por ejemplo un objeto pudo
cambiar localizacion, o sus asociaciones pudieron diferenciarse perceptiblemente
en distintos momentos. Un objeto se puede mostrar con su clase y su estado -un
objeto de una clase en un estado-. El mismo objeto se puede mostrar multiples
veces, cada uno con una localizacion o estado diferente.
Diagrama de secuencia.
Representa una interaccion como un grafico bidimensional. La dimension vertical
es el eje de tiempo. La dimension horizontal muestra los roles de clasificadores
que representan objetos individuales en la colaboracion. Cada rol de
clasificador es representado por una linea vertical que representa su linea de
vida. Una linea punteada representa el preiodo de “existencia” del objeto. Una
linea doble representa una activadcion del objeto.
Un mensaje es representado por una flecha dese la linea de vida de un objeto
hacia la linea de vida de otro objeto. La secuencia de mensajes esta ordenada en
forma desdencente en el diagrama.
(la llamada recursiva la representamos distinto del diagrama con una caja de
linea punteada y las condiciones).
Modelo de Implementación:
(Vista de Implementacion)
Muestra el empaquetado fisico de las partes reutilizables del sistema en
unidades sustituibles, llamadas componentes. Una vista de implementacion muestra
la implementacion de los elementos del diseño (tales como clases) mediante
componentes, asi como sus intefaces y dependencias entre componentes. Los
componentes son las piezas reutilizables.
Componentes.
Es una unidad física de implementacion con interfaces bien definidas pensada
para ser utilizada como parte reemplazable de un sistema. Cada componente
incorpora la implementacion de ciertas clases del diseño del sistema. Los
componentes bien diseñados no dependen directamente de otros componentes sino de
las interfaces que ofrecen los componentes.
En ese caso, un componente en un sistema se puede sustituir por otro componente
que ofrezca las interfaces apropiadas.
Los componentes soportan mas interfaces y requieren ciertas interfaces de otros
componentes. Una interfaz es una lista de las operaciones que una pieza de
software o de hardware ofrece y puede realizar. El uso de las llamadas
interfaces permite evitar las dependencias entre componentes. La vista de
componentes puede aparecer de dos formas. Puede mostrar un conjunto de
componentes disponibles (una biblioteca de componentes) con sus dependencias; es
el material a partir del cual se puede ensamblar un sistema. Puede también
mostrar un sistema configurado , con la selección de componentes usados para
contruirlo (a partir de la biblioteca completa). De esta forma, cada componente
se conecta a otros componentes cuyos servicios utiliza; estas conexiones deben
ser consistentes con las interfaces de los componentes.
Un componente se dibuja como un rectangulo, con dos rectangulos pequeños a un
lado. Puede ser unido por lineas solidas a los circulos que representan
interfaces.
Un diagrama de componentes muestra dependencias entre los componentes.
Cada componente ofrece algunas interfaces y utiliza otras. Si las dependencias
entre componentes se hacen a traves de interfaces, los componentes se pueden
sustituir por otros componentes que realicen las mismas interfaces.
Modelo de despliegue:
(Vista de Desplieque)
Muestra la disposicion fisica de los recursos de ejecucion computacional, tales
como computadores y sus interconexiones. Se llaman nodos.Durante la ejecucion,
los nodos pueden contener componentes y objetos. La asignacion de componentes y
de objetos a los nodos pude ser estatica o pueden migrar entre ellos.
La vista de despliegue puede mostrar cuellos de botella para el rendimiento si
las instancias de los componentes con dependencias se ponen en distintos nodos.
Nodos.
Un nodo es un objeto fisico de ejecucion que representa un recurso
computacional, que generalmente tiene por lo menos memoria y a menudo también
capacidad de proceso. Los nodos pueden tener estereotipos para distinguir
diferentes tipos de recursos, tales como UCP, dipositivos y memorias. Los nodos
pueden contenes objetos, instancias, instancias del componente.
Un nodo se representa mediante un cubo estilizado con el nombre del nodo y
opcionalmente su clasificacion.
Las asociaciones entre los nodos representan lineas de comunicacion. Las
asociaciones pueden tener estereotipos para distinguir distintos tipos de
enlaces.
Los nodos pueden tener relaciones de generalizacion para relacionar una
descripcion general de un nodo con una variacion especificacion.
La presencia de un objeto en un nodo se representa mediante el anidamiento
fisico del simbolo del objeto dentro del simbolo del nodo. Si eso no es
conveniente, el simbolo del objeto puede contener la etiqueta “Location”, cuyo
valor sea el nombre del nodo en el que reside el objeto (su localizacion).
La migracion de objetos o de instancias de componentes entre nodos, puede
reprentarse también.
¿Enlaces?
Las asociaciones entre los nodos representan lineas de comunicacion. Las
asociaciones pueden tener estereotipos para distinguir distintos tipos de
enlaces.
Gestión del Modelo:
(Vista de Gestion del modelo)
Consiste de paquetes (incluyendo tipos especiales de paquetes) y relaciones de
dependencias entre paquetes. Que se utilizan para agrupar elementos del modelo.
Paquetes.
Es una parte de un modelo. Cada parte de un modelo debe pertener a un paquete.
Los paquetes contienen elementos del modelo tales como clases, maquinas de
estado, diagramas de casos de uso, interacciones, colaboraciones, etc. Los
paquetes también pueden contener otros paquetes.
Los paquetes son unidades de organización jerarquica.
Hay varias maneras posibles de organizar los paquetes en un sistema, por la
vista, por la funcionalidades o por cualquier otra base que elija el diseñador.
Si se eligen bien, los paquetes reflejan la arquitectura de alto nivlel de un
sistema: su descomposicion en subsistemas y sus dependencias.
Dependencias.
Dependencias en los paquetes:
Las dependencias entre paquetes resumen dependencias entre elementos internos de
ellos.
Los paquetes se dibujan como carpetas, las dependencias como trazo discontinuos.
Modelo y Subsistema.
Un modelo es un paquete que abarca una descripcion completa de una vista
particualar de un sistema. Propociona una descripcion cerrada de un sistema a
partir de un punto de vista.
La relacion de traza es un a forma debil de dependencia entre elementos de
distinos modelos, que observan la presencia de una cierta conexión sin
implicaciones semanticas especificas.
Generalmente un modelo se estructura con forma de arbol. El paquete raiz
contiene anidados en si mismo paquetes que constituyen el detalle completo del
sistema desde el punto de vista dado.
Un subsistema es un paquete que tiene piezas separadas de especificacion y de
realizacion. Representa generalmente la particion del sistema en un limite
funcional o de implementacion. Un subsistema es un agrupamiento semánticamente
útil de clases o de otros subsistemas.
Los modelos y subsistemas se dibujan como paquetes con las palabras clave de
estereotipo.
Conceptos fundamentales.
• RUP esta dirigido por casos de uso.
• RUP esta centrado en la arquitectura.
• RUP es Iterativo e incremental.
Dirigido por casos de uso
Un caso de uso es un fragmento de funcionalidad del sistema que proporciona un
resultado de valor al usuario. Modelan los requerimientos funcionales del
sistema.
Todos los casos de uso juntos constituyen el modelo de casos de uso
Los casos de uso guian el proceso de desarrollo (diseño, implementacion y
prueba). Basandose en los casos de uso los desarrolladores crean una serie de
modelos de diseño e implementacion que llevan a cabo los asos de uso. De este
modo los casos de uso no solo inician el proceso de desarrollo, sino que le
proporcionan un hilo conductor, avanza a traves de una serie de flujo de trabajo
que le proporcionan los casos de uso.
Ej.: Diagrama de secuencia para representar la realización del caso de uso Sacar
Dinero en el modelo de diseño.
Agrupación de clases en subsistemas
Es imposible utilizar sólo clases para realizar los casos de uso en un sistema
grande
con cientos o miles de clases. Es imposible comprender el sistema sin una
organización de más alto nivel. Las clases se agrupan en subsistemas.
Los subsistemas de bajo nivel se denominan subsistemas de servicio. Los
subsistemas de servicio constituyen una unidad manejable de funcionalidad
opcional.
Los subsistemas pueden diseñarse en forma descendente o ascendente.
El diseño ascendente se realiza a partir de la agrupación de clases ya
identificadas. Se
proponen subsistemas que empaquetan clases en unidades claramente definidas.
El diseño descendente, implica la definición previa por parte del arquitecto de
los
subsistemas de más alto nivel y las interfaces entre ellos, antes de que se
hayan
identificado las clases.
Ej.: Para el sistema de CA se agrupan las clases en tres subsistemas:
- <<subsystem>> Interfaz del CA: agrupa todas las clases que proporcionan
la interfaz gráfica del CA:
o Lector de tarjetas
o Dispositivo de visualización
o Teclado
o Alimentador de la salida
o Sensor de la salida
o Contador de efectivo
o Gestor de cliente
- <<subsystem>> Gestión de transacciones
o Gestión de Transacciones
o <<service subsystem>> Gestión de retirada de efectivo
§ Retirada de efectivo
- <<subsystem>> Gestión de cuentas
o Clase Persistente
o Gestor de Cuentas
o Cuenta
Centrado en la arquitectura
La arquitectura de un sistema se describe mediante diferentes vistas del sistema
en construccion.
El concepto de arquitectura de sofware incluye los aspectos estaticos y
dinamicos mas significativos del sistema.
La arquitectura es una vista del diseño completo con las caracteristicas mas
importantes resaltadas dejando los detalles de lado.
Los Casos de uso y la arquitectura estan profundamente relacionados. Lo CdU
deben encajar en la arquitectura,y asu vez la arquitectura debe permitir el
desarrollo de todos los casos de uso.
Desarrollo de la arquitectura
La arquitectura se desarrolla mediante iteraciones, principalmente en la etapa
de
elaboración.
El resultado de la fase de elaboración es la línea base de la arquitectura – un
esqueleto del sistema con pocos músculos de software.
Descripción de la arquitectura
La línea base de la arquitectura, es la versión interna del sistema al final de
la fase de
elaboración. El conjunto de modelos que describen esta línea base se denomina
Descripción de la Arquitectura.
El papel de la descripción de la arquitectura es guiar al equipo de desarrollo a
través
del ciclo de vida del sistema.
La descripción de la arquitectura tiene cinco secciones, una para cada modelo:
una
vista del modelo de casos de uso, una vista del modelo de análisis (opcional /
descartable), una vista del modelo de diseño, una vista del modelo de
despliegue, y
una vista del modelo de implementación.
Iterativo e incremental.
Es practico dividir el proceso de desarrollo en partes o mini proyectos.
Cada mini proyecto es una iteracion que resulta en un incremento
Las iteraciones hacen referencia a pasos en el flujo de trabajo y los
incrementos a crecimientos en el producto.
Las iteraciones deben estar CONTROLADAS, es decir, deben seleccionarse y
ejecutarse de una forma PLANIFICADA.
El resultado de una iteracion es un sistema que puede ser probado, integrado y
ejecutado.
El objetivo de esto es la “Ampliacion y refinamiento meidante multiples
iteraciones”.
Los diseñadores basan la seleccion de que debe implementarse en cada iteracion
en:
• el conjunto de casos de uso que amplian la funcionalidad.
• los riesgos mas importantes que deben mitigarse.
En cada iteracion se:
1. identifica los CdU mas relavantes
2. crea el diseño de arquitectura para implementar dichos CdU
3. Si la iteracion cumple los objetivos se continua, caso contrario se reveen
decisiones previas y se prueba un nuevo enfoque.
Disciplina
Una disciplina es una colección de actividades relacionadas vinculadas con un
área específica del proyecto. Este agrupamiento de actividades en disciplinas es
principalmente para facilitar la comprensión del proyecto desde la perspectiva
tradicional del modelo en cascada.
Flujo de trabajo
Un flujo de trabajo describe la secuencia en que se realizan las actividades en
una disciplina, quienes la realizan (trabajadores) y que artefactos producen.
Trabajador (Rol)
Un trabajador o rol, define un comportamiento o responsabilidades de un
individuo o grupo de individuos trabajando en equipo, en el contexto de una
organización de ingeniería de software.
Actividad
Los trabajadores realizan actividades. Una actividad es algo que realiza un
trabajador para proveer un resultado de valor en el contexto de un proyecto.
Pasos (steps)
Las actividades son descompuestas en pasos. Podemos distinguir tres categorías
de pasos:
• Pasos de análisis: donde el trabajador comprende la naturaleza de la
tarea, examina los artefactos de entrada, y formula las salidas.
• Pasos de acción: donde los trabajadores crean o actualizan algunos
artefactos.
• Pasos de revisión: donde los trabajadores inspeccionan los resultados
según determinados criterios.
Artefactos
Las actividades tienen artefactos de entrada y de salida. Un artefacto es un
producto
de trabajo en un proceso: los trabajadores utilizan artefactos para realizar
actividades
y producen artefactos como resultado de sus actividades. Los artefactos son
responsabilidad de un único trabajador y promueven la idea de que toda pieza de
información en el proceso debe ser responsabilidad de un rol específico. Un
trabajador
es el “propietario” de un artefacto, pero otros trabajadores pueden usarlo y tal
vez
modificarlo si tienen permiso para ello.
Fase de inicio:
Durante la fase de inicio se desarrolla una descripcion del producto final,y se
presenta el ANALISIS DEL NEGOCIO.
Esta fase responde las siguientes preguntas:
• ¿Cuales son las principales funciones del sistema para los usuarios mas
importantes?
• ¿Como podria ser la mejor arquitectura del sistema?
• ¿Cual es el plan del proyecto y caunto costara desarrollar el producto?
En esta fase se identifican y priorizan los riesgos mas importantes
Puede que todo el trabajo fisico de esta fase se descarte pero el conocimiento
del equipo es lo importante.
Fase de Elaboracion:
Durante la fase de elaboracion se especifican en detalle la mayoria de los casos
de uso del producto y se diseña la arquitectura.
Las iteraciones en esta fase:
Establecen una firme comprension del problema a solucionar
Establecen la fundacion arquitectural para el Software
Establecen un plan detallado para las siguientes iteraciones
Eliminan los mayores riesgos
El resultado de esta fase es la linea de arquitectura.
Fase de Construccion:
Durante la fase de contruccion se crea el producto.La linea base de la
arquitectura crece hasta convertirse en el sistema completo.
Al final de esta el producto contiene todos los casos de uso implementados, sin
embargo puede no estar libre de defectos.
Fase de Transicion:
cubre el periodo durante el cual el producto se convierte en version beta.
Las iteraciones en esta fase continuan agregando caracteristicas al software.
Sin embargo las caracteristicas se agregan a un sistema que el usuario ya se
encontra usando.
El equipo se encuentra ocupado fundamentalmente en corregir y extender la
funcionalidad del sistema desarrollado en la fase anterior.
Los artefatos contruidos en esta fase son los mismos que en la fase de
contruccion.
Hitos
Cada fase finaliza con un hito. Cada hito se determina por la diponibilidad de
un conjunto de artefactos, es decir, un conjunto de modelos o documentos que han
sido desarrollados hasta alcanzar un estado predefinido.
Los hitos tienen muchos objetivos pero el mas critico es que “los directores
deben tomar ciertas deciciones antes de que el trabajo continue con la siguiente
fase.
Los hitos permiten controlar la direccion y progreso del trabajo. Con los datos
del seguimiento de tiempo y esfuerzo consumido en cada fase se pueden realizar
estimaciones de proyecto.
Iteraciones
Una iteración es un mini proyecto, un recorrido más o menos completo a lo largo
de todos los flujos de trabajo fundamentales, que obtiene como resultado una
versión interna del sistema.
En cada iteracion se desarrolla en secuencia un conjunto de disciplinas o flujos
de trabajos.
Disciplinas básicas
Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo)
vinculadas a un área especifica dentro del proyecto total. Las mas importantes
son:
Estos valores se utilizan para estimar el tamaño del proyecto y decidir cómo
dividirlo en secuencia de iteraciones. La prioridad y nivel de riesgo asociados
por ejemplo, se utiliza para decidir en que iteración se implementará la
característica.
Un modelo del dominio describe los conceptos importantes del contexto como
objetos del dominio relacionados entres sí.
Un modelo del negocio es más amplio. Describe los procesos con el objetivo de
comprenderlos. El modelado del negocio especifica que procesos de negocio
soportará el sistema.
Un modelo de objetos del negocio describe como cada caso de uso del negocio es
llevado a cabo por parte de un conjunto de trabajadores que utilizan un conjunto
de entidades del negocio y de unidades de trabajo.
Cada realización de un caso de uso del negocio puede mostrarse en diagramas de
interacción y diagramas de actividad.
Una entidad del negocio representa algo que los trabajadores toman, manipulan,
inspeccionan, producen o utilizan en un negocio.
Una unidad de trabajo es un conjunto de esas entidades que conforma un todo
reconocible para el usuario final.
Requisitos adicionales
Los requisitos adicionales, son requerimientos No funcionales que no pueden
asociarse a ningún caso de uso en particular. Algunos ejemplos son el
rendimiento, las interfaces, y los requisitos de diseño físico, así como las
restricciones arquitectónicas.
Los requisitos adicionales se capturan de forma muy parecida a como se hacía en
la especificación de requisitos tradicional, es decir con una lista de
requisitos. Luego se utilizan durante el análisis junto al modelo de casos de
uso.
REQUISITOS
Actividad Trabajador Resp. de Artefactos (entrada)
(Salida)
1 Analista de Modelo de casos de uso Modelo del negocio o
Encontrar actores y Sistemas (esbozado) Modelo del dominio
casos de uso Glosario Requisitos adicionales
Actores Lista de características
2 Arquitecto Descripción de la Modelo de casos de uso
Priorizar casos de arquitectura (vista del (esbozado)
uso mod.de casos de uso)
3 Especificador de Caso de uso (detallado) Requisitos adicionales
Detallar Casos de casos de uso Glosario
Uso
4 Analista de Modelo de casos de uso Modelo de casos de uso
Estructurar el modelo Sistemas (estructurado) (esbozado)
de casos de uso Requisitos adicionales
Glosario
5 Diseñador de Prototipo de interfaz de Modelo de casos de uso
Prototipar interfaz de Interfaz de usuario Requisitos adicionales
usuario usuario Caso de uso (detallado)
Glosario
Artefacto: actor
El modelo de casos de uso describe lo que hace el sistema para cada tipo de
usuario.
Cada uno de éstos se representa mediante uno o más actores.
Los actores suelen corresponderse con trabajadores (o actores del negocio).
Artefacto: glosario
Podemos utilizar un glosario para definir términos comunes importantes que los
analistas utilizan para describir el sistema.
Trabajadores
Analizamos los trabajadores responsables de crear los artefactos mencionados.
Trabajador: arquitecto
Responsable de:
- descripción de la arquitectura (vista del modelo de casos de uso)
Flujo de Trabajo
Encontrar actores:
Depende de nuestro punto de partida.
Si partimos de un modelo del negocio, el analista puede asignar un actor a cada
trabajador del negocio y un actor a cada actor del negocio (cliente) que
utilizará información del sistema.
En otro caso, con o sin un modelo del dominio, el analista del sistema junto con
el cliente identifica los usuarios e intenta organizarlos en categorías
representadas por actores.
En ambos casos hay que identificar actores que representan sistemas externos y
los actores de mantenimiento y operación del sistema.
Los actores modelan roles.
Disciplina de Análisis:
Durante el análisis, analizamos los requisitos que se describieron en la captura
de requisitos, refinándolos y estructurándolos. El objetivo de hacerlo es
conseguir una comprensión más precisa de los requisitos y una descripción de los
mismos que sea fácil de mantener y que nos ayude a estructurar el sistema
entero, incluyendo su arquitectura.
Conceptos generales.
Comparación del modelo de casos de uso con el modelo del análisis:
Modelo de casos de uso Modelo de Análisis
Descrito en el lenguaje del cliente. Descrito en el lenguaje del
desarrollador.
Vista externa del sistema. Vista interna del sistema.
Estructurado por casos de uso; Estructurado por clases y paquetes
proporciona la estructura a la vista estereotipados; proporciona la
externa. estructura a la vista interna.
Utilizado fundamentalmente como Utilizado fundamentalmente por los
contrato entre el cliente y los desarrolladores para comprender cómo
desarrolladores sobre qué debería y deberá darse forma al sistema, es
qué no debería hacer el sistema. decir, cómo debería ser diseñado e
implementado.
Puede contener redundancias e No debería contener redundancias ni
inconsistencias entre requisitos. inconsistencias entre requisitos.
Captura la funcionalidad del sistema, Esboza cómo llevar a cabo la
incluida la funcionalidad significativa funcionalidad dentro del sistema,
para la arquitectura. incluida la funcionalidad significativa
para la arquitectura; sirve como una
primera aprox. al diseño.
Define casos de uso que se analizarán Define realizaciones de caso de uso, y
con más profundidad en el modelo de cada una de ellas representa el
análisis. análisis de un caso de uso del modelo
de casos de uso.
Artefactos.
ANALISIS
Actividad Trabajador Resp. de Artefactos (entrada)
(Salida)
1 Arquitecto Modelo de Analisis Modelo de casos de uso
Análisis de la {Paquete del análisis Requisitos adicionales
arquitectura (esbozado) Modelo del negocio o
Clase del análisis modelo del dominio
(esbozada)} Descripción de la
Descripción de la arquitectura (vista del
arquitectura (vista del modelo de casos de
modelo de análisis) uso)
2 Ingeniero de Realización de caso de Modelo de casos de uso
Analizar un caso de casos de uso uso (análisis) Requisitos adicionales
uso Clase del análisis Modelo del negocio o
(esbozo) modelo del dominio
Descripción de la
arquitectura (vista del
modelo de análisis)
3 Ingeniero de Clase del análisis Realización de caso de
Analizar una clase componentes (terminada) uso-
análisis
Clase del análisis
(esbozo)
4 Ingeniero de Paquete del análisis Descripción de la
Analizar un paquete componentes (terminado) arquitectura (vista del
modelo de análisis)
Paquete del análisis
(esbozo)
Características:
• Se centra en el tratamiento de requisitos funcionales y pospone los no
funcionales para el diseño.
• Es más “conceptual”.
• Raramente define una interfaz en términos de operaciones y sus signaturas.
Su comportamiento se define mediante “responsabilidades” en un nivel más
alto y menos formal. Una responsabilidad es una descripción textual de un
conjunto cohesivo del comportamiento de una clase.
• Define atributos en un nivel tambien conceptual y reconocibles en el
dominio del problema, mientras que en el diseño los atributos se ajustan a
tipos del lenguaje de programación.
• Las relaciones entre clases del análisis también son más conceptuales. Por
ejemplo no se da importancia a la navegación de la relación.
• Las clases de análisis siempre encajan en alguno de los estereotipos
básicos: de interfaz, de control, o entidad.
Paquete de servicio
Un servicio representa un conjunto coherente de acciones relacionadas
funcionalmente (un paquete de funcionalidad) que se utiliza en varios casos de
uso.
Un cliente de un sistema normalmente compra una combinación de servicios para
ofrecer a sus usuarios los casos de uso necesario. Un servicio es indivisible en
el sentido de que el sistema necesita ofrecerlo o todo entero o nada en
absoluto.
Los casos de uso atraviesan los servicios, es decir, un caso de uso requiere
acciones de varios servicios.
En RUP, el concepto de servicio está soportado por los paquetes de servicio.
Los paquetes de servicio se utilizan en el nivel más bajo de la jerarquía (de
agregación) de paquetes de análisis para estructurar el sistema de acuerdo a los
servicios que proporciona.
Podemos observar lo siguiente acerca de los paquetes de servicio:
• Un paquete de servicios contiene un conjunto de clases relacionadas
funcionalmente.
• Un paquete de servicios es indivisible.
• Para llevar a cabo un caso de uso puede que participen más de un paquete
de servicios.
• Un paquete de servicios puede depender de otro paquete de servicios.
• Un paquete de servicios normalmente es relevante para un pequeño grupo de
actores.
• Un paquete de servicios puede gestionarse como una unidad de distribución
independiente. Puede representar una funcionalidad “adicional” del
sistema.
• Los paquetes de servicio pueden ser mutuamente excluyentes, o pueden
representar diferentes variantes del mismo servicio.
• Los paquetes de servicio constituyen la entrada fundamental para las
actividades de diseño e implementación subsiguientes, dado que ayudarán a
estructurar los modelos de diseño e implementación en términos de
subsistemas de servicio.
Trabajadores
Trabajador: Arquitecto
Es responsable de la integridad del modelo de análisis, garantizando que sea
correcto consistente, y legible como un todo.
El arquitecto es responsable de:
- la descripción de la arquitectura
- modelo del análisis
Flujo de Trabajo.
Actividad: análisis de la arquitectura
El propósito de análisis de la arquitectura es esbozar el modelo de análisis y
la arquitectura mediante la identificación de paquetes del análisis, clases del
análisis evidentes, y requisitos especiales comunes.
Cuando dos paquetes necesitan compartir una misma clase, es conveniente ubicar
dicha clase en su propio paquete.
Disciplina de Diseño:
Durante el diseño modelamos el sistema y su arquitectura para que soporte los
requisitos funcionales y no funcionales. Una entrada esencial al diseño es el
modelo
de análisis.
Conceptos generales.
Comparación modelo del análisis – modelo del diseño
Modelo de Análisis Modelo de Diseño
Modelo conceptual. Modelo físico (implementación)
Genérico respecto al diseño (aplicable Específico para una implementación
a varios
diseños)
Tres estereotipos: entidad, control, Cualquier nro. de estereotipos físicos.
interface.
Menos formal. Mas formal.
Menos caro de desarrollar Más caro.
Menos capas. Más capas.
Dinámico (no muy centrado en la Dinámico (muy centrado en la secuencia)
secuencia)
Creado principalmente como trabajo Creado fundamentalmente como
manual “programación
visual” en ing.de ida y vuelta.
Puede no mantenerse todo el ciclo de Debe ser mantenido todo el ciclo de
vida. vida.
DISEÑO
Actividad Trabajador Resp. de Artefactos (entrada)
(Salida)
1 Arquitecto Modelo de diseño Modelo de casos de uso
Diseño de la Subsistema (esbozado) Requisitos adicionales
arquitectura Interfaz (esbozada) Modelo de análisis
Clase de diseño Desc.de la arq. (vista
(esbozada) del
Modelo de despliegue modelo de análisis)
(esbozado)
Desc.de la arq. (vista
de los modelos de
diseño y distr.)
2 Ingeniero de Realización de caso de Modelo de casos de uso
Diseño de un caso de casos de uso uso (diseño) Requisitos adicionales
uso Clase de diseño Modelo de análisis
(esbozada) Modelo de diseño
Subsistema (esbozado) Modelo de despliegue.
Interfaz (esbozada)
3 Ingeniero de Clase de diseño Realización de casos de
Diseño de una clase componentes (terminada) uso
– diseño
Clase de diseño
(esbozada)
Interfaz (esbozada)
Clase del análisis
(terminada)
4.Diseño de un Ingeniero de Subsistema (terminado) Desc. de la arquitectura
subsistema componentes Interfaz (terminada) (vista del mod. de
diseño)
Subsistema (esbozado)
Interfaz (esbozada)
Artefactos
Artefacto: Modelo del Diseño
El modelo de diseño es un modelo de objetos que describe la realización física
de los casos de uso centrándose en los requisitos funcionales como en los no
funcionales.
Las abstracciones del modelo de diseño tienen una correspondencia directa con
los elementos físicos del ambiente de implementación.
Artefacto: interfaz
Las interfaces se utilizan para especificar las operaciones que proporcionan las
clases y los subsistemas del diseño.
Se dice que una clase de diseño o un subsistema de diseño “realizan” o
implementan una interfaz.
Las interfaces constituyen una forma de separar la especificación de la
funcionalidad en términos de operaciones de sus implementaciones en términos de
métodos.
Trabajadores
Trabajador: arquitecto
Responsable del modelo de diseño, modelo de despliegue, y descripción de la
arquitectura.
Flujo de Trabajo.
Identificar Operaciones:
Identificamos las operaciones y las describimos utilizando el lenguaje de
programación que se usará. Entradas importantes son:
- Responsabilidades de las clases de análisis que tienen traza con la clase de
diseño
- Requisitos especiales de la clase de análisis que tienen traza
- Interfaces que la clase de diseño necesita proporcionar
- Realizaciones de caso de uso diseño en las que la clase participa
Identificar Atributos:
Identificamos atributos requeridos por la clase y los describimos utilizando el
lenguaje de programación que se usará.
Identificar generalizaciones:
Las generalizaciones deben implementarse utilizando herencia si el lenguaje lo
permite. Si el lenguaje no lo admite debe utilizarse asociación / agregación
para proporcionar la delegación desde los objetos de clases más específicas a
objetos de clases más generales.
Describir estados:
Se utilizan diagramas de estado para describir los estados de los objetos estado
dependientes.
Disciplina de Implementación:
En la implementación empezamos con el resultado del diseño e implementamos el
sistema en término de componentes, es decir, ficheros de código fuente, scripts,
ficheros de código binario, ejecutables, y similares.
Conceptos generales.
La implementación es el centro durante las iteraciones de construcción, aunque
también se lleva a cabo trabajo de implementación durante la fase de
elaboración, para crear la línea base ejecutable de la arquitectura, y durante
la fase de transición para tratar defectos tardíos.
IMPLEMENTACION
Actividad Trabajador Resp. de Artefactos (entrada)
(Salida)
1 Arquitecto Componente (esbozado Modelo de diseño
Implementación de la y Modelo de despliegue
arquitectura posib.asignado a Descrip.de la
nodos) arquitectura
Descripción de la (vista de los mod.de
arquitectura (vista de diseño
los y despliegue)
modelos de impl.y
despl.)
2 Integrador de Plan de integración de Requisitos adicionales
Integrar el sistema sistemas construcciones Modelo de casos de uso
Modelo de Modelo de diseño
implementación Modelo de
(construcciones implementación
anteriores) (construcciones
anteriores)
3 Ingeniero de Subsistema de Descrip.de la arquitec.
Implementar un componentes implementac. (vista
subsistema (implementado para del modelo de
una implementac)
construcción) Subsistema de diseño
Interfaz (implementado (terminado)
para Interfaz (terminado)
una construcción)
4 Ingeniero de Componente Clase de diseño
Implementar una componentes (implentado) (terminada)
clase Interfaz (proporcionada
por
la clase de diseño)
5 Ingeniero de Componente (probado) Componente
Realizar prueba de componentes (implementado)
unidad Interfaz
Artefactos.
Artefacto: Modelo de Implementación
El modelo de diseño es un modelo de objetos que describe la realización física
de los elementos del modelo de diseño.
Artefacto: componente
Un componente es el empaquetamiento físico de los elementos de un modelo, como
son las clases en el modelo de diseño. Algunos estereotipos típicos son:
<<executable>> programa ejecutable en un nodo
<<file>> fichero que contiene código fuente o datos
<<library>> librería estática o dinámica
<<table>> es una tabla de base de datos
<<document>> es un documento
Los componentes tienen relaciones de traza con los elementos que implementan.
Es normal que un componente implemente varios elementos, por ejemplo varias
clases.
Stubs
Un Stub es un componente con una implementación esquelética o de propósito
especial que puede ser utilizado para desarrollar o probar otro componente que
depende del stub.
Artefacto: interfaz
En el modelo de implementación las interfaces pueden ser utilizadas para
especificar las operaciones implementadas por componentes y subsistemas de
implementación.
Trabajadores
Trabajador: arquitecto
Durante la fase de implementación, el arquitecto es responsable de la integridad
del modelo de implementación y asegura que el modelo como un todo es correcto,
completo, y legible.
El arquitecto es responsable del modelo de implementación, el modelo de
despliegue, y la descripción de la arquitectura.
Flujo de Trabajo.
Disciplina de Prueba:
Conceptos generales.
Los objetivos de la prueba son:
- Planificar las pruebas necesarias en cada iteración, incluyendo las pruebas
de integración y las pruebas de sistema.
- Diseñar e implementar pruebas creando los casos de prueba (especifican
qué probar), procedimientos de prueba (especifican cómo realizar las
pruebas), creando componentes de prueba para automatizar las pruebas.
- Realizar las pruebas.
PRUEBA
Actividad Trabajador Resp. de Artefactos (entrada)
(Salida)
1 Ingeniero de Plan de Prueba Requisitos adicionales
Planificar prueba pruebas Modelo de casos de uso
Modelo de análisis
Modelo de diseño
Modelo de
implementación
Descripción de arqu.
(vistas
arquitec.de los
modelos)
2 Ingeniero de Caso de prueba Requisitos adicionales
Diseñar prueba pruebas Procedimiento de Modelo de casos de uso
prueba Modelo de análisis
Modelo de diseño
Modelo de
implementación
Descripción de arqu.
(vistas
arquitec.de los
modelos)
Plan de prueba
(estrategia
de prueba y planific.)
3 Ingeniero de Componente de prueba Caso de prueba
Implementar prueba componentes Procedimiento de
prueba
Modelo de implement.
(construida para ser
probada)
4 Ingeniero de Defecto Caso de prueba
Realizar pruebas de pruebas de Procedimiento de
integración integración prueba
Componente de prueba
Modelo de
implementación
(construcción a probar)
5 Ingeniero de Defecto Caso de prueba
Realizar prueba de pruebas de Procedimiento de
sistema sistema prueba
Componente de prueba
Modelo de
implementación
(construcción a probar)
6 Ingeniero de Evaluación de prueba Plan de prueba
Evaluar prueba pruebas (para Modelo de prueba
una iteración) Defecto
Artefactos
Artefacto: Modelo de pruebas
Describe como se prueban los componentes en el modelo de implementación. El
modelo de pruebas es una colección de casos de prueba, procedimientos de prueba,
y componentes de prueba.
Artefacto: Defecto
Un defecto es una anomalía del sistema. Un defecto puede ser utilizado para
localizar cualquier cosa que los desarrolladores necesitan registrar como
síntoma de un problema.
Trabajadores.
Trabajador: diseñador de pruebas
Un diseñador de pruebas es responsable de la integridad del modelo de pruebas,
asegurando que el modelo cumple con su propósito.
Planean las pruebas.
Seleccionan y describen los casos de prueba y procedimientos de prueba.
Flujo de Trabajo.
Actividad: planificar prueba
- Describir una estrategia de la prueba
- Estimar requisitos para la prueba, recursos humanos y sistemas necesarios
- Planificar esfuerzo de la prueba