Anda di halaman 1dari 58

PROGRAMACION DEL CURSO

1.- Programación Orientada a Objetos (POO) y UML


(Lenguaje unificado de modelación)

2.- BB.DD. y SQL

3.- Diseño de estructura de datos y algoritmos

4.- Método de diseño de aplicaciones informáticas

5.- Java

6.- C

7.- Pruebas y documentación

8.- Coordinación de equipos de trabajo


TEMA 1
UNIFIED MODELING LANGUAGE (UML)

Lenguaje Unificado de Modelado


UML (Unified Modeling Language) es un lenguaje que permite
modelar, construir y documentar los elementos que forman un sistema
software orientado a objetos.
¿Qué quiere decir esto exactamente? Muy sencillo: Para realizar un
proyecto debemos antes realizar un esquema del mismo. El UML nos permite
mediante diagramas, plasmar de una forma detallada e inteligible la solución
al problema planteado. Pero no solo eso, tenemos que organizar el proceso
de diseño de tal forma que los analistas, clientes, desarrolladores y otras
personas involucradas en el desarrollo del sistema lo comprendan y
convengan con él.
El UML está compuesto por diversos elementos gráficos que se
combinan para conformar diagramas. Los diagramas tienen como objetivo
presentar diversas perspectivas de un sistema. A esto se le llama Modelo.
Tenemos que tener en cuenta que un modelo UML describe lo que
supuestamente hará un sistema, pero no dice como implementar dicho
sistema.
DIAGRAMA DE CLASES

Un diagrama de clases esta formado por varios rectángulos de este


tipo conectados por líneas que muestran la manera en que las clases se
relacionan entre si.

CLASE OBJETO

Clase
Atributos
Métodos o acciones
DIAGRAMA DE ESTADO

En este diagrama se refleja los diferentes estados por los que va a


pasar nuestro modelo

DIAGRAMA DE SECUENCIAS
Los diagramas de clases y los de objeto representa información
estática. Pero en un sistema funcional los objetos interactúan entre si y tales
interacciones se suceden con el tiempo. Vamos a representar el anterior
modelo con un Diagrama de Secuencias:
En el esquema anterior podemos ver la secuencia de eventos entre
los componentes de la lavadora. Entre sus componentes tenemos una
manguera por donde entra el agua, un tambor donde ponemos la ropa que
queremos lavar y un sistema de desagüe. Estos cambien son objetos ya que
un objeto puede estar formado por varios objetos.

Vamos a analizarlos:

Se divide en los 4 ciclos que tiene la lavadora, que serían:

1.- Remojo
2.- Lavado
3.- Enguague
4.- Centrifugado

Veámoslo paso por paso:

1a.- El agua empezará a llenar el tambor mediante una manguera


1b.- El tambor permanecerá inactivo durante 5 minutos
2a.- La manguera deja de abastecer agua
2b.- El tambor girará de un lado hacia otro durante 15 minutos
3a.- El agua jabonosa saldrá por el drenaje
3b.- Comenzará de nuevo el abastecimiento de agua
3c.- El tambor continuará girando
4a.- El abastecimiento de agua se detendrá
4b.- El agua del enjuague saldrá por el drenaje
4c.- El tambor girará en un solo sentido y la velocidad se
incrementará por 5 minutos
4d.- El tambor dejará de girar y el proceso de lavado habrá finalizado

DIAGRAMA DE ACTIVIDADES
Las actividades que ocurren dentro de un caso de uso o dentro del
comportamiento de un objeto se dan, normalmente, en secuencia, como en
los once pasos que hemos visto antes. En el siguiente gráfico vemos como
representamos mediante un diagrama de actividades UML los pasos del 2b al
3b.

DIAGRAMA DE DISTRIBUCION
Este diagrama nos enseña la estructura física de un sistema
informático. Puede representar los equipos y dispositivos, mostrar las
interconexiones y el software que se va a encontrar en cada máquina. Cada
ordenador está representado por un cubo y las interacciones entre ellos por
líneas que conectan los cubos.
DIAGRAMA DE DISTRIBUCION
Establece las colaboraciones entre los distintos componentes o clases

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.
A la figura correspondiente al usuario se le conoce como ACTOR.
La elipse representa el caso de uso. El actor puede ser otra persona u
otro sistema.
DIAGRAMA DE COMPONENTES
El desarrollo de software se realiza mediante componentes y estos se
representan así.

