Está en la página 1de 30

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN

FACULTAD DE INGENIERÍA Y NEGOCIOS


UNIVERSIDAD DE LAS AMÉRICAS

Ingeniería de Software
(ACI570)

[Última actualización: 17/07/2020]

INGENIERÍA DE SOFTWARE – ACI570 1


UNIDAD
4:
Diseño de Software

INGENIERÍA DE SOFTWARE – ACI570 2


Bibliografía

INGENIERÍA DE SOFTWARE – ACI570 3


Unified Modeling Language 2.0
LA IMPORTANCIA DE MODELAR

• Una técnica de ingeniería probada y aceptada. Es parte


central en todas las actividades que conducen a la
producción de buen software.

• Los modelos arquitectónicos de casas y rascacielos ayudan


a visualizar el producto final.

• Los modelos matemáticos permiten analizar los efectos de


vientos o terremotos.

• Aeronáutica, ingeniería automotriz, dispositivos eléctricos


y electrónicos, películas, sociología, economía, gestión de
empresas.
Unified Modeling Language 2.0
LA IMPORTANCIA DE MODELAR

¿Qué es un modelo?
• Un modelo es una simplificación de la realidad.
¿Para qué modelamos?
• Para controlar riesgos.
• Para comunicar la estructura deseada y el comportamiento del
sistema.
• Para visualizar y controlar la estructura del sistema.
• Para comprender mejor el sistema que se está construyendo.

Un único modelo no basta. Un sistema se entiende mejor si hay


un conjunto de modelos casi independientes con múltiples
puntos de vista.
Unified Modeling Language 2.0
FUNDAMENTOS DE UML

Orientación a objetos

¿Qué es un objeto? Es una representación de una entidad del


mundo real que es responsable de tener un estado y llevar a
cabo operaciones.

¿Qué es un atributo y qué es una operación? Los atributos


corresponden a datos encapsulados en un objeto y las
operaciones a los algoritmos que procesan esos datos.

¿Qué es una clase? Es una descripción generalizada que


describe una colección de objetos similares.
Unified Modeling Language 2.0
FUNDAMENTOS DE UML

Orientación a objetos

• ¿Qué es el análisis y diseño orientado a objetos? Durante


el análisis se definen las clases del sistema, incluyendo los
atributos y operaciones, y la forma en que se relacionan
las clases unas con otras.

• Durante el diseño se define una arquitectura de software


organizada en capas, se especifican subsistemas, se
describen las clases y se definen los mecanismos de
comunicación entre los componentes.
Unified Modeling Language 2.0

Evolución
Unified Modeling Language 2.0

Definición de UML

1. UML es un lenguaje
estándar para desarrollar los
“planos” de un sistema de
software. Debe ser usado
junto con un proceso de
desarrollo.
2. UML es un meta-modelo
basado en Meta-Object Facility
(MOF) que consiste de un
conjunto de meta-clases que
definen a los elementos de
modelado del lenguaje.
Unified Modeling Language 2.0

Aplicaciones de UML

Usos de UML:
• Visualización.
• Especificación.
• Construcción.
• Documentación.

UML combina notaciones provenientes desde:


• Modelado Orientado a Objetos .
• Modelado de Datos.
• Modelado de Componentes .
• Modelado de Flujos de Trabajo (Workflows).

Permite modelar sistemas de información, aplicaciones


distribuidas en web, entre otros.
Unified Modeling Language 2.0

Herramientas
Unified Modeling Language 2.0

El UML está compuesto por diversos elementos gráficos


que se combinan para conformar diagramas. Debido a
que el UML es un lenguaje, cuenta con reglas para
combinar tales elementos.

La finalidad de los diagramas es presentar diversas


perspectivas de un sistema, a las cuales se les conoce
como modelo.

Recordemos que un modelo es una representación


simplificada de la realidad; el modelo UML describe lo
que supuestamente hará un sistema, pero no dice cómo
implementar dicho sistema.
Unified Modeling Language 2.0
A continuación se describirán los diagramas más comunes
del UML y los conceptos que representan:

• Diagrama de Clases
• Diagrama de Objetos
• Diagrama de Casos de Uso
• Diagrama de Estados
• Diagrama de Secuencias
• Diagrama de Actividades
• Diagrama de Colaboraciones
• Diagrama de Componentes
• Diagrama de Distribución
Unified Modeling Language 2.0
Diagrama de Casos de Uso

