Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Vicerrectorado de Investigacin
ANLISIS Y DISEO DE
SISTEMAS INFORMTICOS
TINS Bsicos
INGENIERA DE SISTEMAS
Lima - Per
1
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
2
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
3
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
4
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
PRESENTACIN
En el capitulo III se utiliza los conceptos del anlisis orientado a objetos para
organizar los elementos en paquetes, descripcin de casos de uso y elaboracin de los
diagramas de casos de uso.
5
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Vicerrectorado de Investigacin
6
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
NDICE
CAPITULO I
1.1 Introduccin 11
1.2 Sistema de informacin 11
1.3 Conceptos Bsicos de la Tecnologa de Objetos 15
1.4 El Lenguaje Unificado de Modelado (UML) 17
CAPITULO II
CAPITULO III
CAPITULO IV
CAPITULO V
CAPITULO VI
7
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO VII
Bibliografa 129
8
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
DISTRIBUCIN TEMTICA
CLASE
TEMA SEMANA HORAS
N
1 Introduccin a los Sistemas de Informacin: 1 03
Enfoque Sistmico, Enfoque Orientado a Objeto
2 Conceptos Bsicos de la Tecnologa de Objetos 2 03
3 Anlisis y Diseo de Sistemas Orientado a Objetos 3 03
(Modelando en UML)
4 Casos de Uso 4 03
Diagramas de Casos de Uso. Organizando los
Elementos de Paquetes
5 Casos de Uso 5 03
Diagramas de Casos de Uso. Organizando los
Elementos de Paquetes (Continuacin)
6 Diagrama de Interaccin: 6 03
Diagrama de Secuencia
Diagrama de Colaboracin
7 Diagrama de Interaccin: 7 03
Diagrama de Secuencia
Diagrama de Colaboracin (Continuacin)
8 Diagrama de Objetos 8 03
Comparacin del Anlisis Orientado a Objetos y el
Diseo Orientado a Objetos
9 Diagramas de Clases 9 03
10 EXAMEN PARCIAL 10 03
11 Diagrama de Clases (Continuacin) 11 03
12 Especificacin de la Lgica General 12 03
13 Diagramas de Comportamiento: 13 03
Diagrama de Estado
Diagrama de Actividad
14 Diagramas de Comportamiento: 14 03
Diagrama de Estado
Diagrama de Actividad (Continuacin)
15 Diagrama de implementacin: 15 03
Diagrama de Componentes
Diagrama de distribucin
16 Arquitectura Clsica de Tres Capas 16 03
17 Diagrama de despliegue 17 03
18 Revisin, Nivelacin 18 03
19 EXAMEN FINAL 19 03
9
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
10
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPTULO I
1.1 INTRODUCCIN
Los altos ejecutivos, estadistas o cualquier persona que tiene un puesto de
responsabilidad en las empresas, instituciones privadas o estatales, encuentran cada
da ms difcil el tomar una decisin sobre el curso de accin para solucionar, de la
mejor forma un problema. Esta situacin hace que los sistemas de informacin sean
cada vez ms importantes para el desenvolvimiento diario de la empresa.
Sistema
Desde un punto de vista prctico un sistema es un conjunto de elementos
dinmicamente relacionados entre s, para alcanzar un objetivo.
Sistema Productivo
En un proceso industrial entran insumos (materia prima), que pasan por un proceso de
transformacin y se obtiene como resultado final un producto terminado. Paralelo a
este proceso industrial, existe un sistema de informacin que utiliza los datos de los
insumos, del proceso y del producto terminado
Los sistemas de informacin tienen muchas cosas en comn, la mayora de ellos estn
formados por:
11
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Salida.- Las personas utilizan terminales para introducir datos en el sistema y para
solicitar y recibir informacin del sistema. Cuando se utiliza terminales de punto de
venta, o terminales de operaciones financieras, la computadora suele responder con
una salida impresa producida por la terminal. Esta salida puede tener la finalidad
exclusiva de ser utilizada por los miembros de una organizacin. Los terminales de
despliegue visuales son los dispositivos ms comunes empleados para recibir salida
durante el procesamiento de acceso directo. Tambin pueden utilizarse las terminales
12
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
de despliegue grfico para producir salida en forma de grficos, mapas y dibujos. Los
cajeros automticos, a menudo exhiben instrucciones en pantalla para ayudar a los
clientes de un banco en la realizacin de sus operaciones. Tambin se puede preparar
respuestas con voz para proporcionar informacin de salida interna y externa.
Ejemplos:
Categoras de los SI
Puede decirse, en lneas generales, que esta evolucin ha tenido lugar en tres grandes
etapas
13
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Clase: Es una descripcin para producir objetos de esa clase o tipo. Una clase esta
formada por los mtodos y los atributos, que definen las caractersticas comunes a
todos los objetos de esa clase. Una clase se puede considerar como una plantilla para
crear objetos de esa clase o tipo.
Jzquel 1996.- Un objeto describe una abstraccin caracterizada por una entidad del
mundo real Existe en el tiempo
Un objeto tiene una identidad que denota una existencia separada de los otros objetos.
El comportamiento de un objeto se manifiesta ante acciones y reacciones en forma de
cambios de estado.
Snyder, 1993.- bsicamente un objeto es una entidad que juega un papel visible al
proporcionar servicios a clientes
14
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
comportamiento
a. describe las acciones y reacciones de un objeto
b. las operaciones de un objeto se realizan como consecuencia de
estmulos realizados mediante el envo de mensajes
Mtodos: Un mtodo determina cmo tiene que actuar el objeto cuando recibe un
mensaje. Un mtodo tambin puede enviar mensajes a otros objetos solicitando una
accin o informacin. La descripcin de un mtodo se denomina operacin.
15
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
El consorcio OMG
Rational Software Oracle IBM DEC
Hewlett-Packard Sterling Software MCI Systemhouse Unisys
IntelliCorp ICON Computing i-Logix ObjectTime
Platinum Technology Petch Taskon A/S Softeam
Reich Technologies Microsoft ....
16
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ventajas de la unificacin
Reunir los puntos fuertes de cada mtodo
Idear nuevas mejoras
Proporcionar estabilidad al mercado
Proyectos basados en un lenguaje maduro
Aparicin de potentes herramientas
Eliminar confusin en los usuarios
UML y el modelado
UML es una notacin, no es un proceso
Se estn definiendo muchos procesos para UML.
Rational ha ideado RUP, Proceso Unificado de Rational.
Utilizable para sistemas que no sean software
Por qu modelamos?
1. Construimos modelos para comprender mejor el sistema que estamos
desarrollando
2. Cuatro utilidades de los modelos:
Visualizar cmo es o queremos que sea el sistema
Especificar la estructura y comportamiento del sistema
Proporcionan plantillas que guan la construccin del sistema
Documentan las decisiones
3. Equivalen a los planos de un edificio
Una empresa software con xito es aquella que produce de manera consistente
software de calidad que satisface las necesidades de los usuarios
17
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Utilidad de UML
Permite especificar todas las decisiones de anlisis, diseo e implementacin,
construyndose modelos precisos, no ambiguos y completos.
UML puede conectarse a lenguajes de programacin:
Ingeniera directa e inversa
Permite documentar todos los artefactos de un proceso de desarrollo (requisitos,
arquitectura, pruebas, versiones,..)
18
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
19
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
20
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO II
Ejemplo
21
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Tipos de requisitos
Funcionales.- Especifican los servicios que debe proporcionar la aplicacin
Para cada caso de uso se define un diagrama de secuencia del sistema que muestra
los eventos que un actor genera durante la interaccin con el sistema (caja negra).
Cada evento da origen a una operacin del sistema. El efecto de las operaciones se
describe mediante contratos especificados mediante una plantilla (opcional).
22
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Para cada operacin del sistema se define una colaboracin (diagrama de interaccin)
que muestra cmo deben colaborar los objetos para satisfacer la postcondicin
expresada en el contrato de dicha operacin.
El modelo de clases del anlisis se crea a partir del modelo conceptual. Se aade
una clase por cada tipo de objeto del dominio que participa en la colaboracin.
Se aaden atributos segn los contratos.
Se aaden mtodos segn las colaboraciones.
Para aquellas clases con objetos con comportamiento dependiente del estado, se
construye una mquina de estados
Se debe:
Identificar clases (atributos y mtodos) e interfaces en el modelo de clases
del diseo
Establecer asociaciones entre clases.
Establecer navegabilidad para todas las asociaciones.
Determinar visibilidad entre clases.
Incluir relaciones de dependencia entre clases.
Definir la arquitectura del sistema.
Establecer los subsistemas: Paquetes.
Identificar estructuras de datos.
Disear las interfaces del usuario.
Distribucin.
23
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
24
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO III
Ejemplo.- En este caso existen tres paquetes (que se muestran vacos en este caso,
con su contenido encapsulado), con dos de ellos dependiendo del Modelo del Mundo.
25
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Adems:
Describen qu hace el sistema, no cmo lo hace.
Son tcnica de recoleccin y especificacin de requisitos.
Fciles de comprender/validar por los usuarios.
Guan todo el proceso de desarrollo.
Ayudan a la planificacin/desarrollo incremental.
Tradicionalmente ligados a la OO, pero no obligatorio
Ayudan a determinar la interfaz de usuario.
Actor.- Un actor representa un conjunto coherente de roles que juegan los usuarios de
los casos de uso al interaccionar con el sistema. Roles jugados por personas,
dispositivos, u otros sistemas. No forman parte del sistema. Inician la ejecucin de los
casos de uso. Un usuario puede jugar diferentes roles. En la realizacin de un caso de
uso pueden intervenir diferentes actores. Un actor puede intervenir en varios casos de
uso. Identificar casos de uso mediante actores y eventos externos. Un actor necesita el
caso de uso y/o participa en l.
Los actores solo se pueden conectar a los casos de uso a travs de asociaciones. Una
asociacin entre actor y un caso indica que el actor y el caso de uso se comunican entre si, y
cada uno puede enviar y recibir mensajes.
26
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
El conjunto completo de casos de uso especifica todas las posibles formas de usar el
sistema, esto es el comportamiento requerido.
Cada caso de uso debe tener un nombre que lo distingue de otros casos de uso. Un
nombre es una cadena de caracteres. En la practica, los nombres de los casos de uso, son
expresiones verbales que describen algn comportamiento del vocabulario del sistema que se
esta modelando. Puede tener cualquier nmero de letras, dgitos o signos de puntuacin.
Ejemplos
Efectuar Pedido
27
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Especificacin de requisitos
La ERS (Especificacin de Requisitos del Software) puede estar formada por:
Diagrama de casos de uso
Modelo del dominio (modelo conceptual)
(Para cada caso de uso)
Descripcin textual (usando una plantilla)
Descripciones de las interfaces de usuario
Requisitos no funcionales
Ejemplo
Comprar artculos (en un terminal de punto de venta)
Comprar artculos
28
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Flujo Principal: Un cliente llega al TPV con un conjunto de artculos. El Cajero registra
los artculos y se genera un ticket. El cliente paga en efectivo y recoge los artculos.
Ejemplo
Validar Usuario (contexto de un cajero automtico)
Validar Usuario
Flujo Principal: El sistema pide la Clave. El cliente lo introduce a travs del teclado y
pulsa Enter. El sistema comprueba la validez de la Clave. Si es vlido el sistema acepta
la entrada y finaliza el caso de uso.
Ejemplo
Prestar libro (contexto de una biblioteca)
Prestar Libro
29
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Actor(es):.
Resumen:.
Precondiciones:.
Postcondiciones:
30
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Ejemplo
31
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Ejemplo
32
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Generalizacin
Un caso de uso hereda el comportamiento y significado de otro
Inclusin
Un caso de uso base incorpora explcitamente el comportamiento de otro en algn
lugar de su secuencia.
Extensin
Un caso de uso base incorpora implcitamente el comportamiento de otro caso de uso
en el lugar especificado indirectamente por este otro caso de uso.
Ejemplo
Ejemplo caso de uso Seguir Pedido: Obtener y verificar el nmero de pedido. Include
(Validar usuario). Examinar el estado de cada parte del pedido y preparar un informe
para el usuario.
33
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo caso de uso Hacer Pedido: Include (Validar usuario). Recoger los items del
pedido del usuario. (establecer prioridad). Enviar pedido para ser procesado.
Facturar al Cliente
Hacer pedido
<<include>>
<<Include>>
Ejemplo
Enviar pedido
<<extend>>
Punto de extensin: Enviar Pedido parcial
Materiales preparados Materiales preparados
34
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Sistema de validacin de tarjetas de
crdito
Realizar transacciones
con Tarjetas
Ajustar transacciones
cliente
35
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Evita redes complicadas de casos de uso: Cuidado con las relaciones include y
extend.
No considerar la interfaz del usuario
Los casos de uso slo consideran los requisitos funcionales del proyecto, hay que
aadir los no funcionales.
36
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO IV
Los diagramas de interaccin se usan para modelar los aspectos dinmicos de un sistema.
Se utilizan para visualizar, especificar, construir y documentaran la dinmica de una sociedad
particular de objetos o para modelar un flujo de control particular de un caso de uso.
Los diagramas de secuencia tienen dos caractersticas que los distinguen de los diagramas
de colaboracin:
37
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Algunas consideraciones
m e n s a je r e f l e x iv o
a b
E l re t o rn o s e
c o n s id e ra im p lc it o
c u a n d o e l e n vo e s
s n c ro n o
38
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
a : aa b : aa
39
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
W h i le X
Loop
end Loop
* [ c o n d ic i n ] M e n s a je
If c o n d ic i n
e ls e
e n d if
40
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Solicitar prstamo
Verificar situacin socio
Situacin socio ok
Ejemplo
41
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Ejemplo
42
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Los diagramas de colaboracin tienen dos caractersticas que los distinguen de los diagramas
de secuencia:
a. El camino. Para indicar como se enlaza un objeto a otro, se puede asociar un estereotipo
de camino al extrema ms lejano de un enlace (como <<local>> que indica que el objeto
designado es local al emisor) Normalmente, solo se necesita representar explcitamente
el camino del enlace para los camino local, parameter, global y self (pero no en
association).
43
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
1 *[i:=1..n] : Mensaje
B
1 *| | [i:=1..n] : Mensaje
B
[x>y] 1: Mensaje
B
1: distancia:= mover(x,y)
B
44
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
1: Coger libro
: Libro
8: Autorizar prstamo
4: Situacin socio ok
: Ficha libro
45
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
46
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO V
Los diagramas de objetos modelan las instancias de los elementos contenidos en los
diagramas en los diagramas de clase y muestran un conjunto de objetos y sus relaciones en
un momento concreto. Los diagramas de objetos se utilizan para modelar la vista de diseo
esttica o la vista de procesos esttica de un sistema.
Los diagramas de objetos normalmente contienen: objetos y enlaces (puede contener notas y
restricciones).
Tambin pueden contener paquetes o subsistemas, los que se usan para agrupar los
elementos de un modelo en partes ms grandes. Un diagrama de objetos es esencialmente
un diagrama de clases o la parte esttica de un diagrama de interaccin.
Ejemplo
Compaa : C
enlace
Departamento : d2
Departamento : d1
NombreD= I+D
Nombre D=ventas
objeto
Departamento : d3
Nombre D=ventasexterior
objeto annimo
47
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
5.2 CLASES
Las clases son los bloques de construccin ms importantes de cualquier sistema orientado a
objetos. Una clase describe un conjunto de objetos que comparten los mismos atributos,
operaciones, relaciones y semntica. Una clave implementa una o ms interfaces.
Las clases capturan el vocabulario del sistema que se esta desarrollando. Puede incluir
abstracciones que formen parte del dominio del problema o clases que constituyan una
implementacin. Pueden usarse para representar cosas que sean software, hardware o solo
conceptuales.
En UML todas las cosas se modelan con clases. Una clave no es un objeto individual, sino
que representa un conjunto de objetos.
Se representa por un rectngulo con tres divisiones internas (ver figura), son los elementos
fundamentales del diagrama: su nombre, sus atributos y sus operaciones.
Rectngulo Nombre
float altura;
Atributos float base;
aadir ( );
ampliar ( );
mover ( ); Operaciones
estaVaco ( );
Nombre
Cada clase ha de tener un nombre que la distinga de otra clases. Un nombre es una cadena
de texto. Tambin se puede dibujar mostrando solo su nombre. Un nombre solo se
denomina nombre simple; un nombre de camino consta de la clase precedido por el nombre
del paquete en el que se encuentra.
ReglasDelNegocio :: AgenteFraudes
Cliente
Empleado Nombre de camino
Nombres simples
Atributos
Un atributo es una propiedad de una clase identificada con un nombre, que describe un rango
de valores que pueden tomar las instancias de la propiedad. Una clase puede tener cualquier
nmero de atributos o no tener ninguno. Un atributo representa alguna propiedad del
elemento que se esta modelando, que es compartida por todos los objetos de esa clase.
Ejemplo: todo rectngulo tiene altura y base.
48
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Un atributo es una abstraccin de un tipo de datos o estado que puede incluir un objeto de la
clase. En un momento dado, un objeto tendr valores especficos para cada uno de los
atributos de la clase. Se ubican en el compartimiento que se encuentra debajo del nombre
de la clase.
Visibilidad
+ = pblica
# = protegida
- = privada
nombre: nombre del atributo
tipo: tipo del atributo
valor_inicial: valor inicial o por defecto
Ejemplo
Pedido
int articulo;
int cantidad = 0;
boolean seentrego = false;
Adems:
Operaciones
49
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Rectngulo
aadir ( ),
ampliar ( );
mover ( );
esta Vaco ( );
Ejemplo
Nivel Conceptual
Responsabilidades de la clase
Tarjetas CRC: Descripcin de alto nivel del propsito de la clase
Nivel Especificacin
Protocolo de la clase (operaciones pblicas)
Nivel Implementacin
Conjunto de mtodos de la clase
Responsabilidades
Una responsabilidad es un contrato u obligacin de una clase. Al crear una clase, se esta
expresando que todos los objetos de esa clase tiene el mismo tipo de estado y el mismo tipo
de comportamiento. En forma abstracta, los atributos y las operaciones son caractersticas
por medio de los cuales se llevan a cabo las responsabilidades de la clase. Una clase
50
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Una clase puede tener cualquier numero de responsabilidades, aunque una clase bien
construida tendr al menos una responsabilidad y a lo sumo unas pocas. El refinamiento de la
clase, traduce esas responsabilidades en un conjunto de atributos y operaciones que mejor
satisfagan las responsabilidades definidas para esa clase.
Agente Fraudes
Responsabilidades
-- determinar el riesgo de un pedido de cliente.
-- manejar criterios de fraude especficos del responsabilidades
cliente
Al modelar clases en UML hay que recordar que cada clase debe corresponderse con una
abstraccin tangible a conceptual en el dominio del problema. Un clase bien estructurada:
Debe proporcionar una abstraccin precisa de algo extrado del vocabulario del dominio
del problema.
Contiene un grupo de responsabilidades bien definidos, y los lleva a cabo en buena
forma.
Permite distinguir entre la especificacin de la abstraccin y su implementacin.
Es compresible y sencilla, a la vez que extensible y adaptable.
RELACIONES
Una Relacin es una conexin entre elementos. Grficamente se representa como una
lnea, usando diferentes tipos de lnea para diferenciar los diferentes tipos de relacin.
Una Dependencia es una relacin de uso que declara que un cambio en la especificacin de
un elemento puede afectar a otro elemento que le utiliza, pero no necesariamente a la
inversa. Se representa como una lnea discontinua dirigida hacia el elemento del cual
depende. Se usa cuando se quiere indicar de un elemento utiliza a otro.
51
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
La mayora de las veces, la dependencia se usan en el contexto de los clases, para indicar
que una clase utiliza a otro como argumento en la signatura de una operacin.
Ejemplo
Una dependencia puede tener un nombre, aunque es raro que se usen, a menos que se
tenga el caso de muchas dependencias y cada una daba distinguirse.
Una clase puede no tener clase padre. Si tiene uno o ms hijos se denominan clase base.
Una clase sin hijos se llama clase hoja. Una clase con un nico padre se dice que es una
herencia simple; si tiene ms de una clase padre, utiliza herencia mltiple.
52
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Figura
origen
mover ( ) Clase padre o superclase (base)
cambiarTamao ( )
dibujar generalizacin
cuadrado
Clase hoja
Clase hija
Ejemplo
A b s t r a c c i o n e s m s g e n e r a le s .
ve h i c u lo
v e h i c u lo t e r r e s t r e v e h ic u lo a r e o
c a m io n co che a vio n h e li c o p t e r o
53
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
co che
fu n c i o n a n d o e s tr o p e a d o
v e h i c u lo a r e o
a v i o n h e li c o p t e r o
c o c h e
fu n c io n a n d o e s tr o p e a d o
54
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
comercial
vehiculo areo
militar
avion helicoptero
d e m e n o s de 1 0 0 0 k m s
c oc he
d e m s d e 1 0 0 0 km s
fu n c i o n an d o e s tr o p e a d o
conejo
con pelo
Herbvoro
con plumas
omnvoro
Animal
con escamas
carnvoro
Bipedo Cuadrpedo
55
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Animal
x Locomocin x Alimento
Una Asociacin es una relacin estructural que especifica que los objetos de un elemento
estn conectados con los objetos de otro. La asociacin entre dos clases permite navegar
desde un objeto de una clase hasta un objeto de la otra clase y viceversa. Una asociacin
que conecta exactamente 2 clases se dice binaria. Se puede tener asociaciones que
conectan ms de dos clases, se llaman n-arias. Se usan cuando se quiere representar
relaciones estructurales. Hay cuatro adornos que se aplican:
Nombre. Una asociacin puede tener nombre, que se usa para descubrir la naturaleza de la
relacin.
nombre
Trabaja para
Persona Empresa
asociacin
56
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Rol. Cuando una clase participa en una asociacin, tiene un rol especifico que juega en la
asociacin; un rol puede verse como la cara que la clase de un extremo de la asociacin
presenta a la clase del otro extremo. En la figura, una Persona que juega el rol de empleado
esta asociado con una Empresa que juega el rol de patrn.
asociacin
rol
Una asociacin puede tener un nombre. Si se incluyen explcitamente los nombres de rol para
la asociacin, no se necesita incluir el nombre de la asociacin, excepto si se tiene un modelo
con muchas asociaciones y se hace necesario distinguir una de otra (en especial si hay ms
de una asociacin entre las mismas clases).
multiplicidad
1..* 0..*
Persona empleado patrn Empresa
Agregacin
Una asociacin representa una relacin estructural entre iguales, es decir que ambas clases
se encuentran conceptualmente al mismo nivel (no hay una parte mas importante). A veces
se desea modelar una relacin todo/parte, en la cual una clase representa una cosa grande
(el todo), que esta conformado por elementos pequeos (las partes). Este tipo de relacin
se denomina agregacin y se representa una relacin del tipo tiene-un. Se representa
aadiendo a una asociacin normal un rombo vaco en la parte del todo.
Empresa todo
agregacin
parte
Departamento
57
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Composicin
Es un caso particular de agregacin: exclusiva y dependiente. Las partes pueden
crearse despus del agregado compuesta al que pertenecen, pero una vez creadas
viven y mueren con ella. La parte slo puede formar parte de un agregado. El agregado
gestiona la creacin y destruccin de las partes. Las partes se pueden eliminar antes
de eliminar el agregado.
Usos
Los diagramas de clase se utilizan para modelar la estructura esttica del sistema. Es la vista
que soporta los requisitos funcionales de un sistema, los servicios que se proporciona a los
usuarios finales.
58
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Cuando se crea un diagrama de clase, se esta modelando una parte de los elementos y
relaciones que configuran la vista de diseo del sistema. Por ello, cada diagrama de clases
debe centrase en una colaboracin cada vez.
Trayectoria
1 1
Conductor 1 * SensorColisin
Responsabilidades:
--buscar camino
--evitar obstculos
1 1
Motor
Muchos de los sistemas que se modelan tendrn objetos persistentes, lo que significa que
estos objetos podrn ser almacenados en una base de datos con el fin de poderlos recuperar
posteriormente. La mayora de las veces se emplear una base de datos relacional, una
base de datos orientada a objetos o una base de datos hbrida objeto-relacional para el
almacenamiento persistente. UML permite modelar esquemas lgicos de base de datos, as
como bases de datos fsicas.
El diseo lgico de base de datos escapa al alcance de este curso. Aqu solo se pretende
mostrar como se puede modelar un esquema usando UML. Veamos el siguiente ejemplo:
60
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Universidad (persistente)
Departamento (persistente)
Nombre: nombre M tiene 1
String: direccin Nombre: nombreD
Long: telfono
1 1..*
adicinProfesor ( ) 0..1
adicionarEstudiante ( ) retirarProfesor ( )
quitarEstudiante ( ) obtenerProfesor ( )
obtenerEstudiante ( ) listarTodosProfesores ( )
listarTodosEstudiantes ( )
adicionarDepartamento asignado
quitarDepartamento ( )
obtenerEstudiante ( ) dirige
listarTodosDepartamentos ( )
Asociaciones calificadas
Nivel Conceptual: Dentro del mismo pedido no pueden existir dos lneas con el mismo
producto
Nivel Especificacin: El acceso a lineaPedido es indexado por productos
Nivel Implementacin: Se usa una tabla para almacenar las lneas de pedido
Ejemplo
61
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Asociaciones n-arias
Asociacin entre tres o ms clases. Cada instancia de la asociacin es una n-tupla de
valores de cada una de las respectivas clases.
62
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejercicio prctico
En una entidad educativa cuando se desea determinar la evaluacin de los alumnos, la
secretaria debe considerar:
Se pide desarrollar una aplicacin que permita determinar y mostrar el promedio final y
condicin de los alumnos.
Usted debe considerar los conocimientos aprendidos para disear dicha aplicacin.
Precondiciones:
El alumno debe ser un alumno regular (estar matriculado en los cursos).
Postcondiciones:
Se actualizara las evaluaciones del alumno en los cursos
Se emitir un informe sobre las evaluaciones del alumno.
63
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Imprimir
Ingresa datos de
alumno
Alumno
Secretaria
<<Include>>
Calcular promedio <<include>>
final y condicin
:alumno :evaluacion
:secretaria
Ingresadatoa( )
Ingresadatoe( ) Promediofinal
condicion( )
Promedio
practica( )
menornota()
64
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Diagrama de colaboracin
Usted debe elaborar este diagrama
Diagrama de objetos
:alumno :evaluacion
65
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Diagrama de clases
Alumno evaluacion
Private private
Coda: char[4] coda : char[4]
Nom: char[30] codc : char[4]
p1, p2, p3, p4, p5 : int
ep, ef, es: int
Public public:
alumno(); evaluacion();
char* codigoa(); char* codigoe();
char* nombre(); char* codigoc();
void ingresadatosa(char[], char[]); int n1();
void imprimira(); int n2();
int n3();
int n4();
int n5();
int exp();
int exf();
int exs();
void ingresadatose(char[],char[],int,int,int, int, int, int, int, int);
void promedioFinalCondicion();
float promedioPractica();
int menorNota();
66
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Clase: alumno
Responsabilidad: Manejar los datos personales del alumno
Atributos (private)
coda cadena de 4 caracteres
nom cadena de 30 caracteres
Mtodos (public)
alumno();
char* codigoa();
char* nombre();
void ingresadatosa(char[], char[]);
void imprimira();
alumno()
{
Inicializar los atributos con espacios en blanco
}
char* codigoa()
{
Retornar el valor de coda
}
char* nombre()
{
Retornar el valor de nom
}
Void ingresadatosa(char codi[], char nomb[])
{
Asignar a coda el valor de codi
Asignar a nom el valor denomb
}
void alumno::imprimira()
{
Clase: evaluacion
Responsabilidad: Manejar las evaluaciones del alumno
Atributos (private)
coda cadena de 4 caracteres
codc cadena de 4 caracteres
p1, p2, p3, p4, p5 nmero entero
ep, ef, es nmero entero
67
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Mtodos (public)
evaluacion()
char* codigoe()
char* codigoc()
int n1()
int n2()
int n3()
int n4()
int n5()
int exp()
int exf()
int exs()
void ingresadatose(char[],char[],int,int,int, int, int, int, int, int)
void promedioFinalCondicion()
float promedioPractica()
int menorNota()
char* codigoc()
{
Retornar el valor de codc
}
int n1()
{
Retornar el valor de p1
}
int n2()
{
Retornar el valor de p2
}
int n3()
{
Retornar el valor de p3
}
68
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
int n4()
{
Retornar el valor de p4
}
int n5()
{
Retornar el valor de p5
}
int exp()
{
Retornar el valor de ep
}
int exf()
{
Retornar el valor de ef
}
int exs()
{
Retornar el valor de es
}
void evaluacion::ingresadatose(char codi[],char codcu[],int pr1, int pr2, int pr3, int pr4, int
pr5, int epa, int efi, int esu)
{
Asignar a coda el valor de codi
Asignar a codc el valor de codcu
Asignar a p1 el valor de pr1 siempre que sea positivo
Asignar a p2 el valor de pr2 siempre que sea positivo
Asignar a p3 el valor de pr3 siempre que sea positivo
Asignar a p4 el valor de pr4 siempre que sea positivo
Asignar a p5 el valor de pr5 siempre que sea positivo
Asignar a ep el valor de epa siempre que sea positivo
Asignar a ef el valor de efi siempre que sea positivo
Asignar a es el valor de esu siempre que sea positivo
}
void evaluacion::promedioFinalCondicion()
{
Determinar el promedio final del alumno considerando el promedio de prctica, el
examen parcial y examen final
Si el alumno esta desaprobado se debe reemplazar la menor nota entre el examen
parcial y examen final por la notas del examen sustitutorio
Determinar nuevamente el promedio final del alumno considerando este
reemplazo
Mostrar el promedio final del alumno
Mostrar la condicin del alumno
}
69
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
float promedioPractica()
{
Determinar el promedio de prctica no considerando la menor de las prcticas
retornar este valor hallado
}
int menorNota()
{
Determinar el menor valor de de las cinco practicas
Retornar este menor valor hallado
}
Cuerpo principal
{
Crear el objeto a tipo alumno
Crear el objeto e tipo evaluacion
Solicitar los datos del alumno que son necesarios para el proceso de evaluacin
del alumno
Pasar los datos que le corresponden al objeto alumno
Pasar los datos que le corresponden al objeto evaluacion
Mostrar el codigo y nombre del objeto alumno
Determinar y Mostar el promedio final y condicion del alumno considerando el
objeto evaluacion
Ejercicio prctico
En una empresa se ha identificado cuatro tipos de trabajadores y cuando se desea
elaborar la planilla, la secretaria considera lo siguiente:
Se pide desarrollar una aplicacin que permita determinar y mostrar el pago de cada
uno de estos trabajadores.
Usted debe considerar los conocimientos aprendidos para disear dicha aplicacin.
70
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Diagrama de secuencia
Usted debe elaborar este diagrama
Diagrama de colaboracin
Usted debe elaborar este diagrama
Diagrama de objetos
Usted debe elaborar este diagrama
71
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
protected
codigo char[30]
nombre char[30]
Tipo4
Public
salario float trabajador(char cod[], char nomb[] ) pagoh float
Tipo1 horast int
char* codigos()
char* nombres()
void imprimir() Public
Public tipo4(char cod[], char nomb[], float w, int h);
tipo1(char cod[], char nomb[], float s) void pagohora(float w);
void salariosemanal(float s); void horastrabajadas(int h);
float pago(); float pago();
void imprimir(); void imprimir();
Tipo2 Tipo3
Public Public
tipo2(char cod[], char nomb[], float s, float c, int q) tipo3(char cod[], char nomb[], float w, int q)
void salariobase(float s); void pagoarticulo(float w);
void comision(float c); void produccionarticulo(int q);
void cantidadarticulos(int q); float pago();
float pago(); void imprimir();
void imprimir();
72
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Clase: trabajador
Responsabilidad: Manejar los datos personales del trabajador
Atributos (protected)
Codigo cadena de 30 caracteres
nombre cadena de 30 caracteres
Mtodos (public)
trabajador(char cod[], char nomb[] );
char* codigos();
char* nombres();
void imprimir();
char* codigos()
{
Retornar el valor de codigo
}
char* nombres()
{
Retornar el valor de nombre
}
Void imprimir()
{
Mostrar el codigo del trabajador
Mostrar el nombre del trabajador
}
SubClase: tipo1
Responsabilidad: Manejar el pago fijo del trabajador
Atributos
salario numero real
Mtodos (public)
73
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
}
float pago()
{
Hacer que el pago sea el valor del salario
Retornar el valor del pago
}
void imprimir()
{
Mostrar el titulo Trabajador tipo 1
Mostrar el codigo y nombre del trabajador
}
SubClase: tipo2
Responsabilidad: Manejar el pago con comisin del trabajador
Atributos
salariob,comisiong nmero real
cantidadp numero entero
Mtodos (public)
void salariobase(float s)
{
Asignar a salariob el valor de s
}
74
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
void comisin(float c)
{
Asignar a comisiong el valor de c
}
void cantidadarticulos(int q)
{
Asignar a cantidadp el valor de q
}
float pago()
{
Determinar el pago considerando el salario base y la comisin
Retornar el valor del pago
}
void imprimir()
{
Mostrar el titulo Trabajador tipo 2
Mostrar el codigo y nombre del trabajador
}
SubClase: tipo3
Responsabilidad: Manejar el pago del trabajador considerando los artculos
producidos
Atributos
pagoa numero real
producciona numero entero
Mtodos (public)
75
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
float pago()
{
Determinar el pago considerando los articulos producidos
Retornar el valor del pago
}
void imprimir()
{
Mostrar el titulo Trabajador tipo 3
Mostrar el codigo y nombre del trabajador
}
SubClase: tipo4
Responsabilidad: Manejar el pago del trabajador considerando las horas trabajadas
Atributos
Pagoh numero real
Horast numero entero
Mtodos (public)
void horastrabajadas(int h)
{
Asignar a horast el valor de h
}
float pago()
{
Determinar el pago considerando que si las horas son mayores a 40
este exceso se considera como horas extras
Retornar el valor del pago
}
76
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
void imprimir()
{
Mostrar el titulo Trabajador tipo 4
Mostrar el codigo y nombre del trabajador
}
Cuerpo principal
{
Crear el objeto t1 del tipo tipo1
Solicitar los datos para este objeto
Mostrar el tipo de trabajador, codigo y nombre
Determinar y mostrar el pago que le corresponde considerando el mtodo pago
de este objeto
77
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
EJERCICIOS
1. Supngase esta situacin: en una empresa se esta haciendo el estudio sobre las
edades promedios de los hijos de los trabajadores. Dicho proceso se realiza de la
siguiente manera: La secretaria debe ingresar los siguientes datos de cada uno de
los trabajadores: cdigo del trabajador, nombre del trabajador y las edades de cada
uno de sus hijos (hombres y mujeres), estas edades deben ser verificadas para ser
aceptados en el proceso. La idea es determinar y mostrar la edad promedio de los
hijos slo hombres y tambin determinar la edad promedio de las hijas mujeres.
Adems se debe determinar la edad promedio de todos los hijos.
Bonificacin por aos de servicios (2% del sueldo bsico si tiene ms de 10 aos de
servicio)
Bonificacin por hijos (1% del sueldo bsico, si el estado civil es: c, d, v)
Bonificacin por categora (puede ser: 5%, 7%, 9% del sueldo bsico,
respectivamente)
Subtotal (sueldo bsico ms todas las bonificaciones)
Descuento (10% del sueldo bsico, si el trabajador es soltero)
Sueldo Neto (subtotal menos el descuento)
3. En una entidad educativa para matricular un alumno, a partir del segundo ciclo, se
consideran los siguientes datos: cdigo, nombre, nmero de cursos (en los cuales
se va a matricular), precio por cada curso (el precio es el mismo para cada curso) y
el promedio del ciclo anterior.
Se desea determinar y mostrar:
Monto total de los cursos (se sabe que el precio de los cursos se incrementa en un
15% de su valor en los meses de julio y diciembre)
Descuento (el alumno tendr un descuento del 5% sobre el monto total de los cursos
si el promedio es mayor o igual a 16, en caso contrario el descuento ser del 2% del
monto total de los cursos)
Importe a pagar (es lo que finalmente debe cancelar el alumno)
4. En una empresa para calcular el pago de cada uno de los trabajadores, el pagador
debe considerar los siguientes datos del trabajador: nombre, sueldo bsico, nmero
de hijos y fecha de contrato. Se sabe que los beneficios que recibe es un bono del
3% del sueldo bsico si este es menor a 450 soles, 8 soles por cada hijo siempre
que tenga menos de 5 hijos en caso contrario solo recibe 35 soles y recibe por cada
78
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
ao de servicio el 0.8% del sueldo bsico. Los descuentos son 5% del sueldo bsico
para AFP y 2% del sueldo bsico para ESSALUD.
La empresa tiene la necesidad de imprimir por separado los beneficios y los
descuentos, para finalmente imprimir los datos del trabajador con el pago
correspondiente
6. En una empresa para calcular el pago de cada uno de los trabajadores, el pagador
debe considerar los siguientes datos del trabajador: nombre, sueldo bsico, nmero
de hijos y aos de servicios. Se sabe que por cada hijo recibe 10 soles y por cada
ao de servicio recibe el 0.3% del sueldo bsico. Adems se le debe hacer los
descuentos que por ley le corresponde: AFP que es el 5% del sueldo bsico y
ESSALUD que es el 7% del sueldo bsico.
Los datos estn almacenados de manera apropiada. Tambin se desea almacenar
los beneficios y descuentos que se estn haciendo.
79
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
80
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO VI
Todos los sistemas reales tienen una dimensin dinmica, y esta dinmica se activa por las
cosas que ocurren externa o internamente. En UML cada cosa que sucede se modela como
un evento, y permiten, cuando ocurren, pasar en un objeto de un estado a otro, al responder
con una accin.
Las mquinas de estados pueden visualizarse de dos formas: usando los diagramas de
actividades, centrndose en las actividades que ocurren dentro del objeto, y la segunda
usando los diagramas de estados, centrndose en el comportamiento dirigido por eventos de
un objeto (til en modelaje de sistemas reactivos).
Trminos y Conceptos
Cuando la mquina de estados de un objeto se halla en un estado dado, se dice que el objeto
est en ese estado. Ejemplo: el Calentador puede estar Activo o Apagando. Un estado tiene
varias partes:
81
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Un estado se representa con un rectngulo con las esquinas redondeadas. El estado inicial,
que indica el punto de comienzo por defecto para las mquinas de estado o subestado, se
representa con un crculo negro. El estado final, indica que la ejecucin de la mquina de
estados o del estado que lo contiene ha finalizado, se representa por un crculo negro dentro
de una circunferencia.
Una transicin es una relacin entre estados que indica que un objeto que esta en el primer
estado, realizar ciertas acciones y entrar en el segundo estado cuando ocurra el evento
especificado y se satisfagan las condiciones especificadas. Cuando esto ocurre se dice que la
transicin se ha disparado. Hasta que se dispara la transicin, se dice que el objeto esta en el
estado origen, despus de dispararse, se dice que esta en el estado destino.
Por ejemplo: un Calentador puede pasar del estado inactivo al estado Enpreparacin cuando
ocurra un evento como aguaFria (con el parmetro tempEsperada). Una transicin tiene 5
partes.
82
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Un estado representa con una lnea continua dirigida desde el estado origen hacia el destino.
Una autotransicin es una transicin cuyos estados origen y destino son el mismo.
Es posible tenor un transicin sin disparador, representada por una transicin sin evento de
disparo. Una transicin sin disparador se dispara implcitamente cuando su estado origen ha
completado su actividad.
contratar
en el paro en activo
perder empleo
jubilarse
jubil arse
jubilado
1 : u n a p r e g u n ta
un o t ro
o b je t o o b j e to
2 : la re s p u e s ta
83
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
p l a n t e a r p re g u n ta
e s p e ra re s p u e s t a re c ib ir re s p u e s t a
c
Evento[ condicin ]
a b
Se puede especificar el hacer una accin como consecuencia de entrar, salir o estar en
un estado:
e s ta d o A
e n tr y : a c c i n p o r e n tr a r
e x i t: a c c i n p o r s a l i r
d o : a c c i n m i e n tr a s e n e s ta d o
Se puede especificar el hacer una accin cuando ocurre en dicho estado un evento que
no conlleva salir del estado:
e s ta d o A
o n e ve n to _ a c ti va d o r ( a r g 1 ) [ c o n d i c i n ]: a c c i n p o r e ve n to
84
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
e1
a b
e2
e2
c
Quedara como:
e1
a b
e2
e 1
a b
e 2
e 0
Es preferible tener estados iniciales de entrada a un nivel de manera que desde los
niveles superiores no se sepa a qu subestado se entra:
85
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
e1
a b
c
e2
e0
e1
e1
Historial
Por defecto, los autmatas no tienen memoria. Es posible memorizar el ltimo
subestado visitado para recuperarlo en una transicin entrante en el superestado que lo
engloba.
E n ju a g u e L a va d o S e c a d o
A b r i r P u e r ta C e rra r P u e rta
E s p e ra
86
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Las esperas son actividades que tienen asociada cierta duracin. La actividad de
espera se interrumpe cuando el evento esperado tiene lugar. Este evento desencadena
una transicin que permite salir del estado que alberga la actividad de espera. El flujo
de control se transmite entonces a otro estado
/ Abrir ranura
esperar dinero
entry: Mostrar mensaje anular transaccin
do: Esperar 30 segundos
exit: cerrar ranura
Depsito efectuado
Ejemplo ASCENSOR
S U B IE N D O
o n C a m b io d e p is o / In d ic a d o r= P is o a c t u a l
L le g a d a p is o d e s t in o /
S e le c c io n a r[ p is o d e s t in o > p is o a c t u a l ]
I nd ic ad or= P is o a ct u al
E S T AT IC O
e n tr y/ A b ri r p u e r ta
e x it/ C e rr a r p u e r ta
L le g a d a a p is o d e s t in o /
S e le c c io n a r[ p is o d e s t in o < p is o a c t u a l ]
I nd ic ad or= P is o a ct u al
B AJAN D O
o n C a m b io d e p is o / In d ic a d o r= P is o a c t u a l
87
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
3. Qu eventos al menos habrn sucedido y en que orden para pasar del estado
SUBIENDO al estado BAJANDO?
INICIO MARCANDO
Descolgar Pulsar digito(n) [ number.isValid() ]
88
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
DISPONIBLE
89
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo EMBOTELLADO
ROTA
EMBOTELLANDO
DeteccionRotura[
Vactual=0 ] GOTEANDO
VACIA
[ Vactual=0 ]
LLENANDO do/ Vaciar
DeteccionRotura
[ Vactual=Vdeseado ] [ Vactual !=0 ]
90
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo CLIMATIZADOR
SELECCIONANDO T
Seleccionar T Salir
INACTIVO
Encender Apagar
on Paso 30 seg/ Medir T ambiente
do/ Display T ambiente
entry / Medir T ambiente
Tambiente>T seleccionada
Tambiente=T seleccionada
Tambiente<T seleccionada
Tambiente=T seleccionada
91
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Subestados secuenciales.
Veamos los subestados secuenciales con un ejemplo: el modelar el comportamiento de
un cajero automtico. Hay 3 estados en los que puede estar el sistema Inactivo (en
espera de un cliente), Activo (procesando una transaccin de un cliente) y Mantenimiento
(recargando dinero).
Activo Estado
tarjetaIntroducida compuesto
Inactivo
Validacin Subestado
Cancelar
secuencial
[Continuar]
Seleccin
Mantenimiento
Procesamiento
[no continuar]
Entry/leertarjeta Impresin
Transicin desde subestado
Exit/explusartarjeta
Subestados concurrentes.
Los subestados secuenciales son los que aparecen con mayor frecuencia en el modelaje; sin
embargo en algunas situaciones debe trabajarse con subestados concurrentes, los cuales
permiten especificar dos o mas maquinas de estados que se ejecutan en paralelo en el
contexto que los contiene. Veamos el ejemplo de la figura.
Dados dos o ms subestados secuenciales al mismo nivel, un objeto estar en uno y solo uno
de los subestados. Dados dos o ms subestados concurrentes al mismo nivel, un objeto
estar en un estado secuencial de cada uno de los subestados concurrentes.
92
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Inactivo
divisin unin
Estado compuesto
mantener
Mantenimiento
Pruebas Probar Auto
perifricos diagnostico
subestados
concurrentes
Manejo de Ordenes [continuar]
Espera Orden
Los diagramas de actividades son uno de los cinco tipos de diagrama UML usados para
modelar los aspectos dinmicos de los sistemas. Un diagrama de actividades es
bsicamente un diagrama de flujo que muestra el flujo de control entre actividades.
Los diagramas de actividades se utilizan para modelar los pasos secuenciales y posiblemente
concurrentes de un proceso computacional. Tambin permite modelar el flujo de un objeto
conforme pasa de estado a estado en diferentes puntos del flujo de control. Los diagramas
de interaccin destacan el flujo de control entre objetos, los diagramas de actividades
destacan el flujo de control entre actividades.
Una actividad es una ejecucin no atmica en curso, dentro de una mquina de estados. Las
actividades producen alguna accin, compuesta de computaciones atmicas ejecutables que
producen un cambio en el estado del sistema o el retorno de un valor.
Los diagramas de actividades son similares a los diagramas Pert. Un diagrama de actividades
destaca la actividad que ocurre a lo largo del tiempo, mostrando las operaciones que se
pasan entre los objetos.
Trminos y conceptos
Un diagrama de actividades muestra el flujo de actividades. Una actividad es una ejecucin
no atmica en curso, dentro de una maquina de estados. Las actividades finalmente producen
93
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
una accin, que esta compuesta de computaciones atmicas ejecutables que producen un
cambio en el estado del sistema, o la devolucin de un valor. Las acciones incluyen llamadas
a otras operaciones, envo de seales, creacin o destruccin de objetos o simples clculos
(evaluar una expresin). Grficamente un diagrama de actividades es una coleccin de
nodos y arcos.
Al igual que los dems diagramas, el diagrama de actividades pueden contener restricciones.
94
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Preparar construccin ( )
Procesar factura (f) Entry/poner Bloqueo ( )
submaquinas
accin de entrada
Los estados de actividad son importantes por ayudar a dividir clculos complejos en partes
ms simples, de la misma forma en que se utilizan las operaciones para agrupar y reutilizar
expresiones.
Transiciones
Cuando se completa la accin o la actividad de un estado, el flujo de control pasa
inmediatamente al siguiente estado de accin o estado de actividad. Este flujo se especifica
con transiciones que muestran el camino de un estado de actividad o estado de accin al
siguiente. En UML la transicin se representa como una lnea dirigida.
estado inicial
Elegir Sitio
estado de accin
Transicin
Contratar arquitecto
estado parada
Un flujo de control tiene que empezar y parar en algn sitio, por ello se puede especificar un
estado inicial (circulo relleno) y un estado final (circulo relleno dentro de un circunferencia).
Bifurcacin
Las transacciones secuenciales no son el nico tipo de camino en un flujo de control, tambin
se puede incluir una bifurcacin, que especifica caminos alternos, elegidos segn el valor de
alguna expresin booleana.
95
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Parte de trabajo
expresin de guarda
[materiales disponibles]
Asignar tareas
expresin de guarda
Se puede lograr el efecto de iteracin usando un estado de accin que establezca el valor de
la variable de control de una iteracin: otro estado de accin que incrementa el valor de la
variable y una bifurcacin si se ha terminado la iteracin.
Divisin y unin
Es posible encontrar flujos concurrentes, especialmente cuando se modelan flujos de trabajo
de procesos de negocio. En UML una divisin y la unin emplean una barra de
sincronizacin para especificarlas, la cual se representa como una lnea horizontal o vertical
ancha.
Ejemplo:
Preparar conversacin
divisin
Descomprimir
Gesticular ( )
unin
Limpieza
96
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
El ejemplo considera los flujos implicados en el control de un dispositivo electrnico que emite
voz y gestos humanos. En la figura se presenta una divisin, que representa la separacin de
un flujo de control sencillo en dos o ms flujos concurrentes. Una divisin tiene una transicin
de entrada y dos o mas transiciones de salida, cada una representa un flujo de control
independiente. Despus de la divisin, las actividades de cada camino continan en paralelo.
Las uniones y divisiones deben equilibrarse, es decir, el nmero de flujos que parten de una
divisin debe coincidir con el nmero de flujos que entran en la unin correspondiente.
Encender mquina
^cafetera.On
Caf en preparacin
indicador de fin
Servir caf
Beber
97
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Carriles (swimlanes)
Cuando se modelan flujos de trabajo de procesos de organizaciones es til dividir los estados
de la actividad en grupos, donde cada uno representa la parte de la organizacin responsable
de esas actividades. En UML cada grupo se denomina carril porque, visualmente cada grupo
se separa de sus vecinos por una lnea vertical continua. Un carril especifica un lugar para las
actividades.
Solicitar pasaje
Verificar
existencia vuelo
Dar detalles vuelo
Informar alternativas
y precios
Seleccionar vuelo
Confirmar
Pagar pasaje plaza reservada
Emitir billete
98
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Solicitar producto
carril
Procesar pedido
Extraer artculos
Enviar pedido
Pagar factura
Cerrar pedido
Cada carril tiene un nombre nico en el diagrama. Un carril puede representar alguna entidad
del mundo real, que puede ser implementada por una o varias clases. En un diagrama de
actividades organizado por carriles, cada actividad pertenece a un nico carril, pero las
transiciones pueden cruzar los carriles.
99
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
actividades pueden utilizarse para modelar procesos en los que colaboran estos sistemas
automticos y humanos.
Solicitar devolucin
Obtener numero de
devolucin
Enviar articulo
Recibir articulo
Articulo : i
[devuelto]
Recolectar articulo
Actualizar cuenta
Articulo : i
[disponible]
Hay que representar las transiciones que conectan los estados de accin y de actividad.
Debe comenzarse con los flujos secuenciales del flujo de trabajo, luego considerar las
bifurcaciones y por ltimo tener en cuenta divisiones y uniones.
Si el flujo involucra objetos importantes, hay que representarlas en el diagrama de
actividades, mostrando sus valores y estado cuando cambien, mostrando el propsito del
flujo de objetos.
100
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
En el diagrama se indica que hay un objeto significativo (el Artculo:i) tambin fluye en el
proceso, cambiando del estado devuelta a disponible.
101
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
102
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
CAPITULO VII
Los diagramas de componentes describen los elementos fsicos del sistema y sus
relaciones.
Los componentes representan todos los tipos de elementos software que entran en la
fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes de
Ada, bibliotecas cargadas dinmicamente, etc.
Ejemplo
Control y Anlisis
Interfaz de Terminal
Comm
Comm
usuario
103
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Los Diagramas de Distribucin muestran la disposicin fsica de los distintos nodos que
componen un sistema y el reparto de los componentes sobre dichos nodos
Nodo
c o n e x i n 7
< < R D S I> >
d is p o s it iv
o
104
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Ejemplo
Acceso a BD C
Rutinas de Coneccion
C
Terminal de Consulta
Interfaz de Terminal
Rutinas de Coneccion
C C
Punto de Venta
Rutinas de Coneccion
C
C C
105
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Resumen
Diagramas de
Estados
Diagramas de
Secuencia Diagramas de
Distribucin
Diagramas de Diagramas
Casos de Uso De Clases
Diagramas de Diagramas de
Colaboracin Componentes
Diagramas de Diagramas de
Actividad Actividad
"You can model 80 percent of most problems by using about 20 percent of the UML."-- Grady
Booch
106
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
[ Flujo Principal ] Manejar las novedades relacionadas con los usuarios de la biblioteca.
Inicia cuando el Bibliotecario abre una sesin ante el sistema identificndose ante l de
manera satisfactoria. Termina en cualquier momento que el bibliotecario desee cerrar
su sesin.
[ Flujo Principal ] Manejar las novedades relacionadas con los libros de la biblioteca. Se
inicia cuando el bibliotecario abre una sesin ante el sistema. Termina en cualquier
momento que el bibliotecario desee cerrar su sesin.
"Manejo Usuarios"
[ Actores ] Bibliotecario
[ Flujo Principal ] Reportes sobre la totalidad de los usuarios discriminados por tipos.
Se ejecuta mnimo una vez al mes.
107
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
[ Actores ] Bibliotecario
[ Flujo Principal ] Reportes sobre los usuarios que a la fecha incurren en mora con sus
prstamos. Calcula y actualiza los montos de las multas. Se ejecuta una vez al da, tan
pronto ha concluido la atencin al publico.
[ Flujo Principal ] Registrar todas las novedades relacionadas con los usuarios de la
biblioteca.
[ Flujo Excepcional ] El usuario no cumple con los requisitos mnimos para ser un
Usuario valido de la biblioteca. El Bibliotecario informa al usuario de tal situacin.
108
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
[ Flujo Principal ] Registrar ante el sistema los cambios en los datos personales
aportados por un determinado Usuario de la biblioteca. Se inicia cuando el Usuario
manifiesta las novedades en sus datos al Bibliotecario. Termina cuando al sistema se
ingresan los nuevos datos del Usuario.
"Manejo Libros"
[ Actores ] Bibliotecario
[ Flujo Principal ] Reportes sobre la totalidad de los libros que posee la biblioteca
discriminados por materia, gnero, editorial o algn otro conjunto de parmetros propio
de los libros y definidos por el Bibliotecario. Se ejecuta mnimo una vez al mes.
[ Actores ] Bibliotecario
[ Flujo Principal ] Reportes sobre los libros clasificados segn los diferentes estados
contemplados por la biblioteca. Se puede ejecutar cuando el Bibliotecario lo desee.
109
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
[ Flujo Principal ] Registrar todas las novedades relacionadas con los libros de la
biblioteca. Se inicia con la interaccin del Usuario y Bibliotecario.
[ Flujo Principal ] Desea saber que libros y el estado de los mismos, posee la biblioteca
sobre un tema, materia o algn conjunto de parmetros por quien desee levar a cabo la
operacin. La inicia el Usuario o el Bibliotecario. Termina cuando se han desplegado
los libros segn los criterios de bsqueda.
[ Flujo Excepcional ] El Usuario no cumple con las condiciones estipuladas para prestar
libros.
110
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
[ extend ] Prestamos
La inicia el Usuario suministrando los datos pertinentes para que el Bibliotecario pueda
contactar a quien lo solicita cuando el libro se encuentre disponible.
111
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Tarea:
Complete los diagramas que representen los aspectos no cubiertos del modelo o
los que usted considere se puedan mejorar.
112
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
113
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Diagrama de Clases
o Editorial
114
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
o Autor
o Libro
115
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
o Prstamo
o Usuario
116
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
o Multas
117
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Diagrama de Objeto
o Editorial
o Autor
o Libro
118
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
o Prstamo
o Usuario
o Multas
119
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
120
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
121
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
La arquitectura de tres capas se refiere a un diseo reciente que introduce una capa
intermedia al proceso. Cada capa es un proceso separado y bien definido corriendo en
122
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
El servidor de aplicaciones fue introducido como parte del diseo de tres capas. Es
relativamente nuevo y an no bien definido. Las empresas del mundo entero estn
esforzndose para producir su propia versin de lo que creen que es un servidor de
aplicaciones. Martn Marshall, de Zona Research, sugiere que hay confusin en el
trmino servidor de aplicaciones.
123
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Los servicios de datos (data services) son los servicios de bajo nivel que apoyan los
servicios de negocio y son de una amplia gama de categoras como las siguientes:
124
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
En el diseo fsico se debe cuidar el nivel de granularidad (un componente puede ser
tan grande o tan pequeo segn su funcionalidad, es decir, del tamao tal que pueda
proveer de una funcionalidad compleja pero de control genrico) y la agregacin y
contencin (un componente puede reusar utilizando tcnicas de agregacin y
contencin, sin duplicar cdigo).
125
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Los datos centralizados equivalen a una base de datos maestra ubicada en un lugar
central. No hay copias de los datos.
126
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
Un extracto de datos es una copia de toda o una porcin de la base de datos maestra.
No se permite la actualizacin. Se usa un timestamp o etiqueta de tiempo para indicar
qu tan viejos son los datos.
El diseo fsico est ntimamente ligado a una alternativa tecnolgica. Ante la acelerada
evolucin tecnolgica es importante considerar los estndares del momento y las
tendencias ya que una mala decisin implicar un costo enorme (en dinero y en tiempo)
al actualizarse a otra plataforma distinta.
127
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
128
ANLISIS Y DISEO DE SISTEMAS INFORMTICOS
BIBLIOGRAFA
JAMES MARTIN & JAMES ODELL. (1997) Mtodos Orientados a Objetos: Conceptos
Fundamentales. Prentice hall
129