Вы находитесь на странице: 1из 140

DISEÑO Y ARQUITECTURA DE SOFTWARE

Semana 1
Sesión 2 a 4

Diseño de Software basado en UML

Docente: Juan Alvites Huamaní


Logro de la Unidad:
El estudiante formula un informe descriptivo sobre los
requerimientos de un producto de software para las necesidades
de los Stakeholders, aplicando un lenguaje de modelado como
UML y un proceso de desarrollo en la herramienta IBM RSA;
definiendo la Visión del Negocio, modelo de casos de Uso y
prototipos visuales.
Importancia

El modelado del software usando la


metodología del UML es primordial
e importante para obtener un
software de calidad
Objetivo de la Sesión
Aprender los conceptos de
la metodología del UML

Contenido General

Contenido de la sesión:
 Parte I: Introducción a UML.
 Parte II: Introducción al Proceso Unificado.
Parte I:
Introducción a UML
PARTE I. CONTENIDO

1. Objetivos.
2. Introducción.
3. La Orientación a Objetos, OO.
4. El Lenguaje Unificado de Modelado.
(Elementos, Relaciones, Diagramas).
5. Cómo utilizar UML.
6. Bibliografía.
1. Objetivos:

1. Introducir los conceptos que maneja UML

2. Ser una útil toma de contacto con UML para

• Conocer sus posibilidades


• Decidir si incluirlo en el arsenal de desarrollo

3. Ser breve, conciso y no entrar en excesivos detalles

4. Describir cómo emplear UML en un proyecto

1.1. Objetivos
2. Introducción:

Problema: Actualmente, Software Grande y Complejo.


Demanda de interfaces más completas, funcionalidades
más elaboradas  Impacto en complejidad del producto.

Requisitos: Los programas deben poder ser mantenidos y


ampliados con garantías de éxito.

Solución: Estructuración, modelado.

2.1. Introducción
2. Introducción:

Ante problemas complejos  Divide y vence  Estructura

Modela

Modelar es diseñar y estructurar, antes de programar.


Sirve para visualizar un diseño y especificar su estructura
y comportamiento. Se abstraen los detalles del problema
complejo simplificando su desarrollo.

2.2. Introducción
2. Introducción:

UML es un lenguaje gráfico para: Modelar, diseñar,


estructurar, visualizar, especificar y documentar Software.

Proporciona vocabulario común a la cadena de producción.

Es un estándar para crear planos completos y no ambiguos.

Creado por el OMG y usado por NASA, ESA, EBI, W3C...

2.3. Introducción
3. La Orientación a Objetos, OO:

UML está muy cerca de este paradigma.

Objeto: Intuitivamente todo lo que tiene masa, aunque


también hay objetos no tangibles. En informática, definen
representaciones abstractas de entidades del mundo,
tangibles o no, con la intención de emularlas.

Objetos mudo real  Objetos informáticos

3.1. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Los objetos se caracterizan por su estado y comportamiento.

Estado: Situación en que se encuentra un objeto, tal que


cumple alguna condición/es particulares, realiza una
actividad o espera que suceda un acontecimiento.

Los objetos mantienen su estado en uno o mas atributos.

Atributo: Dato identificado por un nombre.

3.2. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Los objetos exhiben su comportamiento a través de métodos.

Método: Trozos de funcionalidad asociados al objeto.

Objeto  Conjunto de Atributos y Métodos

3.3. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Los objetos revelan su utilidad en un contexto de


comunicación con otros objetos, por medio del paso
de mensajes, para componer un sistema con un
comportamiento más complejo que el suyo propio.

3.4. La Orientación a Objetos


3. La Orientación a Objetos, OO:

El envío de mensajes es la forma en que se invoca los


comportamientos de un objeto (cada método define un
comportamiento).

La invocación de métodos permite a un objeto cambiar


su estado o el de otro objeto.

Los detalles internos del objeto quedan ocultos para los


Demás objetos  Encapsulación.

3.5. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Clase: Son patrones que definen qué atributos y qué métodos


son comunes a un conjunto de objetos, que pertenecen a dicha
clase.

Es más fácil de entenderlo si se toma tipo como equivalente.


Todos los objetos del mismo tipo comparten el mismo juego
de atributos y métodos y, por tanto, pertenecen a la misma
clase.

3.6. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Cada objeto tiene sus atributos y sus métodos, empleando una


clase como patrón. Una vez creado el objeto pasa a ser una
instancia particular de la clase a la que pertenece.

Dos objetos distintos de la misma clase pueden tener el


mismo valor en todos sus atributos. Estos atributos que
pueden variar de instancia a instancia se conocen como
variables de instancia.

3.7. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Hay atributos que no varían de una instancia a otra. Todas las


instancias de la clase tienen el mismo valor. Estos atributos
que no varían de instancia a instancia se conocen como
variables de clase.

De manera análoga hay métodos de instancia y métodos de


clase.

3.8. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Herencia: Los objetos se definen a partir de clases. Se puede


saber mucho de un objeto sabiendo a qué clase pertenece.
Las clases permiten su definición a partir de otras clases.
Esto permite definir una jerarquía de especialización. Una
Clase definida a partir de otra, hereda todos los atributos y
métodos de su clase ancestro. Las clases herederas pueden
sobrescribir los atributos y los métodos heredados y pueden
añadir nuevos.

3.9. La Orientación a Objetos


3. La Orientación a Objetos, OO:

La clase tomada como patrón


se conoce como Superclase o
clase padre, mientras que la
heredera se llama clase hija.

La jerarquía de herencia puede


ser todo lo profunda que sea
necesario. Una clase puede tener
varias clases como patrón.

3.10. La Orientación a Objetos


3. La Orientación a Objetos, OO:

Interfaces: Mecanismo que emplean dos objetos para


interactuar. Definen un conjunto de métodos para establecer
el protocolo en base al que interactúan dos objetos.

Interfaces  Protocolos

Las interfaces capturan similitudes entre clases no


relacionadas. Son clases a su vez.

3.11. La Orientación a Objetos


4. El Lenguaje Unificado de Modelado

4.1. El UML
4. El Lenguaje Unificado de Modelado:

UML es un lenguaje para modelar. Su vocabulario y sintaxis


están ideados para la representación conceptual y física de un
sistema.

Sus modelos son precisos, no ambiguos y se pueden trasladar


a una gran variedad de lenguajes de programación, como Java,
C++, visual basic, pero también a tablas de bases de datos
relacionales y orientadas a objetos.

4.2. El UML
4. El Lenguaje Unificado de Modelado:

Ingeniería directa: Es posible generar código a partir de


un modelo UML.

Ingeniería inversa: Es posible generar un modelo UML


a partir de la implementación.

En ambos casos se requiere mayor o menor supervisión,


en función de lo buenas que sean las herramientas usadas.

4.3. El UML
4. El Lenguaje Unificado de Modelado:

UML tiene tres bloques básicos de construcción, elementos,


relaciones y diagramas.

Elementos: Unidades básicas de construcción, cuatro tipos:


• Estructurales: Partes estáticas de los modelos,
representan aspectos conceptuales o materiales.
• De comportamiento: Partes dinámicas de los modelos,
representan comportamientos en el tiempo y espacio.
• De agrupación: Partes organizativas de los modelos.
• De Notación: Partes explicativas de los modelos.

4.4. El UML
4. El Lenguaje Unificado de Modelado:
Elementos estructurales:

Describe un conjunto de objetos que comparten los


mismos atributos, métodos, relaciones y semántica.
Las clases implementan una o más interfaces.
Clase

Se trata de una clase, en la que existe procesos o hilos


de ejecución concurrentes con otros elementos. Las
líneas del contorno son más gruesas que en la clase
“normal”.

Clase activa

4.5. El UML
4. El Lenguaje Unificado de Modelado:
Elementos estructurales:

Agrupación de métodos u operaciones que especifican


un servicio de una clase o componente, describiendo su
comportamiento, completo o parcial, externamente visible.
UML permite emplear un círculo para representar las
interfaces, aunque lo más normal es emplear la clase con
el nombre en cursiva.