Un caso de uso es una descripción de las


acciones de un sistema desde el punto de vista
del usuario. Es una herramienta valiosa dado que
es una técnica de aciertos y errores para obtener
los requerimientos del sistema, justamente desde
el punto de vista del usuario.

Los diagramas de caso de uso modelan la


funcionalidad del sistema usando actores y casos
de uso. Los casos de uso son servicios o
funciones provistas por el sistema para sus
usuarios.
Unified Modeling Language 2.0
Modelo de Casos de Uso (MCU)
• Todos los casos de uso constituyen el MCU que
describe la funcionalidad total del sistema.

• El modelo de casos de uso utiliza tres elementos


básicos:
– Actores, para modelar los diferentes roles que los
elementos externos al sistema pueden
representar.
– Casos de uso, para representar todo aquello que
el actor ha de poder realizar en el sistema.
– Relaciones, que asocian a los elementos actores y
casos de uso.
Unified Modeling Language 2.0
Modelo de Casos de Uso (MCU)
• Caso de Uso: Especifica una secuencia de acciones, incluyendo sus
variantes, que el sistema puede realizar y que produce un resultado
observable válido para un actor particular.
• Los casos de uso se emplean para capturar el comportamiento deseado del
sistema, sin tener que especificar cómo se va a implementar. El nombre de
un caso de uso debe comenzar con un verbo para especificar que se trata
de un proceso.
• Los requerimientos funcionales están naturalmente estructurados como
casos de uso.

¿Cómo identificar casos de uso?


• Hay que preguntarse:
– 1. ¿Cuáles son las tareas y responsabilidades de cada actor con el
sistema?
– 2. ¿Algún actor creará, almacenará, cambiará, borrará o leerá
información del sistema?
– 3. ¿Qué casos de uso crearán, almacenarán, cambiarán, borrarán o
leerán información?
Unified Modeling Language 2.0
Modelo de Casos de Uso (MCU)
• Actor:
– Especifica un conjunto de roles que los usuarios de los

casos de uso representan al interactuar con éstos.


– Representa un rol que es desempeñado:

• Por una persona

• Un dispositivo hardware

• Otro sistema al interactuar con el sistema en

construcción.

