Libro Sof
Libro Sof
Libro Sof
diseño de software
El análisis y diseño de sistemas son importantes
dentro del ciclo de vida del software porque
permiten definir la arquitectura del software,
componentes, módulos y datos de un sistema
software para satisfacer ciertos requisitos
acordados previamente.
Adicionalmente, en el mundo actual, tan
dependiente de los sistemas software, en
todos sus ámbitos, tanto social, industrial
como económico, las etapas de análisis y
diseño son la base para lograr desarrollarlos
con altos estándares de calidad. Por lo tanto,
bienvenidos el interesante mundo del análisis
y diseño de sistemas.
SUMILLA COMPETENCIAS DE
La Unidad Didáctica pertenece a las
competencias específicas y es carácter UNIDAD DIDÁCTICA
teórico - práctico, su propósito es generar en
el estudiante los conocimientos necesarios Aplicar de manera adecuada los principios,
para capturar, analizar requisitos y diseñar técnicas, herramientas y métodos del
arquitecturas de software factibles de modelado orientado a objetos para el análisis
implementación, con buenas prácticas de y diseño de un producto software, de acuerdo
programación y políticas de seguridad de la a los diseños funcionales y estándares
organización. internacionales de TI.
Se desarrollan los siguientes contenidos:
técnicas de modelado orientado a objetos para
el análisis de requisitos y diseño de software,
aplicando la metodología de desarrollo de
software RUP (Rational Unified Process) y el
estándar UML (Unified Modeling Language).
UNIDADES DE APRENDIZAJE
La Herencia
Cuando se habla de herencia en programación
se trata de uno de los pilares fundamentales
de la programación orientada a objetos. Es
el mecanismo por el cual una clase permite
heredar las características (propiedades
(atributos) y comportamientos (métodos)) de
otra clase.
El Polimorfismo
Los objetos pueden adoptar más de una forma En síntesis, este concepto permite enlazar
según el contexto. El programa determinará el mismo nombre de operador a dos o más
qué significado o uso es necesario para implementaciones diferentes del operador,
cada ejecución de ese objeto, reduciendo la dependiendo del tipo de objetos a los que éste
necesidad de duplicar código. se aplique.
El polimorfismo consiste en conseguir que Por ejemplo, en la siguiente figura se
un objeto de una clase se comporte como muestran dos subclases de la clase Forma, que
un objeto de cualquiera de sus subclases, representa las formas geométricas, que tienen
dependiendo de la forma de llamar a los los mismos comportamientos o métodos, pero
métodos de dicha clase o subclases. que se implementan de diferente manera,
no se comporta igual dibujar un círculo que
dibujar un cuadrado, pero en el método que
implementa este comportamiento se llama
igual, dibujar ().
RESUMEN DEL TEMA
Un proyecto de desarrollo de software no consiste sólo en programar, primero
necesitamos saber cuáles son las necesidades del cliente, identificar los requisitos,
anotarlos, analizarlos y validarlos, luego necesitamos diseñar una solución, es decir,
diseñar la arquitectura del software. Estas actividades importantes son las que se
realizan en las etapas de análisis y diseño.
Que este marco de desarrollo sea válido tanto para los desarrollos tradicionales
(desarrollos estructurados) como para los desarrollos orientados a objeto, no significa
que la realización de las actividades propias de cada fase se lleve a cabo de la misma
manera. De hecho, en los desarrollos estructurados hay mucha distancia entre las fases
de análisis de diseño, e incluso entre los diferentes modelos generados en una misma
fase, esta separación se conoce con el nombre de gap semántico, y es la barrera que la
orientación a objeto intenta eliminar difuminando la frontera entre las diferentes fases.
Los métodos orientados a objeto acortan la distancia existente entre el espacio de
conceptos (lo que los expertos o usuarios conocen) y el espacio de diseño (lo que
conocen los desarrolladores) e implementación, ya que los objetos del mundo real
tienen una correspondencia bastante clara con los objetos del sistema informático,
evitando así los grandes abismos existentes entre el análisis y el diseño en el enfoque
estructurado, esto es la falta de continuidad en la representación de los conceptos en
una y otra fase.
Los desarrollos orientados al objeto se tiene una mayor continuidad entre las diferentes
fases, con unas fronteras entre fases muy poco marcadas que dan lugar a desarrollos
más iterativos e incrementales. Todo esto es posible gracias a una característica de vital
importancia, el modelo subyacente a todas las fases es el mismo, el modelo objeto,
que tiene como elemento central al objeto, que es la entidad que encapsula elementos
estructurales y de comportamiento. De esta forma, los objetos semánticos identificados
en la fase de análisis se refinarán durante la fase de diseño e implementación, a la vez
que se añaden objetos de interfaz y de utilidad para constituir la aplicación final.
LA IDEA PRINCIPAL
Los buenos analistas y diseñadores comprenden sus principios fundamentales:
Abstracción, Encapsulamiento, Herencia y Polimorfismo
UNIDAD 1 - TEMA 2
Objetos y Clases
Este tema tiene como objetivo principal explicar Objeto como abstracción
los elementos básicos del desarrollo orientado El paradigma de la orientación a objetos es
a objetos (POO), en particular, se describe qué una abstracción que busca representar, en el
es una clase y cuáles son los miembros de una software, los conceptos del mundo real. De
clase (atributos y métodos), qué es un objeto, hecho, la palabra objeto refiere a algo que es
qué significa instanciar, qué son el estado y palpable. Tales conceptos pueden ser algo muy
el comportamiento de un objeto, y qué es un concreto, como, por ejemplo, “estudiante”, o
mensaje. algo abstracto, como decir “matrícula”.
Dentro de este tema se explica, mediante Los objetos son o representan cosas, pueden
diferentes ejemplos, cómo estos elementos se ser simples o complejos, pueden ser reales o
relacionan con el mundo real haciendo así más imaginarios.
sencillo y natural el diseño de aplicaciones. Los objetos contienen dos aspectos
fundamentales: sus atributos y su
Objetivos comportamiento. Por ejemplo, si pensamos en
Los objetivos a lograr en este tema son los un objeto simple, como una pelota, podríamos
siguientes: definirla por algunos atributos, entre ellos:
• Saber diferenciar entre un objeto y una color, volumen, peso. De igual forma, las
clase, y comprender la relación que existe pelotas tienen algunos comportamientos, muy
entre ellos. relacionados con sus atributos, como: “hacerla
• Conocer y entender las partes que rodar”, “pintarla”, “pesarla”, “medirla”. No
componen una clase, es decir, los atributos todas, pero quizás algunas pudieran permitirse
y los métodos. “hacerla rebotar”.
• Saber algunos conceptos relacionados Los objetos tienen identidad, es decir, todo
con un objeto, como: identidad, estado y objeto es único. Además, presentan un estado,
comportamiento e instancia el cual se define por los valores que tienen
sus atributos en un momento determinado.
Es por ello que una pelota roja es distinta de
otra pelota roja, aunque tengan el mismo color,
peso y volumen, es decir, aunque el estado de
un objeto sea igual que el de otro objeto, nunca
se tratará del mismo objeto. Piense usted en
dos personas que sean mellizas y verá con más
claridad el significado de lo anterior.
Clases como clasificación de objetos
A pesar de que los objetos son independientes,
pueden clasificarse de una forma general. Nombre de Libro
Podemos decir que todas las facturas, o todas la clase
las pelotas pueden describirse de una forma Atributos Autor, Número de páginas,
general. Ya sabemos que los objetos tienen Capítulos, Anexos, ISBN,
atributos y comportamiento. A partir de ello Resumen
siempre trataremos de identificar, de forma
general, cuáles atributos y qué comportamiento Operaciones Consultar, Ver resumen,
pueden tener todos los objetos de una clase Obtener Autor, Pasar página,
particular. Pasar Capítulo
La clase viene a ser un concepto muy
importante del paradigma de orientación a En muchas ocasiones se tienen que modelar
objetos, pues a través de éstas lograremos conceptos más abstractos, algunos que se
describir todos los objetos pertenecientes encuentran en una organización, como, por
a una misma clase. Gráficamente, una clase ejemplo, una orden de trabajo, que es una
consta de tres secciones: tarea o actividad que una persona debe hacer
• El nombre. y a la cual se le debe dar un seguimiento, esto
• Los atributos. se puede representar con la siguiente clase.
• Las operaciones o métodos.
Los métodos son los que tienen que ver con el Nombre de Orden de trabajo
comportamiento de los objetos. la clase
En la siguiente figura, se observa la clase Pelota,
representando los objetos de este tipo Atributos Usuario que origina,
descripción del trabajo, fecha
de solicitud, encargado, estado
de la orden (sin asignar, en
proceso, cancelada, finalizada),
fecha de asignación, fecha de
estado final
Operaciones Solicitar trabajo, asignar,
cancelar, finalizar
LA IDEA PRINCIPAL
Las Clases agrupan Objetos, con sus atributos y comportamiento, como un todo.
UNIDAD 1 - TEMA 3
Encapsulamiento
Hay muchos datos que no tiene que conocerlos
Niveles de encapsulamiento
aquel que esté usando una clase, ya que
• Nivel cerrado: los atributos y métodos del objeto
son inherentes al objeto y solo controlan su
sólo es accesible desde la misma clase.
funcionamiento interno; por ejemplo, cuando
• Nivel protegido: los atributos y métodos del
alguien ve a una Persona (clase) puede saber
objeto sólo es accesible desde la clase y las
inmediatamente si es hombre o mujer (propiedad o
clases que heredan
atributo) o puede hablarte y obtener una respuesta
• Nivel abierto: los atributos y métodos del objeto
procesada (método); también puede conocer el
puede ser accedido desde cualquier clase.
color de tu cabello y ojos.
Estos niveles se manejan mediante los
Por otro lado, jamás sabrá qué cantidad de energía
modificadores de acceso: privado (privated),
exacta tienes o cuantas neuronas te quedan, ni
protegido (protected) y público (public).
siquiera preguntándote ya que ninguna de tus
propiedades externas visibles o funciones de
comunicación al público te permiten saber esos Ejemplo de Encapsulamiento
datos. Crearemos una clase Persona, como atributos:
Esto es encapsulamiento; hacer las variables, que nombre, fecha de nacimiento y edad, como
son innecesarias para el tratamiento del objeto, métodos: registrar persona y calcular edad.
pero necesarias para su funcionamiento, de tipo Bien, como dice la teoría, la encapsulación es
privadas, así como las funciones que no necesitan un mecanismo de protección o aislamiento
interacción del usuario o que solo pueden ser de atributos y métodos de un objeto contra
llamadas por otras funciones dentro del objeto modificaciones imprevistas o incontroladas. Para
(como, por ejemplo, palpitar). ello, se debe tener criterio para aplicar el nivel de
El encapsulamiento es muy conveniente, ya que encapsulamiento de los atributos o métodos del
permite colocar en funcionamiento nuestro objeto objeto/clase.
en cualquier tipo de sistema, de una manera Por lo tanto, teniendo criterio y aplicando
modular y escalable, que son algunas de las buenas conocimientos de abstracción, el atributo nombre,
prácticas de la ingeniería del software. fecha de nacimiento, y el método registrar persona,
En general, el objetivo del encapsulamiento se deben de tener la posibilidad de ser accedida desde
refiere al ocultamiento de los datos miembros fuera de la clase, así poder asignar valores e invocar
de un objeto, es decir, encapsular los atributos y el método del objeto. Entonces estos atributos y el
métodos del objeto, de manera que sólo se pueda método deben de ser públicos.
cambiar mediante las operaciones definidas para Por otro lado, el atributo edad y método calcular
ese objeto. edad, solo deben ser accedidas por la misma clase;
así la propia clase asignaría el valor de la edad de
la persona, como también usar el método para
calcular la edad a partir de la fecha de nacimiento de
la persona y la fecha actual (edad exacta asignado
por la propia clase, además recuerden que la edad
no siempre será el mismo, cambia al pasar los años).
En cambio, si la edad tiene el modificador de acceso
en público, este atributo puede ser accedido desde
cualquier parte, y así tener la posibilidad asignar la
edad con datos erróneos.
RESUMEN DEL TEMA
Con el encapsulamiento, en general, se ocultan las propiedades y comportamientos
(métodos) de un objeto, de manera que sólo se puedan cambiar mediante las
operaciones definidas para ese objeto. Esto se puede entender como un mecanismo
de protección o aislamiento, es decir, se protege a los datos asociados de un objeto
contra su modificación por quien no esté autorizado a acceder a ellos. De esta forma
el usuario de la clase puede obviar la implementación de los métodos y propiedades
para concentrarse sólo en cómo usarlos. Por otro lado, se evita que el usuario pueda
cambiar su estado de maneras imprevistas e incontroladas.
El encapsulamiento se encarga de mantener ocultos los procesos internos que necesita
para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita.
LA IDEA PRINCIPAL
El encapsulamiento permite el ocultamiento de la información de un objeto, solo
dejándose ver lo que cada objeto necesita hacer público.
UNIDAD 1 - TEMA 4
Herencia
Muchas veces en un problema de software Tal como se observa, cada una de las clases
se puede encontrar un concepto que tiene, representadas, puede manejar los clientes
por una parte, atributos o comportamientos físicos o jurídicos en un contexto determinado.
comunes, pero de ese mismo problema, No obstante, puede notarse también que
se derivan también algunos atributos o existen muchos atributos y operaciones
comportamientos que son específicos de comunes en ellos. Esto se debe a que, debido
ese problema en particular. En este caso, a que el concepto de cliente es un concepto
para resolver el problema se debe acudir general, por cada uno de los tipos de clientes
a la capacidad de herencia que tiene este que encontremos, tales características
paradigma. generales se repiten.
La herencia es un mecanismo muy poderoso Por lo tanto, otra estrategia que podemos
que permite agrupar en una característica realizar es crear una jerarquía donde
llamada superclase, los atributos y operaciones una superclase llamada Cliente reúna las
que son comunes a una o varias clases características comunes a todos los clientes
derivadas, las cuales heredan la definición de y dos clases derivadas, Cliente Físico y Cliente
dicha superclase. Jurídico, que representen la especialización
Supongamos el ejemplo de una empresa que para cada uno de estos. En la siguiente figura
maneja clientes. se representa esta jerarquía:
Los clientes pueden ser de dos categorías:
• Clientes naturales (personas)
• Clientes jurídicos (organizaciones,
empresas, corporaciones)
Para representar a los clientes de esta
compañía, dentro del software, se puede
recurrir a dos estrategias.
La primera sería crear una clase para cada una
de los tipos que describimos. En la siguiente
figura encontramos una ilustración de esta
estrategia.
LA IDEA PRINCIPAL
Heredar propiedades y comportamiento de una clase por parte de otra, es de
mucha utilidad.
UNIDAD 1 - TEMA 5
POLIMORFISMO
Piense por un momento que tantas veces en En el paradigma de orientación a objetos, la
la vida hacemos cosas que, como acciones característica de que un objeto pueda realizar
expresadas en verbos, las llamamos de forma una determinada acción, llamada igual, pero
semejante, pero que pueden resultar con que puede diferenciarse por un conjunto de
efectos u objetivos distintos. parámetros distintivos, se llama polimorfismo.
Por ejemplo, cada uno de nosotros tiene un El polimorfismo y la herencia son dos conceptos
ritmo natural y propio para caminar. estrechamente relacionados. Se puede
Si salimos de nuestra casa para ir a algún lado, implementar polimorfismo en jerarquías de
iremos caminando con esa forma propia de clasificación que se dan a través de la herencia.
cada uno (no es extraño que alguien exprese
algo como “ese es el caminado de fulano de
¿Para qué nos sirve en la práctica el
tal”). Sin embargo, muchas veces tenemos que
polimorfismo?
modificar la forma en que caminamos y, si bien
Usemos un ejemplo para explicarlo.
se trata de caminar, ciertamente debemos
Se tienen las clases “Largometraje” y “Cine”. En
tener en cuenta otros parámetros a la acción. Si
un cine se reproducen largometrajes.
nos encontramos ante una situación de peligro
Se pueden tener varios tipos de largometrajes,
podríamos caminar de forma precavida o bien
como películas o documentales, etc.
acelerada. Dependiendo de algo en especial,
Quizás las películas y documentales tienen
como pasar por una vitrina y darnos cuenta que
diferentes características, distintos horarios
algo nos interesó, podríamos caminar hacia
de audiencia, distintos precios para los
atrás para poder ver el objeto que llamó nuestra
espectadores y por ello has decidido que
atención. Entonces, lograríamos expresar la
tu clase “Largometraje” tenga clases hijas o
acción de caminar con distintos parámetros,
derivadas como “Película” y “Documental”.
y siempre nos estaríamos refiriendo a una
acción que se llama igual. En la siguiente tabla
encontramos algunos ejemplos de ello.
LA IDEA PRINCIPAL
Un objeto pueda realizar una determinada acción, llamada igual, pero que puede
diferenciarse por parámetros distintivos.
LECTURAS RECOMENDADAS
• https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/
• Libro: El Paradigma de Objetos a tu Alcance: Aprendiendo a resolver problemas,
pensando en objetos (Edición en español).
ACTIVIDADES Y EJERCICIOS
• Leer el Silabo
• Reconocer y explicar ejemplos de clases y objetos en la vida real
• Reconocer y explicar con ejemplos prácticos los principios de encapsulamiento,
herencia y polimorfismo en clases y objetos.
• Reconocer y explicar con código ejemplo, en lenguaje Java, la aplicación de
estos principios.
• Se realizará en los entornos virtuales.
INTRODUCCIÓN ACTITUDES
La disciplina de la Ingeniería de Software • La voluntad de perseverar y terminar las
ha tratado siempre de proveer una serie de tareas
metodologías que puedan facilitar el proceso de • Haga preguntas cuando sea necesario
construcción de una solución. Ese proceso ha • Tener la capacidad de pensar y trabajar
buscado adaptarse a la naturaleza cambiante independientemente
de los proyectos y de las soluciones. • Tiene habilidades para administrar su
Al inicio de un proyecto, por lo general, se tiempo y organizarse.
tiene una idea un tanto vaga de lo que se
quiere, aunque no se dude de la importancia TEMAS
de lo que desea obtenerse. De igual forma, el
cliente podrá saber, de forma muy general, qué
solución de software quiere que le desarrollen,
porque ella es fundamental para los objetivos
de su organización.
1
TEMA
Proceso Unificado de
Rational (RUP)
Un proceso de desarrollo que busque
identificar los factores críticos, y por ende
más riesgosos, que permita ir en un proceso
incremental de la solución, es altamente
deseable. Precisamente, el llamado Proceso
2
TEMA
por qué el RUP es
orientado a casos de uso
Unificado de Rational (RUP, de sus siglas en
inglés) es una forma de desarrollo de software
que permite ir creando una solución de forma
robusta, con un adecuado manejo del riesgo y
de forma incremental.
3
TEMA
por qué el RUP se centra en
la arquitectura
COMPETENCIA
Comprende la metodología de desarrollo de
software RUP, para realizar el análisis y diseño
de un sistema.
4
TEMA
por qué el RUP es
iterativo e incremental
CAPACIDADES
•
•
Comprende y demuestra sus habilidades en
la comprensión de la metodología RUP.
Comprende e interpreta la importancia de
5
TEMA
relación entre
UML y RUP
las disciplinas en el RUP
• Comprende la utilidad de los casos de uso
en la metodología RUP
UNIDAD 2 - TEMA 1
Qué es el Proceso
Unificado de Rational (RUP)
Un proceso de desarrollo de software es un El proceso de ciclo de vida de RUP se divide en
enfoque para el desarrollo, construcción, y cuatro fases bien conocidas llamadas Inicial,
mantenimiento de software (Larman, 2003). Elaboración, Construcción y Transición. Esas
Para ello, el Proceso Unificado de Rational fases se dividen en iteraciones, cada una de
(en adelante RUP, por sus siglas en inglés), las cuales produce una pieza de software
se presenta como uno de los procesos de demostrable. La duración de cada iteración
desarrollo de software más difundidos, que puede extenderse desde dos semanas hasta
busca aprovechar las ventajas del paradigma seis meses.
de orientación a objetos, en las disciplinas de
Análisis y Diseño, el cual llamaremos Análisis/ Las fases son:
Diseño Orientado a Objetos (ADOO). 1. Fase Inicial o Concepción:
El RUP es un proceso de ingeniería del software • Se especifican los objetivos del ciclo de
que proporciona un acercamiento disciplinado vida del proyecto, las necesidades de
a la asignación de tareas y responsabilidades cada participante.
en una organización de desarrollo. Su propósito • Se establece el alcance y las condiciones
es asegurar la producción de software de alta de límite y los criterios de aceptabilidad.
calidad que se ajuste a las necesidades de sus • Se identifican los casos de uso que
usuarios finales con unos costos y calendario orientarán la funcionalidad.
predecibles. • Se diseñan las arquitecturas candidatas
El RUP es una metodología de desarrollo y se estima la agenda y el presupuesto
de software que intenta integrar todos los de todo el proyecto, en particular para la
aspectos a tener en cuenta durante todo siguiente fase de elaboración.
el ciclo de vida del software, con el objetivo • Típicamente es una fase breve que
de hacer abarcables tanto pequeños como puede durar unos pocos días o unas
grandes proyectos software. Además, RUP pocas semanas.
proporciona herramientas para todos los 2. Elaboración.
pasos del desarrollo, así como documentación • Se analiza el dominio del problema y se
en línea para sus clientes. define el plan del proyecto.
• Brinda una arquitectura suficientemente
sólida junto con requerimientos y planes
bastante estables.
• Se describen en detalle la infraestructura
y el ambiente de desarrollo, así
como el soporte de herramientas de
automatización.
• Se debe identificar la mayoría de los
casos de uso y los actores, debe quedar
descripta la arquitectura de software y
se debe crear un prototipo de ella.
• Al final de la fase se realiza un análisis
para determinar los riesgos y se
evalúan los gastos hechos contra los
originalmente planeados.
3. Construcción. Además de estos flujos de trabajo, RUP define
• Se desarrollan, integran y verifican algunas prácticas comunes:
todos los componentes y rasgos de la • Desarrollo iterativo de software. Las
aplicación. iteraciones deben ser breves y proceder
• Esta fase es un proceso de manufactura, por incrementos pequeños. Esto
en el que se debe poner énfasis en permite identificar riesgos y problemas
la administración de los recursos y el tempranamente y reaccionar frente a ellos
control de costos, agenda y calidad. en consecuencia.
• Los resultados de esta fase (las versiones • Administración de requerimientos.
alfa, beta y otras versiones de prueba) se Identifica requerimientos cambiantes y
crean tan rápido como sea posible. postula una estrategia disciplinada para
• Se debe probar también una versión de administrarlos.
entrega. • Uso de arquitecturas basadas en
• Es la fase más prolongada de todas. componentes. La reutilización de
4. Transición. componentes permite asimismo ahorros
• Comienza cuando el producto está sustanciales en tiempo, recursos y esfuerzo.
suficientemente maduro para ser • Modelado visual del software. Se deben
entregado. construir modelos visuales, porque
• Se corrigen los últimos errores y se los sistemas complejos no podrían
agregan los rasgos pospuestos. comprenderse de otra manera. Utilizando
• La fase consiste en prueba beta, piloto, una herramienta como UML, la arquitectura
entrenamiento a usuarios y despacho y el diseño se pueden especificar sin
del producto a mercadeo, distribución y ambigüedad y comunicar a todas las partes
ventas. involucradas.
• Se produce también la documentación. • Prueba de calidad del software. RUP pone
• Se llama transición porque se transfiere bastante énfasis en la calidad del producto
a las manos del usuario, pasando del entregado.
entorno de desarrollo al de producción. • Control de cambios y trazabilidad. La
A través de las fases se desarrollan en paralelo madurez del software se puede medir por
nueve flujos de trabajo o disciplinas: Modelado la frecuencia y tipos de cambios realizados.
del Negocio, Requisitos, Análisis y Diseño,
Implementación, Pruebas, Implantación
Características de RUP
o Despliegue, Gestión de Cambios y
Configuración, Gestión del Proyecto y Ambiente Las características de RUP son las siguientes:
o Entorno. Estas disciplinas se agrupan en dos
grupos: i. Para el Desarrollo del sistema y ii.
Para la gestión del proyecto, como se ilustra en
la siguiente figura.
• Flujos de trabajo para el desarrollo del
sistema
• Modelado del negocio
• Requisitos
• Análisis y diseño
• Implementacion
• Pruebas
• Plantacion Las principales son las siguientes, las cuales
• flujos de trabajo para la gestion del se explicarán en los siguientes temas de esta
proyecto Unidad de Aprendizaje:
• Configuración y • Se orienta a casos de uso.
administración de • Se centra en la arquitectura.
cambios • Es iterativo e incrementa.
• Administración del • Utilización de UML (Lenguaje de Modelado
proyecto Unificado).
• Ambiente o entorno
RESUMEN DEL TEMA
El RUP es una metodología de desarrollo de software que intenta integrar todos los
aspectos a tener en cuenta durante todo el ciclo de vida del software, con el objetivo
de hacer abarcables tanto pequeños como grandes proyectos software. Además, RUP
proporciona herramientas para todos los pasos del desarrollo, así como documentación
en línea para sus clientes.
El proceso de ciclo de vida de RUP se divide en cuatro fases bien conocidas llamadas
Inicial, Elaboración, Construcción y Transición. Esas fases se dividen en iteraciones,
cada una de las cuales produce una pieza de software demostrable.
A través de las fases se desarrollan en paralelo nueve flujos de trabajo o disciplinas:
Modelado del Negocio, Requisitos, Análisis y Diseño, Implementación, Pruebas,
Implantación o Despliegue, Gestión de Cambios y Configuración, Gestión del Proyecto
y Ambiente o Entorno. Estas disciplinas se agrupan en dos grupos: i. Para el Desarrollo
del sistema y ii. Para la gestión del proyecto.
Las principales son las siguientes, las cuales se explicarán en los siguientes temas de
esta Unidad de Aprendizaje:
• Se orienta a casos de uso.
• Se centra en la arquitectura.
• Es iterativo e incrementa.
• Utilización de UML (Lenguaje de Modelado Unificado).
LA IDEA PRINCIPAL
RUP es un estándar como metodología de desarrollo de software, en conjunto con
el lenguaje de modelado unificado UML.
UNIDAD 2 - TEMA 2
Comprender por qué el RUP
es orientado a casos de uso
Casos de Uso Se puede decir, entonces, que los casos de
Los Casos de Uso (CU) son una técnica de uso pueden interpretarse como las tareas del
captura de requisitos que fuerza a pensar sistema que se llevan a cabo, originadas por
en términos de importancia para el usuario alguien.
y no sólo en términos de funciones que seria Ahora bien, ¿Quién es ese alguien? Ese alguien
bueno contemplar. Se define un CU como un son los llamados actores en el sistema.
fragmento de funcionalidad del sistema que Un actor corresponde a un perfil de usuario, el
proporciona al usuario un valor añadido. Los cual puede ser una persona u otros sistemas.
CU representan los requisitos funcionales del El propósito de identificar actores es saber
sistema. quiénes son los usuarios del sistema y cómo
En RUP los casos de uso no son sólo una vamos a categorizarlos.
herramienta para especificar los requisitos Un actor es todo aquel (persona) o aquello
del sistema, también guían su diseño, (sistema, dispositivo) que usa el sistema, ya sea
implementación y prueba. Los casos de uso para alimentarlo o para recibir salidas de éste,
constituyen un elemento integrador y una guía por lo tanto, lo podemos conceptualizar, ya sea
del trabajo como se muestra en las siguientes que se trate de una persona, un dispositivo
figuras. u otro sistema, como algo o alguien que usa
o produce datos e información del o para el
sistema.
Ejemplo
Ejemplo clásico: cajeros automáticos.
Todo sistema debe poder caracterizarse por los
servicios que va a brindar a quienes se sirven
de él.
En este caso, podemos pensar que un cliente
podrá acceder a servicios como:
• “retirar efectivo”.
• “transferir fondos”
• “consultar saldo”
• “realizar pagos”, entre otros.
Estos servicios pueden verse como los objetivos
de un sistema de cajero automático.
Cada uno de los servicios que se le ofrecen a un
cliente podrán ser vistos como casos de uso:
• El caso de uso de “Retirar efectivo”.
Se entienden los casos de uso como la • El caso de uso de “Transferir fondos”.
interacción que tienen los usuarios del sistema • El caso de uso de “Consultar saldo”.
con éste. Para identificar los casos de uso • El caso de uso de “Realizar pagos”.
pueden listarse las funciones, actividades u Con respecto a los actores, se puede pensar en
objetivos que tiene un usuario particular en el el cliente, como un actor del sistema de cajeros
sistema. automáticos.
El cliente interactúa con este sistema y, en El sistema bancario debe, además, apoyar
gran medida, para él es quien se ha creado el las acciones de registro de transacciones,
sistema. de actualización de saldos, de comunicar a
No obstante, se puede pensar que existen otros otras entidades relacionadas con los servicios
actores importantes del sistema. Usted ha visto ofrecidos en el cajero automático entre
que en ciertos momentos llegan funcionarios muchos.
del banco o entidad financiera dueña de los Identificar los casos de uso nos da una
cajeros automáticos a realizar procesos en forma de poder ir listando los objetivos y los
ellos, tales como alimentarlos de efectivo, requerimientos del sistema por parte de una
descargar la información almacenada, realizar serie de interesados, en este caso, los actores
mantenimiento, entre otras acciones. que podamos encontrar en el sistema.
Con respecto a un funcionario, al cual Un caso de uso es una forma relativamente
denominaremos operario, encontramos sencilla de especificar los objetivos de un
otras funcionalidades en este sistema y como sistema. Por eso constituye una de las bases
tal, también estamos identificando otro principales del RUP.
actor del sistema. Las funcionalidades como Para visualizar gráficamente los casos de uso,
“Descargar información almacenada”, “Realizar se recurre a un diagrama de casos de uso,
mantenimiento”, “Alimentar efectivo” se donde se ven las interacciones de los actores
pueden ver como casos de uso. con los casos de uso identificados. Para el
Por último, podemos pensar que el cajero caso del cajero automático, puede hacerse
automático es un sistema que se relaciona con un diagrama de casos de uso como el que se
un sistema bancario central: todas las acciones muestra en la siguiente figura.
que se dan en el cajero deben estar apoyadas
por el sistema bancario central donde, entre El diagrama de casos de uso ayuda a
muchas cosas, se encuentra la información de comprender y visualizar cómo interactúan los
la o las cuentas asociadas con la tarjeta que se actores del sistema. Adicionalmente los casos
emplea para el uso del cajero. de uso también representan los objetivos del
sistema expresados como las funcionalidades
que esperamos obtener. Por lo tanto, en los
diagramas de casos de uso podemos ubicar
tales objetivos del sistema de una forma
relativamente sencilla.
RESUMEN DEL TEMA
Los Casos de Uso (CU) son una técnica de captura de requisitos que fuerza a pensar
en términos de importancia para el usuario y no sólo en términos de funciones que
sería bueno contemplar. Se define un CU como un fragmento de funcionalidad del
sistema que proporciona al usuario un valor añadido. Los CU representan los requisitos
funcionales del sistema.
El hecho de que el RUP se base en casos de uso, tiene la ventaja que esta técnica ayuda
a identificar todas las funcionalidades de un software en perspectiva de los objetivos
de los usuarios.
Los casos de uso son una forma relativamente sencilla de especificar los objetivos de
un sistema.
Igualmente, los casos de uso en RUP, constituyen la base para validar el trabajo técnico
que se realizará posteriormente por los ingenieros de software, en las fases de análisis
y diseño del sistema.
Por lo anterior, se puede afirmar que los casos de uso constituyen un elemento
integrador y una guía del trabajo.
LA IDEA PRINCIPAL
RUP utiliza los casos de uso como base para recabar los requisitos, así como, para
validar otras etapas del ciclo de vida del software.
UNIDAD 2 - TEMA 3
COMPRENDER POR QUÉ EL RUP
SE CENTRA EN LA ARQUITECTURA
ARQUITECTURA DEL SISTEMA ORGANIZAR EL DESARROLLO
Cuando se piensa en el término “arquitectura”, Cuando se habla de organizar el desarrollo,
se puede referir a un concepto de solidez, de puede decirse que se busca dividir el problema
que existe un esfuerzo de ordenar y dar una en un conjunto de elementos previendo, eso sí,
solución de espacio, de funcionalidad a un que tales elementos puedan luego integrarse.
problema o requerimiento de un cliente. Tal división puede hacerse, en grandes
Una arquitectura se necesita para: proyectos, a través de subsistemas. En una
• Comprender el sistema. organización puede hablarse de un subsistema
• Organizar el desarrollo. financiero, un subsistema de relaciones con el
• Fomentar la reutilización. cliente, un subsistema de aprovisionamiento,
• Hacer evolucionar el sistema. entre muchos otros. Claro está, que si bien
cada uno de estos subsistemas tiene funciones
y objetivos específicos, deben comunicarse y,
COMPRENDER EL SISTEMA
de hecho, están íntimamente relacionados.
Para comprender un sistema se requiere
Es así como, por ejemplo, en una empresa
“entrenar” a las personas involucradas en él,
fabricante, los insumos, el proceso de
desde los clientes, pasando por los analistas,
fabricación de sus productos, los gastos de
desarrrolladores, hasta los técnicos en soporte,
publicidad y mercadeo, las ventas, etc., afectan
etc., de tal forma que puedan comunicarse
el subsistema financiero y debe preverse que
por medio de modelos donde se expresa la
estos se comunican para garantizar el buen
solución que va logrando obtenerse. El UML,
funcionamiento de la empresa.
a través de sus diagramas, ayuda a que esta
En el caso de nuestro sistema del cajero
comprensión se dé. Piense que en un proyecto
automático, ¿qué subsistemas podemos
grande pueden intervenir muchas personas
encontrar? Si bien podría aparentar ser
las cuales, incluso, pueden estar dispersas
un sistema pequeño, hay elementos muy
geográficamente. Por lo tanto, tal comunicación
especializados los cuales, por esa naturaleza,
estandarizada, que provoque una mayor
podrían separarse para su desarrollo: el manejo
comprensión del trabajo que se está llevando
de los dispositivos como el lector de tarjetas,
a cabo, es sumamente importante.
el contador de efectivo, la comunicación con
el servidor del banco, entre otros. De todas
formas, al igual que se separan tareas, deberán
preverse las uniones o interfaces, mediante las
cuales el producto requerido será armado.
A lo interno de los subsistemas, igualmente,
encontraremos elementos que usaremos
o desarrollaremos para conseguir lo que
requerimos para el producto que necesitamos
crear. Hay algunos elementos esenciales que se
combinan en su diseño y funcionamiento: los
objetos agrupados en clases.
FOMENTAR LA REUTILIZACIÓN En este libro nos enfocaremos principalmente
Por fomentar la reutilización, debemos en el desarrollo de modelos de clases,
entender que un objetivo que se persigue en como parte de la formación fundamental
la ingeniería de software, es que las soluciones que debemos aprender para diseñar una
(o parte de ellas) que se han generado para un arquitectura fuerte en el ámbito del problema
problema particular, puedan ser reutilizadas en que tratamos. Más adelante estudiaremos con
la solución de otro problema. detalle cómo hacer tales modelos.
Precisamente, una arquitectura busca crear Dentro de lo que estudiaremos, cabe señalar,
componentes de software que bien que es fundamental comenzar siempre
pueden acomodarse en soluciones por identificar los conceptos (clases
pertenecientes a otros dominios conceptuales) que vayamos
del problema. reconociendo dentro de
No es de esperar que una los requerimientos que se
organización tenga que hacer especifican en el problema que
un subsistema financiero, cada necesitamos resolver.
vez que inicia el desarrollo Al tener identificado
de un sistema nuevo. Ya sea un concepto, debemos
para un sistema de ventas, de preguntarnos cómo se relaciona
aprovisionamiento, de matrícula, con otros conceptos y, de alguna
o lo que fuere que emprenda la forma, qué características de
organización, esta sabrá que existe atributos y comportamiento podría
un software orientado a las operaciones tener el concepto identificado. Esto quizás
financieras que podrá darles servicio en cada llevará algún tiempo, pero en un proceso
problema de software que tengan que resolver. de muchas iteraciones, podríamos tener un
panorama completo del o de los conceptos
involucrados, los cuales se expresarían
HACER EVOLUCIONAR EL SISTEMA mediante modelos de componentes, de clases
Todo sistema está sujeto a cambios. La y de interacción. Tales modelos se explicarán a
utilización misma del sistema, la formulación lo largo del libro y, veremos, como en ellos son
de nuevos objetivos, la experiencia de la fundamentales los casos de uso.
organización, la respuesta a nuevos retos, Con estos modelos tendremos dos visiones de
harán que exista la necesidad de que éste la arquitectura. Por una parte, una arquitectura
evolucione. Por lo tanto, es crucial tener una estática, la cual muestra la disposición y
arquitectura bien planteada, fuerte, flexible, organización de los elementos del sistema y,
donde el impacto del cambio pueda manejarse por otra parte, la arquitectura dinámica la cual
convenientemente, y donde la ampliación de permite ver cómo interactúan esos elementos
las funciones pueda darse minimizando los para poder resolver un objetivo particular del
efectos sobre lo que ya está hecho. sistema. Ese objetivo particular ha sido definido
Sabemos que los retos a los que se somete una previamente, como un caso de uso.
arquitectura son muy altos. Es necesario, por lo En la siguiente figura se ilustra la evolución de
tanto, que aprendamos a visualizar que todos la arquitectura durante las fases de RUP. Se
los elementos que vayamos construyendo, tiene una arquitectura más robusta en las fases
tengan un proceso de construcción que permita finales del proyecto. En las fases iniciales lo que
obtener una arquitectura con características se hace es ir consolidando la arquitectura por
como las que se han señalado anteriormente. medio de líneas de base y se va modificando
Los casos de uso son importantes en ese dependiendo de las necesidades del proyecto.
objetivo, porque permitirán identificar
aspectos claves de la arquitectura. Algunos
de esos casos de uso son esenciales en la
arquitectura, porque constituyen elementos
clave en la funcionalidad esperada del sistema
y, por lo tanto, harán que se pueda visualizar
qué aspectos en cuanto a subsistemas,
componentes, clases, entre muchos otros, son
vitales.
RESUMEN DEL TEMA
Una arquitectura se necesita para comprender el sistema, organizar el desarrollo.,
fomentar la reutilización y hacer evolucionar el sistema.
Para comprender un sistema se requiere que las personas involucradas puedan
comunicarse por medio de modelos donde se expresa la solución que va logrando
obtenerse.
Con la arquitectura se busca dividir el problema en un conjunto de elementos,
previendo que tales elementos puedan luego integrarse, esto puede hacerse a través
de subsistemas.
Se debe entender que un objetivo que se persigue en la ingeniería de software, es que
las soluciones (o parte de ellas) que se han generado para un problema particular,
puedan ser reutilizadas en la solución de otro problema.
Debido a que todo sistema está sujeto a cambios es muy importante tener una
arquitectura bien planteada, fuerte, flexible, donde el impacto del cambio pueda
manejarse convenientemente, y donde la ampliación de las funciones pueda darse
minimizando los efectos sobre lo que ya está hecho.
LA IDEA PRINCIPAL
En RUP tiene como objetivo diseñar una arquitectura modular y adaptable
definida a través de modelos.
UNIDAD 2 - TEMA 4
COMPRENDER POR QUÉ EL RUP
ES ITERATIVO E INCREMENTAL
Abordar una solución de software implica El proceso iterativo e incremental consta de una
muchos riesgos. Uno de los más importantes secuencia de iteraciones, cada iteración aborda
es, sin duda, no comprender bien los una parte de la funcionalidad total, pasando
requerimientos del usuario y, por ende, por todos los flujos de trabajo relevantes y
desarrollar una aplicación errónea. Al afirmar refinando la arquitectura.
que es errónea, se asume que esta puede estar Cada iteración se analiza cuando termina, se
diseñada, codificada y probada de la forma puede determinar si han aparecido nuevos
más depurada técnicamente hablando, requisitos o han cambiado los existentes,
pero que lastimosamente no responde afectando a las iteraciones siguientes.
a las necesidades del cliente. Durante la planificación de los
Para minimizar este riesgo, el detalles de la siguiente iteración,
RUP plantea que el desarrollo del el equipo también examina cómo
software sea iterativo, es decir, afectarán los riesgos que aún
que los proyectos de software se quedan al trabajo en curso.
dividan en ciclos. Estos deben ser de Toda la retroalimentación de la
una duración relativamente corta, en iteración pasada permite reajustar
general de 4 a 6 semanas. los objetivos para las siguientes
El equilibrio correcto entre los Casos de iteraciones.
Uso y la Arquitectura es algo muy parecido Se continúa con esta dinámica hasta que se
al equilibrio de la forma y la función en el haya finalizado por completo con la versión
desarrollo del producto, lo cual se consigue con actual del producto.
el tiempo. RUP divide el proceso en cuatro fases, dentro
Para esto, la estrategia que se propone en RUP de las cuales se realizan varias iteraciones en
es tener un proceso iterativo e incremental número variable según el proyecto y en las
en donde el trabajo se divide en partes más que se hace un mayor o menor hincapié en los
pequeñas o mini proyectos, permitiendo que distitas actividades, estas cuatro fases fueron
el equilibrio entre casos de uso y arquitectura explicadas en el tema 1 de esta Unidad de
se vaya logrando durante cada mini proyecto, Aprendizaje.
así durante todo el proceso de desarrollo.
Cada mini proyecto se puede ver como
una iteración (un recorrido más o menos
completo a lo largo de todos los flujos de
trabajo fundamentales) del cual se obtiene un
incremento que produce un crecimiento en el
producto.
Se pasa por los flujos fundamentales
(Requisitos, Análisis, Diseño, Implementación
y Pruebas), también existe una planificación
de la iteración, un análisis de la iteración y
algunas actividades específicas de la iteración.
Al finalizar se realiza una integración de los
resultados con lo obtenido de las iteraciones
anteriores.
VENTAJAS
De acuerdo con Larman (2003), algunas de las
ventajas de adoptar este enfoque son:
• Involucra continuamente a los usuarios para
evaluación, retroalimentación y requisitos.
• Aborda aspectos de alto riesgo en las
primeras iteraciones.
• Construye, en las primeras iteraciones,
una arquitectura que constituye un núcleo
primario consistente.
• Verifica la calidad continuamente, ya
que se desarrollan pruebas, oportuna y
frecuentemente.
El riesgo de hacer un mal trabajo se reduce,
pues este se circunscribe a una sola iteración,
en vez de arrastrar mucho tiempo un error,
evitando así, que se descubra únicamente al
final de todo el proceso. Esas características
son muy valiosas para desarrollar un software
que responda a las necesidades planteadas.
RESUMEN DEL TEMA
El desarrolllo de software implica muchos riesgos.
Uno de los más importantes es, sin duda, no comprender bien los requerimientos del
usuario y, por ende, desarrollar una aplicación errónea. Al afirmar que es errónea, se
asume que esta puede estar diseñada, codificada y probada de la forma más depurada
técnicamente hablando, pero que lastimosamente no responde a las necesidades del
cliente.
Para minimizar este riesgo, el RUP plantea que el desarrollo del software sea iterativo,
es decir, que los proyectos de software se dividan en ciclos.
El proceso iterativo e incremental consta de una secuencia de iteraciones, cada
iteración aborda una parte de la funcionalidad total, pasando por todos los flujos de
trabajo relevantes y refinando la arquitectura.
RUP plantea que el desarrollo del software sea iterativo para minimizar riesgos, entre
ellos el de no adaptarse a cambios en los requisitos del sistemas, que en algunos casos
pueden ser muy volátiles. Para ello, se involucra continuamente a los usuarios para
evaluación, retroalimentación y requisitos.
LA IDEA PRINCIPAL
El proceso iterativo e incremental de RUP minimiza los riesgos durante el proceso
de desarrollo.
UNIDAD 2 - TEMA 5
COMPRENDER RELACIÓN
ENTRE UML Y RUP
¿QUÉ ES EL LENGUAJE DE MODELADO UNIFICADO (UML) Y CUÁL ES SU RELACIÓN CON
RUP?
El Lenguaje Unificado de Modelación (o UML, junto con UML, tratan de mejorar el desarrollo
por sus siglas en inglés) es una familia de de software no solo con una serie de pasos
diagramas orientados a apoyar el proceso de establecidos, si no combinando varios modelos,
Análisis y Diseño Orientado a Objetos (ADOO), esto dependiendo de las necesidades del
se utiliza para representar casos de uso, clases, cliente que solicite el desarrollo del sistema.
la interacción entre objetos de una clase,
la configuración de un sistema, entre otras
muchas aplicaciones. UML es el resultado de
un acuerdo entre varios precursores del ADOO
en dotar esta metodología de una notación
estándar.
El RUP, al basarse en las ventajas del paradigma
de orientación a objetos, se apoya, a su vez, en
la notación que proporciona el UML.
El RUP es un proceso de desarrollo de software
y junto con el Lenguaje de Modelado Unificado
UML, constituye la metodología estándar más
utilizada para el análisis, implementación y
documentación de sistemas orientados a
objetos.
UML es un lenguaje de modelado para
visualizar, especificar, construir y documentar
partes de un sistema software desde distintos
puntos de vista:
• Puede usarse con cualquier proceso OBJETIVO DE UML
de desarrollo, a lo largo de todo el ciclo El objetivo de UML es la unificación de los
de vida y puede aplicarse a todos los métodos de modelado de objetos por medio
dominios de aplicación y plataformas de de:
implementación. • La identificación y definición de la semántica
• También puede usarse en otras áreas, de los conceptos fundamentales y elección
como la ingeniería de negocio y modelado de una representación gráfica con una
de procesos gracias a los mecanismos de sintaxis simple, expresiva e intuitiva.
adaptación/extensión mediante perfiles
que incorpora.
U M L p r o p o r c i o n a m e c a n i s m o s d e LO QUE NO ES UML
modelamiento visual (diagramas) de tal UML no es una notación propietaria.
forma que permite desarrollar e intercambiar • UML no es un método, ni un proceso ni una
modelos con significado de acuerdo al metodología.
problema a resolver y la solución a desarrollar.
RUP para el desarrollo de software moderno
DIAGRAMAS Y VISTAS UML
Un modelo captura una vista de un sistema El código fuente del sistema es el modelo más
del mundo real. Es una abstracción de dicho detallado del sistema (y además es ejecutable).
sistema, considerando su propósito. Sin embargo, se requieren otros modelos.
Un diagrama es una representación gráfica Varios modelos aportan diferentes vistas de un
de una colección de elementos de modelado. sistema, los cuales nos ayudan a comprenderlo
Un proceso de desarrollo de software debe desde varios frentes.
ofrecer un conjunto de modelos que permitan UML define varios modelos para la
expresar el producto desde cada una de las representación de los sistemas que pueden
perspectivas de interés. Es aquí donde se hace verse y manipularse mediante un conjunto de
evidente la importancia de UML en el contexto diagramas diferentes, divididos en diagramas
de un proceso de desarrollo de software, como estructurales y diagramas de comportamiento,
el RUP. tal como se muestran en la siguiente figura.
LA IDEA PRINCIPAL
RUP y UML son estándares en el análisis y diseño de sistemas bajo el paradigma
orientado a objetos.
LECTURAS RECOMENDADAS
• RUP Best Practices: http://www.scribd.com/doc/41153/RUP-Best-Practices?query2
=rup+test+report+template
• Ivar Jacobson, Grady Booch y James Rumbaugh, El Proceso Unificado de Desarrollo
de Software (RUP), Editorial Addison Wesley, España 2000
ACTIVIDADES Y EJERCICIOS
• Analizar y comprender un caso de estudio de uso de la metodología RUP.
• Diferenciar entre las disciplinas del ciclo de vida del software y las de gestión
del proyecto
• Evaluar y comprender la importancia y utilidad de los casos de uso en RUP.
• Se realizará en los entornos virtuales.
INTRODUCCIÓN ACTITUDES
El UML está compuesto por diversos • La capacidad de pensar y trabajar por
elementos gráficos que se combinan para cuenta propia.
conformar diagramas. Debido a que el • Puede adaptarse a ambientes de estudio
UML es un lenguaje, cuenta con reglas para nuevos.
combinar tales elementos. La finalidad de los • Toma decisiones con respecto a opciones
diagramas es presentar diversas perspectivas curriculares.
de un sistema, a las cuales se les conoce como • El alumno es una persona libre en un
modelo. Recordemos que un modelo es una ambiente y entorno propicio.
representación de la realidad; el modelo UML
describe lo que hará un sistema software.
TEMAS
Un modelo captura una vista de un sistema
del mundo real, es una abstracción de dicho
sistema, considerando su propósito. El
modelo describe completamente aquellos
1
TEMA
Diagramas de casos de uso
aspectos del sistema que son relevantes al
propósito del mismo, y a un apropiado nivel
de detalle. Esta descripción del sistema es
la que nos permite el uso de UML durante
el desarrollo de un sistema software.
2
TEMA
Diagramas de clases
La primera regla de la creación de modelos
es que el código y el texto consumen tiempo,
y no queremos pasar una gran cantidad de
tiempo creando documentos de texto que
nadie leerá. Lo que sí queremos hacer es
3
TEMA
Diagramas de actividad
captar con lo más exacto posible las partes
importantes del problema y una solución.
COMPETENCIA
Demuestra el manejo básico del lenguaje de
4
TEMA
Diagramas de secuencia
modelado unificado (UML) para usarlo en el
modelado de análisis y diseño de sistemas.
CAPACIDADES 5
TEMA
Diagramas de colaboración
• Demostrar el manejo básico de uso de
diferentes diagramas UML
• Realizar diagramas básicos de UML, con
cualquier herramienta UML.
UNIDAD 3 - TEMA 1
Diagramas de casos de uso
¿QUÉ ES UN CASO DE USO? COMPONENTES DE LOS CASOS DE USO
Los casos de uso describen bajo la forma de Los casos de uso son una técnica para la
acciones y reacciones el comportamiento de especificación de requisitos funcionales
un sistema desde el punto de vista del usuario. propuesta inicialmente por Ivar Jacobson (1987)
Definición en UML: “Un caso de uso especifica e incorporada a UML.
un conjunto de secuencias de acciones, Modela la funcionalidad del sistema tal como
incluyendo variantes, que el sistema puede la perciben los agentes externos, denominados
ejecutar y que produce un resultado observable actores, que interactúan con el sistema desde
de valor para un particular actor.” un punto de vista particular.
¿Para qué se utilizan? Sus componentes principales y sus estereotipos
• Los casos de uso son descripciones de la son:
funcionalidad del sistema independientes • Sistema: sistema que se modela.
de la implementación.
• Es una herramienta valiosa dado que es una
técnica de aciertos y errores para obtener
los requerimientos del sistema, desde el
punto de vista del usuario.
• Un caso de uso es una técnica de modelado
utilizada para describir lo que un nuevo
sistema debe hacer o lo que un sistema
existente ya hace.
¿Para quién está orientado?
Están basado en el lenguaje natural, es decir,
son accesibles por los usuarios. Un caso de • Casos de uso: unidades funcionales
uso es una descripción de las acciones de un completas.
sistema desde el punto de vista del usuario.
El sujeto se muestra como una caja negra que proporciona los casos de uso.
El modelo de casos de uso se representa mediante los diagramas de casos de uso.
LA IDEA PRINCIPAL
Un diagrama de caso de uso representa la interacción
entre los usuarios y las funcionalidades de un sistema
informático
UNIDAD 3 - TEMA 2
Diagramas de clases
¿QUÉ ES UN DIAGRAMA DE CLASE? Un diagrama de clases está formado por varios
Los diagramas de clases describen la estructura rectángulos de este tipo conectados por líneas
estática de un sistema. Describe la definición de que representan las asociaciones o maneras en
cada uno de los posibles objetos pertenecientes que las clases se relacionan entre sí.
al sistema. Siguiendo con el ejemplo de la clase Aviones,
Muestra las clases del sistema, sus atributos, se muestra a continuación como se representa
operaciones (o métodos), y las relaciones entre gráficamente:
los objetos.
Es un diagrama desarrollado por analistas,
diseñadores y desarrolladores.
Las cosas que existen y que nos rodean se
agrupan naturalmente en categorías. Una clase
es una categoría o grupo de cosas que tienen
atributos (propiedades) y acciones similares
(comportamientos).
Un ejemplo puede ser la clase “Aviones”:
Que tiene atributos como:
• “modelo de avión”
• “la cantidad de motores”,
• “la velocidad de crucero”
• “la capacidad de carga útil”. En el área superior figura el nombre de la clase
Entre las acciones de las cosas (objetos) de esta que utilizamos como ejemplo, en la central
clase se encuentran: están sus atributos y en la inferior las acciones
• “acelerar” que ella realiza. Note que las acciones llevan
• “elevarse” paréntesis al final del nombre dado que las
• “girar” “descender” mismas son funciones y por lo tanto devuelven
• “desacelerar”. un valor.
GENERALIZACIÓN
Generalización es otro nombre
AGREGACIÓN Y COMPOSICIÓN para herencia.
La Agregación es una relación en la que la Se refiere a una relación entre
Clase “Todo” juega un rol más importante que dos clases en donde una Clase
la Clase “Parte”, pero las dos clases no son “Específica” es una versión
dependientes una de otra. Se grafica con un especializada de la otra, o Clase
rombo diamante vacío contra la Clase “Todo”. Si “General” o “Base”.
la Clase “Todo” se elimina, no necesariamente Por ejemplo, Honda es un tipo de auto, por lo
desaparecen las Clases “Parte”. La Agregación que la Clase “Honda” va a tener una relación de
es una asociación con la semántica “formado generalización con la Clase “Auto”.
por/forma parte de”.
EJEMPLO BÁSICO DE UN
DIAGRAMA DE CLASES
En un proceso de negocio en donde se realicen
actividades de compras de productos a un
proveedor, para mantener el stock deseado, se
podría observar esta relación de Clases con sus
respectivos atributos.
Se puede leer de la siguiente manera: Una
Se muestra a continuación el ejemplo de Compra se asigna o pertenece a un Proveedor,
Ordenador representando una Clase “Todo” y contiene uno o muchos Productos. A su vez,
y sus componentes como Clases “Parte”. Si ese Producto puede ser adquirido en una o
se elimina la Clase Ordenador podrían seguir más compras.
existiendo las Clases “Parte”, ya que pueden
existir independientemente.
RESUMEN DEL TEMA
Es el diagrama de clases es el más común en modelos en el análisis y diseño orientados
a objetos, describen la estructura estática de un sistema y la definición de cada uno de
los posibles objetos pertenecientes al sistema.
Los diagramas de clases se usan para mostrar las clases de un sistema y las relaciones
entre ellas. Una sola clase puede mostrarse en más de un diagrama de clases y no es
necesario mostrar todas las clases en un solo diagrama monolítico de clases.
El mayor valor de estos diagramas es mostrar las clases y sus relaciones desde varias
perspectivas, de una manera que ayude a transmitir la comprensión más útil del
sistema.
Los diagramas de clases muestran una vista estática del sistema; no describen los
comportamientos o cómo interactúan los objetos de las clases. Para describir los
comportamientos y las interacciones entre los objetos de un sistema, se usan los
diagramas de interacción.
LA IDEA PRINCIPAL
El diagrama de clases es de los más importantes diagramas usados en el Análisis
y Diseño Orientado a Objetos.
UNIDAD 3 - TEMA 3
DIAGRAMAS DE ACTIVIDAD
¿QUÉ SON LOS DIAGRAMAS DE ACTIVIDAD?
Los diagramas de actividad permiten describir
como un sistema implementa su funcionalidad,
mostrando el flujo de actividades asociado a
dicha funcionalidad.
Modelan el comportamiento dinámico de un
procedimiento, transacción o caso de uso
haciendo énfasis en el proceso que se lleva a
cabo.
Se usan para analizar los procesos y, si es
necesario, volver a realizar la ingeniería de los
procesos.
Es uno de los elementos de modelado que son
mejor comprendidos por todos, ya que son
herederos directos de los diagramas de flujo,
pero son más expresivos que los diagramas de
UTILIDAD DE UN DIAGRAMA DE ACTIVIDAD
flujo.
Son útiles para:
Desde un punto de vista conceptual, el
• Ilustrar un proceso de negocios o flujo de
diagrama de actividades muestra cómo fluye el
trabajo entre los usuarios y el sistema.
control de unas clases a otras con la finalidad
• Demostrar la lógica de un algoritmo.
de culminar con un flujo de control total que se
• Describir los pasos realizados en un caso de
corresponde con la consecución de un proceso
uso (permiten describir como un sistema
más complejo.
implementa su funcionalidad)
Gráficamente un diagrama de actividad será un
• Simplificar y mejorar cualquier proceso
conjunto de arcos y nodos.
clarificando casos de uso complicados.
• Modelar elementos de arquitectura de
EJEMPLO DE UN DIAGRAMA DE ACTIVIDAD software, tales como método, función y
Consideremos el caso de uso “Hallar alimento” operación.
para un Actor acampando en una cueva en una Un diagrama de actividades es una herramienta
montaña. excelente para analizar problemas que,
al final, el sistema deberá resolver. Como
una herramienta de análisis, no queremos
empezar resolviendo el problema en un nivel
técnico mediante la asignación de clases, pero
podemos usar los diagramas de actividades
para entender el problema e incluso refinar los
Con el diagrama de actividad lo que se quiere procesos que comprenden el problema.
es describir gráficamente el flujo de acciones Cuando se trata de un caso de uso asociado con
que se necesitan realizar para alcanzar el un requisito de un sistema software, se deben
objetivo de la función, en este caso, hallar el revisar los flujos asociados a este caso de uso y
alimento que necesita ingerir. A continuación, describirlos gráficamente con esta herramienta
se describe ese flujo. de modelación de análisis y diseño.
RESUMEN DEL TEMA
Los diagramas de actividad permiten describir como un sistema implementa su
funcionalidad, mostrando el flujo de actividades asociado a dicha funcionalidad.
Modelan el comportamiento dinámico de un procedimiento, transacción o caso de uso
haciendo énfasis en el proceso que se lleva a cabo.
Se usan para analizar los procesos y, si es necesario, volver a realizar la ingeniería de
los procesos.
Es uno de los elementos de modelado que son mejor comprendidos por todos, ya que
son herederos directos de los diagramas de flujo, pero son más expresivos que los
diagramas de flujo.
Desde un punto de vista conceptual, el diagrama de actividades muestra cómo fluye el
control de unas clases a otras con la finalidad de culminar con un flujo de control total
que se corresponde con la consecución de un proceso más complejo.
• Tienen mucha utilidad para:
• Modelar el comportamiento de determinados procesos del sistema.
• Modelar el comportamiento de procesos complejos que engloben varios
subprocesos.
• Representar el flujo de negocio del sistema.
• Describir los pasos realizados en un caso de uso (permiten describir como un
sistema implementa su funcionalidad)
• Simplificar y mejorar cualquier proceso clarificando casos de uso complicados.
• Modelar elementos de arquitectura de software, tales como método, función y
operación.
LA IDEA PRINCIPAL
El diagrama de actividad permite modelar los flujos de procesos de interés para
el análisis y diseño de sistemas.
UNIDAD 3 - TEMA 4
DIAGRAMAS DE SECUENCIA
¿QUÉ SON LOS DIAGRAMAS DE SECUENCIA? Fin de una “línea de vida”.
Los diagramas de clases representan
información estática. No obstante, en un
sistema funcional, los objetos interactúan Como ejemplo, se muestra el siguiente
entre sí, y tales interacciones suceden con diagrama de secuencia, que representa la
el tiempo. El diagrama de secuencias UML interacción entre un Actor Usuario con un
muestra la mecánica de la interacción con base Cajero para sacar dinero.
en tiempos.
Muestra la interacción entre componentes del
sistema desde el punto de vista temporal.
La interacción se representa desde el punto
de vista de paso de mensajes entre objetos o
actores a lo largo del tiempo.
Son útiles para describir procesos internos entre
diferentes módulos y describir comunicaciones
con otros sistemas o con actores.
ELEMENTOS DE UN DIAGRAMA DE
SECUENCIA
Actor/Objeto.
El rol de la clase describe la manera en que un
objeto se va a comportar en el contexto. No se
listan los atributos del objeto.
Actores/Objetos desconocidos.
Veamos otro ejemplo:
Representar mediante un diagrama de
secuencia el proceso de una llamada. Tenemos
3 objetos: emisor, receptor y centralita. El
proceso es el siguiente:
1. El emisor descuelga el teléfono y espera a
que la centralita de tono.
2. El emisor marca el número y espera a que la
centralita de tono de llamada.
3. Al mismo tiempo que la centralita da tono
de llamada, hace sonar el teléfono del
receptor.
4. Una vez el receptor descuelga el teléfono,
en menos de un segundo su teléfono deja
de sonar y el emisor deja de oír el tono de
llamada.
RESUMEN DEL TEMA
Los diagramas de clases representan información estática. No obstante, en un sistema
funcional, los objetos interactúan entre sí, y tales interacciones suceden con el tiempo.
El diagrama de secuencias UML muestra la mecánica de la interacción con base en
tiempos, entre componentes del sistema.
La interacción se representa desde el punto de vista de paso de mensajes entre objetos
o actores a lo largo del tiempo.
Son útiles para describir procesos internos entre diferentes módulos y describir
comunicaciones con otros sistemas o con actores
En un sistema funcional, los objetos, que son instancias de una clase, interactúan entre
sí, y tales interacciones ocurren en el tiempo.
LA IDEA PRINCIPAL
Los diagramas de secuencia describen en el tiempo, los procesos internos entre
diferentes módulos de un sistema y las comunicaciones con otros sistemas o
con actores.
UNIDAD 3 - TEMA 5
DIAGRAMAS DE COLABORACIÓN
¿QUÉ SON DIAGRAMAS DE COLABORACIÓN? Rol de las Asociaciones.
Los diagramas de interacción modelan la Los roles de asociación describen cómo se va
comunicación entre los diferentes elementos a comportar una asociación en una situación
del sistema, a diferencia de los diagramas de particular. Se usan líneas simples etiquetadas
comportamiento, muestran la comunicación con un estereotipo.
entre distintos componentes, en lugar de entre
elementos de un mismo componente.
Existen 2 tipos de diagramas de interacción,
los cuales pueden transformarse el uno en el Mensajes.
otro de forma directa: Diagramas de Secuencia Cuando dos objetos establecen una
y Diagramas de Colaboración, el primero ya se comunicación, se incluye un en l ace,
trató en el tema anterior, ahora corresponde representado por una línea, entonces los
describir el segundo. mensajes se muestran superpuestos al enlace
Los diagramas de colaboración muestran y el orden de ejecución de los mensajes se
la interacción entre objetos desde el punto muestra junto a su texto descriptivo.
de vista espacial, esto es, sólo se centra en el
paso de mensajes, para ello, utiliza los mismos
elementos que los diagramas de secuencia, a
excepción de las “líneas de vida”.
Los diagramas de colaboración son útiles para:
• Identificar los diferentes objetos del sistema
y su relación con los demás.
• Describir el paso de mensajes entre los Contrariamente a los diagramas de secuencias,
objetos o roles. los diagramas de colaboración no tienen una
El diagrama de colaboración describe las manera explícita para denotar el tiempo, por
interacciones entre los objetos en términos de lo que entonces numeran a los mensajes en
mensajes secuenciados. orden de ejecución.
Los diagramas de colaboración representan La numeración puede anidarse; por ejemplo,
una combinación de información tomada de los para mensajes anidados al mensaje número 1:
diagramas de clases, de secuencias y de casos 1.1, 1.2, 1.3, etc.
de uso, describiendo el comportamiento, tanto La condición para un mensaje se suele
de la estructura estática, como de la estructura colocar entre corchetes. Para indicar un loop
dinámica de un sistema. (repetición) se usa * después de la numeración.
ELEMENTOS DE LOS
DIAGRAMAS DE COLABORACIÓN
Rol de la Clase.
El rol de la clase describe cómo se comporta un
objeto. Los atributos del objeto no se listan.
Un mensaje se puede expresar en lenguaje Ejemplo 3.
natural o en pseudocódigo, incluyendo Representar mediante un diagrama de
condiciones o llamadas a funciones. colaboración el proceso de consulta de datos
a un Servicio Web (WS de su nombre en inglés
Web Service).
Tenemos 2 objetos: servicio Web y base
de datos, así como 1 actor. El proceso es el
siguiente:
EJEMPLOS DE UN DIAGRAMA DE 1. El actor envía al servicio web la petición de
COLABORACIÓN (COMUNICACIÓN) validación.
Ejemplo 1. 2. El servicio consulta en BBDD los datos de
Este ejemplo agrega un velocímetro al conjunto usuario.
de clases que constituyen a un “Avión”. Al • Si los datos no son correctos, devuelve
alcanzar una cierta velocidad el velocímetro vacío al servicio, el cual mandará un
indicará al timón que debe elevarse y al tren de error al usuario.
aterrizaje que debe retraerse. 3. La base de datos devuelve los datos de
usuario y el servicio responde con OK.
4. El usuario manda la petición de obtención
de datos.
5. El servicio web hace la consulta en BBDD y
esta los devuelve.
6. El servicio manda la respuesta al usuario.
Ejemplo 2.
Representar mediante un diagrama de
colaboración el proceso de una llamada. Este
ejemplo se hizo con un diagrama de secuencia
en el tema anterior.
Tenemos 3 objetos: emisor, receptor y
centralita. El proceso es el siguiente:
1. El emisor descuelga el teléfono y espera a
que la centralita de tono.
2. El emisor marca el número y espera a que la
centralita de tono de llamada.
3. Al mismo tiempo que la centralita da tono
de llamada, hace sonar el teléfono del
receptor.
4. Una vez el receptor descuelga el teléfono,
en menos de un segundo su teléfono deja
de sonar y el emisor deja de oír el tono de
llamada.
RESUMEN DEL TEMA
Como se ha explicado en los dos últimos temas de esta Unidad de Aprendizaje,
existen dos tipos de diagramas de interacción: de secuencia y de colaboración. Ambos
transmiten la misma información, empleando una perspectiva un poco diferente.
Los diagramas de secuencia muestran las clases a lo largo de la parte superior y los
mensajes enviados entre esas clases, modelando un solo flujo a través de los objetos
del sistema y los diagramas de colaboración usan las mismas clases y mensajes, pero
organizados en una disposición espacial.
Un diagrama de secuencia implica un ordenamiento en el tiempo al seguir la secuencia
de mensajes desde arriba a la izquierda hasta abajo a la derecha. Debido a que en el
diagrama de colaboración no se indica en forma visual un ordenamiento en el tiempo,
numeramos los mensajes para indicar el orden en el cual se presentan.
Algunas herramientas convertirán de manera automática los diagramas de interacción
entre secuencia y colaboración, pero no es necesario crear los dos tipos de diagramas
en las etapas de análisis y diseño del sistema. En general, se percibe que un diagrama
de secuencia es más fácil de leer y más común.
Los diagramas de colaboración representan una combinación de información
tomada de los diagramas de clases, de secuencias y de casos de uso, describiendo el
comportamiento, tanto de la estructura estática, como de la estructura dinámica de un
sistema.
LA IDEA PRINCIPAL
El diagrama de colaboración modela la misma información que uno de
secuencia, pero empleando una perspectiva espacial.
LECTURAS RECOMENDADAS
• VRumbaugh, James. El Lenguaje Unificado De Modelado. 2a. ed., 2006
• Liliana Favre, UML and the Unified Process, 2003 Idea Group Inc (IGI)
ACTIVIDADES Y EJERCICIOS
• Revisar videos tutoriales sobre diagramas UML.
• Realizar un diagrama de casos de uso con una herramienta UML
• Realizar un diagrama de clases con una herramienta UML
• Realizar un diagrama de actividad con una herramienta UML.
INTRODUCCIÓN CAPACIDADES
La tarea de análisis de los requisitos es un • Comprender fundamentos del análisis de
proceso de descubrimiento y refinamiento, el requisitos.
• Elaborar los diagramas de casos de uso
cliente y el desarrollador tienen un papel activo
para representar los requisitos funcionales
esta fase de requisitos de software. El cliente
del sistema.
intenta plantear un sistema que en muchas
ocasiones es confuso para él, sin embargo,
es necesario que describa los datos, que
ACTITUDES
especifique las funciones y el comportamiento • La capacidad de pensar y trabajar por
del sistema que desea. El objetivo es que el cuenta propia
desarrollador actúe como un negociador, • Solucionadores de problemas
un interrogador, un consultor, o sea, como • Ser guiado por objetivos.
persona que consulta y propone para resolver
las necesidades del cliente. TEMAS
Dentro de la metodología RUP, es sus flujos
de trabajo, las actividades de análisis y
especificación de los requisitos funcionales se
1
TEMA
fundamentos de Captura y
Análisis de Requisitos
basan en los casos de uso del sistema (CUS), en
sus diagramas y realizaciones textuales. Esto se
estará describiendo en la presente Unidad de 2
TEMA
identificar los casos de uso
y actores de un sistema
Aprendizaje.
COMPETENCIA 3
TEMA
Elaborar Casos de Uso de las
funcionalidades del sistema
Comprende fundamentos del análisis de
requisitos y elabora diagramas de casos de
usos para especificar los requisitos funcionales 4 Relaciones entre
casos de uso
del sistema. TEMA
5
TEMA
Validación de
Requisitos
UNIDAD 4 - TEMA 1
fundamentos de Captura y
Análisis de Requisitos
¿QUÉ SON REQUISITOS DE UN SISTEMA?
Comencemos recalcando que un desarrollador TIPOS DE REQUISITOS
de software debe desarrollar soluciones a
La clasificación más usada es la siguiente:
problemas y que una buena solución puede
• Requisitos Funcionales.
solo ser desarrollada si se tiene un buen
Son aquellos que describen las funciones o los
entendimiento del problema, dentro de su
servicios que se espera que el sistema provea.
entorno de negocio.
Describen lo que es sistema debe realizar para
Luego que se tiene un buen conocimiento de lo resolver el problema planteado.
que se quiere resolver, se debe pasar a la fase Los requisitos funcionales de un sistema, son
de captura y análisis de requisitos, fase muy aquellos que describen cualquier actividad
importante dentro del ciclo de vida del software, que este deba realizar, en otras palabras,
porque de ella dependerán las siguientes fases el comportamiento o función particular
de diseño, codificación, pruebas y entrega al de un sistema, cuando se cumplen ciertas
cliente y usuarios. condiciones.
Comencemos por definir qué es un requisito, Por lo general, estos deben incluir funciones
para luego comprender para que nos sirven los desempeñadas por pantallas específicas,
casos de uso para su captura y especificación, descripciones de los flujos de trabajo a
dentro de la metodología de desarrollo RUP. ser desempeñados por el sistema y otros
Un requisito es una valoración clara de las requerimientos de negocio.
necesidades que un sistema debe alcanzar. Es La gestión de los requisitos funcionales
una condición o capacidad que debe cumplir deficiente, es citada como una de las causas
o poseer un sistema para satisfacer una más frecuentes en el fracaso de los proyectos,
especificación acordada con el cliente. es por ello que es importante entender que
Un requisito debe indicar: son los requerimientos funcionales, bajo qué
• Qué necesita el sistema, basado en metodologías deben identificarse y gestionarse
condiciones actuales y previsibles. para asegurar el logro de los objetivos.
• Qué rasgos del sistema servirán para Por lo tanto, los requisitos funcionales:
satisfacer el contexto del requisito. • Expresan las capacidades o cualidades
• Cómo el sistema debe ser construido. que debe tener la solución para
El conjunto de requisitos forma la base para el satisfacer los requerimientos de los
desarrollo de un sistema o un componente de interesados del proyecto.
un sistema. • Se expresan en términos de cuál debe
ser el comportamiento de la solución y
que información debe manejar.
• Deben proporcionar una descripción lo
suficientemente detallada para permitir
el desarrollo e implementación de la
solución.
• Son los que más influyen en si la solución
será aceptada o no por los usuarios.
Algunos ejemplos de requisitos funcionales:
• El sistema enviará un correo electrónico
cuando se registre alguna de las
siguientes transacciones: pedido de
venta de cliente, despacho de mercancía
al cliente, emisión de factura a cliente y
registro de pago de cliente.
• Se permitirá el registro de pedidos
de compra con datos obligatorios
incompletos, los cuales podrán
completarse posteriormente
modificando el pedido. Antes de poder
aprobarse los datos del pedido deben
estar completos.
• Al aprobar un pedido, la solicitud pasará • Requisitos No Funcionales:
al siguiente paso del flujo de trabajo Los requisitos no funcionales representan
(workflow) de aprobación configurado características generales y restricciones de la
en el sistema. aplicación o sistema que se esté desarrollando.
• El sistema permitirá a los usuarios Son los que especifican criterios para evaluar
autorizados el ingresar planes y la operación de un servicio de tecnología
cronogramas de proyecto. de información, en contraste con los
• El sistema permitirá aprobar, cambiar requerimientos funcionales que especifican los
o actualizar planes y cronogramas de comportamientos específicos.
proyecto. Suelen presentar dificultades en su definición
• El sistema permitirá el envío dado que su conformidad o no conformidad
automatizado de cartas de entrega de podría ser sujeto de libre interpretación, por lo
órdenes directamente al almacén. cual es recomendable acompañar su definición
• A cada orden se le asignará un con criterios de aceptación que se puedan
identificador único, que será utilizado medir.
para identificarla en todos los procesos
subsecuentes que se realicen sobre esta. Entre los ejemplos de requisitos no
• Al ingresar ordenes de entrega, toda funcionales, tenemos los referidos a
orden de entrega estará asociada a un atributos como la eficiencia, seguridad,
pedido de venta. mantenibilidad y usabilidad del sistema.
• La facturación de pedidos de venta se También hay requerimientos no funcionales
realizará en lotes, por medio de una organizacionales y externos.
pantalla de pedidos pendientes de Algunos ejemplos de requisitos no funcionales:
facturación, la cual mostrará los pedidos • El sistema debe ser capaz de procesar N
no facturados. Una vez facturados los transacciones por segundo. Esto se medirá
pedidos no se mostrarán en esta lista. por medio de la herramienta SoapUI
aplicada al Software Testing de servicios
web.
• Toda funcionalidad del sistema y transacción
de negocio debe responder al usuario en
menos de 5 segundos.
• El sistema debe ser capaz de operar
adecuadamente con hasta 100.000 usuarios
con sesiones concurrentes.
• Los datos modificados en la base de
datos deben ser actualizados para todos
los usuarios que acceden en menos de 2
segundos.
• Los permisos de acceso al sistema
podrán ser cambiados solamente por el
administrador de acceso a datos.
• El nuevo sistema debe desarrollarse ANÁLISIS DE REQUISITOS Y CASOS DE USO
aplicando patrones y recomendaciones La técnica por excelencia para la captura y
de programación que incrementen la análisis de requisitos funcionales en el análisis
seguridad de datos. y diseño orientado a objeto es la realizada con
• Todos los sistemas deben respaldarse los Casos de Uso.
cada 24 horas. Los respaldos deben ser En la siguiente figura podemos describir esta
almacenados en una localidad segura fase con el modelo de requisitos.
ubicada en un edificio distinto al que reside
el sistema.
• Todas las comunicaciones externas entre
servidores de datos, aplicación y cliente del
sistema deben estar encriptadas utilizando
el algoritmo RSA.
• Si se identifican ataques de seguridad o
brecha del sistema, el mismo no continuará
operando hasta ser desbloqueado por un
administrador de seguridad.
• El tiempo de aprendizaje del sistema por un
usuario deberá ser menor a 4 horas. Y según la metodología de desarrollo RUP,
• La tasa de errores cometidos por el que hemos estudiado en una unidad anterior,
usuario deberá ser menor del 1% de las estos son los artefactos (modelos, diagramas,
transacciones totales ejecutadas en el documentos) que se deben generar en esta
sistema. etapa.
• El sistema debe contar con manuales de
usuario estructurados adecuadamente.
• El sistema debe proporcionar mensajes de
error que sean informativos y orientados a
usuario final.
• El sistema debe contar con un módulo de
ayuda en línea.
• La aplicación web debe poseer un diseño
“Responsive” a fin de garantizar la adecuada
visualización en múltiples computadores Como se observa de estos artefactos, el
personales, dispositivos tableta y teléfonos principal es el llamado Modelo de Casos de Uso
inteligentes. del Sistema, que se detallará en el siguiente
• El sistema debe poseer interfaces gráficas tema.
bien formadas.
RESUMEN DEL TEMA
Los requisitos juegan un papel importante en el desarrollo de sistemas, ya que:
• Forman la base de la arquitectura del sistema y las actividades de diseño.
• Forman la base para las actividades de verificación.
• Actúan como punto de referencia para la validación y la aceptación del sistema de
las partes interesadas.
• Proporcionan un medio de comunicación entre los diferentes técnicos que
interactúan a lo largo del proyecto, entre ellos y con los clientes y usuarios.
Así pues, un requisito, o mejor dicho, el conjunto de requisitos que conforman
el sistema, nos sirve para que un cliente describa claramente lo que quiere, que el
desarrollador entienda lo que ese cliente requiere, que se eviten vueltas atrás en la
etapa de diseño o de desarrollo (por falta de entendimiento) y que se tenga una base
sobre la que probar y validar el producto final.
LA IDEA PRINCIPAL
Un buena captura y análisis de requisitos es la base sólida
para un buen desarrollo de un sistema software.
UNIDAD 4 - TEMA 2
identificar los casos de uso y
actores de un sistema
Modelado de CUS Guía para generar el Modelo de CUS
Para modelar los requisitos funcionales del Para generar el Modelo de Casos de Uso del
sistema a través de los casos de uso, se deben Sistema, que se obtiene del análisis de los
tener claro los siguientes principìos: mismos, se deben realizar los siguientes pasos
• Un caso de uso especifica un para la captura de requisitos, según RUP:
comportamiento deseado del sistema. • Identificación de Casos de uso y Actores.
• Representan los requisitos funcionales del • Priorizar Casos de Uso.
sistema. • Detallar Casos de Uso.
• “Un caso de uso especifica un conjunto • Estructurar el MCU.
de secuencias de acciones, incluyendo • Prototipar la interfaz de usuario (GUI).
variantes, que el sistema puede ejecutar y
que produce un resultado observable de Identificación de Casos de Uso y Actores
valor para un particular actor. (Definición del Sistema
en UML). Como punto de partida del proceso de
• Describen qué hace el sistema, no cómo lo construcción de software, identificar y definir
hace. los casos de uso ayudará a desarrollar
• Un caso de uso es una descripción desde el eficientemente un proyecto, considerando
punto de vista del usuario. siempre las necesidades de los usuarios del
• Los casos de uso son una herramienta sistema.
valiosa dado que es una técnica de aciertos Los casos de uso se observan como objetivos
y errores para obtener los requisitos del y funcionalidades esperadas de los distintos
sistema, justamente desde el punto de vista actores que estarán interactuando con el
del usuario. software que se crea.
• Los diagramas de casos de uso modelan la Al considerar el RUP (que es un proceso
funcionalidad del sistema usando actores y guiado por casos de uso), se espera, por
casos de usos. lo tanto, que los esfuerzos que se realizan
• Los casos de uso son servicios o funciones estén comprendidos en un marco de trabajo
provistas por el sistema para sus usuarios. que se haya definido de acuerdo a lo que se
ha identificado por parte de los clientes, en
cuanto a los objetivos que deben cumplirse.
Al inicio del proyecto, deberá hacerse un
esfuerzo importante para poder identificar los
casos de uso del sistema.
Para ilustrar los conceptos que se desarrollarán
seguidamente, se estará utilizando el ejemplo
de una biblioteca de una universidad que
da servicio a estudiantes, docentes y demás
funcionarios de ésta.
Seguidamente vamos a recordar cómo se lleva
a cabo el proceso de préstamo de un libro en
esta biblioteca universitaria que se usará de
ejemplo, como punto de partida para ilustrar
los conceptos que vamos a desarrollar.
1. El usuario puede consultar la lista Al buscar los casos de uso de un sistema,
de materiales bibliográficos que hay debemos plantearnos:
disponibles. Esos materiales pueden ser:
• Cuáles son sus objetivos.
libros, revistas, periódicos, videos, etc.
• Bajo qué condiciones pueden lograrse.
2. Producto de la consulta, el usuario puede
• Quiénes intervienen en su ejecución.
averiguar si el material está disponible para
Los objetivos son importantes, porque nos
préstamo, el tipo de restricción que hay
ayudan a identificar claramente qué es lo que
para prestarlo, así como si se le permite
persigue el sistema. En nuestro caso:
llevárselo fuera de la biblioteca o bien si es
• ¿Buscará el sistema manejar la base
un material para ser consultado únicamente
bibliográfica de la biblioteca, con el registro
dentro del recinto de la Biblioteca.
del material, sus autores, editores, la copia
3. En el caso de los libros, si no es material
de cada uno de éstos?
restringido, la persona interesada puede ir
• ¿Tendrá que representarse la complejidad
a los estantes y ubicar el libro, o solicitar la
de la información que representa un libro
ayuda de un bibliotecario.
o cualquier material bibliográfico para
4. En el caso de los libros para sala,
cumplir con los objetivos del
revistas y videos, el usuario
sistema?
deberá ser atendido por
Pareciera que este no es el
un bibliotecario, para que
caso. Nuestro asunto se
ubique el material.
limita a poder manejar lo
5. Para realizar el préstamo,
referente a los préstamos
el bibliotecario lee
de un material (que
los datos del material
corresponde al objetivo del
solicitado con un lector de
sistema que hemos tomado
códigos de barra.
como ejemplo), por lo cual, las
6. Posteriormente asigna el
acciones por desarrollar deben
tiempo de préstamo, dependiendo
limitarse a ello.
de las restricciones del material:
• Si el material puede prestarse fuera de la
biblioteca, el bibliotecario asignará 3, 5,
7 ó 14 días, de acuerdo con la demanda
de uso. A mayor demanda, menos días
se prestaría.
• Si el material es de uso exclusivo dentro
de la biblioteca, se asignarán 4 horas de
préstamo en sala.
7. Además, para poder prestar un material,
debe comprobarse que el usuario no
tenga cargos por morosidad. De ser así,
se le impide el préstamo fuera de sala y
solo podrá consultar el material dentro
de la biblioteca. Un cargo por morosidad
se genera en el proceso de devolución del
material prestado.
8. Cuando el usuario lo devuelve, se corrobora
sí que lo está entregando lo hace dentro
del plazo establecido. De lo contrario, la
biblioteca genera el cargo.
9. El usuario puede cancelar sus deudas
en la biblioteca. Esta última genera,
regularmente, estados financieros
para reflejar los trámites de morosidad
generados y para identificar cuáles no han
sido aún cancelados.
Claro está, este subsistema deberá Es importante indicar que dicho rol puede ser
comunicarse con el sistema bibliográfico de la asumido por distintos elementos físicos. Más
biblioteca, para poder referenciar el material claramente, en el caso de las personas, si por
que se tramite. ejemplo Pedro Pérez Pereira es bibliotecario
Debe reconocerse en la descripción del sistema, en el sistema que especificamos, igualmente
algunas acciones importantes que pueden podría ser usuario en el momento en el que
resaltarse, tales como: éste solicite el préstamo de un material para
√ Consultar disponibilidad de material ser consultado por él mismo en su casa.
bibliográfico por parte del usuario. Como hemos podido observar, los actores
√ Leer datos del material bibliográfico, por persiguen distintos objetivos dentro del
parte del bibliotecario. sistema. Por ejemplo, para un bibliotecario,
√ Consultar morosidad del usuario, por parte su objetivo sería prestar material, registrar
del bibliotecario. las devoluciones, comprobar que los morosos
√ Registrar la acción de préstamo, por parte no podrán tener servicio hasta tanto no
del bibliotecario. cumplan con los requisitos exigidos para tal
√ Registrar la acción de devolución, por parte efecto, etc. Un usuario, por su parte, podrá
del bibliotecario. consultar el catálogo de material y, mediante
√ Generar un registro de morosidad, al la intermediación de un bibliotecario, podrá
procesarse la devolución, por parte del recibir préstamos del servicio de bibliotecas.
bibliotecario. El Sistema Financiero podrá conseguir los
√ Procesar registros de morosidad, por parte registros contables relativos a las cuentas por
del Sistema Financiero. cobrar y los registros de los pagos realizados
Todas estas acciones están enmarcadas por los usuarios morosos.
dentro del objetivo del sistema de brindar y Todos esos objetivos se logran a través de
administrar el servicio de préstamo de material los casos de uso que se desarrollarán en el
bibliográfico en esa universidad. sistema. De ello estaremos hablando en el
Note igualmente que, además de enumerarse siguiente tema.
esas acciones, a la par se está especificando
quién hace la acción. En el fondo, lo que se
está tratando de identificar, son los actores
del sistema, a los que nos referiremos a
continuación.
De acuerdo con Booch et al (2001), los actores
son el entorno del sistema.
Con ello se hace referencia a que es todo “ente”
que interactuará con el sistema. Estos actores
pueden ser personas, otros sistemas, hardware
etc. Un actor asume un rol en el entorno del
sistema.
RESUMEN DEL TEMA
Como punto de partida del proceso de construcción de software, identificar y definir los
casos de uso ayudará a desarrollar eficientemente un proyecto, considerando siempre
las necesidades de los usuarios del sistema.
Los casos de uso se observan como objetivos y funcionalidades esperadas de los
distintos actores que estarán interactuando con el software que se crea.
El objetivo o propósito del sistema es importante tenerlo bien identificado, porque nos
ayudará a identificar claramente qué es lo que persigue el sistema.
Este objetivo genera acciones que están enmarcadas dentro del objetivo, las cuales se
logran a través de los casos de uso que se desarrollarán en el sistema.
Igualmente, además de identificarse esas acciones, a la par se está especificando quién
hace la acción. En el fondo, lo que se está tratando de identificar, son los actores del
sistema.
LA IDEA PRINCIPAL
La identificación de casos de uso y actores es la base de la
especificación de los requisitos.
UNIDAD 4 - TEMA 3
Elaborar Casos de Uso de las
funcionalidades del sistema
Se ha hablado previamente de los casos de
uso. Se ha dicho que se trata de algo así como
“historias” de lo que ocurre en el sistema. El
sentido de afirmar que son historias, se debe
a que éstos tienen la especificación de lo que
el usuario desea del sistema. Por lo tanto, es
importante que quedemos con este concepto:
un caso de uso es la descripción de lo que el
usuario desea del sistema.
El proceso de identificar casos de uso, puede
apoyarse visualizándolos “espacialmente”. En
UML, lo anterior se logra mediante el desarrollo
de un diagrama de casos de uso. Ello puede ser
un ejercicio en el cual, conforme se comienzan
a identificar los actores, los objetivos y las Observe que los casos de uso se representan
funcionalidades del sistema, se procede a a través de un óvalo y los actores mediante la
plasmarlos gráficamente. figura de una persona.
Un diagrama consiste en colocar en él La interacción entre el actor y un caso de uso en
los actores y los casos con los que éstos particular se expresa por medio de una línea.
interactúan. Como puede notar, esto es muy sencillo. Sin
En la siguiente figura se muestra un ejemplo embargo, esa sencillez es una forma muy
de un diagrama de éste tipo. Este ejemplo poderosa de poder corroborar entre el cliente
no pertenece a ningún ámbito de ningún y un analista lo que se requiere, en cuanto a
problema. En éste simplemente ilustramos la funcionalidades de un sistema, dado que la
notación utilizada. comunicación, usando un diagrama así, puede
realizarse de una forma muy simple.
En el caso de nuestro ejemplo de préstamos
de una biblioteca, vamos a procurar tener
claros los objetivos, las funcionalidades y
los actores que están involucrados en su
desarrollo, precisamente mediante la actividad
de especificar los casos de uso.
Algo importante que debe considerarse antes
de entrar en mayores detalles, es que la esencia
de los casos de uso se basa en escribirlos, es
decir, en especificarlos.
El diagrama es una ayuda visual muy
importante para entender, o poder plasmar
el entorno del sistema y las funcionalidades
esperadas. No obstante, al escribir, podemos
medir si realmente estamos entendiendo los
objetivos del sistema.
Hay varias cosas que debemos analizar de la
figura anterior.
• En primera instancia, note cómo todas las
funcionalidades que listamos previamente
aparecen como casos de uso del sistema.
• También observe cómo aparecen cuatro
actores, los cuales fueron identificados,
también previamente, relacionados con la
funcionalidad:
ο El Bibliotecario.
ο El Usuario.
ο El Sistema Bibliotecario.
ο El Sistema Financiero. Estos dos últimos
se refieren a actores que no son
personas.
• Ahora los actores interactúan con el sistema
Todos, en general, podemos escribir acerca de a través de los casos de uso. En este caso:
algo con propiedad, si logramos comprender ο El Bibliotecario interactúa con los casos
sobre lo que estamos escribiendo. Sobre la de uso de Registrar Préstamo y Registrar
especificación de los casos de uso estaremos Devolución.
hablando en la próxima Unidad de Aprendizaje. ο El Usuario lo hará a través de Consultar
Regresando nuestro ejemplo del sistema de Material Bibliográfico.
administración de préstamos de la biblioteca, ο El Sistema Financiero lo hará mediante
considerando los objetivos y funcionalidades el caso de Procesar Registros de
detalladas, nos sería fácil esbozar el siguiente Morosidad.
diagrama de casos de uso. ο El Sistema Bibliotecario apoyará los
procesos de Consulta de Material
Bibliográfico y Leer Datos Material.
Como resumen, podemos decir que los casos de
usos se visualizan en diagramas que contienen
comúnmente los siguientes elementos:
• Casos de Uso (CU)
• Actores
• Relaciones: entre Actores y Casos de Uso y
entre Casos de Uso.
RESUMEN DEL TEMA
Se dice que los casos de uso son algo así como “historias” de lo que ocurre en el sistema.
El sentido de afirmar que son historias, se debe a que éstos tienen la especificación de
lo que el usuario desea del sistema. Por lo tanto, es importante que quedemos con este
concepto: un caso de uso es la descripción de lo que el usuario desea del sistema.
El proceso de identificar casos de uso, puede apoyarse visualizándolos “espacialmente”.
En UML, lo anterior se logra mediante el desarrollo de un diagrama de casos de uso.
Ello puede ser un ejercicio en el cual, conforme se comienzan a identificar los actores,
los objetivos y las funcionalidades del sistema, se procede a plasmarlos gráficamente.
Un diagrama consiste en colocar en él los actores y los casos con los que éstos
interactúan
Por lo que, la forma como se visualizan o modelan los CUS, a través de los diagramas de
CUS, es una ayuda visual muy importante para entender, o poder plasmar el entorno
del sistema y las funcionalidades esperadas.
LA IDEA PRINCIPAL
En el modelado de los Casos de Usos del Sistema se visualizan los
CU, los actores y las relaciones.
UNIDAD 4 - TEMA 4
Relaciones entre
casos de uso
En el diagrama de CUS del ejemplo del tema Inclusión (“Include”)
anterior, sobre sistema de administración de Un caso de uso base incorpora explícitamente
préstamos de la biblioteca, se puede notar que el comportamiento de otro en algún lugar de su
algunos casos de uso se relacionan entre sí. secuencia.
Un primer tipo de relación se establece en el La relación de inclusión sirve para enriquecer
sentido de que, para poder realizar el objetivo un caso de uso con otro y compartir una
planteado para un caso de uso, necesita usarse funcionalidad común entre varios casos de uso,
otro objetivo. Este tipo de relación se denomina también puede utilizarse para estructurar un
“uses” (también conocida como “include”). caso de uso describiendo sus subfunciones. El
Véase en el diagrama varios ejemplos de ello. caso de uso incluido existe únicamente con ese
Uno de ellos puede ser el caso de que, para propósito, ya que no responde a un objetivo de
poder registrar un préstamo, necesita leerse un actor.
de cuál material bibliográfico se trata. Permite factorizar un comportamiento en un
Adicionalmente, puede existir otro tipo caso de uso aparte y evitar repetir un mismo
de relación en el cual, un caso de uso es la flujo en diferentes casos de uso.
especialización de otro. Por ejemplo, Registrar Esta relación se representan mediante
Devolución con Morosidad es, en esencia, lo una flecha discontinua con el estereotipo
mismo que Registrar Devolución, pero incluye <<include>>.
la capacidad de poder registrar un cargo de Algunos casos de uso típicos de inclusión
morosidad por una devolución tardía. Esta son: comprobar, verificar, buscar, validar,
relación se denomina “extends”. autentificar o login. En principio, no deberíamos
Realizar un diagrama de casos de uso nos abusar de este tipo de relación, para no hacer
ayuda a visualizar, tal y como se mencionó una descomposición funcional del sistema.
anteriormente, de qué forma los usuarios A partir de UML 1.3 la relación <<include>>
(actores) interactuarán con el sistema. reemplazó al denominado <<uses>>.
Veamos un ejemplo de inclusión entre casos de
uso.
Tipos de relaciones
Comunicación
Relación (asociación) entre un actor y un
caso de uso. El estereotipo de la relación de
comunicación es: <<communicate>> aunque
generalmente no se estipula ningún nombre,
como podemos apreciar en el siguiente ejemplo
de comunicación.
Extensión (“Extend”) Especialización y Generalización
Un caso de uso base incorpora implícitamente Un caso de uso (subcaso) hereda el
el comportamiento de otro caso de uso en el comportamiento y significado de otro, es decir
lugar especificado indirectamente por este otro las relaciones de comunicación, inclusión y
caso de uso. extensión del super-caso de uso.
Es una relación que amplía la funcionalidad de En muchas ocasiones este super-caso de uso es
un Caso de Uso mediante la extensión de sus abstracto y corresponde a un comportamiento
secuencias de acciones. parcial completado en el subcaso de uso, o
En el caso de uso base, la extensión se hace dicho de otra manera, los casos de uso “hijo”
en una serie de puntos concretos y previstos son una especialización del caso de uso “padre”.
en el momento del diseño, llamados puntos Veamos un ejemplo de generalización
de extensión, los cuáles no son parte del flujo
principal.
La relación de extensión sirve para modelar:
la parte opcional del sistema, un subflujo que
sólo se ejecuta bajo ciertas condiciones o varios
flujos que se pueden insertar en un punto
determinado.
Este tipo de relación produce confusión y no
debería utilizarse en exceso. Conviene su uso
sólo para insertar un nuevo comportamiento
no previsto en un caso de uso existente.
Estas relaciones se representan mediante
una flecha discontinua con el estereotipo
<<extend>>. Como podemos ver en este último ejemplo
Veamos un ejemplo de extensión: también pueden existir vínculos de
generalización o herencia entre actores.
Los actores especializados (Abogado y
Psicólogo) heredan los casos de uso del actor
general (Profesional). La punta de flecha
apunta al actor más general. Hay que reseñar
que los actores especializados pueden tener
otros casos de uso propios que no estarán
disponibles para los demás actores. Este
tipo de herencia entre actores si que se usa
frecuentemente puesto que nos simplifica
considerablemente el diagrama, nos ahorra
un número importante de relaciones de
En este ejemplo usamos la relación de comunicación entre actores y casos de uso
extensión entre los casos de uso Abrir acción y nos sirve para esclarecer visualmente la
de mejora y Resolver consulta. En este caso jerarquía entre actores del sistema.
tendremos el punto de extensión “resolución
retrasada” (en el caso de uso Resolver consulta) Las cuatro relaciones descritas anteriormente
debido a que cuando haya pasado un tiempo se pueden resumir en la siguiente tabla.
estipulado por la organización (por ejemplo 3
días laborales) se abrirá una acción de mejora
para dejar constancia del retraso y realizar
posteriormente las acciones pertinentes, de ahí
que digamos que el caso de uso Abrir acción de
mejora es una subfunción de uso que puede
extender al caso de uso Resolver consulta.
RESUMEN DEL TEMA
En el diagrama de CUS del ejemplo del tema anterior, sobre sistema de administración
de préstamos de la biblioteca, se puede notar que algunos casos de uso se relacionan
entre sí. Un primer tipo de relación se establece en el sentido de que, para poder
realizar el objetivo planteado para un caso de uso, necesita usarse otro objetivo. Este
tipo de relación se denomina “uses” (actualmente “include”). Uno ejemplo de ella, puede
ser el caso de que, para poder registrar un préstamo, necesita leerse de cuál material
bibliográfico se trata. Adicionalmente, puede existir otro tipo de relación en el cual,
un caso de uso es la especialización de otro. Por ejemplo, Registrar Devolución con
Morosidad es, en esencia, lo mismo que Registrar Devolución, pero incluye la capacidad
de poder registrar un cargo de morosidad por una devolución tardía. Esta relación se
denomina “extends”. Realizar un diagrama de casos de uso nos ayuda a visualizar, tal
y como se mencionó anteriormente, de qué forma los usuarios (actores) interactuarán
con el sistema. Por ello, muy importante saber distinguir que tipo de relación es la que
existe entre los CUS y entre los Actores y CUS, identificándolas de las acciones descritas
como necesarias para cumplir con las funcionalidades del sistema.
LA IDEA PRINCIPAL
Identificar y especificar bien los tipos de relaciones existentes entre actores y CUS
y entre los CUS.
UNIDAD 4 - TEMA 5
VALIDACIÓN DE REQUISITOS
¿Qué es validación de requisitos? Consistencia.
Ante todo es una actividad de Aseguramiento No debe haber restricciones o contradicciones
de Calidad de Software (SQA, siglas en inglés), entre unos requisitos y otros.
en particular de Control de Calidad. Completitud.
El objetivo principal de esta actividad es Deben estar todos los requisitos, debe incluir
comprobar que el sistema software descrito requisitos que definan todas las funciones y
por la especificación de requisitos del restricciones propuestas por el usuario del
sistema, a través del modelo de requisitos, sistema. Esto es imposible en un desarrollo
se corresponde con las necesidades de iterativo, pero, al menos, deben estar
negocio de clientes y usuarios, obteniendo su disponibles todos los requisitos de la iteración
aprobación y permitiendo generar una línea en curso.
base de los requisitos, para poder llevar a cabo Realismo.
la trazabilidad de los mismos. Se pueden implementar con la tecnología
En pocas palabras, la validación de requisitos actual, con el presupuesto y tiempo disponible.
es el proceso por el cual se determina si la Con esto validar el estudio de factibilidad inicial.
especificación de los mismos es consistente Verificabilidad.
con las necesidades del cliente. Tiene que existir alguna forma de comprobar
La validación de requisitos sirve para demostrar que cada requisito se cumple.
que éstos realmente definen el sistema que el La validación debe asegurar que cada
cliente desea. Asegura que los requisitos están especificación puede ser rastreada hasta su
completos, son correctos y consistentes. Debe requerimiento en el documento de definición y
garantizar que lo descrito es lo que el cliente viceversa, es decir, se chequea en la definición
pretende ver en el producto final. para ver si cada requerimiento es rastreable
Esta validación es importante porque la hasta la especificación.
detección de errores durante el proceso de
análisis de requisitos reduce mucho los costos
del producto software.
Si se detecta un cambio en los requisitos una
vez que el sistema está hecho, los costos son
muy altos, ya que significa volver a cambiar
el diseño, modificar la implementación del
sistema y probarlo nuevamente.
LA IDEA PRINCIPAL
La detección de errores durante el proceso de análisis de requisitos reduce
mucho los costos del software.
LECTURAS RECOMENDADAS
• Kendall, Kenneth E. y Kendall, Julie E. Análisis y Diseño de Sistemas. Pearson
Educación, México, 2011.
• https://www.academia.edu/37350338/Manual_de_Usuario_Rational_Rose
ACTIVIDADES Y EJERCICIOS
• Comprender y listar la captura de requisitos funcionales y no funcionales de un
sistema de ventas de una pollería.
• Elaborar el diagrama de los CUS de los requisitos funcionales del caso de
estudio anterior.
INTRODUCCIÓN ACTITUDES
Una vez se han diagramado los casos de • Tener la capacidad de administrar bien el
uso del sistema es necesario establecer una tiempo
especificación detallada de lo que hace cada • Puede adaptarse a ambientes de estudio
uno de éstos. Esa especificación consiste nuevos.
en indicar, los aspectos relevantes de los • Toma decisiones con respecto a opciones
casos de uso, sus flujos de trabajo básico curriculares.
y alternativo, sus pre y post condiciones.
Logrado este avance en la especificación, se TEMAS
consigue tener una mejor comprensión de lo
que debe realizar el sistema. Además, pueden
visualizarse cuáles son los casos de usos
críticos para el desarrollo, por su rol dentro del
1
TEMA
Especificación básica de
los casos de uso
sistema o por las complejidades que acarrea,
y, por lo tanto, cuáles son de mayor riesgo.
También es importante usar un diagrama de
comportamiento como el diagrama de actividad
2
TEMA
Especificación detallada
de los casos de uso
para modelar los casos de usos del sistema.
COMPETENCIA
Realiza la especificación textual y el diagrama
3
TEMA
Diagrama de actividad
de actividad de los casos de uso para completar
el modelo de casos de uso del sistema.
CAPACIDADES 4
TEMA
Elementos del diagrama
de actividad
• Realizar la especificación detallada de los
casos de usos
• Realizar un diagrama de actividades de
acuerdo a los flujos de la especificación de
5
TEMA
Diagramas de actividad de
los casos de uso
los CU.
UNIDAD 5 - TEMA 1
Especificación básica de los
casos de uso
En el proceso de definición de los casos de uso,
debe establecerse una especificación de lo que
hace cada uno de éstos.
Siguiendo con el ejemplo de la administración
de préstamos de la biblioteca, se desarrollará
una especificación básica de los casos de uso
involucrados en este sistema. Recordemos que
una especificación básica consiste en indicar,
en pocas palabras, aspectos relevantes de los
casos de uso.
Veámoslo en el siguiente ejemplo.
LA IDEA PRINCIPAL
Con la especificación básica de los CUS, pueden visualizarse
cuáles de ellos son los críticos para el desarrollo del sistema.
UNIDAD 5 - TEMA 2
Especificación detallada de los
casos de uso
La especificación básica anterior debería cerrar Elementos de una especificación detallada
un punto del proyecto en la cual ya podemos Booch y otros (2001), sugieren estructurar
tener resultados en cuanto a: la especificación de los casos de uso con los
• Identificar actores del sistema. siguientes elementos y detalles:
• Los objetivos. • Las condiciones previas que deben
• Las funcionalidades y comprender cada una cumplirse para que el caso de uso pueda
de ellas. ejecutarse.
No obstante, en mucho, la comprensión de un • Una secuencia o flujo básico, normalmente
trabajo de software debe ir convergiendo de lo ordenada y numerada de los pasos que se
general a lo específico. En ese sentido también dan dentro del caso de uso. El primer paso
podemos ir descubriendo detalles cada vez debería indicar cómo y cuándo empieza el
más importantes y reveladores del problema caso de uso. En cada paso deberá indicarse,
por solucionar. cuando sea conveniente, qué acciones
Es así como, en un segundo momento de no son permitidas y qué aspectos son
especificación de casos de uso, debemos responsabilidad del actor y cuáles son del
detallar, aún más, su especificación para: sistema. Veamos cómo terminan los casos
• Descubrir mayor información en cuanto de uso.
a las necesidades y consecuencias en el • Las acciones o flujos alternativos que
sistema de la ejecución de éstos. puedan ocurrir en la ejecución de los casos
• Intentar que proporcionen una guía de uso, producto de situaciones anómalas
para poder definir varios aspectos de la (excepciones) u otras consideraciones.
arquitectura y del proceso general de diseño • El estado en que queda el sistema y
e implementación del software. las acciones generadas en éste, como
Esta especificación es crucial en el contexto que consecuencia de la ejecución del caso de
estamos trabajando. Recordemos que el RUP uso (visto como condiciones posteriores).
es guiado por los casos de uso. Veamos a continuación como se describen estos
elementos en una plantilla de especificación
detallada de los casos de uso.
Para el caso de uso Registrar préstamo, del ejemplo que venimos trabajando, la especificación en
detalle quedaría en la plantilla como se muestra a continuación.
RESUMEN DEL TEMA
La comprensión de un trabajo de software debe ir convergiendo de lo general a lo
específico. En ese sentido también podemos ir descubriendo detalles cada vez más
importantes y reveladores del problema por solucionar.
Es así como, en un segundo momento de especificación de casos de uso, debemos
detallar, aún más, su especificación para descubrir mayor información en cuanto a las
necesidades y consecuencias en el sistema de la ejecución de esto y para proporcionar
una guía para poder definir varios aspectos de la arquitectura y del proceso general de
diseño e implementación del software.
La información de la especificación detallada de los casos de uso va, ciertamente,
logrando el mayor detalle de la descripción del caso de uso, haciendo resaltar controles,
responsabilidades del sistema y de los actores, así como condiciones que deben darse
previa y posteriormente al caso de uso.
Pero otro elemento poderoso de esta especificación detallada es que está escrita en
lenguaje natural, por lo que puede ser validado junto con el cliente del sistema.
LA IDEA PRINCIPAL
La especificación detallada de los CUS está escrita en lenguaje natural, por lo que
puede ser validada junto con el cliente.
UNIDAD 5 - TEMA 3
Diagrama de actividad
Los diagramas de actividad son usados para Desde un punto de vista conceptual, el
representar el comportamiento del sistema diagrama de actividad muestra cómo fluye el
o del negocio, mostrando sus actividades y control de unas clases a otras con la finalidad
procesos. de culminar con un flujo de control total que se
Estos diagramas modelan principalmente: corresponde con la consecución de un proceso
» Condiciones y flujos alternativos. más complejo.
» Tareas y procesos concurrentes En la siguiente figura se muestra un diagrama
» Responsabilidades sobre ciertas actividades de actividad típico, cuyos elementos serán
Se utilizan en análisis de negocio para capturar descritos en detalle en el siguiente tema.
procesos de alto nivel y para el análisis de
requisitos.
Son útiles para:
• Ilustrar un proceso de negocios o flujo de
trabajo entre los usuarios y el sistema.
• Demostrar la lógica de un algoritmo.
• Describir los pasos realizados en un caso de
uso (permiten describir como un sistema
implementa su funcionalidad).
• Simplificar y mejorar cualquier proceso
clarificando los casos de uso complicados.
• Modelar elementos de arquitectura de
software, tales como método, función y
operación.
Gráficamente un diagrama de actividad es un
conjunto de arcos y nodos que muestra el flujo
de actividad.
LA IDEA PRINCIPAL
Los Diagramas de Actividad son una herramienta gráfica para modelar
el proceso de un Caso de Uso.
UNIDAD 5 - TEMA 4
Elementos del diagrama de
actividad
Componentes de un diagrama de actividad
Actividad. Nodo Inicial.
Es la especificación de una secuencia de Un nodo inicial o de comienzo se describe por
comportamiento. un gran punto negro.
Muestra un rectángulo con las puntas
redondeadas adjuntando todas las acciones,
flujos de control y otros elementos que
constituyen la actividad.
Flujo de Control
Muestra el flujo de control de una acción a
otra. Su notación es una línea con una punta
de flecha.|
Nodo Final de flujo. Nodos de Bifurcación y Unión (Nodos de
Se describe como un círculo con una cruz sincronización).
dentro del mismo. Denota el final de un solo Tienen la misma notación: una barra
flujo de control. horizontal o vertical, si el flujo de control va de
arriba hacia abajo o de izquierda a derecha,
respectivamente.
Estos indican el comienzo y final de hilos
actuales de control.
Una unión sincroniza dos flujos de entrada y
produce un solo flujo de salida, el cual no se
puede ejecutar hasta que todos los flujos se
hayan recibido.
LA IDEA PRINCIPAL
Para poder realizar un diagrama de actividad es necesario conocer la
utilidad de cada uno de sus elementos.
UNIDAD 5 - TEMA 5
Diagramas de actividad de los
casos de uso
Tomemos, de nuevo, el ejemplo que Advierta también que se está estableciendo, en
corresponde al caso de uso de Registrar las excepciones del caso de uso, una específica
préstamo. Recordemos su descripción para el paso 1, la cual establece que: En el
detallada en el tema 3. paso 1, de comprobarse que el Usuario no
Note que en la descripción se establece una está registrado en la Biblioteca, el caso de uso
secuencia de cinco (5) pasos, en los cuales termina.
pueden inferirse actividades. Dado el conocimiento que tenemos ya del
Por ejemplo, en el paso 1 se indica que: “El Sistema, no solamente es el hecho que esté
caso de uso comienza cuando el Bibliotecario o no registrado en el Sistema, sino también
ingresa al Sistema la identificación del Usuario. que pueda estar moroso o no estarlo. Todo
El Sistema le indica si el Usuario es válido”. ello debe averiguarse en la siguiente actividad
Ahí podemos encontrar varios elementos que del proceso e, igualmente, debe hacerse una
nos pueden servir para nuestro diagrama comprobación que podría dar por terminado
de actividad. Por una parte, se establece la ejecución del caso de uso.
claramente un inicio y cuál actividad se ejecuta En otro caso se seguiría con la siguiente
primero (el caso de uso comienza cuando actividad descrita en el paso 3: obtener el
el Bibliotecario ingresa la identificación del código del material en préstamo usando el
Usuario). Por lo tanto, en un primer momento, lector código de barras.
podemos tener una construcción como la que Vamos a visualizar cómo iría resultando, hasta
sigue: este punto, nuestro diagrama de actividad.
LA IDEA PRINCIPAL
Un diagrama de actividad ayuda a documentar los casos de uso,
considerando todas las acciones que pueden darse en el mismo.
LECTURAS RECOMENDADAS
• Rumbaugh, James. El Lenguaje Unificado De Modelado. 2a. ed., 2006
• Paul Kimmel Manual de UML, Guía de Aprendizaje
ACTIVIDADES Y EJERCICIOS
1. Realizar la especificación en detalle, según plantilla, de los CUS de los requisitos
funcionales de un sistema de ventas de una pollería.
2. Realizar el diagrama de actividades de los CUS del punto anterior
INTRODUCCIÓN ACTITUDES
Los diagramas de secuencia son un tipo de • Los alumnos en educación a distancia
diagrama en UML, los cuales permiten modelar forman grupos heterogéneos en edad,
la interacción surgida a partir de un evento en intereses, ocupación, motivaciones,
el sistema, que desencadena un actor.
experiencias y aspiraciones.
Describen la interacción de objetos que
requiere la funcionalidad de los distintos • Están altamente motivados al logro.
escenarios de un Caso de Uso. Estos objetos
son representados con su ciclo de vida dentro TEMAS
de una serie temporal.
En la presente Unidad de Aprendizaje se
tratan temas sobre la utilidad de los diagramas
de secuencia dentro del modelado del
1
TEMA
modelado del
comportamiento
comportamiento en el tiempo de los casos
de uso del sistema y cómo se elaboran de los
casos de uso de un caso de estudio. 2
TEMA
Diagrama de
Secuencia de CUS
COMPETENCIA
Elabora los diagramas de secuencia para
comprender la utilidad de este artefacto dentro 3
TEMA
Elementos del diagrama
de secuencia
del modelo de comportamiento de los casos de
uso.
CAPACIDADES 4
TEMA
Cómo elaborar diagramas
de secuencia
• Elabora un diagrama de secuencia de
actividades de los casos de uso, útil para el
análisis y diseño del software 5 Elaborar diagramas de secuencia
de los CUS – Caso de estudio
• Comprende la importancia de los diagramas TEMA
LA IDEA PRINCIPAL
El modelado de la interacción del usuario es importante ya que
ayuda a identificar las necesidades de los usuarios.
UNIDAD 6 - TEMA 2
DIAGRAMA DE SECUENCIA DE CUS
Los diagramas de secuencia son parte Un diagrama de secuencia describe la
de la UML y se utilizan para modelar las interacción de objetos que requiere la
interacciones entre los actores y los objetos funcionalidad de los distintos escenarios de un
dentro de un sistema, muestran la secuencia Caso de Uso. Los objetos son representados
de interacciones que tienen lugar durante un con su ciclo de vida dentro de una serie
caso de uso en particular o un caso de uso de temporal. Cada posible escenario de un Caso
instancia. Los objetos y los actores involucrados de Uso puede representarse con un diagrama
están listados en la parte superior del diagrama, de secuencia.
con una línea de puntos trazada verticalmente En muchos casos se utiliza un diagrama
a partir de estos y las interacciones entre los de secuencia para ilustrar realizaciones de
objetos se indican mediante flechas anotadas. casos de uso, es decir, para mostrar cómo
Los diagramas de secuencia representan una interactúan los objetos para llevar a cabo el
interacción entre objetos de manera secuencial comportamiento de todo o parte de un caso de
en el tiempo. Muestran la participación de uso. Uno o más diagramas de secuencia pueden
objetos en la interacción entre sus “líneas de ilustrar las interacciones de objetos que llevan
vida” (desde que son instancias) y los mensajes a cabo un caso de uso. Una organización típica
que ellos organizadamente intercambian en el tiene un diagrama de secuencia para el flujo de
tiempo. El responsable o actor es quien inicia el sucesos principal y un diagrama de secuencia
ciclo interactuando inicialmente con la interfaz para cada subflujo independiente del caso de
de usuario, en seguida se inician todos los uso.
objetos que intervienen en el funcionamiento Es el tipo más común de diagrama de
de la secuencia. En este diagrama se comienza interacción que se centra en el intercambio de
a observar el comportamiento del sistema a mensajes entre líneas de vida (objetos).
partir de los eventos generados por los actores, Los diagramas de secuencia son especialmente
en ellos se interactúa con instancias, no con importantes para los diseñadores, puesto
clases. que aclaran los roles de los objetos de
un flujo, proporcionando así la entrada
básica para determinar las interfaces y las
responsabilidades de las clases.
A diferencia de un diagrama de comunicación,
un diagrama de secuencia incluye secuencias
cronológicas, pero no incluye relaciones de
objetos. Los diagramas de secuencia y los
diagramas de comunicación expresan una
información similar, pero de modos diferentes.
Los diagramas de secuencia muestran la
secuencia explícita de mensajes y resultan más
adecuados cuando lo importante es visualizar
el orden de tiempo de los mensajes. Cuando
le interesen las relaciones entre las instancias
de una interacción, utilice un diagrama de
comunicación.
Los diagramas de secuencia pueden ser En este curso de Diseño de Software,
referencias útiles para los desarrolladores, ya básicamente se trata el escenario de uso,
que se usan para: es decir, para el análisis de la lógica de cada
• Representa los detalles de un caso de uso escenario de los casos de uso del sistema.
en UML. Algunos ejemplos de diagramas de secuencia
• Modelar la lógica de una operación, una se muestran a continuación.
función o un procedimiento sofisticados.
• Ve cómo los objetos y los componentes Diagrama de secuencia para Ver la
interactúan entre sí para completar un información del paciente.
proceso.
• Planificar y comprender la funcionalidad
detallada de un escenario actual o futuro.
Los siguientes escenarios son ideales para usar
un diagrama de secuencia:
Escenario de uso: Un escenario de uso
es un diagrama de cómo se podría usar
potencialmente tu sistema. Es una excelente
manera de asegurar que has estudiado la lógica
de cada escenario de uso para el sistema.
Lógica del método: Al igual que utilizarías
un diagrama de secuencia UML para explorar
la lógica de un caso de uso, puedes usarlo
para explorar la lógica de cualquier función,
procedimiento o proceso complejo.
Lógica de servicio: Si consideras que un
servicio es un método de alto nivel empleado
por diferentes clientes, un diagrama de
secuencia es una forma ideal de trazarlo. Diagrama de secuencia para la transferencia
de datos.
RESUMEN DEL TEMA
Los diagramas de secuencia son parte de la UML y se utilizan para modelar las
interacciones entre los actores y los objetos dentro de un sistema, muestran la
secuencia de interacciones que tienen lugar durante un caso de uso en particular o
un caso de uso de instancia. Los objetos y los actores involucrados están listados en la
parte superior del diagrama, con una línea de puntos trazada verticalmente a partir de
estos y las interacciones entre los objetos se indican mediante flechas anotadas.
Los diagramas de secuencia, comúnmente utilizados por los desarrolladores, modelan
las interacciones entre los objetos en un solo caso de uso.
Ilustran la forma en que las diferentes partes de un sistema interactúan entre sí para
llevar a cabo una función, y el orden en que se producen las interacciones cuando se
ejecuta un caso de uso concreto.
En palabras más sencillas, un diagrama de secuencia muestra diferentes partes de un
sistema trabajando en una “secuencia” para conseguir algo.
Los diagramas de secuencia son especialmente importantes para los diseñadores,
puesto que aclaran los roles de los objetos de un flujo, proporcionando así la entrada
básica para determinar las interfaces y las responsabilidades de las clases.
A diferencia de un diagrama de comunicación, un diagrama de secuencia incluye
secuencias cronológicas, pero no incluye relaciones de objetos. Los diagramas de
secuencia y los diagramas de comunicación expresan una información similar, pero
de modos diferentes. Los diagramas de secuencia muestran la secuencia explícita de
mensajes y resultan más adecuados cuando lo importante es visualizar el orden de
tiempo de los mensajes. Cuando le interesen las relaciones entre las instancias de una
interacción, utilice un diagrama de comunicación.
LA IDEA PRINCIPAL
El diagrama de secuencia es una técnica para modelar en una línea de
tiempo, el comportamiento de los casos de uso.
UNIDAD 6 - TEMA 3
ELEMENTOS DEL DIAGRAMA DE SECUENCIA
Un diagrama de secuencia está estructurado de Línea de vida de elemento de entidad
tal manera que representa una línea de tiempo Una línea de vida con un elemento de entidad
que comienza en la parte superior y desciende representa los datos del sistema. Por ejemplo,
gradualmente para marcar la secuencia de en una aplicación de servicio al cliente, la
interacciones. Cada objeto tiene una columna y entidad Cliente gestionaría todos los datos
los mensajes intercambiados entre ellos están relacionados con un cliente.
representados por flechas.
Para comprender qué es un diagrama de
secuencia y cómo hacerlos, se debe estar
familiarizado con sus símbolos y componentes.
Los diagramas de secuencia están formados
por los siguientes elementos e íconos:
• Mensaje de retorno
Flechas de Mensajes Un mensaje de retorno se utiliza para indicar
Una flecha desde el Llamador de Mensajes que el receptor del mensaje ha terminado
hasta el Receptor de Mensajes especifica un de procesar el mensaje y está devolviendo el
mensaje en un diagrama de secuencia. control al objeto que llama el mensaje. Los
Un mensaje puede fluir en cualquier dirección; mensajes de retorno son piezas de notación
de izquierda a derecha, de derecha a izquierda opcionales, ya que una barra de activación que
o de vuelta al propio llamador de mensajes. se dispara por un mensaje sincrónico siempre
Mientras que en la flecha se puede describir el implica un mensaje de retorno.
mensaje que se está enviando de un objeto a Consejo: Puede evitar que sus diagramas se
otro, con diferentes puntas de flecha se puede desordenen minimizando el uso de mensajes
indicar el tipo de mensaje que se está enviando de retorno, ya que el valor de retorno puede
o recibiendo. especificarse en la propia flecha del mensaje
La flecha del mensaje viene con una descripción, inicial.
que se conoce como firma del mensaje, en ella.
El formato de la firma de este mensaje es el
siguiente. Todas las partes excepto el nombre
de mensaje son opcionales.
atributo = nombre_de_mensaje (argumentos):
tipo_retorno
• Mensaje sincrónico
Como se muestra en el ejemplo de las barras
de activación, un mensaje sincrónico se utiliza
cuando el emisor espera a que el receptor
procese el mensaje y vuelva, antes de continuar
con otro mensaje. La punta de la flecha
utilizada para indicar este tipo de mensaje es
sólida, como la que se muestra a continuación.
• Mensaje de creación del participante • Mensaje reflexivo
Los objetos no viven necesariamente durante Cuando un objeto se envía un mensaje a sí
toda la duración de la secuencia de eventos. Los mismo, se llama mensaje reflexivo. Se indica
objetos o participantes pueden ser creados de con una flecha de mensaje que comienza
acuerdo con el mensaje que se está enviando. y termina en la misma línea de vida como se
La anotación de la casilla de participante muestra en el ejemplo a continuación.
eliminado puede utilizarse cuando se necesita
mostrar que el participante en particular
no existía hasta que se envió la llamada de
creación. Si el participante creado hace algo
inmediatamente después de su creación, debe
añadir un cuadro de activación justo debajo del
cuadro del participante.
• Comentario
Los diagramas UML generalmente permiten la
anotación de comentarios en todos los tipos
de diagramas UML. El objeto del comentario es
un rectángulo con una esquina doblada como
se muestra a continuación. El comentario se
puede vincular al objeto relacionado con una
línea de puntos.
LA IDEA PRINCIPAL
Conocer el uso de cada elemento del diagrama de secuencia para
su correcta diagramación.
UNIDAD 6 - TEMA 4
CÓMO ELABORAR DIAGRAMAS DE SECUENCIA
Un diagrama de secuencia tiene dos En la siguiente figura, observaremos un
dimensiones, el eje vertical representa el ejemplo básico de un diagrama de secuencia,
tiempo y el eje horizontal los diferentes objetos. donde se representa la interacción entre el
El tiempo avanza desde la parte superior del actor Bibliotecario y el Sistema de Préstamo
diagrama hacia la inferior. Normalmente, Bibliotecario.
en relación al tiempo solo es importante la
secuencia de los mensajes, sin embargo, en
aplicaciones de tiempo real se podría introducir
una escala en el eje vertical. Respecto a los
objetos, es irrelevante el orden en que se
representan, aunque su colocación debería
poseer la mayor claridad posible.
Cada objeto tiene asociados una línea de vida
y focos de control. La línea de vida indica el
intervalo de tiempo durante el que existe ese
objeto. Un foco de control o activación muestra
el periodo de tiempo en el cual el objeto se
encuentra ejecutando alguna operación, ya sea
directamente o mediante un procedimiento
concurrente.
En la figura anterior se notan los elementos de ¿Cómo estos interactúan? Ellos lo hacen
un diagrama de secuencia. mediante mensajes, que se representan por
En primer lugar, a la izquierda, encontramos un medio de una flecha que parte del actor y tiene
actor, tal como lo hemos visto en el diagrama su llegada en el sistema.
de casos de uso. Específicamente vemos, en Ese mensaje tendrá un nombre y los que se
este caso, a un Bibliotecario que es actor de dirigen de izquierda a derecha (las entradas), se
nuestro sistema de préstamo bibliotecario. grafican con un trazo continuo. Los que van en
Seguidamente vemos una caja, con el nombre el sentido inverso (las respuestas del sistema),
Sistema. Al estar subrayado en este tipo de tendrán un trazo discontinuo.
diagrama, significa que se está tratando con Los mensajes se hacen en secuencia, de ahí el
una instancia, o bien, con un objeto Sistema. nombre de este tipo de diagrama: los mensajes
Deberá existir un concepto o una clase llamada se ejecutan en orden, de arriba hacia abajo.
Sistema en el contexto de la solución que está Con un poco más de detalle se puede visualizar,
desarrollándose. en la siguiente figura, el diagrama de secuencia
Debajo del actor Bibliotecario y del objeto para el caso de uso: Prestar un ejemplar del
Sistema “caen” unas líneas. Tales líneas podrán sistema de préstamos de una biblioteca.
sustentar las interacciones que se tendrá entre
el actor y el sistema.
RESUMEN DEL TEMA
Un diagrama de secuencia tiene dos dimensiones, el eje vertical representa el tiempo
y el eje horizontal los diferentes objetos. El tiempo avanza desde la parte superior del
diagrama hacia la inferior. Normalmente, en relación al tiempo solo es importante
la secuencia de los mensajes, sin embargo, en aplicaciones de tiempo real se podría
introducir una escala en el eje vertical. Respecto a los objetos, es irrelevante el orden
en que se representan, aunque su colocación debería poseer la mayor claridad posible.
Cada objeto tiene asociados una línea de vida y focos de control. La línea de vida indica
el intervalo de tiempo durante el que existe ese objeto. Un foco de control o activación
muestra el periodo de tiempo en el cual el objeto se encuentra ejecutando alguna
operación, ya sea directamente o mediante un procedimiento concurrente.
Se explica con un ejemplo del caso de estudio que se ha seguido en el libro, los pasos
necesarios para elaborar un diagrama de secuencia.
Hay pasos de identificación de actores y objetos, sus activaciones en las líneas de vida
y secuencia de mensajes manejados entre ellos, que son necesarios para elaborar un
diagrama de secuencia de un CUS.
LA IDEA PRINCIPAL
Ejecución de los pasos necesarios para elaborar un diagrama de
secuencia de un CUS.
UNIDAD 6 - TEMA 5
ELABORAR DIAGRAMAS DE SECUENCIA DE
LOS CUS – CASO DE ESTUDIO
Los diagramas de secuencia son un tipo de La secuencia de pasos que se diagraman se
diagrama en UML, los cuales permiten modelar asemeja, en mucho, al escenario de un caso de
la interacción surgida a partir de un evento en uso.
el sistema que desencadena un actor. Esas Si nos fijamos en el escenario del caso de uso
interacciones pueden verse en distintos niveles de Registrar préstamo, podemos encontrar tal
de refinamiento. semejanza.
Veamos el nivel de refinamiento asociado a los El caso de uso comienza cuando el Bibliotecario
CUS, es decir, los diagramas de secuencia de ingresa al sistema la identificación del Usuario.
sistema. El Sistema le indica si el Usuario es válido.
En primer lugar, puede servir para ilustrar la El Sistema le indica, además, si el Usuario tiene
interacción entre el actor y el sistema, este algún registro de morosidad.
último visto como una caja negra: no se conoce Una vez comprobados los pasos anteriores,
mayor detalle de lo que ocurre a lo interno el Bibliotecario lee del Sistema Bibliotecario la
del sistema. Simplemente, se visualizan las información del material que va a prestarse, a
entradas y salidas que se dan en el contexto de través de un lector de código de barras.
lo que requiere hacerse por parte del actor. En ningún caso puede prestarse otra copia del
mismo material al mismo usuario, lo cual se
¿Qué podría darnos un insumo para comprueba por parte del Sistema cuando se
construir un diagrama de secuencia? hace esta lectura.
Nuevamente recurrimos a los casos de uso. El El Sistema indica si el material puede ser
escenario de un caso de uso muestra los pasos prestado solo para uso interno de la biblioteca y
que deben darse en esa interacción entre el el tiempo que puede ser prestado, en cualquier
actor y el sistema. El diagrama de secuencia lo caso.
componen varios elementos, ya descritos en El Bibliotecario registra el préstamo del material
temas anteriores. y el caso de uso termina.
Podemos, a partir de ello, comenzar a tener
una visión interesante de, por una parte,
documentar los casos de uso desde el punto
de vista de la interacción del sistema y, por
otra parte, comenzar a identificar una serie de
mensajes que pueden ir tomándose en cuenta
para crear algunas clases de diseño que más
adelante veremos.
A partir del escenario del caso de uso visto,
podemos replantear el diagrama tomando
como base la definición del escenario de
dicho caso y, además, ver otros aspectos del
diagrama.
Muy importante considerar que se trata Estos diagramas de secuencia son
de poner, dentro del diagrama, los pasos y relativamente sencillos, se pueden estructurar
acciones estipuladas dentro del escenario del a partir de los casos de uso y nos pueden
caso de uso. servir para identificar eventos del sistema que
Aprecie que en el diagrama anterior aparecen pueden darse en las clases de alguna capa
dos situaciones nuevas con respecto al o subsistema, dependiendo del patrón de
mostrado en el tema anterior. arquitectura que se use, por ejemplo, una capa
En primer lugar, se observa que el Sistema de interfaz en una arquitectura de n-capas.
se envía un mensaje a sí mismo. Allí se está
indicando que, por sí mismo, el sistema debe
verificar que un material solicitado por un
usuario de la biblioteca no esté previamente
prestado.
Por otra parte, observe algo importante: cuando
en un diagrama de secuencia usted halle
un rectángulo encerrando varios mensajes,
como sucede entre IngresaMaterialPréstamo
e IndicaCondicionesPréstamo, entonces nos
encontraremos en una serie de pasos que se
repiten, es decir, una iteración o ciclo.
RESUMEN DEL TEMA
Los diagramas de secuencia permiten modelar la interacción surgida a partir de un
evento en el sistema que desencadena un actor. Esas interacciones pueden verse en
distintos niveles de refinamiento.
En este caso de estudio se ve el nivel de refinamiento asociado a los CUS, es decir, los
diagramas de secuencia de sistema.
En primer lugar, puede servir para ilustrar la interacción entre el actor y el sistema,
este último visto como una caja negra: no se conoce mayor detalle de lo que ocurre a
lo interno del sistema. Simplemente, se visualizan las entradas y salidas que se dan en
el contexto de lo que requiere hacerse por parte del actor.
Para lograr el insumo para construir un diagrama de secuencia se recurre nuevamente
a los casos de uso. El escenario de un caso de uso muestra los pasos que deben darse
en esa interacción entre el actor y el sistema. El diagrama de secuencia lo componen
varios elementos, ya descritos en temas anteriores.
La secuencia de pasos que se diagraman se asemeja, en mucho, al escenario de un
caso de uso.
En este tema en particular, se analiza con un caso de estudio, el nivel de refinamiento
asociado a los CUS, es decir, sus interacciones a través de un diagrama de secuencia.
LA IDEA PRINCIPAL
Se analizan las interacciones entre objetos de un caso de uso, a
través de la elaboración de un diagrama de secuencia.
LECTURAS RECOMENDADAS
• Rumbaugh, James. El Lenguaje Unificado De Modelado. 2a. ed., 2006
• Paul Kimmel Manual de UML, Guía de Aprendizaje
ACTIVIDADES Y EJERCICIOS
1. Especificar y comprender cómo interactúan los objetos dentro de los
escenarios de los CUS
2. Elaborar un diagrama de secuencia de los CUS de un caso de estudio: sistema
de ventas de una pollería
INTRODUCCIÓN TEMAS
El modelado de análisis orientado a objetos
es una técnica de diseño, la cual se caracteriza
por la determinación y delegación de
responsabilidades. Cuando un objeto se hace
1
TEMA
Modelo de análisis
Orientado a objetos
responsable por acciones específicas, entonces
se espera cierto comportamiento de su parte.
Durante el análisis y el diseño del sistema,
el modelo de Casos de Uso se transforma,
mediante un modelo de análisis, en un modelo
2
TEMA
diagrama de clase
de análisis
de diseño, comenzando con las realizaciones
de casos de usos en clases de análisis.
COMPETENCIA
Comprende y elabora un diagrama de clases de
3
TEMA
Elementos de los diagramas
de clases de análisis
análisis para tener la primera aproximación al
modelo de diseño de software.
•
CAPACIDADES
Comprender cómo se realizan los casos de
4
TEMA
Realización de los CU en
clases de análisis
uso en las clases de análisis, como primera
aproximación a las clases de diseño
• Elaborar diagramas de clases de análisis.
ACTITUDES 5
TEMA
Elaborar diagramas de clases
de análisis – Caso de estudio
• Puede adaptarse a ambientes de estudio
nuevos.
• Los procedimientos institucionales son
propicios para sus gestiones.
UNIDAD 7 - TEMA 1
Modelo de análisis Orientado a objetos
Generalidades El modelo de análisis.
El modelado de análisis orientado a objetos Es una especificación detallada de los requisitos
es una técnica de diseño, la cual se caracteriza del sistema, que permite comprender de forma
por la determinación y delegación de más precisa los Casos de Usos descritos en el
responsabilidades. Cuando un objeto se hace modelo de requisitos.
responsable por acciones específicas, entonces Este modelo define un modelo de objetos, que
se espera cierto comportamiento. describe la ejecución de casos de uso, que sirve
El Modelado Orientado a Objetos es la como abstracción del modelo de diseño, como
construcción de modelos de un sistema por su primera aproximación.
medio de la identificación y especificación de En la metodología de desarrollo RUP, el modelo
un conjunto de objetos relacionados, que se de análisis puede ser considerado una fase de
comportan y colaboran entre sí de acuerdo a transición entre el modelo de casos de usos y el
los requerimientos establecidos para el sistema modelo de diseño de clases, tal como se ilustra
de objetos. en la siguiente figura.
LA IDEA PRINCIPAL
El modelo de análisis garantiza un conjunto de clases de
análisis que “realizan” los Casos de Usos.
UNIDAD 7 - TEMA 2
diagrama de clase 0E de análisis
Es uno de los diagramas principales de análisis Ejemplo introductorio.
y diseño para un sistema. Como instrucción a la conversión de un caso
En este diagrama se especifican la estructura de uso en un diagrama de clases de análisis
y las relaciones de las clases conceptuales del comencemos con el siguiente ejemplo.
sistema. Se desarrollará un videojuego educativo dirigido
Durante el análisis del sistema, el diagrama se a los niños basándose en el funcionamiento
desarrolla buscando una solución ideal. del sistema inmunológico del ser humano, con
Durante la fase de diseño, se puede modificar el objetivo de lograr que el niño mientras se
el mismo diagrama para satisfacer los detalles distrae este adquiriendo conocimientos sobre
de la implementación del software. el funcionamiento de su sistema inmunológico.
El desarrollo del videojuego se basa en
Clases de análisis. demostrar que a través de los videojuegos
Estas clases especifican los elementos de un también se puede adquirir conocimientos
modelo conceptual temprano para objetos educativos y proponer una alternativa para el
del sistema que tienen responsabilidades y aprendizaje.
comportamiento. El modelo de Casos de Uso se compone por
Representan las clases prototípicas del sistema, varios objetos que intervienen en los procesos
y son un primer paso en la descripción de las que un sistema es capaz de ejecutar, los
abstracciones principales que el sistema debe cuales se describen mediante la identificación
manejar. de casos de uso, identificación de actores y
Se pueden mantener durante el diseño, si descripción de los casos de uso. En la siguiente
se desea una visión general de alto nivel y figura, se representa los requisitos funcionales
conceptual del sistema. del videojuego mediante el diagrama de casos
Generan las principales abstracciones del de uso.
diseño del sistema: las clases de diseño y los
subsistemas del sistema.
Su objetivo:
Las clases de análisis se utilizan para capturar
los principales “grupos de responsabilidad” del
sistema, de acuerdo a cada uno de los casos
de uso, a través de tres tipos de clases, que se
describirán posteriormente.
Los diagramas de clases de análisis siempre
están asociados a una clase, a una operación
o a un caso de uso en particular, en este caso
están asociados a los casos de uso mostrados
anteriormente.
Ahora procederemos a realizar el diagrama de
clases de análisis del caso de uso “Iniciar Juego”.
LA IDEA PRINCIPAL
El diagrama de clases de análisis es uno de los diagramas
principales de análisis y diseño orientado a objetos.
UNIDAD 7 - TEMA 3
ELEMENTOS DE LOS DIAGRAMAS
DE CLASES DE ANÁLISIS
Los diagramas de clases de análisis son un
tipo de diagrama de clases UML, donde se
especifican los grupos de responsabilidad a
través de tres tipos de clases.
LA IDEA PRINCIPAL
Se capturan los principales grupos de responsabilidad del
sistema, con las clases: Interfaz, Control y Entidad.
UNIDAD 7 - TEMA 4
REALIZACIÓN DE LOS CU EN
CLASES DE ANÁLISIS
¿Qué se debe hacer para desarrollar los • Información referida. La clase potencial será
elementos basados en clases de un modelo útil durante el análisis sólo si la información
de análisis? Se deben identificar las clases de acerca de ella debe recordarse para que el
análisis. sistema pueda funcionar.
Identificación de clases de análisis • Servicios requeridos. La clase potencial
Examinar el enunciado del problema, haciendo debe tener un conjunto de operaciones
un “análisis gramatical”, sobre las narrativas identificables que puedan cambiar el valor
desarrolladas para el sistema que se va a de sus atributos de alguna manera.
construir y/o de los Casos de Uso. • Atributos múltiples. Durante el análisis
Las clases se determinan al reconocer cada de requisitos el enfoque debe estar en la
sustantivo. información “importante”; una clase con
Las clases se manifiestan en una de las un solo atributo puede, de hecho, ser útil
siguientes formas: durante el diseño, pero probablemente es
• Entidades externas: como, otros sistemas, mejor representarla como un atributo de
dispositivos, personas, que producen otra clase durante la actividad de análisis.
o consumen información que usará un Una vez identificadas las clases de acuerdo a
sistema. las formas y consideraciones mencionadas
• Cosas: por ejemplo, reportes, despliegues, anteriormente, las tenemos que clasificar
letras, señales, etc., que son parte del según las tres categorías de clases estudiadas
dominio de la información para el problema. anteriormente:
• Sucesos o eventos: como, una transferencia • Clase Interfaz.
de propiedad, que ocurren dentro del • Clase de Control.
contexto de la operación del sistema. • Clase Entidad.
• Roles: por ejemplo, gerente, ingeniero, Un ejemplo de aplicación de la realización de los
personal de ventas, etc., que desempeñan casos de uso en clases de análisis se describe a
personas que interactúan con el sistema. continuación.
• Unidades organizacionales: como, por Sistema de que permita el manejo de los
ejemplo, división, grupo, gerencia, etc., procesos de ventas de productos de una
relevantes para alguna aplicación. empresa.
• Sitios: como, el piso de manufactura o el Actores.
puerto de carga, etc., que establecen el
contexto del problema y la función global
del sistema.
• Estructuras: por ejemplo, sensores,
vehículos de cuatro ruedas, computadoras,
etc., que definen una clase de objetos o
clases de objetos relacionadas.
Para la selección de clases, que se deben
usar, cuando un analista considera cada
clase potencial, para incluirlas en el modelo
de análisis, se deben tener estas principales
consideraciones:
Casos de Usos agrupados en paquetes.
LA IDEA PRINCIPAL
Identificar las clases importantes de acuerdo a los casos de uso y sus
especificaciones, para categorizarla como clase de análisis.
UNIDAD 7 - TEMA 5
ELABORAR DIAGRAMAS DE CLASES DE
ANÁLISIS – CASO DE ESTUDIO
Caso – Financiera
La financiera de crédito “El truco S.A.”, financia en base al monto aprobado y al número de
la adquisición de vehículos (o refacciones) meses concedidos para pagar, recargando los
exclusivamente a sus asociados. El sueño de intereses y comisiones respectivas, efectuando
los directores de la financiera es ser la primera la adquisición del vehículo (o préstamo para
financiera del Perú. Para ello han planteado una la refacción) previa firma de los documentos
serie de Objetivos como tener una atención legales. El objetivo que se tiene es optimizar
personalizada a los socios, optimizar los procesos de créditos. Tienen una
los procesos de la financiera. meta de dar 20% más de crédito
Para ser socio se debe pagar que el año anterior.
una cuota de inscripción y para Los directivos en las entrevistas
solicitar un financiamiento, se describieron los requisitos
debe haber cotizado como que debería tener el nuevo
mínimo 3 meses, la cuota sistema.
de socio (cuota que se paga R1. El sistema ofrecerá a
solicite o no financiamiento los socios la posibilidad de
para vehículo). consultar vía web el estado
La inscripción como socio de cuenta de los créditos
se tiene que presentar los aprobados, saldos a la fecha
documentos personales del para cancelar. Para ello el socio
nuevo socio como DNI y datos ingresara su código de socio.
generales que son recepcionados por el R2. El encargado de recepción registrará
encargado de inscripción. La meta planteada es en el sistema los datos del nuevo socio.
que el proceso de inscripción demore un 10% R3. El encargado de crédito registrará en el
menos del tiempo actual. sistema la solicitud de adquisición.
A partir del 3er.mes, el socio podrá solicitar R4. Nuestro Sistema deberá ser instalado
el financiamiento para adquirir o refaccionar en nuestro servidor Web que manejará la
un vehículo, presentando una solicitud de seguridad de acceso para los socios y los
adquisición con sus datos y los datos del empleados.
vehículo, tales como costo, marca, modelo, R5. El sistema deberá ser desarrollado en PHP
año de fabricación, etc. Esta información es y como gestor de base de datos MySql.
presentada al encargado de crédito. De igual R6. El encargado de crédito ingresará al
modo debe adjuntar los documentos legales sistema el cronograma de pago por cada
de la compra venta del vehículo, dicha solicitud crédito aprobado.
es aprobada o desaprobada en el comité Se deben realizar las siguientes actividades de
directivo. análisis de requisitos:
Si la solicitud fue aprobada, el área de créditos • Determinar requisitos funcionales y
(apoyados por el área legal) elabora los requisitos no funcionales.
documentos del crédito, evacuando entre otros • Diagrama de Casos de Uso
el cronograma de pagos, el cual está elaborado • Diagramas de Clases de Análisis.
Requisitos Funcionales Diagrama de Casos de Usos del Sistema
CUS:
• CUS01: Registrar socio (Pagar de cuota de
inscripción).
• CUS02: Pagar cuota de socio.
• CUS03: Registrar solicitud de financiamiento.
• CRU04: Aprobar crédito (Registrar
cronograma de pagos)
• CUR05: Consultar estado de cuenta.
Actores:
• Socio
• Encargado de recepción
• Encargado de crédito
Requisitos No Funcionales
LA IDEA PRINCIPAL
Se asignan las responsabilidades de los Casos de Uso a las Clases de Análisis con
un caso de estudio.
LECTURAS RECOMENDADAS
• Kendall, Kenneth E. y Kendall, Julie E. Análisis y Diseño de Sistemas. Pearson
Educación, México, 2011.
• https://www.revistaespacios.com/a13v34n01/13340108.html
ACTIVIDADES Y EJERCICIOS
1. Explicar cómo obtienen las clases de análisis que realizan los Casos de Usos, a
las cuales se le asignan las responsabilidades de los CUS.
2. Elaborar los diagramas de clases de análisis de los CUS de un caso de estudio:
sistema de ventas de una pollería.
INTRODUCCIÓN ACTITUDES
Conforme hemos ido avanzando en el • Tiene habilidades para administrar su
desarrollo de nuestro modelo, se han ido tiempo y organizarse.
incorporando elementos importantes bajo el • Tener la capacidad de pensar y trabajar
paradigma de la orientación a objetos. Derivado independientemente.
de los conceptos identificados en los casos • Realiza aprendizaje de valores.
de uso, hemos encontrado los insumos para
desarrollar el modelo conceptual o modelo TEMAS
de dominio, reconociendo, precisamente,
conceptos claves en el entorno del problema al
1
que buscamos dar una solución.
Tales conceptos iniciales evolucionan en su Modelo de Dominio
modelado bajo un análisis más detallado:
TEMA
se comienzan a identificar posibles clases
conceptuales, las colaboraciones entre ellas
vistas como relaciones, la multiplicidad de
cada relación, las especificaciones de clases,
la identificación de jerarquías de herencia,
la definición de atributos y operaciones. Se
2
TEMA
Cómo realizar un Modelo
de Dominio
incorporan nuevos casos de uso en el análisis
de algunas situaciones del modelo y lo
enriquecemos. Marcamos un hito en nuestro
avance: logramos obtener un modelo de clases
conceptuales consistente, que pueda apoyar
3
TEMA
Identificar las Clases
Conceptuales
los casos de uso.
COMPETENCIA
Realiza el diagrama de clases conceptuales para 4
TEMA
Añadir Atributos de Clases y
Relaciones entre Clases
lograr el diseño lógico estructural del modelo
de dominio del sistema.
CAPACIDADES 5
TEMA
Diagrama de clases de
dominio – Caso de estudio
• Realizar el diseño lógico del modelo de
dominio, basado en las clases de dominio
del sistema, con sus atributos.
UNIDAD 8 - TEMA 1
Modelo de Dominio
EL Modelo de Dominio o Modelo de Negocio Según Larman (2002): “Un modelo de dominio es
está en el dominio del problema, por lo tanto, una representación de las clases conceptuales
es independiente de la solución de software. del mundo real, no de componentes software.
Es el modelo resultante del análisis de los No se trata de un conjunto de diagramas que
requisitos, donde los conceptos se llevan a describen clases software, u objetos software
clases, a las que se le añaden sus atributos, con responsabilidades.”
relaciones de asociación con otras clases y la Recordemos que, en general, nos estamos
multiplicidad de dicha relación. enfrentando a un proceso evolutivo de
Un modelo de dominio muestra las clases definición de software. Los modelos que
conceptuales significativas en un dominio del desarrollemos a través de diagramas UML irán
problema, por lo que se basa en el Diagrama entrando en mayor detalle conforme pasan las
de Clases de Dominio o Clases Conceptuales. iteraciones en las fases del RUP.
En UML se utilizan los diagramas de clases para Según la metodología de desarrollo de software
representar los modelos de dominio. RUP, que hemos trabajado en el curso, el
Su utilidad radica en ser una forma de modelo de diseño, basado en clases, se realiza
“inspiración” para el diseño de los objetos de los casos de uso del sistema, usando
software. Adicionalmente, es la entrada para también las clases de análisis, identificadas en
muchos de los artefactos que se construyen el modelo de análisis, con algún otro artefacto,
en un proceso de desarrollo de software. Es el que también hemos trabajado en este libro,
artefacto clave del análisis y diseño orientado a tal como, el diagrama de secuencia. Esto se
objetos. representa en las siguientes dos figuras.
Un Modelo de Dominio es un artefacto de la
disciplina de análisis, construido con las reglas
de UML durante la fase de concepción, en la
tarea construcción del modelo de dominio,
presentado como uno o más diagramas de
clases y que contiene, no conceptos propios
de un sistema de software sino de la propia
realidad física.
El modelo de dominio puede utilizarse para
capturar y expresar el entendimiento ganado
en un área bajo análisis como paso previo al
diseño de un sistema, ya sea de software o
de otro tipo. Similares a los mapas mentales
utilizados en el aprendizaje, el modelo de
dominio es utilizado por el analista como un
medio para comprender el sector de negocios
al cual el sistema va a servir.
El modelo de dominio puede ser tomado
como el punto de partida para el diseño del
sistema. Esto es así ya que cuando se realiza la
programación orientada a objetos, se supone
que el funcionamiento interno del software
va a imitar en alguna medida a la realidad,
por lo que el mapa de conceptos del modelo
de domino constituye una primera versión del
sistema.
Cuando se sigue una aproximación centrada en
casos de uso, como RUP, el modelo de dominio
usa el modelo de análisis de los casos de uso,
en la identificación de las clases conceptuales.
RESUMEN DEL TEMA
El Modelo de Dominio es el modelo que resulta del análisis de los requisitos, donde
los Conceptos se llevan a Clases, a las cuales se le añaden sus atributos, relaciones de
asociación con otras clases y la multiplicidad de dicha relación.
Un Modelo de Dominio muestra las clases conceptuales significativas en un dominio
del problema, por lo que se basa en el Diagrama de Clases de Dominio o Clases
Conceptuales. En UML se utilizan los diagramas de clases para representar los modelos
de dominio.
El modelo de dominio puede utilizarse para capturar y expresar el entendimiento
ganado en un área bajo análisis como paso previo al diseño de un sistema, ya sea de
software o de otro tipo. Dicho modelo es utilizado por el analista como un medio para
comprender el sector de negocios al cual el sistema va a servir.
El modelo de dominio puede ser tomado como el punto de partida para el diseño del
sistema. Esto es así ya que cuando se realiza la programación orientada a objetos, se
supone que el funcionamiento interno del software va a imitar en alguna medida a
la realidad, por lo que el mapa de conceptos del modelo de domino constituye una
primera versión del sistema.
Cuando se sigue una aproximación centrada en casos de uso, como RUP, el modelo de
dominio usa el modelo de análisis de los casos de uso, en la identificación de las clases
conceptuales.
LA IDEA PRINCIPAL
Un Modelo de Dominio muestra las clases conceptuales
significativas en un dominio del problema.
UNIDAD 8 - TEMA 2
Cómo realizar un Modelo de Dominio
La esencia del análisis orientado a objetos es 3. Con las clases ubicadas en el diagrama de
la descomposición del problema en conceptos clases, se añaden los atributos de las clases,
individuales. Un modelo de dominio contiene necesarios para satisfacer los requisitos de
principalmente los conceptos y sus relaciones información.
que sean significativos en el dominio del
problema.
Un modelo de dominio tiene como:
Entrada:
• Descripción del problema.
• Casos de Uso.
Salida:
• Un conjunto de diagramas de clases.
A continuación, se presenta una guía básica de 4. Por último, se procede a añadir las
cómo hacer un modelo de Dominio, partiendo asociaciones necesarias para registrar las
del modelo de Casos de Uso y de modelo de relaciones que hay entre clases.
Análisis. En este caso al cliente lo colocamos como
1. Primeramente, hay que identificar las una subclase de la superclase persona, que
clases conceptuales (entidades) candidatas, podemos utilizar también para agrupar al
relacionadas con los requisitos actuales staff del restaurant, quedando por ahora,
en estudio (revisando los escenarios un diagrama de clases de dominio, con las
identificados en los casos de uso y/o las siguientes relaciones.
clases de análisis).
Por ejemplo, en un sistema de organización
de un restaurante, podemos considerar
al cliente y al restaurant como conceptos
importantes (clases conceptuales).
2. Luego, representar las clases en un modelo
de dominio, es decir, comenzar a generar
el diagrama de clases conceptuales que
formaran el modelo de dominio, también
conocido como modelo de negocio o
modelo lógico.
Del ejemplo anterior, se representas estas
clases en el diagrama de clases, como se
muestra en la siguiente figura.
El Modelo de Dominio es importante utilizarlo
como artefacto en un proceso de desarrollo de
software. Ahora describiremos una técnica que
se pueden usar para poderlo elaborar, usando
diagramas de actividad de un caso de uso.
Primero, hay que analizar los procesos de Siguiendo con el diagrama de actividades del
negocio y rescatar las entidades que se usan proceso de “Gestionar apertura de cursos”,
durante el proceso. Los procesos de negocio también nos podemos encontrar con la
se pueden modelar a través de diagramas de actividad “Crear grupo”. Analizando esta
actividad, y las actividades necesitan procesar actividad, podemos deducir que al crear un
datos. Los datos requeridos por las actividades grupo se estará asociando al curso registrado
que están estrechamente relacionados serán anteriormente y asignado posteriormente a un
parte de una entidad o concepto. docente.
Por ejemplo, en el diagrama de actividades Entonces, gracias al análisis del proceso de
de un proceso de “Gestionar apertura de negocio podemos ir elaborando parcialmente
cursos”, de un caso de estudio de un sistema el Modelo de Dominio, por ahora se han
que gestiona el dictado de cursos, existiría la descubierto tres entidades las cuales están
actividad “Registrar curso”, de esta actividad relacionadas o asociadas. La siguiente figura
podemos deducir que se necesitan datos como muestra el Modelo de Dominio Parcial de este
el nombre del curso y probablemente una caso de estudio.
descripción y algunos pre requisitos. En los siguientes temas, se explicarán con
Todos estos datos serán parte de la entidad más detalle, como se llevan a cabo cada uno
Curso, por tanto, se ha podido descubrir el de estos pasos para generar un Modelo
concepto Curso que es parte del dominio de de Dominio, como el que se muestra en la
problema. siguiente figura para un Sistema de Préstamos
en una Biblioteca.
RESUMEN DEL TEMA
La esencia del análisis orientado a objetos es la descomposición del problema en
conceptos individuales. Un Modelo de Dominio contiene principalmente los conceptos
y sus relaciones que sean significativos en el dominio del problema.
Un modelo de dominio tiene como Entrada; la descripción del problema y los Casos de
Uso, y como Salida; Un conjunto de diagramas de clases.
En este tema se presenta guía básica de cómo hacer un modelo de Dominio, partiendo
del Modelo de Casos de Uso y de Modelo de Análisis, que costa principalmente de los
siguientes 4 pasos:
1. Identificar las clases conceptuales (entidades).
2. Representar las clases en un modelo de dominio.
3. Añadir los atributos de las clases.
4. Añadir las asociaciones necesarias para registrar las relaciones que hay entre clases.
El Modelo de Dominio es importante utilizarlo como artefacto en un proceso de
desarrollo de software. Una técnica que se pueden usar para poderlo elaborar, consiste
en usar los diagramas de actividad de los casos de uso.
Primero, hay que analizar los procesos de negocio y rescatar las entidades que se usan
durante el proceso. Los procesos de negocio se pueden modelar a través de diagramas
de actividad, y las actividades necesitan procesar datos. Los datos requeridos por
las actividades que están estrechamente relacionados serán parte de una entidad o
concepto, que se convertirá en clase conceptual, a la que se le añadirá sus atributos
y se relacionará con otras clases conceptuales, para formar el diagrama de clases de
dominio.
LA IDEA PRINCIPAL
Guía básica de cómo hacer un Modelo de Dominio, partiendo del
Modelo de Casos de Uso y del Modelo de Análisis.
UNIDAD 8 - TEMA 3
Identificar las Clases Conceptuales
La esencia del análisis orientado a objetos es Por eso debemos comenzar a realizar esbozos
la descomposición del problema en conceptos de los conceptos alrededor del dominio del
individuales. problema que queremos modelar.
¿Qué es un concepto? Hay que comenzar la construcción de un
Informalmente: es una idea, una cosa u objeto. Modelo de Dominio haciendo una lista de
Formalmente: puede considerarse en términos conceptos candidatos. Existen dos técnicas
de: para ello:
• Símbolo: palabras o imágenes que • Lista de categorías de conceptos.
representan una clase conceptual. • Identificación de sustantivos.
• Definición del Concepto. Lista de categorías de conceptos.
• Extensión: conjunto de objetos que Consiste en repasar la lista de categorías de
pertenecen a la clase. conceptos, buscando los conceptos del dominio
Por ejemplo: Concepto Venta, descrito del problema que apliquen a cada categoría.
formalmente en la siguiente figura. Entre las principales categorías están las
siguientes:
Categoria de clase Ejemplos
Objetos tangibles o físicos Libro,Revista
especificaciones,diseños o especificacion del
descripciones de las cosas producto(copias de un libro)
lugares Biblioteca central, biblioteca de
sede, biblioteca de salud
transacciones Préstamo,devolucion de un
Un Modelo de Dominio contiene principalmente material
los conceptos y sus relaciones, que sean líneas de transaccion cada copia de material prestado
significativos en el dominio del problema: en una transacción de prestamo
LA IDEA PRINCIPAL
Para elaborar el modelo de dominio, se comienza con esbozos de los
conceptos alrededor del dominio del problema que queremos modelar.
UNIDAD 8 - TEMA 4
Añadir Atributos de Clases y Relaciones
entre Clases
Identificación de Atributos
Los atributos forman la parte estática de la
clase, un atributo representa una característica
de la clase, la cual debe dar una idea clara de la
unidad de información que representa.
Los valores del atributo establecen la diferencia
entre los objetos, por lo que, todo objeto debe
tener un atributo identificador irrepetible.
Un atributo debe nombrarse con un sustantivo
Ejemplos de atributos de clase:
claro y preciso, puede formarse por una o varias
palabras, deben ser escritas de forma continua,
utilizar letra minúscula en su redacción, y si
está compuesto por más de una palabra solo
la primera letra de cada palabra a partir de la
segunda debe escribirse en mayúsculas.
Los elementos que definen al atributo son:
Nombre, tipo de dato, valor inicial y
visibilidad
Su sintaxis es la siguiente:
Visibilidad nombre: tipodato = valorInicial Relaciones entre Clases
La visibilidad permite diferentes formas de Una asociación es una relación entre las
acceso a miembros de una clase: clases, que indica una conexión significativa
+ Público e interesante, se deben identificar las frases
# Protegido que relacionen los sustantivos (Clases), estas
- Privado relaciones se deben ir agregando al modelo.
Los atributos deben ser lo más simple posible. La asociación es inherentemente bidireccional y
Los atributos no primitivos deben ser es convencional leer la asociación de izquierda
representados como clases. Un atributo es no a derecha o de arriba hacia abajo.
primitivo si está conformado por secciones La asociación es una relación que indica algún
separadas, o por atributos internos o es una vínculo o conexión significativa entre dos
abstracción de uno o más tipos con las mismas clases, modelan la forma en que se relacionan
características. los objetos de las clases. Se representa a través
Por ejemplo: el atributo Dirección, podría ser de una línea continua entre clases, con un
atributo no primitivo porque puede dividirse en nombre, ver ejemplo siguiente.
Calle, Nro, Mzna, pero depende del significado
del concepto en el contexto en el que se
utilizará.
El atributo Distrito en el siguiente ejemplo,
tambien podría definirse como no primtivo o
compuesto, ya que puede dividerse en nombre
del distrito, código distrito, código postal.
Este último ejemplo se lee: El cliente emite
órdenes de compra.
Las relaciones contienen también una Composición
información de multiplicidad (cardinalidad) que Es una asociación con la semántica “compuesto
precisa el número de instancias que participan por/es componente de”, contiene un atributo
en la relación. Se debe incluir la multiplicidad que siempre será una colección.
entre las distintas asociaciones. La multiplicidad El ciclo de vida de un objeto B que es
indica cuántos atributos de una clase estarán en componente de un Objeto A, si depende de A.
otra, Se representa a través de una numeración Si A desaparece, B ya no tiene sentido de existir.
y se coloca en cada extremo de la asociación.
Veamos el siguiente ejemplo.
Generalización y Especialización
Los diferentes tipos de multiplicidad se
muestran en el siguiente cuadro. Ve La generalización identifica una relación de
herencia entre dos clases, es la relación de tipo
“A es un tipo de B”.
Agregación
Es una asociación con la semántica “formado
por/forma parte de”, que contiene un atributo
que siempre será una colección.
El ciclo de vida de un objeto B que forma
parte de un Objeto A, no depende de A. Si A
desaparece, B puede seguir existiendo.
Una clase es más específica que otra si todas
las instancias que la componen son a su
vez instancias de la otra clase. La clase más
especifica es una subclase de la otra clase.
Esta última, más general, recibe el nombre de
superclase.
La siguiente figura muestra ambas clases
así como la relación de generalización/
especialización que las une.
Ejemplo
El caballo es una especialización del équido,
que a su vez es una especialización del animal.
La zebra es otra especialización del équido.
El resultado es la jerarquía presentada en la
siguiente figura
RESUMEN DEL TEMA
Los atributos forman la parte estática de la clase, un atributo representa una
característica de la clase, la cual debe dar una idea clara de la unidad de información
que representa.
Los valores del atributo establecen la diferencia entre los objetos, por lo que, todo
objeto debe tener un atributo identificador irrepetible.
Una asociación es una relación entre las clases, que indica una conexión significativa e
interesante, se deben identificar las frases que relacionen los sustantivos (Clases), estas
relaciones se deben ir agregando al modelo.
Tanto los atributos de las clases conceptuales, como las asociaciones entre ellas, se
agregan al diagrama de clases para formar el Modelo de Dominio o Modelo Lógico.
LA IDEA PRINCIPAL
Los atributos de las clases conceptuales y las asociaciones entre ellas, se
agregan al diagrama de clases para formar el Modelo de Dominio.
UNIDAD 8 - TEMA 5
Diagrama de clases de dominio –
Caso de estudio
Caso de estudio: Sistema de Gestión de Logística de una Empresa
Uno de los Casos de Uso típico, de un
sistema como este, es Registrar Compras, ya
desarrollado en su modelo de clases de análisis
en el Tema 3 de la Unidad de Aprendizaje
anterior.
A este Caso de Uso se le deben agregar otros
Casos de Uso, para Registrar Proveedores
y Registrar Productos, que en conjunto
Luego, identificamos los atributos de las clases
generarían un diagrama de Clases de Análisis
Entidad, como se muestra a continuación.
como el que se muestra a continuación.
LA IDEA PRINCIPAL
Se realiza el Modelo de Dominio, una vez identificadas las
clases conceptuales, sus atributos y relaciones.
LECTURAS RECOMENDADAS
• Kendall, Kenneth E. y Kendall, Julie E. Análisis y Diseño de Sistemas. Pearson
Educación, México, 2011
• Paul Kimmel Manual de UML, Guía de Aprendizaje
• https://www.ediciones-eni.com/open/mediabook.
aspx?idR=704eaebf396f2da980a440d503309722
ACTIVIDADES Y EJERCICIOS
1. Identificar, a partir de los casos de uso, conceptos claves para la identificación y
desarrollo de clases conceptuales.
2. Indicar cómo se relacionan las clases entre ellas, identificando un nombre para
la relación y su multiplicidad.
3. Realizar el modelo conceptual de clases, a partir del análisis de un caso de
estudio: sistema de ventas de una pollería.
INTRODUCCIÓN CAPACIDADES
El objetivo del Modelo de Diseño Dinámico • Realizar el diseño del sistema a través
es presentar o describir el comportamiento del modelo dinámico que describe el
del sistema a través del tiempo. Dentro de los comportamiento del sistema.
elementos principales del modelo Dinámico • Realizar diagramas de secuencia y
está la Vista de Interacción, que la conforman comunicación.
los Diagramas de Secuencia y los Diagramas
de Comunicación (antes Colaboración), que TEMAS
estaremos describiendo en esta Unidad de
Aprendizaje.
1 diseño dinámico del Sistema
– Vista de Interacción
COMPETENCIA TEMA
•
•
Trabaja con metas bien definidas.
Tiene habilidades para administrar su
4
TEMA
Diagramas de comunicación
tiempo y organizarse.
• Tiene una perspectiva positiva hacia el
aprendizaje. 5
TEMA
Diagramas de comunicación
– Casos de estudio
UNIDAD 9 - TEMA 1
Diseño dinámico del Sistema –
Vista de Interacción
El objetivo del modelo dinámico es presentar Vista de Interacción
o describir el comportamiento del sistema a El objetivo de esta vista es describir el
través del tiempo. comportamiento dinámico del sistema
Los elementos principales del modelo Dinámico mediante el paso de mensajes entre los objetos
son: del mismo. Además, representa un medio para
verificar la coherencia del sistema mediante la
Vista de Interacción validación con el modelo de clases.
• Diagramas de Secuencia. Un diagrama de interacción describe en detalle
• Diagramas de Comunicación (antes un determinado escenario de un caso de uso.
Colaboración). En él se muestra la interacción entre el conjunto
de objetos que cooperan en la realización
de dicho escenario. Suele ser conveniente
Modelo de Máquina de Estados. especificar en la parte izquierda del diagrama
• Diagrama de Estados. el caso de uso que se está́ representando para
que resulte más sencilla su validación.
Vista de Actividades Los elementos que componen los diagramas
• Diagrama de Actividades. de interacción son los objetos y los mensajes:
La vista de Interacción la estaremos tratando Un objeto es una entidad que tiene un estado,
en esta Unidad de Aprendizaje y El Modelo un comportamiento e identidad. La estructura
de Máquina de Estado lo trataremos en la y el comportamiento común de diferentes
siguiente Unidad de Aprendizaje. objetos se recoge en una clase. En un diagrama
de interacción, los objetos serán al final
instancias de una determinada clase o de un
actor.
Un mensaje es una comunicación entre dos
objetos. El envío de un mensaje por parte de
un objeto (emisor) a otro (receptor), puede
provocar que se ejecute una operación, se
produzca un evento o se cree o destruya un
objeto.
Las interacciones entre las instancias de los
objetos en tiempo de ejecución.
Interacción: es la unidad de comportamiento
que se centra en el intercambio de información
observable entre elementos que pueden
conectarse.
En los diagramas de interacción los objetos
interactúan para realizar colectivamente
los servicios ofrecidos por las aplicaciones,
mostrando cómo se comunican los objetos en
una interacción.
Existen dos tipos de diagramas de interacción:
El Diagrama de Secuencia y el Diagrama de Comunicación
LA IDEA PRINCIPAL
Los objetos interactúan para realizar colectivamente las
funciones ofrecidas por las aplicaciones.
UNIDAD 9 - TEMA 2
DIAGRAMAS DE SECUENCIA
Los diagramas de secuencia muestran la Cuando el objeto/actor se encuentra activo
interacción entre los objetos centrándose en la se representa un rectángulo sobre la línea de
secuencia de mensajes que envían y reciben tiempo, tan grande como tiempo se encuentre
Un diagrama de secuencia se representa con activo.
un gráfico en dos dimensiones, el elemento Los cuadros de activación representan el
fundamental es una línea vertical que tiempo que un objeto necesita para completar
representa el eje del tiempo. En la dimensión una tarea.
horizontal se presentan los distintos roles de
actor u objetos presentes, cada uno de estos
tiene una línea que representa su línea de vida
representada por una línea punteada.
El diagrama de secuencia describe la interacción
de objetos que requiere la funcionalidad de los
distintos escenarios de un Caso de Uso.
Los objetos son representados con su ciclo de
vida dentro de una serie temporal.
LA IDEA PRINCIPAL
El diagrama de secuencia permite modelar de manera
dinámica el diseño del sistema.
UNIDAD 9 - TEMA 3
DIAGRAMAS DE SECUENCIA –
CASOS DE ESTUDIO
Ya en la Unidad de Aprendizaje 6 tratamos También se observa como el mensaje
el tema de los diagramas de secuencia en getEspecificación (id) que se convierte en
etapa de análisis de requisitos con los Casos el método getEspecificacion de la clase
de Uso del Sistema, es bueno aclarar que en CatalogoDeProductos en el modelo de clases
esta etapa de diseño, que estamos tratando, de diseño.
ya con las clases conceptuales identificadas, La asignación de estas responsibilidades en
donde pueden surgir nuevas clases, se vuelven sus respectivas clases se puede hacer por
a realizar los diagramas de secuencia de las experiencia o usando patrones de diseño para
clases de diseño, tal como se muestra en la la asignación de responsabilidades.
siguiente figura.
Ejemplos de aplicación
Un administrador de recursos usa el sistema
para asignar una habilidad a un recurso, y
Diagramas de secuencia en el modelo de cómo las clases del sistema trabajan juntos
diseño para proveer esta funcionalidad:
Un aspecto importante de utilizar diagramas 1. Los objetos al tope de la figura representan
de secuencia en la etapa de diseño, una vez se roles de clases; ellas se denominan así
ha obtenido el modelo de clases de dominio, es porque representan los objetos que
que, a través de los mensajes de los diagramas participan en la interacción
de secuencia, realizados en esta etapa de 2. Las líneas punteadas que se extienden
diseño, se pueden definir los métodos de las desde cada objeto representan líneas de
clases, asignandole así su comportamiento, vida, y los rectángulos ubicados sobre las
y por lo tanto, conviertiendolas en clase líneas de vida representan activaciones
de diseño. En otras palabras, las clases 3. Las flechas horizontales entre líneas de vida
descubiertas durante las realizaciones de los indican los mensajes intercambiados entre
casos de uso se pueden agrupar en el diagrama objetos, y son rotulados con el mensaje que
de clases de diseño, con sus responsabilidades es enviado entre los roles de clases.
o comportamientos (métodos). 4. Un mensaje dispara una operación en el
Lo anterior se puede observar en la figura objeto receptor.
mostrada anteriormente, donde, por ejemplo, 5. Un administrador de recursos usará la
el mensaje de creación del objeto Venta ventana del administrador de recursos,
enviado o llamado desde el objeto Registro, la cual es una interfaz para encontrar un
define el método crearNuevaVenta en la clase recurso, encontrar una habilidad y asignar
de diseño Registro. la habilidad al recurso
6. Dicha ventana encontrará un recurso que Ejemplo del diagrama de secuencia de una
usa un objeto de la clase Recurso, y una llamada telefónica
habilidad que usa un objeto de la clase
Habilidad
7. La ventana asignará una habilidad a un
recurso si la habilidad no está ya asignada
al recurso
8. Esta condición se representa entre
corchetes sobre el mensaje que origina
desde la línea de vida de la ventana al rol de
la clase Recurso-Habilidad
Con las especificaciones anteriores se elabora
el caso de uso Asignar Habilidad a Recurso.
LA IDEA PRINCIPAL
Los diagramas de secuencia se usan tanto en la etapa de análisis
de requisitos con en la etapa de diseño.
UNIDAD 9 - TEMA 4
DIAGRAMAS DE COMUNICACIÓN
Los diagramas de comunicación se centran En los diagramas de comunicación, los objetos
en las interacciones y en los enlaces entre los se muestran con conectores de asociación
objetos que colaboran. entre ellos. Los mensajes se agregan a las
Sólo se representa el rectángulo de la línea asociaciones y se muestran como flechas
de vida y los mensajes se colocan cerca de los cortas apuntando en la dirección del flujo del
enlaces. Se representan con una flecha y una mensaje. La secuencia de los mensajes se
etiqueta que contiene el nombre del mensaje y muestra a través de un esquema enumerado.
otra información adicional. Los siguientes diagramas muestran un
Un diagrama de comunicación es una forma de diagrama de comunicación y el diagrama de
representar interacción entre objetos, alterna secuencia que muestran la misma información.
al diagrama de secuencia, se centra en una A pesar de que es posible derivar la secuencia
representación espacial de los objetos. de mensajes en el diagrama de comunicación
Los objetos intervienen en el diagrama de la desde el esquema enumerado, no es
misma forma que lo hacían en el diagrama de inmediatamente visible.
secuencia. Este está unido gráficamente a los Lo que el diagrama de comunicación realiza es
objetos con los que interactúa. mostrar claramente el conjunto completo de
El marco en el que aparece el objeto se mensajes pasados entre objetos adyacentes.
denomina también línea de vida, como en el
diagrama de secuencia.
Los envíos de mensajes se sitúan a lo largo de
los vínculos entre objetos. Los mensajes deben
numerarse obligatoriamente, tal como se
muestra en la siguiente figura.
LA IDEA PRINCIPAL
En un diagrama de comunicación el foco principal es la
relación de objetos.
UNIDAD 9 - TEMA 5
DIAGRAMAS DE COMUNICACIÓN –
CASOS DE ESTUDIO
Sistema de Ventas
Los diagramas de comunicación se pueden Ejemplo del Caso de Uso Sacar Dinero de un
realizar sobre las clases de análisis, por cajero automático.
ejemplo, en este caso de gestión de facturas en
un sistema de ventas.
LA IDEA PRINCIPAL
Un diagrama de comunicación es una forma de representar
interacción entre objetos, centrado en su representación
espacial.
LECTURAS RECOMENDADAS
• http://www.omg.org/technology/uml/
• http://www.omg.org/technology/documents/formal
ACTIVIDADES Y EJERCICIOS
• Realizar el diagrama de secuencia de clases/objetos de un caso de estudio.
• Realizar el diagrama de comunicación de clases/objetos de un caso de estudio:
sistema de ventas de una pollería.
INTRODUCCIÓN ACTITUDES
Un diagrama de estado (también llamado • Ser un líder nato
diagrama de transición de estados o diagrama • Solucionadores de problemas.
de máquina de estados) muestra los estados • Realiza el aprendizaje de valores.
por los que pasa una máquina de estados • Ser un jugador en equipo
finitos, es decir, un modelo de comportamiento
que consiste en acciones y estados o
transiciones a otros estados. TEMAS
El diagrama proporciona un estado inicial y uno
1
final, así como al menos un estado intermedio
para cada objeto. diagrama de máquina de
Los diagramas de estados muestran el conjunto TEMA estado
de estados por los que pasa un objeto durante
su ciclo de vida, cuando se presentan diversos
eventos.
COMPETENCIA
2
TEMA
Elementos de diagramas de
máquina de estado
Realiza el modelo de máquina de estado
para conformar el diseño dinámico del
comportamiento del sistema.
CAPACIDADES
3
TEMA
Utilidad de los diagramas
de máquina de estado
• Identificar, a partir de los casos de uso,
•
elementos necesarios para hacer modelado
de estado de objetos.
Realizar e interpretar diagramas de máquina
4
TEMA
Diagramas de máquina de
estado – Casos de estudio
de estado en la etapa de diseño.
UNIDAD 10 - TEMA 1
diagrama de máquina de estado
Un diagrama de estado muestra los estados por paquete, el adeudo, el semáforo o el préstamo.
los que pasa una máquina de estados finitos, Es decir, se desarrolla un diagrama de estados
es decir, un modelo de comportamiento que por cada objeto a analizar. Claro que no todos
consiste en acciones y estados o transiciones a los objetos que identificamos merecen ser
otros estados. analizados tan a fondo como para crearles
El diagrama proporciona un estado inicial y uno uno de estos diagramas. Recuerda que no
final, así como al menos un estado intermedio queremos tener proyectos llenos de artefactos
para cada objeto. El diagrama de estado que no aportan valor, así que hay que ser muy
permite, de este modo, representar selectivos.
el ciclo de vida completo de No porque el objeto pueda
cualquier sistema, subsistema tener ocho posibles estados
o componentes o clases del significa que puede pasar
mismo, como podrían ser a cualquiera de ellos en
un lector de códigos, una cualquier momento.
factura de una venta o un Uno de los valores que
componente tecnológico ofrece este diagrama
de un avión. es precisamente que
No todos los proyectos establece las reglas para
requieren utilizar todos que el objeto, estando en
los artefactos de UML. un estado determinado,
Uno de los artefactos pueda pasar a otro. Por
que no veremos en todos ejemplo, si el semáforo está
los proyectos, es el diagrama en verde no debe de poder pasar
de estados. Sin embargo, esto no a rojo, sino únicamente a amarillo.
le resta importancia. En proyectos donde el Estos cambios y restricciones se muestran
comportamiento del sistema depende en con una flecha, que es el símbolo para las
gran medida del estado en que se encuentran transiciones entre estados.
los objetos de negocio, los diagramas de Si queremos indicar la causa por la cual se
estado son indispensables. Los diagramas de puede dar una transición de un estado a
estado permiten visualizar los estados de un otro, lo podemos indicar con un evento, con
objeto —ya sea éste un documento, producto una condición o con ambos. Un evento es
o persona—, los eventos ante los cuales algo que ocurre en el ambiente que afecta
reacciona y los efectos o acciones que realiza el comportamiento del objeto analizado
al cambiar de estado o mientras se encuentra ocasionando que cambie a un nuevo estado.
en un estado. Si una computadora está apagada y se oprime
Lo que convierte a estos diagramas en algo el botón de “Encendido”, la computadora pasa
especial y que lo liga con el paradigma de a un estado de “Arrancando”. Pulsar el botón
orientación a objetos, es que, en lugar de de encendido es el evento que ocasionó este
centrarse en un proceso completo, mostrando cambio. La mayoría de las veces vamos a
los diversos objetos que colaboran, este encontrar a estos elementos como verbos,
diagrama se centra únicamente en lo que pues es algo que ocurre y que afecta el
afecta a un objeto específico; por ejemplo, el comportamiento del objeto.
Un evento es una posible causa de que un La puerta puede estar en uno de los siguientes
objeto pase de un estado a otro, pero otra tres estados: “Opened”(Abierta), “Closed”
posible causa se debe al cumplimiento de (Cerrada) o “Locked”(Cerrada con llave), luego
una condición que afecta al objeto analizado. de su estado inicial.
Puede ser el hecho de que los atributos del Puede responder a cinco eventos: Crear
objeto analizado tomen cierto valor, o que (Create), Abrir (Open), Cerrar (Close), Cerrar con
haya pasado un lapso de tiempo. Ejemplo, si el llave (Lock) y No Cerrar con llave (Unlcak).
monto acumulado en la máquina dispensadora Tener en cuenta que no todos los eventos son
es igual al precio del producto deseado, válidos en todos los estados: por ejemplo, si
entonces pasa a un nuevo estado donde una puerta está abierta, no lo puede bloquear
permite seleccionar el producto a despachar. hasta que lo cierre.
La comparación del monto acumulado en un También tener en cuenta de que como una
momento en la máquina, contra el precio del transición de estado puede tener una condición
producto deseado puede considerarse como de guarda adjunta. Si la puerta está abierta,
una condición de guardia. Estas condiciones se esta solo puede responder al Evento cerrar si
muestran entre corchetes como expresiones la condición doorWay->isEmpty está completa.
booleanas junto a las transiciones. La sintaxis y las conexiones usadas en los
Hay causas, pero también consecuencias de los diagramas de máquina de estados se discutirán
cambios de estado, así como hay situaciones por completo en el siguiente tema.
que provocan el cambio de estado de un objeto,
también hay situaciones que se dan como
resultado de un cambio de estado. A estos
efectos se les llama acciones. Aunque tanto las
acciones como los eventos se muestran como
verbos, las acciones son consecuencia del
cambio y los eventos son causas del cambio.
En cualquier momento, un objeto se encuentra
en un estado particular, la luz está encendida o
apagada, el auto en movimiento o detenido, la
persona leyendo o cantando, etc. El diagrama
de máquina de estados UML captura esa
pequeña realidad.
Un diagrama de máquina de estado modela
el comportamiento de un solo objeto,
especificando la secuencia de eventos que un
objeto atraviesa durante su tiempo de vida en
respuesta a los eventos
Como ejemplo, el siguiente diagrama de
máquina de estado muestra los estados que
una puerta atraviesa durante su ciclo de vida.
RESUMEN DEL TEMA
Un modelo de comportamiento que consiste en acciones y estados o transiciones a
otros estados.
El diagrama proporciona un estado inicial y uno final, así como al menos un estado
intermedio para cada objeto. El diagrama de estado permite, de este modo, representar
el ciclo de vida completo de cualquier sistema, subsistema o componentes o clases del
mismo.
No todos los proyectos requieren utilizar todos los artefactos de UML. Uno de los
artefactos que no veremos en todos los proyectos, es el diagrama de estados. Sin
embargo, esto no le resta importancia. En proyectos donde el comportamiento
del sistema depende en gran medida del estado en que se encuentran los objetos
de negocio, los diagramas de estado son indispensables. Los diagramas de estado
permiten visualizar los estados de un objeto —ya sea éste un documento, producto o
persona—, los eventos ante los cuales reacciona y los efectos o acciones que realiza al
cambiar de estado o mientras se encuentra en un estado.
Lo que convierte a estos diagramas en algo especial y que lo liga con el paradigma
de orientación a objetos, es que, en lugar de centrarse en un proceso completo,
mostrando los diversos objetos que colaboran, este diagrama se centra únicamente
en lo que afecta a un objeto específico; por ejemplo, el paquete, el adeudo, el semáforo
o el préstamo.
Es decir, se desarrolla un diagrama de estados por cada objeto a analizar. Claro que
no todos los objetos que identificamos merecen ser analizados tan a fondo como para
crearles uno de estos diagramas. Recuerda que no queremos tener proyectos llenos de
artefactos que no aportan valor, así que hay que ser muy selectivos.
LA IDEA PRINCIPAL
Un diagrama de estado muestra los estados por los que pasa una máquina de estados
finito.
UNIDAD 10 - TEMA 2
Elementos de diagramas
de máquina de estado
Estados “Trigger” (Disparador) es la causa de la
Un estado se denota por un rectángulo con transición, la cual podría ser una señal, un
las esquinas redondeadas y con el nombre del evento, un cambio en alguna condición, o el
estado escrito dentro del mismo. pasaje de tiempo.
“Guard” (guarda) es una condición que debe
ser verdadera para que el disparador cause la
transición.
“Effect” (efecto) es una acción que se llamará
directamente en el objeto que tiene la máquina
de estado como resultado de la transición.
Estados Compuestos
Un diagrama de máquina de estado puede
incluir diagramas de sub maquinas, como en el
siguiente ejemplo.
Punto de Salida
Similar al Punto de Entada, es posible nombrar
Puntos de Salida. El siguiente diagrama provee
un ejemplo donde el estado ejecutado después
del estado de procesos principal depende de
que ruta se use para realizar la transición del
estado.
LA IDEA PRINCIPAL
Sintaxis y conexiones necesarias para diagramar la secuencia de estados de un
objeto durante su ciclo de vida.
UNIDAD 10 - TEMA 3
Utilidad de los diagramas de máquina
de estado
Al desarrollar un producto software, los
diagramas de estado pueden ayudar a visualizar
el ciclo de vida de cada objeto de forma clara
y comprensible. Aunque este diagrama solo
consta de unos pocos elementos, si se utiliza
correctamente, puede contribuir notablemente
al resultado final.
Un diagrama de estado UML (también llamado
diagrama de estado, diagrama de transición de
estados o diagrama de máquina de estados)
muestra los estados por los que pasa una
máquina de estados finitos, es decir, un modelo
de comportamiento que consiste en acciones y
estados o transiciones a otros estados.
El diagrama proporciona un estado inicial y uno
final, así como al menos un estado intermedio
para cada objeto.
El diagrama de estado permite, de este modo,
representar el ciclo de vida completo de
cualquier sistema, subsistema o componentes ¿Para qué sirve el diagrama de estado?
o clases del mismo, como podrían ser una Como ya hemos mencionado, el objetivo
máquina de café, un lector de libros electrónicos de los diagramas de estado es describir
o un componente tecnológico de un vehículo. el comportamiento de un sistema con la
máxima precisión. Entre otras cosas, esta
representación gráfica de los procesos debería
dar respuesta a las siguientes preguntas:
• ¿Qué sucede cuando el objeto está en un
estado concreto?
• ¿En qué estado debe estar el objeto para
cambiar de comportamiento?
• ¿Cuáles son los desencadenantes?
• ¿Qué propiedades debe tener el objeto para
poder cambiar de estado?
Por lo tanto, los diagramas de estado se utilizan
para optimizar cualquier proceso de desarrollo
donde sea útil visualizar los estados del objeto
y las condiciones para que se produzca la
transición de un estado a otro.
Suelen emplearse, por ejemplo, en el diseño
de sistemas embebidos (en inglés, embedded
systems), donde las señales automatizadas
y los procesos en segundo plano deben estar
perfectamente coordinados.
En este caso, el diagrama de estado ayuda a los En varios sectores de la industria, como
desarrolladores a visualizar todas las funciones el transporte o la tecnología sanitaria, los
de control y regulación más importantes en un diagramas de estado se utilizan para explicar
solo esquema. procesos complejos. También se emplean en
La función de interrupción de la toma de la ingeniería de requisitos y en la gestión de
agua que tienen casi todas las lavadoras productos y proyectos.
puede servirnos de ejemplo para imaginar un En la siguiente figura tenemos un diagrama de
diagrama de estado UML. En este contexto, estado para un ascensor, donde se combinan
esta función se representaría como un sistema los estados con las transiciones simples.
independiente. En este caso, el esquema
mostraría en qué estado y bajo qué condiciones
se activa la función.
RESUMEN DEL TEMA
Un diagrama de estado UML (también llamado diagrama de estado, diagrama de
transición de estados o diagrama de máquina de estados) muestra los estados por los
que pasa una máquina de estados finitos, es decir, un modelo de comportamiento que
consiste en acciones y estados o transiciones a otros estados.
Los diagramas de estado UML se utilizan para optimizar cualquier proceso de desarrollo
donde sea útil visualizar los estados del objeto y las condiciones para que se produzca
la transición de un estado a otro.
Suelen emplearse, por ejemplo, en el diseño de sistemas embebidos (en inglés,
embedded systems), donde las señales automatizadas y los procesos en segundo
plano deben estar perfectamente coordinados.
LA IDEA PRINCIPAL
En los diagramas de estado se visualizan los estados del objeto y las
condiciones para que se produzca la transición de un estado a otro.
UNIDAD 10 - TEMA 4
DIAGRAMAS DE MÁQUINA DE ESTADO –
CASOS DE ESTUDIO
Los diagramas de estado pueden aplicarse a Diagrama de estados de disponibilidad en
objetos de todo tipo. En el siguiente ejemplo, te calendario.
mostramos cómo incluir cada elemento en el Este ejemplo de diagrama de máquina de
diagrama de estado de una factura. Estos son estados muestra el proceso por medio del cual
los elementos más importantes de un diagrama una persona define una cita en su calendario.
de estado UML:
LA IDEA PRINCIPAL
Aplicación de la máquina de estado en el modelado del
comportamiento de las clases/objetos, dentro de diversos procesos
de negocio.
LECTURAS RECOMENDADAS
• https://sg.com.mx/content/view/365
• http://www.sparxsystems.com.ar/resources/tutorial/uml2_statediagram.php
ACTIVIDADES Y EJERCICIOS
1. Identificar, a partir de los casos de uso, elementos necesarios para hacer
modelado de estado de objetos.
2. Realizar diagramas de máquina de estados de clases/objetos de un caso de
estudio: sistema de ventas de una pollería.