Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Introducción
Esta asignatura, además de introducir qué es y qué comprende la Ingeniería de Software,
presenta una serie de modelos, técnicas y metodologías para el desarrollo (fabricación)
de productos software.
La mayor parte de las notaciones y diagramas que se exponen en el libro para ilustrar
los 'artefactos' o subproductos, obtenidos en el recorrido por las distintas fases de un
ciclo de vida clásico (en cascada), se corresponden con un estilo de desarrollo 'dirigido
por los datos'. De esta forma, cuando se emplean otros modelos (ciclos de vida) o
paradigmas de desarrollo (OO, dirigido por la funcionalidad, 'por casos de uso', etc.),
algunas de esas notaciones quedan obsoletas o evolucionan hacia otro tipo de
diagramas. La mayor parte de esos modelos y paradigmas de desarrollo se pueden
adecuar al sistema de representación más extendido actualmente: UML. Sin embargo,
el contraste más notable del libro de esta asignatura es que no ofrece un mapa para
traducir las notaciones ni los diagramas de los temas 3, 4 y 5 (del análisis y el diseño), a
los correspondientes, en otros tipos de desarrollo, con la representación en UML. Por
este motivo, lo más importante es entender qué se representa en cada diagrama, en
un caso (temas 3, 4 y 5) y otro (tema 6, UML).
En los modelos de desarrollo clásicos (cascada) se cumplimentan, casi definitivamente,
los objetivos de cada fase para todo el producto que se está desarrollando. Por el
contrario, en los modelos incrementales y evolutivos (los más utilizados actualmente),
se afronta el desarrollo de sólo una parte del producto (o de sus necesidades
funcionales) en cada ciclo. Es decir, en estos últimos modelos de ciclo de vida, la
elaboración se divide en distintas partes, pero, en cada una, se sigue haciendo análisis,
diseño, codificación y pruebas. Por consiguiente, el significado y los objetivos de estas
actividades (análisis, diseño...), ineludibles, son universales para cualquier modelo o
paradigma de desarrollo:
• El análisis pretende la comprensión de las necesidades planteadas por el cliente
(especialmente las funcionales): el dominio del negocio. No consiste en una
sensación subjetiva e individual de que se han comprendido esas necesidades,
sino que requiere elaborar la propuesta de un modelo del funcionamiento
requerido, comprensible y validable, y, por tanto, con un determinado grado de
formalismo en su representación; llámese modelo conceptual o de la lógica del
funcionamiento deseado.
• El diseño consiste en la especificación de cada elemento de la solución software
definitiva, la del funcionamiento individual y la del funcionamiento que resulta
de la colaboración entre esos elementos. Por tanto, constituye una descripción
pormenorizada, rigurosa y exacta, de cada 'pieza' del código, de cómo funciona,
de cómo se relaciona con otras y de cómo, mediante ese funcionamiento
colaborativo entre las partes, se alcanza el comportamiento deseado. El diseño
arquitectónico y el diseño detallado describen el funcionamiento de una misma
cosa, del código que resuelve (o no) las necesidades planteadas en el análisis,
por lo que sus únicas diferencias se refieren a la perspectiva con la que afrontan
1
MANUAL BREVE PARA EL DESARROLLO CON UML
2
MANUAL BREVE PARA EL DESARROLLO CON UML
3
MANUAL BREVE PARA EL DESARROLLO CON UML
4
MANUAL BREVE PARA EL DESARROLLO CON UML
Figura 3 Diagrama del Modelo de Dominio para el caso de uso de una venta.
5
MANUAL BREVE PARA EL DESARROLLO CON UML
6
MANUAL BREVE PARA EL DESARROLLO CON UML
7
MANUAL BREVE PARA EL DESARROLLO CON UML
8
MANUAL BREVE PARA EL DESARROLLO CON UML
interacciones (las que vienen del actor y las que se establecen entre los
objetos) se representan como paso de mensajes (invocación a métodos)
situados en la línea de tiempo del objeto correspondiente. En realidad, todos
los eventos del actor se reciben en un único objeto cuyo rol particular consiste
en organizar la reacción del sistema ante él y dirigir los mensajes a los objetos
adecuados para que el funcionamiento de dicha reacción sea el adecuado: el
rol del Controlador.
La especificación de la dinámica del funcionamiento se refiere a que cada
mensaje (o la creación de una instancia) se sitúa, exactamente, en el instante
que le corresponde en las líneas de tiempo de las instancias que lo envían y lo
reciben, respectivamente. Por este motivo, no es necesario numerar el orden
de los mensajes. El despliegue de esta representación es, por tanto, vertical,
a lo largo de las líneas de tiempo (sincronizadas) de las instancias que
intervienen.
Para elaborar la representación de este funcionamiento, se parte de los
objetos utilizados en el Diagrama de Dominio (el diseño de la lógica de este
mismo funcionamiento); pero ya no son ‘conceptuales’, sino instancias
software, concretas, a las que se les está asignando responsabilidades
funcionales específicas (los métodos correspondientes al mensaje o a la
invocación que reciben).
En la mayoría de las ocasiones, los objetos del Diagrama de Dominio no son
suficientes para representar, completamente y en detalle, el funcionamiento
del código al realizar algunas operaciones. En esos casos es imprescindible
incorporar nuevos objetos, puramente software, cuyo funcionamiento
complementa la especificación de esa operación (adaptadores, acceso a
servicios externos, especialización de operaciones en un polimorfismo, etc.)
• Diagramas de Colaboración de un caso de uso (Communication Diagram). El
funcionamiento que se deriva de cada evento del actor se puede representar
con un diagrama de colaboración; de manera que la unión de todos ellos
equivale al Diagrama de Secuencia detallado anterior y, por tanto, describe el
diseño detallado de la dinámica del funcionamiento del caso de uso. Además
de esa equivalencia, la sintaxis de ambos diagramas también es muy similar:
intercambio de mensajes (invocaciones a métodos) entre instancias.
9
MANUAL BREVE PARA EL DESARROLLO CON UML
Figura 6 Diagrama de Colaboración del evento en bucle de ‘introducir un tramo del recorrido’, del caso de uso de la venta
de billetes de transporte urbano.
10
MANUAL BREVE PARA EL DESARROLLO CON UML
Figura 7 Diagrama de Clases de Diseño (DCD), del caso de uso combinado ‘Alta Presa’ y ‘Alta
Sensor’, correspondiente al mismo sistema de la PEC 2018-2019 de esta asignatura (Gestión de
Recursos Hídricos).
11
MANUAL BREVE PARA EL DESARROLLO CON UML
12
MANUAL BREVE PARA EL DESARROLLO CON UML
13