Define una interacción entre elementos que cooperan


para proporcionar un comportamiento mayor que la
suma de los comportamientos de sus elementos.

4.6. El UML
4. El Lenguaje Unificado de Modelado:
Elementos estructurales:

Describe un conjunto de secuencias de acciones que un


sistema ejecuta, para producir un resultado observable
de interés. Se emplea para estructurar los aspectos de
comportamiento de un modelo.

Parte física y por tanto reemplazable de un modelo, que


agrupa un conjunto de interfaces, archivos de código fuente,
clases, colaboraciones y proporciona la implementación de
dichos elementos.

Elemento físico que existe en tiempo de ejecución y


representa un recurso computacional con capacidad de
procesar.

4.7. El UML
4. El Lenguaje Unificado de Modelado:
Elementos de comportamiento:

Comprende un conjunto de mensajes que se intercambian


entre un conjunto de objetos, para cumplir un objetivo
especifico.

Especifica la secuencia de estados por los que pasa un


objeto o una interacción, en respuesta a eventos.

4.8. El UML
4. El Lenguaje Unificado de Modelado:
Elementos de agrupación:

Se emplea para organizar otros elementos en grupos.

Elementos de notación:

Partes explicativa de UML, que puede describir


textualmente cualquier aspecto del modelo.

4.9. El UML
4. El Lenguaje Unificado de Modelado:
Relaciones: Abstracciones que actúan de unión entre los
elementos.
Es una relación entre dos elementos, tal que un cambio en uno
Dependencia puede afectar al otro.

Es una relación estructural que resume un conjunto de enlaces


que son conexiones entre objetos.
Asociación

Es una relación en la que el elemento generalizado puede ser


Generalización substituido por cualquiera de los elementos hijos, ya que
comparten su estructura y comportamiento.

Es una relación que implica que la parte realizante cumple con


una serie de especificaciones propuestas por la clase realizada
Realización
(interfaces).

4.10. El UML
4. El Lenguaje Unificado de Modelado:
Diagramas: Disponen un conjunto de elementos, que
representan el modelo desde distintas perspectivas.
UMLtiene nueve diagramas fundamentales, clasificados
en dos grupos, uno para modelar la estructura estática del
sistema y otro para modelar el comportamiento dinámico.

Diagramas estáticos: Clases, Objetos, componentes y


despliegue.

Diagramas dinámicos: Casos de Uso, secuencia,


colaboración, estados y actividades.

4.11. El UML
4. El Lenguaje Unificado de Modelado:
Diagrama de Clases:

Muestran un resumen del sistema


en términos de sus clases y las
relaciones entre ellas.

Las clases abstractas tienen su


nombre en itálica.Son interfaces.

Las flechas navegables son


asociaciones navegables que
expresan el sentido en que
se consultan los datos. El
Resto son asociaciones
bidireccionales.

4.12. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Clases:

Las relaciones pueden traer asociada una multiplicidad, expresada “en el lado opuesto” de
la relación. Resume el número de posibles instancias de una clase asociadas a una única
instancia de la clase en el otro extremo.