PAQUETE
Podemos crear paquetes para agrupar varias clases

ESTEREOTIPO
Es una restricción a una clase. Se representa con << >>
CLASE. DEFINICION Y CARACTERÍSTICAS

DEFINICION DE CLASE Y REPRESENTACION


Una clase es una categoría o grupo de cosas que tienen atributos y
acciones similares. Por ejemplo: cualquier cosa dentro de la clase “lavadoras”
tiene atributos como, la marca, el modelo, el numero de serie y la capacidad.
También podemos observar que entre las acciones de esta clase se
encuentra: “agregar ropa”, “agregar detergente”, “activarse” y “sacar ropa”.
A estas acciones se les llama métodos u operaciones.
El área superior contiene el nombre, en el área central ponemos los
atributos y en el área inferior los métodos u operaciones. Un diagrama de
clases esta formado por varios rectángulos de este tipo conectados por líneas
que muestran la manera en que las clases se relacionan entre sí.

El nombre de la clase va con la primera letra en mayúsculas, y


asimismo, cuando está compuesta por más de una palabra la primera letra de
cada palabra va también en mayúsculas.

Si lo que se va a representar es un Objeto, irá subrayado para


diferenciarlo:
Los argumentos son los que definen las características particulares de
la clase. Se pueden definir el tipo y asignar valores por defecto, como se
puede ver en el ejemplo anterior.

Los métodos u operaciones de una clase son la forma en como ésta


interactúa con su entorno. Se puede asignar el tipo como en los argumentos.

Los atributos o características de una Clase pueden ser de tres tipos,


los que definen el grado de comunicación y visibilidad de ellos con el entorno;
Privado, Publico o Protegido.

Privado: Se representa con el signo (-). Indica que el atributo sólo


será accesible desde dentro de la clase

Público: Se representa con el signo (+). Indica que el atributo será


visible tanto dentro como fuera de la clase, es decir, es accesible desde todos
lados.

