Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen Asi
Resumen Asi
UNIDAD Nº 8
“EL WORKFLOW DE REQUERIMIENTOS”
El propósito fundamental del FTR es guiar el desarrollo hacia el sistema correcto. Esto
se consigue mediante una descripción de los requisitos del sistema suficientemente
buena como para que pueda llegarse a un acuerdo entre el cliente y los desarrolladores
sobre qué debe y qué no debe hacer el sistema.
Enumerar los requisitos candidatos: durante la vida del sistema, los clientes,
usuarios y desarrolladores aparecen con buenas ideas que podrían
convertirse en verdaderos requerimientos. Se mantiene una lista de estas
ideas que crecerá a medida que se añaden nuevos elementos y mengua
cuando algunas se convierten en requerimientos y se transforman en otros
artefactos como CU.
2
Comprender el contexto del sistema: muchas de las personas implicadas en
el desarrollo de software requieren un firme conocimiento del contexto en el
que se emplaza el sistema. Hay dos formas para expresar el contexto de un
sistema:
Modelado del dominio.
Modelado del negocio.
Capturar RF: la técnica para identificar los requerimientos del sistema se basa
en los CU. Para el usuario, un CU es un modo de utilizar el sistema; si los
analistas describen todos los CU que necesita el usuario, entonces saben lo
que debe hacer el sistema. Como accesorio de los CU, se debe especificar cuál
será la apariencia de la interfaz de usuario cuando se lleven a cabo los CU.
Capturar RNF: los RNF especifican las propiedades del sistema, como
restricciones del entorno o de la implementación, rendimiento, dependencias
de la plataforma, etc. Estos requerimientos pueden capturarse al principio en
el objeto del dominio o del negocio correspondiente en el modelo de
contexto del sistema.
3
Durante la fase de elaboración, los analistas capturan la mayoría de los
requerimientos restantes para que los desarrolladores puedan estimar el
tamaño del esfuerzo de desarrollo que se requerirá.
Los requerimientos restantes se capturan (e implementan) durante la fase de
construcción.
Casi no hay captura de requerimientos en la fase e transición, a menos que
haya requerimientos que cambien.
Un modelo del dominio captura los tipos más importantes de objetos en el contexto
del sistema. Los objetos del dominio representan las “cosas” que existen o los eventos
que suceden en el entorno en el que trabaja el sistema.
Muchos de los objetos del dominio o clases pueden obtenerse de una especificación
de requerimientos o mediante una entrevista con los expertos del dominio.
El modelo del negocio es una técnica para comprender los procesos de negocio de la
organización.
CAPTURA DE REQUERIMIENTOS COMO CU
El esfuerzo principal en el FTR es desarrollar un modelo del sistema que se va a
construir, y la utilización de los CU es una forma adecuada de crear este modelo. Esto
es debido a que los RF se estructuran de forma natural mediante CU, y a que la
mayoría de los RNF son específicos de un solo CU, y pueden tratarse en el contexto de
ese CU.
4
Actividades.
ARTEFACTOS
Los artefactos fundamentales que se utilizan en el FTR son el modelo de CU, que
incluye los CU y los actores. También puede haber otros tipos de artefactos, como
prototipo de interfaz de usuario.
Modelo de CU
El modelo de CU permite que los desarrolladores de software y los clientes lleguen a
un acuerdo sobre los requerimientos que debe cumplir el sistema. Un modelo de CU es
un modelo del sistema que contiene actores, CU y sus relaciones.
Actor
El modelo de CU 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 representan terceros fuera del sistema que colaboran con el mismo. Una
vez identificados todos los actores, tenemos identificado el entorno externo al sistema.
Los actores suelen corresponderse con TN.
Una instancia de un actor es un usuario concreto que interactúa con el sistema.
Caso de Uso
Cada forma en que los actores usan el sistema se representa con un CU. Los CU son
fragmentos de funcionalidad que el sistema ofrece para aportar un resultado de valor
para sus actores.
Un CU es una especificación del comportamiento de “cosas” dinámicas (instancias de
CU).
5
La vista de la arquitectura del modelo de CU debería incluir los CU que describan
alguna funcionalidad importante y crítica, o que impliquen algún requisito importante.
Esta vista de la arquitectura se utiliza como entrada cuando se priorizan los CU para
su desarrollo (análisis, diseño, implementación) dentro de cada iteración.
Glosario
Podemos utilizar un glosario para definir términos comunes importantes que los
analistas utilizan al describir el sistema. Un glosario es muy útil para alcanzar un
consenso entre los desarrolladores y para reducir en general el riesgo de confusiones.
TRABAJADORES
6
Analista de sistemas.
Especificador de CU.
Diseñador de interfaz gráfica.
Analista de sistemas
Especificador de CU
El especificador de CU es el encargado de describir detalladamente uno o más CU.
Diseñador de interfaz de usuario
Los diseñadores de interfaces de usuario dan forma visual a las interfaces de usuario.
Esto puede implicar el desarrollo de prototipos de interfaces de usuario para algunos
CU.
Arquitecto
7
Primero, el analista de sistemas ejecuta la actividad de “Encontrar Actores y CU” para
preparar una primera versión del modelo de CU, con los actores y CU identificados.
Entonces, el arquitecto identifica los CU relevantes para proporcionar entradas a la
priorización de CU.
Hecho esto, los especificadotes de CU describen todos los CU que se han priorizado.
Más o menos en paralelo, los diseñadores de interfaz de usuario sugieren las interfaces
de usuario adecuadas para cada actor basándose en los CU.
Entonces, el analista de de sistemas reestructura el modelo de CU definiendo
generalizaciones entre los CU para hacerlo lo más comprensible posible.
Los resultados de la primera iteración a través de este FT consisten en una primera
versión del modelo de CU, los CU y cualquier prototipo de interfaz de usuario asociado.
Encontrar actores y CU
Identificamos los actores de los CU para:
Delimitar el sistema de su entorno.
Esbozar quién y qué (actores) interactuarán con el sistema, y qué
funcionalidad (casos de uso) se espera del sistema.
Capturar y definir un glosario de términos comunes esenciales para la
creación de descripciones detalladas de las funcionalidades del sistema.
8
La identificación de actores y CU es la actividad más decisiva para obtener
adecuadamente los requerimientos, y es responsabilidad del analista de sistemas.
Esta actividad consta de cuatro pasos:
Encontrar los actores: esta tarea depende de nuestro punto de partida:
A partir de un modelo de negocio: el analista de sistemas puede asignar
un actor a cada TN y un actor a cada AN.
A partir de un modelo del dominio: el analista de sistemas identifica los
usuarios e intenta organizarlos en categorías representadas por actores.
En ambos casos, se deben identificar los actores que representan sistemas
externos y los actores para el mantenimiento y operación del sistema.
El resultado es una nueva versión del artefacto modelo de CU con un conjunto
de actores actualizado. Estos actores brevemente descritos pueden utilizarse
como punto de partida para encontrar los CU.
Encontrar los CU: el analista de sistemas va repasando los actores uno por
uno y proponiendo los CU para cada uno. Algunos no llegarán a ser CU por sí
mismos (podrán ser partes de otros CU). Se elige un nombre para CU (de
forma que nos haga pensar en la secuencia de acciones que añade un valor al
actor) que suele comenzar con un verbo y debe reflejar el objetivo de la
interacción entre el actor y el sistema.
Priorizar CU
9
Los resultados se recogen en la vista de la arquitectura del modelo de CU.
Detallar un CU
Estructurar el modelo de CU
PATRONES DE CU
Un patrón es una solución a un problema. Para que una solución sea considerada un
patrón debe poseer ciertas características. Una de ellas es que debe haber
comprobado su efectividad resolviendo problemas similares en ocasiones anteriores.
Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas
de en distintas circunstancias.
10
Descripción de patrones
Consiste en 31 patrones
Conforman dos categorías:
Patrones de Desarrollo: describen características de práctica de
escritura de CU probadas, y ofrecen criterios para medir la calidad del
proceso de escritura de CU.
Patrones Estructurales: describen los componentes básicos de los CU,
explicando cómo deberían ser organizados y ofrecen criterios para
juzgar un CU.
Patrones estructurales
11
Casos de Uso: cada CU es una colección de escenarios que puestos juntos
describen todas las formas que un actor tiene que alcanzar o fracasar en
alcanzar el objetivo.
Escenarios y Pasos: los escenarios consisten en pasos cada uno describiendo
una acción que el actor o el sistema debe hacer para acercar al actor a su
objetivo.
Relaciones de CU: los CU a menudo interactúan con otros CU. Los patrones de
relación describen técnicas para manejar comportamiento repetitivo o
excesivamente complejo.
Patrones de desarrollo
PATRONES DE SOFTWARE
Podemos reusar las experiencias, soluciones de análisis y diseño que ya hemos
aplicado anteriormente.
Los patrones realizan una descripción de un problema que ocurre y de cómo
solucionarlo. Son estereotipos que utilizamos una y otra vez para solucionar problemas
parecidos; y es posible perfeccionarlos.
Un patrón no busca lo particular, sino la esencia.
El objetivo que se persigue es tener un catálogo de patrones estandarizados.
Componentes de un patrón
12
Nombre.
Propósito.
Sinónimo.
Colaboraciones.
Contexto.
Explicación.
Fuerzas.
Motivación.
Ejemplos.
Patrones relacionados.
Aplicabilidad.
Estructura.
Participantes.
Consecuencias.
Tipos de patrones
13
Grupo – Miembro
Etc.
Patrones de plan: manejan relaciones con los involucrados en un plan.
Plan – Paso
Plan – EjecuciónPlan
Etc.
14
“EL FLUJO DE TRABAJO DE ANÁLISIS”
Durante el análisis, se analizan los requerimientos que se describieron en la captura
de requerimientos, refinándolos y estructurándolos. El objetivo de hacerlo es conseguir
una mejor comprensión más precisa de los requerimientos y una descripción de los
mismos que sea fácil de mantener y que nos ayude a estructurar el sistema entero.
Para comunicar de manera eficiente las funciones del sistema al cliente:
Los CU deben mantenerse tan independientes unos de otros como sea
posible.
Los CU deben describirse utilizando el lenguaje del cliente.
Debe estructurarse cada CU para que forme una especificación de
funcionalidad completa.
Modelo de análisis
El lenguaje que utilizamos en el análisis se basa en un modelo de objetos conceptual,
que llamamos modelo de análisis. El modelo de análisis nos ayuda a refinar los
requisitos y nos permite razonar sobre los aspectos internos del sistema.
El modelo de análisis también nos ayuda a estructurar los requisitos y nos
proporciona una estructura centrada en el mantenimiento.
El modelo de análisis puede considerarse una primera aproximación al modelo de
diseño, aunque es un modelo por sí mismo.
Sin embargo, es importante hacer notar que el modelo de análisis hace abstracciones
y evita resolver problemas y tratar algunos requisitos que es mejor posponer al diseño
y a la implementación.
Por qué el análisis no es diseño ni implementación
15
El diseño y la implementación son mucho más que el análisis (refinamiento y
estructuración de los requerimientos), por lo que se requiere una separación de
intereses.
El diseño y la implantación son mucho más que simplemente el analizar los
requerimientos; el diseño y la implementación se preocupan en realidad de dar forma
al sistema de manera que dé vida a todos los requerimientos (incluidos los RNF) que
incorpora.
Antes de comenzar a diseñar e implementar deberíamos contar con una
comprensión precisa y detallada de los requerimientos, lo cual se logra en el análisis.
16
El proyecto utiliza el modelo de análisis para describir los resultados del análisis,
y mantiene la consistencia de este modelo a lo largo de todo el ciclo de vida del
software.
El proyecto utiliza el modelo de análisis para describir los resultados del análisis,
pero considera a este modelo como una herramienta transitoria e intermedia.
El proyecto no utiliza en absoluta el modelo de análisis para describir los
resultados del análisis (el proyecto analiza los requerimientos en la captura de
requerimientos o en el diseño). [Debe considerarse esta variante en sistemas
muy simples].
ARTEFACTOS
Una clase de análisis representa una abstracción de una o varias clases y/o
subsistemas del diseño del sistema. Esta abstracción posee las siguientes
características:
Una clase de análisis se centra en el tratamiento de los RF.
Una clase de análisis raramente define su comportamiento 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).
Una clase de análisis define atributos. Los atributos identificados durante el
análisis con frecuencia pasan a ser clases en el diseño y la implementación.
Una clase de análisis participa en relaciones.
Las clases de análisis siempre encajan en uno de tres estereotipos básicos:
17
dependen de sus actores. Representan a menudo abstracciones de
ventanas, formularios, paneles, etc. Cada clase de interfaz debería
asociarse con al menos un actor (y viceversa).
Ventana Ingreso
de pedido
Pedido
Gestor de
pedidos
Una realización de caso de uso – análisis es una colaboración dentro del modelo de
análisis que describe cómo se lleva a cabo y se ejecuta un CU en términos de las clases
18
del análisis y de sus objetos del análisis en interacción. Una realización de CU
proporciona por tanto una traza directa hacia un CU concreto del modelo de CU.
Diagramas de clases
Una clase del análisis y sus objetos normalmente participan en varias realizaciones de
CU. Por tanto, es importante coordinar todos los requisitos sobre una clase y sus
objetos que pueden tener diferentes CU. Para esto, se adjuntan diagramas de clases a
las realizaciones de CU.
Diagramas de interacción
La secuencia de acciones en un CU comienza cuando un actor invoca el CU mediante
el envío de algún tipo de mensaje al sistema. En el análisis se prefiere mostrar esto con
diagramas de colaboración, ya que el objetivo es identificar requisitos y
responsabilidades sobre los objetos, y no identificar secuencias de interacción.
En los diagramas de colaboración, se muestran las interacciones entre objetos
creando enlaces entre ellos y añadiendo mensajes a estos enlaces.
Dentro de una realización de CU, objetos diferentes tienen diferentes ciclos de vida:
Un objeto de interfaz no tiene por qué ser particular de una realización de CU.
Sin embargo, los objetos de interfaz a menudo se crean y finalizan dentro de
una sola realización de CU.
Un objeto de entidad normalmente no es particular de una realización de CU.
Las clases de control suelen encapsular el control asociado con un CU
concreto, lo cual implica que debería crearse un objeto de control cuando el
CU comienza y destruirse cuando el CU termina. Sin embargo, hay
excepciones, como cuando un objeto de control participa en más de una
realización de CU, cuando varios objetos de control participan en una misma
realización de CU, y cuando una realización de CU no requiere ningún objeto
de control.
19
Los paquetes del análisis proporcionan un medio para organizar los artefactos del
modelo de análisis en piezas manejables. Puede constar de clases de análisis, de
realizaciones de CU, y de otros paquetes del análisis.
Los paquetes del análisis tienen las siguientes características:
Pueden representar una separación de intereses de análisis.
Deberían crearse basándonos en los RF y en el dominio del problema.
Probablemente se convertirán en subsistemas en las dos capas de aplicación
superiores del modelo de diseño.
Paquetes de servicio
En el PUD, el concepto de servicio está soportado por los paquetes de servicio. Los
paquetes de servicio se utilizan para estructurar el sistema de acuerdo a los servicios
que proporciona.
20
TRABAJADORES
Arquitecto
21
El ingeniero de CU no es responsable de las clases de análisis ni de las relaciones que
se usan en la realización del CU.
Ingeniero de componentes
22
participantes exponiendo los requisitos de comportamiento de cada clase. Los
ingenieros de componentes especifican posteriormente estos requisitos y los integran
dentro de cada clase creando responsabilidades, atributos y relaciones para cada clase.
El arquitecto identifica de manera continua nuevos paquetes del análisis, clases y
requisitos comunes, y los ingenieros de componentes responsables de los paquetes del
análisis continuamente los refinan y mantienen.
Análisis de la arquitectura
23
Identificación de requisitos especiales comunes
Un requisito especial es un requisito que aparece durante el análisis y que es
importante anotar de forma que pueda ser tratado en las actividades de diseño e
implementación.
Ejemplos:
Persistencia.
Distribución y concurrencia.
Características de seguridad.
Tolerancia a fallos.
Gestión de transacciones.
Analizamos un CU para:
Identificar las clases del análisis.
Distribuir el comportamiento del CU entre los objetos del análisis que
interactúan.
Capturar requisitos especiales.
24
Descripción de interacciones entre objetos del análisis
Cuando tenemos un esbozo de las clases necesarias para realizar el CU, debemos
describir cómo interactúan sus correspondientes objetos del análisis. Esto se hace
mediante diagramas de colaboración.
Identificar responsabilidades
Las responsabilidades de una clase pueden recopilarse combinando todos los roles
que cumple en diferentes realizaciones de CU. Podemos identificar todas las
realizaciones de Cu en las cuales participa la clase mediante el estudio de sus
diagramas de clase y de interacción.
Identificación de atributos
Un atributo especifica una propiedad de una clase de análisis, y normalmente es
necesaria para las responsabilidades de su clase.
25
Los objetos del análisis interactúan unos con otros mediante enlaces. Estos enlaces
suelen ser instancias de asociaciones entre sus correspondientes clases. El ingeniero de
componentes debería estudiar los enlaces empleados para determinar qué
asociaciones son necesarias. Los enlaces pueden implicar la necesidad de referencias y
agregaciones entre objetos.
Identificación de generalizaciones
Las generalizaciones deberían utilizarse durante el análisis para extraer
comportamiento compartido y común entre varias clases del análisis diferentes.
Analizar un paquete
INTERACCIONES
26
Los objetos interactúan entre sí pasándose mensajes. Una interacción es un
comportamiento que incluye un conjunto de mensajes intercambiados por un conjunto
de objetos dentro de un contexto para lograr un propósito.
Las interacciones se utilizan para modelar los aspectos dinámicos de las
colaboraciones.
Las interacciones incluyen los mensajes enviados entre objetos. Un mensaje implica
la invocación de una operación o el envío de una señal.
Enlaces
Secuenciación
Cuando un objeto envía un mensaje a otro, el objeto receptor puede, a su vez, enviar
un mensaje a otro objeto, el cual puede enviar un mensaje a otro objeto diferente. Este
flujo de mensajes forma una secuencia.
Representación
27
Cuando se modela una interacción, normalmente se incluirán tanto objetos como
mensajes.
Los objetos y mensajes implicados en una interacción se pueden visualizar de dos
formas:
Destacando la ordenación temporal de sus mensajes (diagrama de secuencia).
Destacando la organización estructural de los objetos que envían y reciben los
mensajes (diagrama de colaboración).
DIAGRAMAS DE INTERACCIÓN
Contenidos
28
Diagramas de secuencia
Diagramas de colaboración
MÁQUINAS DE ESTADO
29
El comportamiento de una sociedad de objetos que colaboran puede ser modelado
mediante una interacción. El comportamiento de un objeto individual puede ser
modelado mediante una máquina de estados.
Una máquina de estados es un comportamiento que especifica las secuencias de
estados por las que pasa un objeto durante su vida, en respuesta a eventos, junto con
sus respuestas a esos eventos.
Estados
Transiciones
Una transición es una relación entre dos estados que indica que un objeto que esté
en el primer estado realizará ciertas acciones y entrará en el segundo estado cuando
ocurra un evento especificado y se satisfagan una condiciones especificadas.
Diagramas de estados
30
COLABORACIONES
Una colaboración denota una sociedad de clases, interfaces y otros elementos que
colaboran para proporcionar algún comportamiento cooperativo.
Las colaboraciones se utilizan para especificar la realización de CU y operaciones.
Estructura
Comportamiento
Organización de colaboraciones
31
Hay dos tipos de relaciones que tienen que ver con las colaboraciones:
Relación entre la colaboración y el elemento al que realiza: una colaboración
puede realizar un clasificador o una operación. Por ejemplo, un CU puede ser
realizado por una colaboración; ese CU, incluido sus actores, y los CU con los
que está relacionado, proporcionan un contexto para la colaboración.
Relación entre colaboraciones: unas colaboraciones pueden refinar a otras, y
esta relación se modela como un refinamiento. La relaciones de refinamiento
entre colaboraciones normalmente reflejan las relaciones de refinamiento
entre CU que representan.
32