Multiplicidad Significado
1 Una única instancia
N/* N instancias
0..N / 0..* Entre ninguna y N instancias
1..N / 1..* Entre una y N instancias
0..1 Ninguna o una instancia
N..M Entre N y M instancias

4.13. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Clases:
En las relaciones de
dependencia un
cambio en la clase
dependida afectará la
clase dependiente.
Compartimentos de la clase: Acceso de atributos y métodos:
primero  nombre “+”  público
segundo  atributos “-”  privado (sólo los métodos),
tercero  métodos “#”  protegido (sólo clases hija).

Argumentos: nombre:tipo [=val] (, nombre:tipo[=val])*

Los atributos y métodos estáticos (de clase) se representan mediante un subrayado.


Los métodos pueden emplear el estereotipo <<static>>.

4.14. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Clases:

Relación de auto agregación. Un departamento puede estar


compuesto por varios sub departamentos, o ninguno, con la
restricción de que el mínimo número de personas en los sub
departamentos debe ser dos. En UML las restricciones se
expresan mediante llaves “{condicion a cumplir siempre}”.

Diagrama de Objetos:
Los diagramas de objetos son análogos a los de clases, con la particularidad de que en
lugar de encontrar clases, encontramos instancias de éstas. Son útiles para explicar partes
pequeñas del modelo en las que hay relaciones complejas

4.15. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Componentes:

Un componente es un módulo de código,


de modo que los diagramas de
componentes son los análogos físicos a los
diagramas de clases.

Muestran la organización y dependencias


de un conjunto de componentes. Cubren la
vista de implementación estática de un
sistema.

4.16. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Despliegue:

Los diagramas de despliegue sirven para modelar la configuración hardware del sistema,
mostrando qué nodos lo componen

4.17. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Casos de Uso:


Describen lo que hace el sistema desde el punto de vista de un observador externo.

Enfatizan el qué en lugar del cómo.

Plantean escenarios, lo que pasa cuando alguien interactúa


con el sistema. Proporcionan un resumen para una objetivo.

Los Actores son papeles que determinadas personas u


objetos desempeñan.

Las líneas que unen los Actores con los Casos de Uso
(óvalos) representan una asociación de comunicación.

4.18. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Casos de Uso:


Los Casos de Uso pueden explosionarse para describir en mayor profundidad.

“Carlos tuesta el pan en la tostadora,


después lo unta con mantequilla y
mermelada de fresa y se lo come,
posiblemente mojándolo en un café.”

“Carlos calienta leche, añade café


y azúcar al gusto y se lo bebe.”

Los Casos de Uso pueden acompañarse de texto que enriquezca el lenguaje gráfico.

4.19. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Casos de Uso:


frontera

estereotipo

generalización

Paralelo, orden irrelevante

4.20. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Secuencia:
Describen cómo los objetos del sistema colaboran.

Detalla cómo las operaciones se llevan a cabo en


términos de qué mensajes son enviados y cuando
(en torno al tiempo).
tiempo

Los corchetes expresan condición [condición].


Si son precedidos por “*”  iteración mientras.

Línea de vida obj.


Su vida termina.

Orden participación

4.21. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Secuencia:
Los rectángulos verticales son barras de activación. Representan la duración de la
ejecución del mensaje.

Mensaje asíncronos: El emisor puede enviar otros mientras éste está siendo procesado.
Es independiente a otros mensajes.

Mensaje síncronos: El emisor debe esperar que termine el tiempo de proceso de éste
para enviar nuevos mensajes.

Mensaje simple Mensaje simple Síncrono


puede ser síncrono de vuelta (opt) Asíncrono
o asíncrono

4.22. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Colaboración:
Son otro tipo de diagramas de interacción. Contienen la misma información que los
diagramas de secuencia, pero se centran en la responsabilidad de cada objeto en lugar
de en el tiempo en que los mensajes son enviados

Cada mensaje tiene un número de secuencia. El primer nivel comienza en 1, los


mensajes que son enviados durante la misma llamada a un método se numeran
1.1, 1.2 ... 1.i, tantos niveles como sea necesario.

4.23. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Estados:
Muestran los posibles estados en que puede encontrarse un objeto y las transiciones que
pueden causar un cambio de estado. El estado de un objeto depende de la actividad que
esté llevando a cabo o de alguna condición.
Circunstancia o condición inicio Resultado de
que provoca la transición actividad

acción

fin

4.24. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Estados:
Los estados pueden anidarse, agrupando estados relacionados en un estado compuesto.
Puede ser necesario cuando una actividad involucra actividades concurrentes o asíncronas.

4.25. El UML
4. El Lenguaje Unificado de Modelado:
 
 

Diagrama de Actividades:
Son diagramas de flujo
adornados, con mucha
similitud a los diagramas
de estados.

Mientras los diagramas de


estados centran su atención
en el proceso que lleva a
cabo un objeto, los
diagramas de actividades
muestran como las
actividades fluyen y las
dependencias entre ellas.

4.26. El UML
5. Cómo utilizar UML:
UML es simplemente un lenguaje. Define un conjunto de
elementos y las relaciones entre ellos y esto se emplea para
definir modelos.

UML se usa típicamente como parte de un proceso de


desarrollo, con ayuda de una herramienta CASE.

UML es independiente de cualquier proceso particular, no


Está ligado a ningún ciclo de vida de desarrollo de software
concreto.

5.1. Cómo Utilizar UML


5. Cómo utilizar UML:
UML proporciona mayores beneficios si se selecciona un
proceso dirigido por Casos de Uso, centrado en la
arquitectura y sea incremental.

Dirigido por Casos de Uso: Los Casos de Uso son básicos


Para establecer el comportamiento deseado del sistema, para
verificarlo, para validar su arquitectura y para comunicarse
Con todas las personas involucradas en el proyecto.

5.2. Cómo Utilizar UML


5. Cómo utilizar UML:
Centrado en la arquitectura: La arquitectura de un sistema es
el conjunto de decisiones significativas que se toma en torno
a su organización, la selección de elementos estructurales, la
definición de las interfaces entre estos elementos, su
comportamiento, su división en subsistemas, qué elementos
son estáticos y cuales dinámicos. La arquitectura también
incluye el uso que se le va a dar al sistema, la funcionalidad,
el rendimiento, la capacidad de adaptación, la reutilización, la
capacidad de ser comprendido, las restricciones económicas,
las temporales, los compromisos entre alternativas y los
aspectos estéticos.

5.3. Cómo Utilizar UML


5. Cómo utilizar UML:
Proceso incremental: aquél que consiste en sucesivas
ampliaciones y mejoras de la arquitectura, a partir de una
línea básica. Cada incremento resuelve los problemas
encontrados en la versión anterior minimizando
progresivamente los riesgos más significativos para el
éxito del proyecto.

5.4. Cómo Utilizar UML


5. Cómo utilizar UML:
Lo primero que se debe hacer para comenzar a desarrollar un proyecto con UML, es
seleccionar una metodología de desarrollo que defina la naturaleza concreta del proceso a
seguir.

El modelo a definir en base al


proceso elegido, se divide en
realidad en varios tipos de
modelo o vistas, cada una
centrada en un aspecto o punto
de vista del sistema. En general,
independientemente del proceso
que se emplee, se puede
encontrar las siguientes vistas

5.5. Cómo Utilizar UML


5. Cómo utilizar UML:
Vista de Casos de Uso: Engloba los Casos de Uso que describen el comportamiento del
sistema como lo verían los usuarios finales, los analistas y demás componentes del equipo de
desarrollo. No especifica la organización del sistema. Con UML los aspectos estáticos de
esta vista se pueden concretar con los diagramas de Casos de Uso; los aspectos dinámicos
con los diagramas de iteración (secuencia y colaboración), diagramas de estados y de
actividades.

Vista de Diseño: Engloba las clases e interfaces que conforman el vocabulario del problema
y su solución. Da soporte a los requisitos funcionales del sistema, es decir los servicios que
proporciona a los usuarios finales. Con UML los aspectos estáticos de esta vista se pueden
concretar con los diagramas de clases y de objetos; los aspectos dinámicos con los
diagramas de iteración (secuencia y colaboración), diagramas de estados y de actividades.

5.6. Cómo Utilizar UML


5. Cómo utilizar UML:
Vista de Procesos: Engloba los hilos y procesos que forman los mecanismos de
sincronización y concurrencia del sistema. Da soporte al funcionamiento, capacidad de
crecimiento y rendimiento del sistema. Con UML los aspectos estáticos de esta vista se
pueden concretar con los diagramas de clases, de clases activas y de objetos; los aspectos
dinámicos con los diagramas de iteración (secuencia y colaboración), diagramas de estados
y de actividades.

Vista de Despliegue: Engloba los nodos que forman la topología hardware sobre el que se
ejecuta el sistema. Da soporte a la distribución, entrega e instalación de las partes que
conforman el sistema físico. Con UML los aspectos estáticos de esta vista se pueden
concretar con los diagramas despliegue; los aspectos dinámicos con los diagramas de
iteración (secuencia y colaboración), diagramas de estados y de actividades.

5.7. Cómo Utilizar UML


5. Cómo utilizar UML:
Vista de Implementación: Engloba los componentes y archivos empleados para hacer
posible el sistema físico. Da soporte a la gestión de configuraciones de las distintas versiones
del sistema, a partir de componentes y archivos. Con UML los aspectos estáticos de esta
vista se pueden concretar con los diagramas de componentes; los aspectos dinámicos con los
diagramas de iteración (secuencia y colaboración), diagramas de estados y de actividades.

5.8. Cómo Utilizar UML


5. Cómo utilizar UML:
 
 

Ejemplo para la construcción de un programa:


Un ejemplo de proceso para la construcción de un programa, podría ser similar al
siguiente, teniendo en cuenta que el proceso descrito deja muchas cosas por ampliar.
Se proporciona meramente como un ejemplo de cómo se puede encajar UML como
soporte para el desarrollo de un proyecto.

1. Iniciar y mantener reuniones con los usuarios finales del programa, para
comprender sus necesidades, el contexto en que lo usarán y todos los detalles
necesarios para comprender el ámbito del problema a resolver. Esta información
será empleada para capturar las actividades y procesos involucrados y
susceptibles de ser incorporados en el programa, a un nivel alto, y proporcionará
la base para construir la vista de Casos de Uso.

5.9. Cómo Utilizar UML


5. Cómo utilizar UML:
 
 

Ejemplo para la construcción de un programa:


2. Construir la vista de Casos de Uso definiendo exactamente la funcionalidad que
se va a incorporar en el programa, desde el punto de vista de sus usuarios. El
modelo resultante es realmente un mapeo de la información obtenida en el paso
anterior, en el que cada nuevo Caso de Uso realiza un aspecto de la funcionalidad
planteada. Refinar, en conjunto con los usuarios finales, todos los diagramas de
Casos de Uso, incluyendo requisitos y restricciones, para llegar a un acuerdo
común en lo que el programa hará y no hará. En este punto puede ser conveniente
diseñar escenarios de prueba que ayuden a verificar si el programa finalizado
cumple con las expectativas del contrato.

5.10. Cómo Utilizar UML


5. Cómo utilizar UML:
 
 

Ejemplo para la construcción de un programa:


3. Partiendo del modelo de Casos de Uso se comienza a estructurar los requisitos en
una arquitectura llamada “línea base”. Se definen clases y relaciones entre ellas,
los primeros diagramas de secuencia y colaboración, definiendo los
comportamientos de cada clase, también las interfaces entre los diferentes
elementos de la arquitectura. Se construye aquí la vista de diseño y la vista de
procesos. Construir diagramas de clases más elaborados y refinar los
comportamientos del sistema.

4. A medida que crece el modelo se puede fraccionar en componentes software y


paquetes. Aparecen nuevos requisitos que deben ser integrados. Se define la vista
de despliegue, que define la arquitectura física del sistema, y la vista de
implementación.

5.11. Cómo Utilizar UML


5. Cómo utilizar UML:
 
 

Ejemplo para la construcción de un programa:


5. Construir el sistema, repartiendo las tareas entre el equipo de programación.

6. Buscar errores de programación, o incluso de diseño, corregirlos e ir sacando


sucesivas versiones del programa hasta llegar a una versión que cumpla con todos
los requisitos especificados en el contrato con los usuarios.

7. Documentar y entregar el programa a los usuarios finales.

5.12. Cómo Utilizar UML


6. Bibliografía:
 
 

Grady Booch, James Rumbaugh, Ivar Jacobson, (1996)


El Lenguaje Unificado de Modelado¸Addison Wesley.

Schneider G., Winters J.P., (2001)


Applying Use Cases: A Practical Guide, Addison Wesley.

OMG en Internet: http://www.omg.org

6.1. Bibliografía PARTE I


Parte II:
Introducción al Proceso
Unificado
PARTE II. CONTENIDO
7. Objetivos.
8. Conceptos fundamentales.
9. El Proceso Unificado.
10. Fases del ciclo.
11. Flujos de trabajo.
12. Tipos de resultados.
13. Captura y Modelado de Requisitos.
14. Modelado de Análisis.
15. Modelado de Diseño.
16. Modelado de Implementación.
17. Resumen.
18. Bibliografía
7. OBJETIVOS

• Introducir los aspectos generales del Proceso


Unificado de Rational (RUP), también denominado
Proceso Unificado de Desarrollo de Software
(SDUP).
• Asociar las fases de un proyecto de software con
las fases del RUP y el ciclo de vida del desarrollo
del software.
• Presentar los artefactos fundamentales del Proceso
Unificado.

7.1. OBJETIVOS
8. Conceptos fundamentales
• Proceso:
– Es un marco de trabajo común compuesto por
actividades de trabajo (conjuntos de tareas, hitos,
productos y puntos de garantía de calidad) y
actividades de protección (garantía de calidad, gestión
de configuración y medición) (Pressman 2001).
• Producto:
– Es el resultado previsto y consistente del proceso.

8.1. Conceptos fundamentales


8. Conceptos fundamentales
• Fase:
– Es el intervalo de tiempo entre dos hitos importantes
del proceso durante el que se cumple un conjunto bien
definido de objetivos, se completan partes del sistema
y se toman decisiones sobre si pasar o no a la siguiente
fase.
• Iteración:
– Representa un ciclo de desarrollo completo, desde la
captura de requisitos en el análisis hasta la
implementación y pruebas, que produce como
resultado la entrega al cliente o la salida al mercado de
un proyecto ejecutable.

8.2. Conceptos fundamentales


8. Conceptos fundamentales
• Ciclo de vida del software:
– Es el conjunto de fases por las que pasa el software,
que abarcan desde su creación u origen, hasta su
eliminación o liquidación formal.
• Modelo de desarrollo:
– También denominado Modelo de Proceso.
– Estrategia de desarrollo basada en el ciclo de vida,
naturaleza del proyecto y metodología, que determina
las características específicas del proceso (Pressman
2001).

8.3. Conceptos fundamentales


8. Conceptos fundamentales
Ciclo de vida del software completo
Prepa- Mode- Análi- Análi- Dise- Cons- Prue- Entre- Explo- Liqui-
ración lado sis de sis ño truc- bas ga tación / dación
del del requi- ción Manten
proble nego- sitos imiento
ma cio

% Implementación
% Conocimiento

Conocimiento
Implementación

Concepción Desarrollo Explotación

Tiempo

8.4. Conceptos fundamentales


8. Conceptos fundamentales
• Principios fundamentales:
– Son asertos de ingeniería que prescriben restricciones
sobre soluciones de problemas o sobre el proceso de
desarrollo de soluciones, se evalúan rigurosamente en
la práctica, y se juzgan sobre la base de la utilidad, la
relevancia y la significación (Bourque et al., 2002).
• Normas:
– Son el desarrollo de los principios fundamentales para
ámbitos particulares de tipo técnico, económico y
organizativo.

8.5. Conceptos fundamentales


8. Conceptos fundamentales
Estructura formal de la Ingeniería del Software

PRINCIPIOS
PRINCIPIOSDE
DE
LA
LA INGENIERÍADEL
INGENIERÍA DELSOFTWARE
SOFTWARE

NORMAS
TÉCNICAS
NORMAS
NORMASDE DE OTRAS
LA NORMAS
LA INGENIERÍADEL
INGENIERÍA DELSOFTWARE
SOFTWARE
ESTÁNDARES

MODELOS METODOLOGÍAS
MODELOSDE
DE METODOLOGÍAS
RUP
PROCESO / /PARADIGMAS
PARADIGMAS
PROCESO
PROCESO

TÉCNICAS
TÉCNICAS HERRAMIENTAS
HERRAMIENTAS

PRODUCTO

8.6. Conceptos fundamentales


9. El Proceso Unificado
El Proceso Unificado:
A. Es un Proceso iterativo.
B. Está centrado en la arquitectura.
C. Está dirigido por los casos de uso.
D. Es un proceso configurable.
E. Soporta las técnicas orientadas a objetos.
F. Impulsa un control de calidad y una gestión del
riesgo objetivos y continuos.

9.1. El Proceso Unificado


9. El Proceso Unificado
• A. El RUP es un proceso iterativo:
– Un enfoque iterativo propone una comprensión
incremental del problema a través de refinamientos
sucesivos y un crecimiento incremental de una
solución efectiva a través de varias versiones.
– Como parte del enfoque iterativo se encuentra la
flexibilidad para acomodarse a nuevos requisitos o a
cambios tácticos en los objetivos del negocio.
– Permite que el proyecto identifique y resuelva los
riesgos más bien pronto que tarde.

9.2. El Proceso Unificado


9. El Proceso Unificado

• B. Aspectos del RUP:


– El desarrollo bajo el Proceso Unificado está centrado en la
arquitectura.
– El proceso se centra en establecer al principio una arquitectura
software que guía el desarrollo del sistema:
• Se facilita el desarrollo en paralelo.
• Se minimiza la repetición de trabajos.
• Se incrementa la probabilidad de reutilización de componentes y el
mantenimiento posterior del sistema.
– Este diseño arquitectónico sirve como una sólida base sobre la
cual se puede planificar y manejar el desarrollo de software
basado en componentes.

9.3. El Proceso Unificado


9. El Proceso Unificado
• C. Aspectos del RUP:
– Las actividades de desarrollo bajo el Proceso Unificado están
dirigidas por los casos de uso.
– El Proceso Unificado pone un gran énfasis en la construcción de
sistemas basada en una amplia comprensión de cómo se utilizará
el sistema que se entregue.
– Las nociones de los casos de uso y los escenarios se utilizan para
guiar el flujo de procesos desde la captura de los requisitos hasta
las pruebas, y para proporcionar caminos que se pueden
reproducir durante el desarrollo del sistema.

9.4. El Proceso Unificado


9. El Proceso Unificado

• D. Aspectos del RUP:


– El Proceso Unificado es un proceso configurable.
– Aunque un único proceso no es adecuado para todas las
organizaciones de desarrollo de software, el Proceso Unificado es
adaptable y puede configurarse para cubrir las necesidades de
proyectos que van desde pequeños equipos de desarrollo de
software hasta grandes empresas de desarrollo.
– También se basa en una arquitectura de proceso simple y clara,
que proporciona un marco común a toda una familia de procesos
y que, además, puede variarse para acomodarse a distintas
situaciones.

9.5. El Proceso Unificado


9. El Proceso Unificado
• E. Aspectos del RUP:
– El Proceso Unificado soporta las técnicas orientadas a
objetos.
– Los modelos del Proceso Unificado se basan en los
conceptos de objeto y clase y las relaciones entre ellos,
y utilizan UML como la notación común.

9.6. El Proceso Unificado


9. El Proceso Unificado
• F. Aspectos del RUP:
– El Proceso Unificado es impulsa un control de calidad y una
gestión del riesgo objetivos y continuos.
– La evaluación de la calidad va contenida en el proceso, en todas
las actividades, e implicando a todos los participantes, mediante
medidas y criterios objetivos. No se trata como algo a posteriori o
una actividad separada.
– La gestión del riesgo va contenida en el proceso, de manera que
los riesgos para el éxito del proyecto se identifican y se acometen
al principio del proceso de desarrollo, cuando todavía hay tiempo
de reaccionar.

9.7. El Proceso Unificado


9. El Proceso Unificado

• El Proceso Unificado tiene una estructura matricial donde


se relacionan esfuerzos y tiempos:
– Los tiempos están definidos por las fases y las iteraciones.
– Los esfuerzos están definidos por los flujos de trabajo del proceso
y de soporte.
– La representación gráfica se denomina en la jerga el Diagrama de
Montañas.

9.8. El Proceso Unificado


El ciclo de vida del desarrollo del software

Flujos de trabajo
del proceso Iniciación Elaboración Construcción Transición

Modelado del
negocio

Requisitos

Análisis y diseño
Implementación

Pruebas

Despliegue

Flujos de trabajo
de soporte
Gestión del cambio
y configuraciones
Gestión del proyecto
Entorno

Iteraciones Iter Iter Iter Iter Iter Iter Iter


preliminares #1 #2 #n #n+1 #n+2 #m #m+1

Fuente: Jacobson et al., 2000

9.9. El Proceso Unificado


9. El Proceso Unificado
• En esta estructura matricial se puede deducir que:
– Los resultados de los flujos de trabajo de proceso son
los MODELOS.
– La conjunción de tiempo (fases) y esfuerzos (flujos de
trabajo) da lugar a las iteraciones.
– La conjunción de resultados (modelos) y esfuerzos
(flujos de trabajo) da lugar a los tipos de modelos.
– La conjunción de tiempo (fases) y resultados (modelos)
da lugar a las versiones.

9.10. El Proceso Unificado


9. El Proceso Unificado
• Se puede representar esta estructura conceptual
(metamodelo) mediante una figura tridimensional
donde:
– Eje X: Fases  tiempo
– Eje Y: Flujos de trabajo  esfuerzos
– Eje Z: Modelos  resultados

9.11. El Proceso Unificado


resultados Z: Modelos
(x,z): versiones

X,Y,Z:
(y,z): tipos de Configuraciones
modelos del sistema

tiempo

X: Fases
Y: Flujos
de trabajo esfuerzo (x,y): iteraciones

9.12. El Proceso Unificado


10. Fases del ciclo
• Fase: es el intervalo de tiempo entre dos hitos
importantes del proceso durante el que se cumple un
conjunto bien definido de objetivos, se completan
artefactos y se toman decisiones sobre si pasar o no a la
siguiente fase.
• Dentro de cada fase hay varias iteraciones
– Iteración: representa un ciclo de desarrollo completo, desde la
captura de requisitos en el análisis hasta la implementación y
pruebas, que produce como resultado la entrega al cliente o la
salida al mercado de un proyecto ejecutable.

10.1. Fases del ciclo


10. Fases del ciclo
• Iniciación.
– Se establece la planificación del proyecto y se delimita su alcance.
• Elaboración.
– Se analiza el dominio del problema, se establece una base
arquitectónica sólida, se desarrolla el plan del proyecto y se
eliminan los elementos de más alto riesgo del proyecto.
• Construcción.
– Se desarrolla de forma iterativa e incremental un producto
completo que está preparado para la transición hacia la
comunidad de usuarios.
• Transición.
– El software se despliega en la comunidad de usuarios.

10.2. Fases del ciclo


Las iteraciones son distintas en el ciclo de vida
Flujos de trabajo
del proceso Iniciación Elaboración Construcción Transición

F1: Modelado del


negocio
F2: Requisitos

F3: Análisis y diseño


F4: Implementación

F5: Pruebas

F6: Despliegue
Flujos de trabajo
de soporte
F7: Gestión del cambio
y configuraciones
F8: Gestión del proyecto
F9: Entorno
Iteraciones Iter Iter Iter Iter Iter Iter Iter
preliminares#1 #2 #n #n+1 #n+2 #m #m+1

F2 F2 F3 F2
F1 F1 F4

F3 F3 F1
F9 F9 F9
F4 F4
F8
F8 F5 F8
F5 F5 F7
F6 F7 F6 F6 F7

10.3. Fases del ciclo


10. Fases del ciclo
• Cada iteración pasa a través de varios flujos de trabajo del
proceso, aunque con un énfasis diferente en cada uno de
ellos, dependiendo de la fase en que se encuentre:
– Durante la iniciación, el interés se orienta hacia el análisis y el
diseño.
– También durante la elaboración.
– Durante la construcción, la actividad central es la implementación.
– La transición se centra en despliegue.

10.4. Fases del ciclo


11. Flujos de trabajo

• Los esfuerzos aplicados en el ciclo de vida de


desarrollo son de dos tipos:
• Flujos de trabajo del proceso:
– Conjunto de actividades fundamentalmente técnicas.
• Flujos de trabajo de soporte:
– Conjunto de actividades fundamentalmente de
gestión.

11.1. Flujos de trabajo


11. Flujos de trabajo
Flujos de trabajo del proceso:

1. Modelado del negocio: describe la estructura y la dinámica de la


organización.
2. Requisitos: describe el método basado en casos de uso para extraer
los requisitos.
3. Análisis y diseño: describe las diferentes vistas arquitectónicas.
4. Implementación: tiene en cuenta el desarrollo de software, la
prueba de unidades y la integración.
5. Pruebas: describe los casos de pruebas, los procedimientos y las
métricas para evaluación de defectos.
6. Despliegue: cubre la configuración del sistema entregable.

11.2. Flujos de trabajo


11. Flujos de trabajo

Flujos de trabajo de soporte:

1. Gestión de configuraciones: controla los cambios y mantiene la


integridad de los artefactos de un proyecto.
2. Gestión del Proyecto: describe varias estrategias de trabajo en un
proceso iterativo.
3. Entorno: cubre la infraestructura necesaria para desarrollar un
sistema.

11.3. Flujos de trabajo


El ciclo de vida del desarrollo del software:
Flujos
Flujos de trabajo
del proceso Iniciación Elaboración Construcción Transición

Modelado del
negocio

Requisitos

Análisis y diseño

Implementación

Pruebas

Despliegue

Flujos de trabajo
de soporte
Gestión del cambio
y configuraciones
Gestión del proyecto
Entorno

Iteraciones Iter Iter Iter Iter Iter Iter Iter


preliminares #1 #2 #n #n+1 #n+2 #m #m+1

11.4. Flujos de trabajo


12. Tipos de resultados
• Un modelo es una abstracción de la realidad o de un
sistema real tomando los elementos más representativos
con un propósito determinado.
• De un mismo sistema puede haber más de un modelo,
porque, según el propósito del mismo, los elementos
representativos pueden ser distintos.
• Los elementos a considerar en la construcción de modelos
son: supuestos, simplificaciones, limitaciones o
restricciones y preferencias

12.1. Tipos de resultados


12. Tipos de resultados
• Los supuestos:
– Son elementos para la construcción de modelos que reducen el número
de permutaciones y variaciones posibles, permitiendo al modelo reflejar
el problema de manera razonable.
• Las simplificaciones:
– Son elementos para la construcción de modelos que permiten crear el
modelo a tiempo.
• Las limitaciones o restricciones:
– Son elementos para la construcción de modelos que ayudan a delimitar
el problema.
• Las preferencias:
– Son elementos para la construcción de modelos que indican la
arquitectura preferida para toda la información, funciones y tecnología.
– Pueden tener conflictos con otros factores restrictivos.
– Es recomendable tenerlas en cuenta para obtener un resultado
aceptado, además de correcto.

12.2. Tipos de resultados


12. Tipos de resultados
• Un modelo de objetos o modelo orientado a objetos es
una abstracción de un sistema informático orientado a
objetos real que tiene un propósito determinado.
• Según el propósito final, el mismo sistema puede tener
distintos modelos.
• Sin embargo, cualquiera de los modelos se construye con
el mismo conjunto de elementos para representar las
propiedades estáticas (estructura) y dinámicas
(comportamiento) tanto del sistema como de las
entidades que lo componen.

12.3. Tipos de resultados


12. Tipos de resultados
• Cada actividad del Proceso Unificado lleva algunos
artefactos asociados.
• Algunos artefactos:
– Se utilizan como entradas directas en las actividades
siguientes.
– Se mantienen como recursos de referencia en el proyecto.
– Se generan en algún formato específico, en forma de
entregas definidas en el contrato.
• Estos artefactos son adicionales a los que proporciona el
propio UML:
– Los modelos y los conjuntos.

12.4. Tipos de resultados


12. Tipos de resultados
• Los modelos son el tipo de artefacto más importante en el
Proceso Unificado.
• Constituyen el tercer eje del metamodelo 3-D:
– Los tipos de resultados obtenidos con los distintos esfuerzos a lo
largo de las fases del ciclo.
• Hay nueve modelos que en conjunto cubren todas las
decisiones importantes implicadas en la visualización,
especificación, construcción y documentación de un
sistema con gran cantidad de software.

12.5. Tipos de resultados


12. Tipos de resultados
Modelos del Proceso Unificado:
1. Modelo del negocio: establece una abstracción de la organización.
2. Modelo del dominio: establece el contexto del sistema.
3. Modelo de casos de uso: establece los requisitos funcionales del sistema.
4. Modelo de análisis (opcional): establece un diseño de las ideas.
5. Modelo de diseño: establece el vocabulario del problema y su solución.
6. Modelo del proceso (opcional): establece los mecanismos de concurrencia y
sincronización del sistema.
7. Modelo de despliegue: establece la topología hardware sobre la cual se
ejecutará el sistema.
8. Modelo de implementación: establece las partes que se utilizarán para
ensamblar y hacer disponible el sistema físico.
9. Modelo de pruebas: establece las formas de validar y verificar el sistema.

12.6. Tipos de resultados


Relaciones lógicas entre los modelos :

Modelo de
Casos de Uso verificado por

especificado por realizado por


Modelo de
distribuido por Prueba
Modelo de
Análisis
Modelo de implementado por
Diseño
Modelo de
Despliegue
Modelo de
Implementación

12.7. Tipos de resultados


Modelos y flujos de trabajo
del Proceso Unificado
Modelado del Implementa-
Requisitos Análisis Diseño Prueba Despliegue
Negocio ción
Modelo del
Negocio X
Modelo del
Dominio X X
Modelo de
Casos de Uso X
Modelo de
Análisis X
Modelo de
Diseño X
Modelo de
Procesos X
Modelo de
Despliegue X X
Modelo de
Implementación X X
Modelo de
Prueba X X

12.8. Tipos de resultados


MODELOS Y DIAGRAMAS EN EL RUP
Modelo del Modelo del Modelo de Modelo de Modelo de Modelo de Modelo de Modelo Modelo de
Negocio Dom inio Casos de Análisis Diseño Procesos Despliegue Im plem en- Prueba
Uso tación

Est. Din. Est. Din. Est. Din. Est. Din. Est. Din. Est. Din. Est. Din. Est. Din. Est. Din.

Diagram a de
Casos de Uso X X X
Diagram a de
Interacción- X X X X X X X X
Secuencia

Diagram a de
Interacción- X X X X X X X X
Colaboración

Diagram a de
Clases de X
Análisis

Diagram a de
Objetos de X
Análisis

Diagram a de
Clases de X X
Diseño

Diagram a de
Objetos de X X
Diseño

Diagram a de
Estados X X X X X X

Diagram a de
Actividades X X X X X

Diagram a de
Com ponentes X

Diagram a de
Despliegue X

12.9. Tipos de resultados


6. Tipos de resultados
• El Proceso Unificado recupera el concepto de vista de
UML.
• Para el Proceso Unificado una vista es:
– Una proyección de un modelo.
– Una proyección de la organización y la estructura del sistema
que se centra en un aspecto particular del sistema.
• La arquitectura de un sistema se captura en forma de
cinco vistas que interactúan entre sí:
– La vista de casos de uso.
– La vista de diseño.
– La vista de procesos.
– La vista de despliegue.
– La vista de implementación.

12.10. Tipos de resultados


Vistas de la arquitectura de un sistema

vocabulario, ensamblado del


funcionalidad sistema,
Vista de gestión de
Vista de diseño configuraciones
implementación
comportamiento Vista de
casos de uso
Vista de Vista de
procesos despliegue

Funcionamiento, topología del


capacidad de sistema,
crecimiento, distribución,
rendimiento entrega,
instalación

12.11. Tipos de resultados


6. Tipos de resultados

• Cada una de las vistas presenta:


• Aspectos estáticos: mediante los diagramas
estructurales de UML.
• Aspectos dinámicos: mediante diagramas dinámicos
de UML.
• Ejemplo: se puede trabajar con la vista de casos de uso
estática y la vista de casos de uso dinámica, la vista de
diseño estática y la vista de diseño dinámica, y así
sucesivamente.
• En el RUP se da más importancia a los modelos que a las
vistas. Aunque se siguen manteniendo para determinados
propósitos de modelado.

12.12. Tipos de resultados


6. Tipos de resultados
Nombre Descripción Aspectos Aspectos
Estáticos Dinámicos

Vista de casos Proyecta el comportamiento del sistema tal y como Diagramas de casos de Diagramas de interacción
de uso es percibido por los: usuarios finales, analistas y en- uso Diagramas de estados
cargados de las pruebas. Especifica las fuerzas que
configuran la arquitectura del sistema.

Vista de diseño Soporta los requisitos funcionales del sistema: servi- Diagramas de clases Diagramas de interacción
cios proporcionados a los usuarios finales. Vocabula- Diagramas de objetos Diagramas de estados
rio del problema y su solución: clases, interfaces y
colaboraciones. Diagramas de actividades
Vista de procesos Cubre el funcionamiento, capacidad de crecimiento y Diagramas de clases Diagramas de interacción
rendimiento del sistema. Mecanismos de sincroniza- (activas) Diagramas de estados
ción y concurrencia del sistema: hilos y procesos. Diagramas de objetos Diagramas de actividades

Vista de implementa- Cubre la gestión de configuraciones de las distintas Diagramas de componen- Diagramas de interacción
ción versiones de un sistema a partir de componentes y tes Diagramas de estados
archivos quasi-independientes. Ensamblado y dispo-
nibilidad del sistema: componentes y archivos. Diagramas de actividades

Vista de despliegue Contiene los nodos que forman la arquitectura (topo- Diagramas de despliegue Diagramas de interacción
logía) hardware sobre la que se ejecuta el sistema a Diagramas de estados
través de sus componentes. Está destinada a repre-
sentar la distribución, entrega e instalación de las Diagramas de actividades
partes que forman el sistema informático físico.

12.13. Tipos de resultados


VISTAS Y DIAGRAMAS EN UML

Diagra- Diagrama Diagrama Diagra- Diagra- Diagrama Diagrama Diagrama Diagrama


ma de de de ma de ma de de de de Compo- de Desplie-
Casos de Interac- Interacción- Clases Objetos Estados Activida- nentes gue
Uso ción- Colabora- des
Secuen- ción
cia

Vista de Casos Estática


de Uso
Dinámica

Vista de Estática
Diseño
Dinámica

Vista de Estática
Procesos
Dinámica
Vista de
Estática
Implemen-
tación
Dinámica

Vista de Estática
Despliegue
Dinámica

12.14. Tipos de resultados


6. Tipos de resultados

• Los artefactos conjunto del RUP son los siguientes:


1. Conjunto de requisitos.
2. Conjunto de diseño.
3. Conjunto de implementación.
4. Conjunto de despliegue.

12.15. Tipos de resultados


6. Tipos de resultados

1. Conjunto de requisitos:
• Agrupa toda la información que describe lo que debe
hacer el sistema.
• Puede comprender un modelo de casos de uso, un
modelo de requisitos no funcionales, un modelo del
dominio, un modelo de análisis y otras formas de
expresión de las necesidades del usuario, incluyendo
pero no limitándose a maquetas, prototipos de la
interfaz, restricciones legales, etc.

12.16. Tipos de resultados


6. Tipos de resultados

2. Conjunto de diseño:
• Agrupa información que describe cómo se va a
construir el sistema y captura las decisiones acerca
de cómo se va realizar, teniendo en cuenta las
restricciones de tiempo, presupuesto, aplicaciones
existentes, reutilización, objetivos de calidad y
demás consideraciones.
• Puede implicar un modelo de diseño, un modelo de
pruebas y otras formas de expresión de la naturaleza
del sistema, incluyendo, pero no limitándose, a
prototipos y arquitecturas ejecutables.

12.17. Tipos de resultados


6. Tipos de resultados

3. Conjunto de implementación:
• Agrupa toda la información acerca de los elementos
software que comprende el sistema, incluyendo,
pero no limitándose, a código fuente en varios
lenguajes de programación, archivos de
configuración, archivos de datos, componentes
software, etc., junto con la información que describe
cómo ensamblar el sistema.

12.18. Tipos de resultados


6. Tipos de resultados

4. Conjunto de despliegue:
• Agrupa toda la información acerca de la forma en
que se empaqueta actualmente el software, se
distribuye, se instala y se ejecuta en el entorno
destino.

12.19. Tipos de resultados


13. Captura y Modelado
de Requisitos
• El Análisis de Requisitos tiene por misión convertir el problema,
expresado en términos del dominio del negocio, a soluciones descritas
en en lenguaje del dominio de la Tecnología de Información.
• El problema y su planteamiento pertenecen al Espacio del Problema:
– Descripción concreta del negocio.
– Dominio de los Objetos de Negocio (DON).
• Las soluciones pertenecen al Espacio de la Solución:
– Descripción concreta del sistema de información.
– Dominio de los Objetos de Negocio.
– Dominio de los Objetos de Infraestructura (DOI):
• Subdominio de Objetos de Bases de Datos (SDOBD).
• Subdominio de Objetos de Interfaz (SDOIZ).

13.1. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos
Espacio de la
Espacio del Solución de Usuario
Problema Análisis de
Requisitos

Análisis OO

Espacio de la
Solución de
Implementación
Diseño OO

Espacio de la
Diseño
Solución Técnica

13.2. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos

• El Análisis de Requisitos en el RUP se realiza por medio de


los flujos de trabajo:
– Modelado del negocio.
– Requisitos.
• El resultado del Análisis de Requisitos es el siguiente:
– Modelo del Negocio.
– Modelo del Dominio.
– Modelo de Casos de Uso.
– Documento de Especificaciones Técnicas del Sistema (según
norma IEEE-830/1999).

13.3. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos
Flujos de trabajo
del proceso Iniciación Elaboración Construcción Transición

Modelado del
negocio Requisitos
Requisitos

Análisis y diseño
Implementación

Pruebas

Despliegue

Flujos de trabajo
de soporte
Gestión del cambio
y configuraciones
Gestión del proyecto
Entorno

Iteraciones Iter Iter Iter Iter Iter Iter Iter


preliminares #1 #2 #n #n+1 #n+2 #m #m+1

13.4. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos
• El Modelo de Casos de Uso (MCU) establece los requisitos
funcionales del sistema de información.
• En el MCU se recoge la descripción externa y observable
de cómo se utiliza el sistema de información:
– Descripción de CÓMO se utiliza el sistema:
• Funciones, Servicios y Procesos.
– Descripción EXTERNA del uso del sistema:
• Se identifican y describen funciones/servicios/procesos del
negocio que un usuario puede hacer con el soporte del
sistema de información.
– Descripción OBSERVABLE del uso del sistema:
• Es como si hubiera un observador externo que va anotando
lo que hace el usuario con el sistema y lo que el sistema
responde al usuario.

13.5. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos Diagrama de Contexto
del SMCU de Negocio

SubModelo de Casos
de Uso de Negocio

SubModelo de Casos
Diagrama de Contexto de Uso (Técnico)
del SMCU Técnico

Diagrama Principal
Busi ness Use-Case
del Modelo de Casos M odel

de Uso The U s e-Cas e Model is


traceable to (and derives
from ) the Bus ines s Model.
The s ys tem (as des cribed in
the Us e Cas e Model)
provides behavior that
s upports the bus ines s .

Us e-Cas e Model

13.6. Captura y Modelado de Requisitos


13. Captura y Modelado
de Requisitos

Diagrama de Contexto
del MCU

13.7. Captura y Modelado de Requisitos


14. Modelado de Análisis
• Una vez completado el modelo de casos de uso (CU) se ha llegado a
obtener diagramas de casos de uso en determinados niveles que ya no
se pueden explotar más.
• Si se intentara explotar los CU, se pasaría a describir el
comportamiento interno de las funciones con artefactos inadecuados.
• Los casos de uso contenidos en estos diagramas se denominan casos
de uso elementales.
• Esta situación límite indica que se debe pasar a trabajar con otros
artefactos, que son los del modelo de análisis:
– Clases de análisis.
– Asociaciones.
– Diagramas de clases.
– Diagramas de colaboración asociados a los diagramas de clases.

14.1. Modelado de Análisis


14. Modelado de Análisis
Modelo de
Casos de Uso verificado por

especificado por realizado por


Modelo de
distribuido por Prueba
Modelo de
Análisis
Modelo de implementado por
Diseño
Modelo de
Despliegue
Transición del MCU hacia el MA
Modelo de
Implementación

14.2. Modelado de Análisis


14. Modelado de Análisis
• El Análisis en el RUP se realiza por medio de los flujos de
trabajo:
– Análisis y diseño.
• El resultado del Análisis es el siguiente:
– Modelo de Análisis.
• El Modelo de Análisis contiene:
– La Vista de Diseño de UML.
– La Vista de Procesos de UML.

14.3. Modelado de Análisis


14. Modelado de Análisis
Flujos de trabajo
del proceso Iniciación Elaboración Construcción Transición

Modelado del
negocio

Requisitos

Análisis y diseño Análisis


Implementación

Pruebas

Despliegue

Flujos de trabajo
de soporte
Gestión del cambio
y configuraciones
Gestión del proyecto
Entorno

Iteraciones Iter Iter Iter Iter Iter Iter Iter


preliminares #1 #2 #n #n+1 #n+2 #m #m+1

14.4. Modelado de Análisis


Modelo de casos de uso
con estructura de
desglose de diagramas
NIVEL 0 Proceso de Conversión:
Cada caso de uso se
desglosa en un diagrama
Casos de Uso 
en el nivel inferior
Análisis

NIVEL1

Cada caso de uso se


desglosa en un diagrama
en el nivel inferior
NIVEL 2

MODELO DE CASOS DE USO MODELO DE ANÁLISIS

«trace»

caso de uso (MCU) Realización (MA)

Interfaz Gestor/Control Entidad

Artefactos del modelo de análisis

14.5. Modelado de Análisis


MODELO DE CASOS DE USO MODELO DE ANÁLISIS

«trace»

Proceso de Conversión:
caso de uso (MCU) Realización (MA)
Casos de Uso 
Análisis
Interfaz Gestor/Control Entidad

Artefactos del modelo de análisis

F01.01 Consulta saldo

Cliente I_Cajero C_Ges tor_Interfaz Cta_Cliente

Diagrama de
Clases de Análisis
Atómico
I_Autenticacion C_Verificador_Autenticacio
n

14.6. Modelado de Análisis


Modelo de Casos de Uso Modelo de Análisis

Servicio(CU)-Subsistema(DA)

MCU MA
Top-Down Nivel 0 Subsistema 1 Nivel 0 Bottom-Up

MA
MCU Subsistema 2
Nivel 1
Nivel 1
Subsistema 3

MCU MA
Nivel 2 Nivel 2

MCU MA F01.01 Consulta saldo

Nivel i Nivel j
MODELO DE CASOS DE USO MODELO DE ANÁLISIS Cliente I_Cajero C_Ges tor_Interfaz Cta_Cliente

«trace»

caso de uso (MCU) Realización (MA)


I_Autenticacion C_Verificador_Autenticacio
n

Interfaz Gestor/Control Entidad

Artefactos del modelo de análisis

14.7. Modelado de Análisis


La estructura del modelo en Rose:

D. Clases Análisis Atómico


para el Caso de Uso
F01.01 <Nombre función> Carpeta de trabajo
en la conversión
Diagrama de Colaboración
para DCAA F01.01

Diagrama de Clases
de Análisis de Contexto

14.8. Modelado de Análisis


15. Modelado de Diseño

• En el flujo de requisitos se construye un modelo que


representa el comportamiento observable o externo del
sistema que se quiere obtener.
• En los flujos de análisis, diseño e implementación, se
representa la estructura y el comportamiento internos del
sistema a realizar.
• Característica común de los tres flujos frente al flujo de
requisitos:
– En los tres flujos se trabaja a diferentes niveles de abstracción,
desde el más elevado en el análisis, hasta el más bajo en la
implementación.

15.1. Modelado de Diseño


Flujo de
15. Modelado de Diseño
Análisis de
Requisitos

Modelo de
Casos de Uso verificado por

especificado por
Modelo de
distribuido por Prueba
realizado por
Modelo de
Análisis
Modelo de implementado por
Diseño
Flujo de
Análisis y Modelo de
Diseño Despliegue
Modelo de
Transición del MCA hacia el MD
Implementación

15.2. Modelado de Diseño


15. Modelado de Diseño

• La técnica de modelado consiste en identificar, a través de


las especificaciones de las clases de análisis las clases de
diseño correspondientes.
• Para cada clase de análisis se puede derivar una o más
clases de diseño:
– Clase de control  clase activa (>= 1)
– Clase de entidad  clase de entidad (>= 1)
– Clase de interfaz  clase de interfaz (>= 1)

15.3. Modelado de Diseño


<<trace>> <<process>> Factura
Gestor de cuenta <<trace>>
Gestor de cuentas

<<trace>> <<process>>
Gestor de cliente Facturas Albarán
<<trace>>
Gestor de clientes

<<Interface_design>>
Teclado
<<trace>>

<<Interface_design>>
<<trace>> Pantalla

<<Interface_design>>
<<trace>> Puerto MSVL
<<trace>>
<<Interface_design>>
Interfaz de terminal celular Altavoz

<<Interface_design>>
<<trace>> Micrófono

15.4. Modelado de Diseño


15. Modelado de Diseño

• En el proceso de conversión del Modelo de Análisis (MA) al


Modelo de Diseño (MD), la estrategia adoptada es mixta:

Top-Down
+
Level-to-Level

15.6. Modelado de Diseño


Modelo de Análisis Modelo de Diseño

Subsistema(DA)-Subsistema(DD)

Bottom-Up MA MD
Nivel 0 Subsistema 1
Nivel 0
Subsistema 1

MA
Nivel 1 Subsistema 2 MD
Nivel 1 Subsistema 2

Subsistema 3

MA Subsistema 3 Top-Down
MD
Nivel 2 Nivel 2

MA MD
Nivel j Nivel i

Modelo de
Casos de Uso

15.7. Modelado de Diseño


Modelo de Análisis Modelo de Diseño
Top-Down
Subsistema(DA)-Subsistema(DD)
Bottom-Up
MA MD
Nivel 0 Nivel 0

MA
Nivel 1 MD
F01.01 Consulta saldo
Nivel 1
asociación

Punto Figura_2D
define
Coord_X : Double Centro : Punto
Coord_Y : Double Superficie : Doubl e
Instancias de Instancia de
la c lase Punto la clase
Cliente I_Cajero
MA C_Ges tor_Interfaz Cta_Cliente

MD
abstracción
Figura_2D

Nivel 2 <<object>>
Punto: Pto_1
Coord_X = 5 Nivel 2
define Figura_2D: Triángulo_T1

Coord_Y = 6
define

<<object>> define

I_Autenticacion C_Verificador_Autenticacio Punto: Pto_3


n Coord_X = 11
Coord_Y = 15
enlace

MA MD
<<object>>
Punto: Pto_2

Nivel j Level-to-Level Nivel i


Coord_X = 7
Coord_Y = 3

Modelo de
Casos de Uso

15.8. Modelado de Diseño


15.9. Modelado de Diseño
La estructura del modelo en Rose:

Diagrama de Clases
de Diseño de Contexto

15.10. Modelado de Diseño


16. Modelado de Implementación

• El modelado de implementación se realiza para obtener:


– La implementación del sistema en términos de lenguajes y elementos
de programación.
– La distribución de los módulo software en los elementos hardware del
sistema.
• En el flujo de implementación se construye un modelo que representa
la estructura y el comportamiento internos del sistema en cuanto a:
– Componentes y módulos.
– Arquitectura software del sistema.
• En el flujo de despliegue se construye un modelo que representa la
estructura y el comportamiento internos del sistema en cuanto a:
– Arquitectura hardware del sistema.

16.1. Modelado de Implementación


16. Modelado de Implementación
Flujo de
Análisis de
Requisitos

Modelo de
Casos de Uso verificado por

especificado por
Modelo de
distribuido por Prueba
realizado por
Modelo de
Análisis
Modelo de implementado por
Diseño
Flujo de Flujo de
Análisis y Modelo de Implementa
Diseño Flujo de Despliegue ción
Despliegue
Modelo de
Transición del MD hacia el MDP
Implementación

16.2. Modelado de Implementación


16. Modelado de Implementación
Ges tión Proyectos
Gestión Población

Modelo de
Implementación
(Vista parcial)
Gestión individuos
Ges tor Base de Datos

Programa Principal

Gestión Interfaces
Gestión Agentes

Gestión Cálculo

componentes

16.3. Modelado de Implementación


16. Modelado de Implementación

Modelo de Despliegue
(Vista parcial)

nodos /
procesadores

16.4. Modelado de Implementación


17. Resumen
• El Proceso Unificado es una metodología creada
principalmente para el desarrollo de software orientado a
objetos.
• Utiliza el soporte de modelado de UML, pero es
independiente de UML.
• El Proceso Unificado:
– Es un Proceso iterativo.
– Está centrado en la arquitectura.
– Está dirigido por los casos de uso.
– Es un proceso configurable.
– Soporta las técnicas orientadas a objetos.
– Impulsa un control de calidad y una gestión del riesgo objetivos
y continuos.

17.1. Resumen
17. Resumen
• La aplicación formal del Proceso Unificado
supone:
– Desventajas:
• Grandes esfuerzos en la construcción de modelos.
• Necesidad del soporte de herramientas informáticas.
– Ventajas:
• Disminuye el riesgo del error de análisis / diseño
acumulado.
• Aligera el esfuerzo en implementación.
• Proporciona la documentación del ciclo de vida en el
mismo proceso.

17.2. Resumen
17. Resumen
• El Proceso Unificado es flexible y se puede adaptar al
grado de complejidad del modelo de proceso de desarrollo
(descarte de algunos modelos o flujos).
• El Proceso Unificado es abierto y permite la incorporación
de enfoques y artefactos complementarios:
– Patrones de diseño.
– Patrones de implementación.
– Marcos de diseño.
– Combinación de varios modelos de proceso.
– Arquitecturas Dirigidas por Modelos (Model Driven
Architectures).
– Ejecutabilidad de modelos: UML 2, validación y verificación
formales.

17.3. Resumen
18. Bibliografía
1. Booch G., Rumbaugh J., Jacobson I. El Lenguaje Unificado de Modelado,
Addison-Wesley, Madrid, 1999.
2. Bruegge B., Dutoit A.H. Ingeniería de Software Orientado a Objetos,
Prentice Hall– Pearson educación, México, 2002.
3. Jacobson I., Booch G., Rumbaugh J. El Proceso Unificado de Desarrollo de
Software, Addison-Wesley, Madrid, 2000.
4. Pressman R.S. Ingeniería del Software. Un enfoque práctico (5ª ed.) Mc
Graw-Hill; New York , 2001.
5. Rumbaugh J., Jacobson I., Booch G. El Lenguaje Unificado de Modelado.
Manual de Referencia, Addison-Wesley, Madrid, 2000.
6. Sommerville I. Ingeniería de software, 6ª edición, Prentice Hall – Pearson
educación, México, 2002.
7. Stevens P., Pooley R. Utilización de UML en Ingeniería del Software con
Objetos y Componentes, Addison-Wesley, Madrid, 2002.
8. http://www.omg.org
9. http://www.uml.org

18. Bibliografía Parte II


Gracias

Вам также может понравиться