Protegido: Se representa con el signo (#). Indica que el atributo no


será accesible desde fuera de la clase, pero si podrá ser accedido por
métodos de la clase además de las subclases que se deriven.
En el anterior ejemplo podemos ver diferentes ejemplos de
argumentos y métodos privados, públicos y protegidos. También podemos
ver la manera de colocar una nota informativa acerca de la clase, una
restricción a algún argumento de la clase, así como la manera de añadir a la
clase las responsabilidades, que se hace mediante un rectángulo adicional en
la parte inferior de la clase.

CUESTIONES DE REPASO

1.- ¿Cómo se representa una clase en UML?

En un rectángulo con líneas horizontales separando nombre de la


clase, atributos y métodos, y la primera letra del nombre de la clase en
mayúsculas, sin usar espacios.

2.- ¿Qué información se puede mostrar en un símbolo de clase?

Atributos, métodos y responsabilidades

3.- ¿Qué es una restricción?

Una limitación de algún atributo

4.- ¿Para qué adjuntaría una nota a un símbolo de clase?

Para dar información adicional acerca de algún atributo, método o


responsabilidad.
EJEMPLO PRACTICO. JUEGO DE BALONCESTO.

Analista: “Entrenador, ¿de qué se trata el juego?

Entrenador: “Consiste en arrojar el balón a través de un aro, conocido como


cesto, y hacer una mayor puntuación que el oponente. Cada equipo consta de
cinco jugadores: dos defensas, dos delanteros y un central. Cada equipo lleva
el balón al cesto del equipo oponente con el objetivo de hacer que el balón
sea encestado.”

Analista: “¿Cómo se hace para llevar el balón al otro cesto?”

Entrenador: “Mediante pases y dribles. Pero el equipo tendrá que ecestar


antes de que termine el lapso para tirar.”

Analista: “¿El lapso para tirar?”

Entrenador: “Así es, son 24 segundos en el baloncesto profesional, 30 en un


juego internacional, y 35 en el colegial para tirar el balón luego de que un
equipo toma posesión de él”.

Analista: “¿Cómo funciona el puntaje?”

Entrenador: “Cada canasta vale dos puntos, a menos que el tiro haya sido
hecho detrás de la línea de tres puntos. En tal caso, serán tres puntos. Un tiro
libre contará como un punto. A propósito, un tiro libre es la penalización que
paga un equipo por cometer una infracción. Si un jugador infracciona a un
oponente, se detiene el juego y el oponente puede realizar diversos tiros al
cesto desde la línea de tiro libre.”

Analista: “Hábleme más acerca de lo que hace cada jugador.”


Entrenador: “Quienes juegan de defensa son, en general, quienes realizan la
mayor parte de los dribles y pases. Por lo general tienen menor estatura que
los delanteros, y éstos, a su vez, son menos altos que el central (que también
se conoce como ‘poste’). Se supone que todos los jugadores pueden burlar,
pasar, tirar y rebotar. Los delanteros realizan la mayoría de los rebotes y los
disparos de mediano alcance, mientras que el central se mantiene cerca del
cesto y dispara desde un alcance corto.”

Analista: “¿Qué hay de las dimensiones de la cancha? Y ya que estamos en


eso ¿cuánto dura el juego?

Entrenador: “En un juego internacional, la cancha mide 28 metros de


longitud y 15 de ancho; el cesto se encuentra a 3.05 metros del piso. En un
juego profesional, el juego dura 48 minutos, divididos en cuatro cuartos de 12
minutos cada uno. En un juego colegial e internacional, la duración es de 40
minutos, divididos en dos mitades de 20 minutos. Un cronómetro del juego
lleva un control del tiempo restante.”

Representa todas las clases que puedas definir en el anterior párrafo.


CARACTERISTICAS DE LAS CLASES

ABSTRACCION

En una clase, es el hecho de dejar sólo lo estrictamente necesario. Es


decir, quitar propiedades y métodos no necesarios. No se puede instanciar y
se debe usar únicamente para definir subclases.

Una clase abstracta no puede ser instanciada pues posee métodos


abstractos (aún no han sido definidos, es decir, sin implementación). La única
forma de utilizarla es definiendo subclases, que implementan los métodos
abstractos definidos.

Ejemplo en JAVA de Abstracción y definición de atributos.


Imaginemos un concepto abstracto como Figura. Si deseamos implementarla,
primero deberemos de saber de que figura se trata, por lo que por sí misma,
es un concepto abstracto.
public abstract class Figura;
{
protected double x;
protected double y;
public Figura (double , double y)
{
this.x = x
this.y = y
}
public abstract double area()
}
public class Circulo extends Figura
{
private double radio
public Circulo (double x, double y, double radio)
{
super (x,y);
this.radio = radio;
}
public double area ()
{
return Math.PI * radio * radio;
}
}
public class Cuadrado extends Figura
{
private double lado
public Cuadrado (double x, double y, double lado)
{
super (x,y);
this.lado = lado;
}
public double area ()
{
return lado * lado;
}
}

Para crear un objeto, no se puede instanciar de una clase abstracta,


sino que tendremos que llamar a la subclase. Por ejemplo:

Figura Figurita;
Figura Figurita = new Cuadrado (x,y,1);

La clase Figura por si misma no puede crear el objeto, porque no


define el tipo de objeto, y tendremos que llamar a alguna de las subclases
que la componen para crear dicho objeto. Cuando al menos un método no
está implementado en una clase, decimos que dicha clase es abstracta.

Cuando en una clase no hay ningún método implementado, no se le


llama clase abstracta, sino INTERFAZ, y se puede usar como plantilla para
otras clases.

HERENCIA

Indica que una subclase hereda los métodos y atributos especificados


por una Clase superior, por lo tanto la Subclase además de poseer sus propios
métodos y atributos, poseerá las características y atributos visibles de clase
de la que heredan.
Frigorífico, Lavadora y Lavavajillas heredan propiedades y métodos de
Electrodoméstico, pero además pueden tener otras propias de cada uno.

POLIMORFISMO

El polimorfismo se refiere a la posibilidad de definir clases diferentes


que tienen métodos o atributos denominados de forma idéntica, pero que se
comportan de manera distinta.

Por ejemplo, podemos crear dos clases distintas: Circulo y


Cuadrado que heredan de la superclase Figura. La clase Figura tiene el
método abstracto Dibujar que se implementa de forma distinta en cada una
de las subclases (Circulo y Cuadrado se dibujan de forma distinta)

Otro ejemplo de polimorfismo:


ENCAPSULAMIENTO

Cuando en una Clase existen atributos y/o métodos internos para el


funcionamiento de dicha Clase, y no pueden ser llamados desde fuera, se
dicen que están encapsulados.

El aislamiento protege a los datos asociados a un objeto contra su


modificación por quien no tenga derecho a acceder a ellos, eliminando
efectos secundarios e interacciones entre otras clases. La utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, ya que
tendremos a las Clases como cajas negras donde sólo se conoce el
comportamiento pero no los detalles internos, y esto es conveniente porque
lo que nos interesará será conocer qué hace la Clase pero no será necesario
saber cómo lo hace.

Resumiendo, se tratan de atributos y/o métodos privados (-)

Los atributos y los métodos marcados como privados en el ejemplo


anterior estarán encapsulados y no serán accesibles desde el exterior de la
Clase Caballo.
MULTIPLICIDAD

La multiplicidad es una restricción que se pone a una asociación, que


limita el número de objetos de una clase que pueden tener esa asociación
con objetos de la otra clase. Puede expresarse de las siguientes formas:

• Con un número fijo: 1.

• Con un intervalo de valores: 2...5.

• Con un rango en el cual uno de los extremos es un asterisco. Significa que es


un intervalo abierto. Por ejemplo, 2..* significa 2 o más.

• Con una combinación de elementos como los anteriores separados por


comas: 1, 3..5, 7, 15..*.

• Con un asterisco: * . En este caso indica que puede tomar cualquier valor
(cero o más).
CUESTIONES DE REPASO

1.- ¿Que es un Objeto?

Es una instancia de una clase.

2.-¿Cómo trabajan los objetos en conjunto?

Mediante el envío de mensajes entre sí.

3.- ¿Qué establece la multiplicidad?

La cantidad de objetos de una clase que se relaciona con los de otra


clase asociada.

4,.- ¿Pueden asociarse dos objetos entre sí de más de una manera?

Si

ASOCIACIONES ENTRE CLASES

ASOCIACION. DEFINICION Y TIPOS

Las asociaciones entre dos clases se representan mediante una línea


que las une. La línea puede tener una serie de elementos gráficos y/o
comentarios que expresan características particulares de la asociación.
Existen diferentes tipos de asociaciones entre clases que veremos a
continuación. Existen por ejemplo asociaciones de 1 vía, o de más de una vía,
con una clase o con más de una.

Ejemplo de asociación de 1 vía


Ejemplo de asociación de 2 vías

Asociación de 2 vías con clases distintas

AGREGACION

Una agregación es una asociación entre 2 o más objetos de distinto


tipo, de tal forma que en caso de desaparecer el objeto principal, los objetos
restantes pueden existir por sí mismos. Se representa con un rombo blanco
colocado en la línea de asociación por el lado de la clase principal.

En este ejemplo podemos ver que el objeto Ordenador está


compuesto de varios elementos. Si el objeto Ordenador desaparece los
demás objetos pueden existir como una entidad propia, con sus argumentos
y métodos propios. A esta forma de asociación entre objetos se le llama
Agregación.
COMPOSICION

En este tipo de asociación, si el elemento principal desaparece,


también desaparece los objetos asociados a éste. Se representa con un
rombo negro colocado en la línea de asociación del objeto principal.

En el anterior ejemplo podemos comprobar cómo, si el elemento


principal Caballo desaparece, también desaparecen los elementos Cabeza y
Pata a los que hace referencia, ya que son una composición de Caballo, pero
sin embargo el elemento Silla permanece, puesto que es una agregación al
elemento Caballo.

Para indicar el papel que juega cada clase en una asociación se puede
especificar un nombre de rol en la esquina inferior de cada clase.
EJEMPLOS DE ASOCIACIONES

VINCULO

Es una asociación entre dos objetos de distinta clase.


CALIFICADOR

Es una restricción en la búsqueda

ASOCIACIONES REFLEXIVAS

Como su nombre indica, se refiere a la relación de una clase consigo


misma.

GENERALIZACION

Se llama generalización al proceso mediante el cual establecemos


clases superiores jerarquicamente que las subclases que lo componen. Para
saber si una clase es subclase de otra, o sea, que hereda de ésta, podemos
preguntarle “Es un tipo de…?”
METODOLOGÍA PARA LA REALIZACION DE UN DIAGRAMA DE CLASES

1.- Crear un diagrama de clases, con sus componentes: Nombre de


clase, Atributos, Métodos, Restricciones y Responsabilidades

2.- Crear asociaciones entre clases, indicando nombre de la


asociación, sentido o dirección de ésta, multiplicidad de los elementos de la
asociación y papel que cada clase desempeña en la asociación.

3.- Explicar con un texto libre por qué se ha diseñado de esta forma el
diagrama de clases.

CUESTIONES DE REPASO

1.- ¿Cómo representarías la multiplicidad?

Con un número en la esquina inferior de cada clase de la asociación

2.- ¿Cómo descubriría la herencia?

Buscando atributos y/o métodos comunes

3.- ¿Qué es una clase abstracta?

Es una clase que tiene al menos un método sin implementar

4.- ¿Cuál es el efecto de un calificador?

Indica una restricción en la búsqueda dentro de los objetos de una


clase. Así se consigue reducir la multiplicidad.
EJERCICIO PRACTICO

Crea un modelo que represente la siguiente frase: “Un abogado que


se representa a sí mismo, tiene por cliente a un tonto”

EJEMPLOS DE AGREGACIONES
INTERFAZ

Una interfaz es una clase sin atributos, cuya misión es hacer de


plantilla

EJEMPLO DE VISIBILIDAD DE ATRIBUTOS Y MÉTODOS

NIVEL PUBLICO: + Para usar desde fuera de la clase

NIVEL PRIVADO: - Para usar sólo dentro de la clase

NIVEL PROTEGIDO: # Para usar en la clase y sus dependientes


CUESTIONES DE REPASO

1.- Diferencias entre Agregación y Composición

En la composición el objeto principal no tiene sentido sin las partes


que lo componen, formando un todo junto con ellos, y en una agregación es
un conjunto de clases que de por si forman un todo también por separado.

2.- ¿Qué es la realización?

Es la relación entre una clase y una interfaz

3.- Describe los tres niveles de visibilidad.

Publico, que significa que puede usarse desde fuera de la clase,


Privado, que significa que solo puede usarse dentro de su clase, y Protegido,
que significa que puede usarse en su clase y subclases que hereden de ésta.
CASOS DE USO

Actor: Se llama asi al que inicia el Caso de Uso

Actor Primario: El que inicia y se beneficia del caso de uso

Actor Secundario: Que aparece también en el caso de uso

CASO MAQUINA FUNCIONA CORRECTAMENTE

ACTOR: Cliente que quiere comprar gaseosa

ESCENARIO: Cliente inserta dinero

Seleccionar

Máquina tiene al menos una bebida

Se le entrega bebida al cliente

COND. PREVIA: Cliente tiene sed

RESULTADO: El cliente tiene su gaseosa

CASO MAQUINA NO TIENE LATAS

ACTOR: Cliente que quiere comprar gaseosa

ESCENARIO: Cliente inserta dinero

Seleccionar

Máquina no tiene la bebida seleccionada

Seleccionar otro producto o devolver el dinero


COND. PREVIA: Cliente tiene sed

RESULTADO: El cliente tiene su gaseosa o su dinero

CASO CANTIDAD DE DINERO INCORRECTA

ACTOR: Cliente que quiere comprar gaseosa

ESCENARIO: Cliente inserta dinero

Máquina tiene la bebida seleccionada

Maquina no tiene la moneda fraccionaria

COND. PREVIA: Cliente tiene sed

RESULTADO: El cliente no tiene su gaseosa

CASO REABASTECER

ACTOR: Reponedor

ESCENARIO: Quitar seguro a la máquina

Abrir máquina

Llenar los compartimentos con determinadas marcas según


su capacidad

Rellenar la reserva de monedas

Cerrar la maquina

Poner seguro a la máquina

COND. PREVIA: Cada 2 semanas


RESULTADO: Máquina reabastecida y con monedas para el cambio

CASO RECAUDAR

ACTOR: Recaudador

ESCENARIO: Quitar seguro a la máquina

Apertura

Abrir máquina

Sacar dinero Recaudar

Llenar los compartimentos con determinadas marcas según


su capacidad

Rellenar la reserva de monedas

Cerrar la maquina

Cierre

Poner seguro a la máquina

COND. PREVIA: Cada 2 semanas

RESULTADO: Máquina reabastecida y con monedas para el cambio y con la


recaudación bisemanal retirada.
INCLUSION (<<INCLUDE>>)

Es el método para reducir rutinas que se repiten constantemente y


llamarlas con un nombre, para no tener que repetirlas constantemente.

EXTENSION (<<EXTEND>>)

Es el método mediante el cual un Caso de Uso se reulitiza, agregando


pasos para crear uno nuevo a partir de éste.

COMUNICACIÓN (<<COMUNICATE>>)

Es una asociación de comunicación.

CUESTIONES DE REPASO

1.-¿Cómo se llama la entidad que inicia un caso de uso?

Actor

2.- ¿Qué se entiende con “incluir un caso de uso”?

Definir rutinas que se repiten para no repetirlas, agrupandolas

3.- ¿Qué se entiende con “extender un caso de uso”?

Reusar un Caso de Uso existente, agregando pasos para crear uno


nuevo

4.- ¿Un caso de uso es lo mismo que un escenario?

No, un Caso de Uso es una colección de escenarios


CASOS DE USO (DESARROLLO)

Para desarrollar un caso de uso siempre seguiremos los siguientes


pasos.

1.- Descripción del caso de uso

2.- Codigo Ej: CS-0100

3.- Nombre del Caso de Uso

4.- Actor que inicia el C.U.

5.- Condiciones previas

6.- Pasos del escenario

7.- Condiciones posteriores

8.- Actor que se beneficia del C.U.

<<comunicate>> para indicar la asociación de comunicación

Caso de uso Limite del sistema

ORIGEN RESULTADO O BENEFICIADO


GENERALIZACION

Al igual que las clases, los Casos de Uso también pueden heredarse
entre sí. ¿Qué heredan? Sus acciones, sus <<include>>, sus <<extend>> pero
además pueden añadir sus propias acciones. Se representa con una flecha.
CASO DE USO DE UNA RED LOCAL
COMPRENSION DE LOS CASOS DE USO

CASO DE USO “CREAR UNA PROPUESTA”

Actor: Consultor

Escenario: Iniciar sesión en la LAN

Verificar Usuario

Verificar USER y PASSWORD

Abrir Software Abrir Programa

Escribe la propuesta
Consultor puede usar porciones de propuestas anteriores

Alamacenar la propuesta en la LAN

Enviar Email a colaboradores para que revisen la propuesta,

indicando ubicación

El consultor recibe los cambios por email y modifica la propuesta

Imprime la propuesta

Envia la propuesta por email al cliente

Consultor cierra la sesion de red Finalizar sesión

Se pueden realizar Casos De Uso con pasos que se repitan a menudo


para ahorrar trabajo, como “Iniciar Sesion”, “Abrir programa”, “Finalizar
sesión”

VISUALIZACION EN UML DEL CASO DE USO “CREAR UNA PROPUESTA”


AGRUPAMIENTO

Se llama agrupamiento a la organización de varios Casos de Uso en un


Paquete

CUESTIONES DE REPASO

1.- Cita dos ventajas de crear un Caso de Uso

Es más facil de entender por el Usuario, y permiten sacar más


información adicional.

2.- Describir la generalización y el agrupamiento

Se llama Generalización al hecho de un CU heredar de otro CU, y


Agrupamiento al hecho de agrupar los CU en paquetes.

3.- Similitudes y diferencias entre Caso d Uso y Clases

Similitudes: Son elementos estructurales que pueden heredar

Diferencias: CLASE: Atributos y métodos, estático

CU: Escenario y secuencia de pasos, dinámico

La clase muestra el interior del sistema y el Caso de


Uso muestra el aspecto del sistema a alguna persona
CASO DE USO “PERSONA USA UN TV”

ACTOR: Usuario TV

ESCENARIO:

CASO DE USO TRANSFERENCIA BANCARIA

Una persona que quiere realizar una transferencia bancaria en su banco, pero
que además pueda utilizar Internet para hacer las transferencias
(transferencias por Internet)
CASO DE USO USUARIO DE TELEFONIA MOVIL

Crear un Caso de Uso de un sistema de telefonía movil, donde el


usuario va a poder realizar y recibir llamadas, además de realizar llamadas de
videoconferencia, y recibir llamadas adicionales. El usuario tiene en el móvil
su agenda personal.
CASO DE USO VENTA DE PRODUCTOS

Crear un C.U para un vendedor que vende productos bajo pedido de los
clientes. El sistema debe permitir realizar pedidos por catálogo.

CASO DE USO “REALIZAR LLAMADAS” (FLUJO DE EVENTOS)

El usuario levanta el teléfono y marca el número. Al completar la


secuencia del número la conexión se realiza. Por medio de tonos particulares
el sistema indica el estado de error y de progresión en la conexión.

Código: CS0100

Nombre: Realizar llamadas

Actores: Usuario
Precondicion: Teléfono colgado y que el usuario quiera realizar
llamadas

Postcondicion: Hablar o no

Un flujo de enventos se representa indicando el número de paso,


quién realiza la acción y la información del paso.

Paso 1.- USUARIO: Levanta el teléfono

Paso 2.- SISTEMA: Da el tono de marcado

Paso 3.- USUARIO: Indica el número de teléfono

Paso 4.- SISTEMA: Realiza la conexión

Paso 5.- USUARIO: Conversa, y cuando finaliza cuelga el teléfono

Paso 6.- SISTEMA: Termina la conexión

DIAGRAMA DE ESTADOS

Actividades: entry / cción de entrada

Exit / acción de salida

Do / actividad que se realiza


Transiciones: Evento [atributo] [Condiciones guarda] / [acción]

Ejemplo:

Sucesos y acciones

Existen diferentes tipos de transiciones:

De suceso y acción

De acción

De suceso

No desencadenada

Reflexiva
Ejemplo:

Subestados

Secuenciales: Son subestados que se realizan en orden, uno detrás de otro

Recurrentes: Son subestados que se ejecutan a la vez que otros


ESTADO DE HISTORICOS

Superficial: Recuerda el sólo el subestado


principal

Profundo: Recuerda los subestados anidados

Pseudoestados: No tienen variables de estado

ni lista de actividades.

MENSAJES Y SEÑALES

UML propone las señales como clases

Las señales emitidas y recibidas son instancias de la clase SEÑAL (objetos)

Estereotipo <<señal>>
Los atributos del objeto serán los parámetros del mensaje

UML propone utilizar una jerarquía de clases

Ejemplo:

Señales que puede recibir un jinete y su caballo (consideramos que


los obstáculos pueden emitir señales iguales a las de un juez)

CUESTIONES DE REPASO

1.- ¿Cuál es la mejor manera de empezar a crear un Diagrama de Estado?

Identificar eventos y transiciones de los diferentes estados

2.- Cada Diagrama de Estado debe tener obligatoriamente un estado final?

No, puede ser un bucle infinito


3.- ¿Qué no hacer a la hora de diseñar un Diagrama de Estado?

Cruzar lineas, indicando los cruces con un salto si no queda más


remedio que hacerlo

4.- ¿En qué se diferencia un Diagrama de Estado de un Diagrama de Clases,


de Objetos y de Casos De Uso?

El Diagrama de Estado analiza objeto por objeto dentro del sistema,


mientras que los demás diagramas ofrecen una visión global del sistema

5.- Describe transición, suceso, evento y acción

Transición: Paso de un estado a otro

Suceso: Evento que desencadena la transición

Acción: Proceso ejecutable que resulta del cambio de estado

6.- ¿Qué es una transición no desencadenada?

Es la que se inicia por finalización de algún proceso, como en el


arranque de un ordenador

7.- Diferencia entre subestado secuencial y subestado recurrente

Subestados secuenciales son los que se realizan en un orden


secuencial, uno detrás de otro, mientras que los subestados recurrentes son
aquellos que se ejecutan al mismo tiempo.
EJERCICIOS PRACTICOS

Dibujar un Diagrama de Estado donde un libro sólo pueda ser


prestado a un usuario que no sea moroso. El préstamo del libro debe de ser
como máximo de 3 días.

Dibujar el Diagrama de Estado del objeto coche de una empresa de


alquiler de vehículos, en los que se alquilarán los coches a menos que estén
de baja.
Dibujar el Diagrama de Estado de una puerta automática
DIAGRAMAS DE ESTADO

Un diagrama de estado representa la interacción entre los diferentes


objetos a través del tiempo. Se representa mediante unas columnas, con los
nombres de los objetos como cabecera.

Los objetos pueden enviarse mensajes entre sí, o a sí mismos. Dichos


mensajes pueden ser de tres tipos: Simples, cuando transfieren el control de
un objeto a otro; Sincrónico, cuando un objeto espera respuesta del objeto al
que manda el mensaje para continuar; y Asincrónico, cuando el objeto no
espera respuesta del otro objetopara continuar.
RELACION ENTRE DIAGRAMAS DE ESTADO, SECUENCIA Y C. USO

Veamos esta relación con varios ejemplos.

USUARIO PULSA TECLA

Veamos el ejemplo de un usuario de ordenador, que pulsa una tecla.

CASO DE USO

1.- La GUI notifica al Sistema Operativo que se oprimió una tecla

2.- El S.O. lo notifica a la CPU

3.- El S.O. actualiza la GUI

4.- La CPU notifica a la tarjeta de video

5.- La tarjeta de video envía un mensaje al monitor

6.- El monitor representa el carácter en pantalla

DIAGRAMA DE ESTADO
DIAGRAMA DE SECUENCIAS

COMPRAR GASEOSA

Veamos el ejemplo de una máquina de vender gaseosa

CASO DE USO

1.- El cliente inserta el dinero

2.- El cliente hace la selección

3.- El dinero va al registrador

4.- El registrador verifica si la selección está en el dispensador

5.- El dispensador entrega la bebida


DIAGRAMA DE SECUENCIAS

COMPRAR GASEOSA DINERO INCORRECTO

Veamos ahora el diagrama de secuencias del ejemplo anterior, pero


añadiéndole el caso de que no ingresemos el dinero correcto

1.- El registrador verifica si la Alimentacion = Precio Producto

2.- Si [Alimentacion>Precio] calcula la diferencia y verifica si tiene cambio

3.- Si tiene cambio, el registrador lo devuelve al cliente

4.- Si no tiene cambio, el registrador devuelve la alimentación

5.- Si la alimentación es menor que el precio, no hacemos nada


COMPRAR GASEOSA MARCA AGOTADA

Incrementemos el caso anterior con el caso de no haber existencias


del producto seleccionado.

1.- El cliente elije una marca agotada y la maquina le muestra el mensaje


“Agotado”

2.- El cliente elige otra marca

CREAR UNA PROPUESTA

Veamos el ejemplo de un consultor que crea propuestas a clientes

1.- El consultor quiere usar parte de una propuesta existente y busca en un


area centralizada (repositorio)

2.- Si el consultor encuentra una propuesta, la abre con un software y la


guarda con un nuevo nombre

3.- Si el consultor no encuentra la propuesta, abre el software y crea un


documento nuevo

4.- Cuando finaliza la propuesta, la guarda en el repositorio


RECURSIVIDAD

Se llama recursividad cuando un proceso se llama continuamente a sí


mismo, por ejemplo una calculadora para calcular un interés.
CUESTIONES DE REPASO

1.- Diferencias entre mensaje sincrónico y mensaje asincrónico

2.- ¿Cómo se representan las instrucciones condicionales?

3.- ¿Cómo se representa la secuencia mientras?

4.- Como se representa a un objeto recién creado?

Anda mungkin juga menyukai