Caso de Uso A
Actor A
Unified Modeling Language 2.0
Modelo de Casos de Uso (MCU)
• Relaciones entre actores y casos de uso:
– Asociación (Comunicación: Relación entre un actor y un
caso de uso, denota la participación del actor en el caso de
uso determinado. Todas las líneas que salen del actor
denotan este tipo de relación.
• Relaciones entre casos de uso:
– Extensión (<<extend>>)
– Inclusión (<<include>>)
– Generalización

• Relaciones entre actores:


Caso de Uso A
– Generalización. Actor A
Unified Modeling Language 2.0
Modelo de Casos de Uso (MCU)
• Una relación de inclusión (<<include>>) entre casos de uso significa que un
caso de uso base incorpora explícitamente el comportamiento de otro caso
de uso en el lugar especificado en el caso base.
• Se usa para evitar describir el mismo flujo de eventos repetidas veces,
poniendo el comportamiento común en un caso de uso aparte.
• Una relación include entre dos Casos de Uso indica que el comportamiento
definido en el Caso de Uso a adicionar, es incluído en un lugar dentro de la
secuencia del comportamiento realizado por una instancia del Caso de Uso
base. Cuando una instancia del Caso de Uso «llega al lugar» donde el
comportamiento de otro Caso de Uso debe ser incluído, ejecuta todo el
comportamiento descripto por el Caso de Uso incluido y luego continúa de
acuerdo a su Caso de Uso original. El Caso de Uso incluído no depende del
Caso de Uso base. En este sentido, el Caso de Uso incluído representa
comportamiento encapsulado que puede ser reutilizado en varios Casos de
Uso.
Unified Modeling Language 2.0
Casos de Uso: Ejemplo de Relaciones
Unified Modeling Language 2.0
Ejemplo: Sistema de Alquiler de Vehículos
• Se pretende desarrollar un sistema de gestión para una empresa de alquiler de vehículos cuyas
principales funcionalidades y características son las que a continuación se describen:
• La empresa se dedica al alquiler vehículos. Dentro de los automóviles, la empresa distingue
entre automóviles de lujo y básicos.
• Un cliente puede realizar reservas de automóviles desde Internet. Para ello accederá a la opción
“Realizar Reservas” y el sistema le pedirá su login y password. Si no ha sido cliente
anteriormente el usuario deberá acceder a la opción “Registrarse”, en la que el sistema le
solicitará sus datos personales. Una vez finalizado el registro podrá realizar la reserva. Para ello
el sistema le preguntará si desea un automóvil de lujo o básico, y una vez que el cliente le ha
indicado lo que desea, el sistema le pedirá las fechas inicial y final para las que desea el alquiler,
así como las ciudades de recogida y devolución del vehículo. Después le mostrará la relación de
automóviles (marca, modelo, motor y precio diario) disponibles en esas fechas, entre las que el
cliente escogerá uno. La reserva queda realizada e identificada con un código del que el cliente
debe tomar nota. El cliente podrá, posteriormente, acceder al sistema para consultar o cancelar
su reserva, previa identificación en el sistema.
• Para recoger el vehículo el cliente debe presentarse en las oficinas de la empresa para firmar el
contrato de alquiler del vehículo. Un empleado será el encargado de registrar ese contrato en el
sistema, y se considera imprescindible que quede registrado qué empleado ha realizado cada
contrato. El empleado accederá a la parte de “Contratos” y, si existe reserva previa (no siempre
tiene por qué haberla) introducirá el código de reserva que debe de facilitarle el cliente.
• El sistema comprueba la existencia de la reserva y genera un contrato tipo para el tipo de
vehículo reservado.
• El gerente de la empresa accede al sistema para realizar diversas consultas e informes sobre
cuestiones como alquileres realizados, vehículos disponibles, contratos firmados por
empleados, etc. Por último existe un administrador, que es el encargado de registrar y
mantener la información de los usuarios y de los vehículos de la empresa.
Unified Modeling Language 2.0
Ejemplo: Sistema de Alquiler de Vehículos
DIAGRAMA DE CASOS DE USO: SISTEMA DE ALQUILER DE VEHÍCULOS

Realizar Registro Registrar Contrato


Usuario Empleado <<extend>>

<<include>>
Realizar Reserva Verificar Codigo Reserva

<<include>>
Cliente

Consultar Reserva Validar Acceso


<<include>>

Cancelar Reserva

Registrar Información Consultar Datos


Gerente
Administrador

Mantener Información
Unified Modeling Language 2.0
Caso de Uso : Inmuebles
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

Una empresa gestiona un conjunto de inmuebles, que administra en calidad de


propietaria. Cada inmueble puede ser bien un local (local comercial, oficinas, etc.), un
piso o bien un edificio que a su vez tiene pisos y locales. Como el número de inmuebles
que la empresa gestiona no es un número fijo, la aplicación debe permitir tanto
introducir inmuebles nuevos, así como darlos de baja, modificarlos y consultarlos.

Asimismo, que una empresa administre un edificio determinado no implica que gestione
todos sus pisos y locales, por lo que la aplicación también deberá permitir introducir
nuevos pisos o locales, darlos de baja, modificarlos y hacer consultas sobre ellos.
Cualquier persona que tenga una nómina, un aval bancario, un contrato de trabajo o
venga avalado por otra persona puede alquilar el edificio completo o alguno de los pisos
o locales que no estén ya alquilados, y posteriormente desalquilarlo. Por ello, deberán
poder ser dados de alta, si son nuevos inquilinos, con sus datos correspondientes
(nombre, DNI, edad, sexo, ...), poder modificarlos, darlos de baja, consultarlos, etc.

La aplicación ofrece acceso web para que un inquilino puede modificar o consultar
sus datos, pero no darse de baja o de alta. Para la realización de cualquiera de estas
operaciones es necesaria la identificación por parte del inquilino.
Unified Modeling Language 2.0
Caso de Uso : Clínica
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

La clínica “LAS GARDENIAS” necesita llevar un control automatizado de su gestión de


pacientes y médicos. De cada paciente se desea guardar el código, nombre, apellidos,
dirección, población, provincia, código postal, teléfono y fecha de nacimiento. De cada
médico se desea guardar el código, nombre, apellidos, teléfono y especialidad.

Se desea llevar el control de cada uno de los ingresos que el paciente hace en el hospital.
Cada ingreso que realiza el paciente debe quedar registrado en la base de datos. De cada
ingreso se guarda el código de ingreso (que se incrementará automáticamente cada vez
que el paciente realice un ingreso), el número de habitación y cama en la que el paciente
realiza el ingreso y la fecha de ingreso.

Un médico puede atender varios ingresos, pero el ingreso de un paciente solo puede ser
atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital.
Unified Modeling Language 2.0
Caso de Uso : Transporte
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por
todo Chile. Los encargados de llevar los paquetes son los camioneros, de los que se
quiere guardar RUT, nombre, teléfono, dirección, salario y población en la que vive. De los
paquetes transportados interesa conocer el código de paquete, descripción, destinatario y
dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete sólo
puede ser distribuido por un camionero.

De las provincias a las que llegan los paquetes interesa guardar el código de provincia y el
nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia
pueden llegar varios paquetes.

De los camiones que manejan los camioneros, interesa conocer la matrícula, modelo, tipo
y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un
camión puede ser conducido por varios camioneros.
Unified Modeling Language 2.0
Caso de Uso : Veterinaria
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

La Clínica Veterinaria “PILLIN” desea informatizar la gestión de las atenciones que se


efectúan a las mascotas. Para ello, se desea que Ud. efectúe el diseño de la Base de
Datos que permita satisfacer las necesidades de información para el manejo automático
de las atenciones.
La clínica posee cinco sucursales. Cada sucursal posee un código que la identifica,
además se conoce su nombre, dirección y teléfono. En una sucursal trabajan varios
médicos veterinarios y un médico veterinario puede trabajar en más de una sucursal de la
clínica. Por esta razón, se debe registrar el día-hora de inicio y día-hora término del turno
que el veterinario cumple en cada sucursal.
De los veterinarios que trabajan en la clínica se desea almacenar su rut, nombre, teléfono
y especialidad. Un veterinario puede atender a muchas mascotas.
A cada mascota que es atendida en la clínica se le asigna un número de ficha. Además se
registra el nombre de la mascota, su fecha de nacimiento, raza y color. En su ficha
también se requieren los datos de su dueño, entre ellos el nombre completo, dirección,
teléfono fijo y celular. Un dueño puede tener más de una mascota registrada en la clínica.
Una mascota tiene una o varios controles. Por cada control se registra la fecha de la visita,
su peso, el tipo de tratamiento que se le efectuó y el costo del tratamiento.
Unified Modeling Language 2.0
Caso de Uso : Línea Aérea
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

La línea aérea “Condor” desea que Ud. diseñe una Base de datos que permita manejar la información relacionada con
la gestión de su negocio según los siguientes requerimientos:
La empresa cuenta con una flota de aviones, los cuales son identificados por un número. De cada avión interesa
registrar su marca, modelo y la cantidad de asientos disponibles.

Los pilotos se identifican por rut, nombre, dirección, teléfono, lugar donde efectuó el curso de piloto y el total de horas
de vuelo. Existen dos tipos de pilotos: los contratados como pilotos de planta o por mes. De los pilotos de planta ser
registra su código de AFP a la cual pertenece y el valor del bono que se les paga por horas de vuelos al mes. De
pilotos contratados por mes se registra su valor por hora de vuelo. Un piloto puede ser asignado a diferentes vuelos.

Los aeropuertos se identifican por una sigla (Ej: SIGLA corresponde al Aeropuerto de Santiago de Chile -Comodoro
Arturo Merino Benítez), y además se conoce su nombre y la ciudad en que se ubica.

La compañía registra información acerca de los pasajeros. Cada pasajero se identifica por su Cédula de identidad o
Número de Pasaporte. Del pasajero se conoce además su nombre, dirección, y teléfonos de contacto.

Los vuelos se identifican por un número, además se conoce la fecha y hora de salida del vuelo, la fecha y hora de
llegada a su destino final y el avión asignado. Cada vuelo está compuesto por tramos, y cada tramo posee un número
que lo identifica dentro del vuelo que especifica si es el primer tramo, segundo, etc. Además, de cada tramo se conoce
la distancia recorrida en Km., la duración en horas, el aeropuerto de donde sale y su hora de salida.

Para cada reserva de pasaje se registra el pasajero, el número de vuelo, hora de presentación, hora de salida, clase y
número de asiento.

Unified Modeling Language 2.0
Caso de Uso : Hoteles
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

La cadena internacional de hoteles “Rubí Hoteles” desea informatizar la atención de sus clientes. Para
ello, se desea que Ud. diseñe una Base de Datos para almacenar y gestionar la información
empleada por el Hotel considerando los requerimientos planteados.

De los hoteles se sabe su código, la ciudad y el país en que se encuentra cada hotel. Además, se
conoce su nombre (que es único dentro de cada ciudad), todos sus teléfonos y su dirección de
página web.
Cada hotel tiene un conjunto de habitaciones con un número que las identifica dentro del mismo.
Existen dos tipos de habitaciones. Las habitaciones dobles, que tienen al menos una cama
matrimonial y las habitaciones simples que tienen 1 o 2 camas de una plaza. De las habitaciones
dobles se sabe que algunas tienen una cama de una plaza extra, en este caso, interesa saber cu áles.
De las simples, interesa registrar cuantas camas de una plaza hay en cada habitación.
Las reservas de habitaciones que realizan los clientes es única y se les asignan un número
automático interno. Interesa registrar la fecha de la reserva, fecha de llegada y salida. Una reserva
considera una o varias habitaciones.
Los empleados que trabajan en los hoteles pueden trabajar en uno o varios hoteles de la cadena en
jornadas diferentes. De ellos se conoce su rut, su nombre, un teléfono y el tipo de empleado según el
puesto que desempeñe. De acuerdo a esto es el valor de su salario base y el porcentaje de beneficio.
Unified Modeling Language 2.0
Caso de Uso : Odontológica
Ejercicio: Dibujar el diagrama de casos de uso del siguiente sistema.

La Clínica Odontológica “SONRISA DEP” desea informatizar la atención de sus afiliados. Para ello, se desea que Ud.
diseñe una Base de Datos para almacenar y gestionar la información empleada por la Clínica.

La Clínica Odontológica está compuesta por varias sucursales de atención, identificadas por un código, se conoce
además la ciudad donde se ubica, su dirección, la calle y el número.

Los clínica tiene dos tipos de afiliado: Normales y Tercera Edad los que se identifican por el número de afiliado que se
les asigna al momento de llevar a cabo el contrato de filiación. Los datos requeridos para efectuar el contrato son
nombre completo del afiliado, rut, dirección y algún teléfono de contacto. A los afiliados Normales se les solicita
indiquen la actividad que efectúan y el tipo de salud que poseen. A los afiliados de Tercera Edad se les asigna un
porcentaje de descuento (efectivo para cualquier tratamiento) y el porcentaje que es cubierto por el estado (efectivo
también para cualquier tratamiento), esto de acuerdo a su edad.

A los tratamientos que se realizan a los afiliados se les asigna el código de tratamiento específico. Así un afiliado
podría efectuarse el mismo tratamiento en diferentes fechas. Por ello, es importante almacenar la fecha de inicio y
término del tratamiento y la sucursal de la clínica donde se efectuó. Cada tratamiento además debe ir con una
descripción, su valor asociado y forma de pago del tratamiento que puede ser contado o en cuotas. Cuando el
tratamiento se paga en cuotas, por cada cuota de indica su fecha de vencimiento, su valor, fecha en que se pagó la
cuota y el monto cancelado ya que en ocasiones el afiliado efectúa un abono del monto de la cuota.
Los afiliados se realizan diferentes tratamientos con determinados odontólogos. En ocasiones un afiliado se puede
atender en diferentes sucursales dependiendo del tratamiento que se deba efectuar por lo que es importante que se
almacene la sucursal en cada tratamiento efectuado.

Los odontólogos que trabajan en la clínica se identifican por su rut. De ellos se conoce además su nombre, su
especialidad principal dentro de la odontología. Un odontólogo puede atender diferentes tratamientos.
¿Preguntas?

También podría gustarte