2. Construcción de Algoritmo de
Fibonacci
Puede hacerlo una sola persona
Requiere:
Modelado mínimo
Proceso simple
Herramientas simples
int fib(int val){
if ((val==1)||(val==2)) return 1;
else
return (fib(val-1)+fib(val-2));
}
3. Construcción del software para un
cajero automatico
Auto-teller
system
Security
system
Maintenance
system
Account
da tabase
Usage
database
Branch
accounting
system
Branch
counter
system
4. Beneficios del Modelado
Manejar la complejidad
Mejora la comunicación entre programadores
Ayuda a crear un modelado de la estructura para el diseño de un
programa
Hacer saber de las necesidades servidor cliente
Modelar el sistema independientemente del lenguaje de
implementación”
Promover la Reutilización
5. Que es UML
UML = Unified Modeling Language
Un lenguaje de propósito general para el modelado orientado
a objetos. Impulsado por el Object Management Group (OMG,
www.omg.org)
Documento “OMG Unified Modeling Language Specification”
UML combina notaciones provenientes desde:
Modelado Orientado a Objetos
Modelado de Datos
Modelado de Componentes
Modelado de Flujos de Trabajo (Workflows)
6. Pioneros de UML
Grady Booch
James Rumbaugh
Ivar Jacobson
Cada uno había desarrollado su método pero compartieron notas
7. Que no es UML
No es programación
No esta asociado a un lenguaje
No es una metodología
Empresas pioneras en usar UML
• Texas
• Dec
• Texas instruments
• Microsoft
• Oracle
8. Factores importantes en UML
Definición del proceso de desarrollo usando UML. UML no es
una metodología o proceso.
No cubre todas las necesidades de especificación de un
proyecto software.
Util en la definición de requerimientos, pero tambien en el
diseño (y en las pruebas…).
Estándar del OMG (
Gran cantidad de Libros y cursos
9. Que es el OMG
El Object Management Group (OMG) es un consorcio, formado en 1989, dedicado al
cuidado y el establecimiento de diversos estándares de tecnologías orientadas a
objetos, tales como UML, XMI, CORBA y BPMN.
Es una organización sin fines de lucro que promueve el uso de tecnología orientada a
objetos mediante guías y especificaciones.
El grupo está formado por diversas compañías y organizaciones con distintos privilegios
dentro de la misma.1
Certificaciones
OMG ofrece diferentes certificaciones profesionales:
OCEB 2 - OMG Certified Expert in Business Process Management (BPM)2
OCUP 2 - OMG Certified UML Professional3
OCSMP - OMG Certified Systems Modeling Professional4
OCRES - OMG Certified Real-time and Embedded Systems Specialist5
10. Un modelo captura una vista de un sistema del mundo real. Es una
abstracción de dicho sistema, considerando un cierto propósito. Así, el
modelo describe completa-mente aquellos aspectos del sistema que son
relevantes al propósito del modelo, y a un apropiado nivel de detalle.
Diagrama: una representación gráfica de una colección de elementos de
modelado, a menudo dibujada como un grafo con vértices conectados por
arcos
11. ... Modelos y Diagramas
Un proceso de desarrollo de software debe ofrecer un conjunto de modelos
que permitan expresar el producto desde cada una de las perspectivas de
interés
El código fuente del sistema es el modelo más detallado del sistema (y
además es ejecutable). Sin embargo, se requieren otros modelos ...
Cada modelo es completo desde su punto de vista del sistema, sin embargo,
existen relaciones de trazabilidad entre los diferentes modelos
12. Diagramas de UML
Define la estructura y el comportamiento del programa
Se utiliza para hacer el análisis del sistema
Se pueden correlacionar un diagrama con otro
Genera muchas formas de organizarlos y extenderlos
13. Diagramas de UML
Los diagramas expresan gráficamente partes de un modelo
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Casos de Uso
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Colaboración
State
Diagrams
State
Diagrams
Diagramas de
Componentes
Component
DiagramsComponent
DiagramsDiagramas de
Distribución
State
Diagrams
State
Diagrams
Diagramas de
Objetos
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Estados
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Secuencia
State
Diagrams
State
Diagrams
Diagramas de
Clases
Diagramas de
Actividad
Modelos
14. Diagrama de Casos de Uso
Es una técnica para capturar
información sobre los servicios que
un sistema proporciona a su
entorno, desde el punto de vista del
usuario. Es una técnica para captura
y especificación de requisitos
Retirar dinero
Consultar Extracto
Cliente
Realizar transferencia
15. Diagrama de Clases
El Diagrama de Clases es el diagrama principal para el análisis y diseño del
sistema
Un diagrama de clases presenta las clases del sistema con sus relaciones
estructurales y de herencia
La definición de clase incluye definiciones para atributos y operaciones
El modelo de casos de uso debería aportar información para establecer las
clases, objetos, atributos y operaciones
17. Diagramas de Clases
Un diagrama de clases describe los tipos de objetos
en el sistema y los distintos tipos de relaciones
estáticas que existen entre ellos. Existen cuatro
relaciones:
• Asociación
• Generalización/especialización
• Agregación/composición
• Dependencia
19. Generalización
Esta es una relación de
tipo: es-un.
Una generalización se
representa como una
flecha que une a las
subclases (hijos) a la
superclase (padre), con
la flecha tocando la
caja de la superclase.
Catalogue n umber
Acquisition date
Cost
Type
Status
Number of copies
Library item
Acquire ()
Catalogue ()
Dispose ()
Issue ()
Return ()
Author
Edition
Publication da te
ISBN
Book
Year
Issue
Magazine
Director
Date of release
Distributor
Film
Version
Platfor m
Computer
program
Title
Publisher
Published item
Title
Medium
Recorded item
20. Relacion de Dependencia entre
Clases
Se usa para mostrar relaciones entre paquetes (grupos de clases)
ProveedorCliente
21. Agregacion de Objetos
• En este modelo se
muestra como las
clases pueden estar
compuestas por
otras clases.
• Existe la relacion de
agregacion y la de
composicion.
• Son similares a los
modelos de
entidad-relacion.
22. Diagrama de Secuencia
Describe el
comportamie
nto dinamico
del los
objetos en el
sistema
: Encargado
:WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
23. Diagrama de Secuencia
Los Diagramas de Secuencia y de Colaboración son usados para describir
gráficamente un caso de uso o un escenario
Un Diagrama de Secuencia muestra los objetos de un escenario mediante
líneas verticales y los mensajes entre objetos como flechas conectando
objetos
Los mensajes son dibujados cronológicamente desde arriba hacia abajo
Los rectángulos en las líneas verticales representan los periodos de
actividad de los objetos.
24. Diagrama de Colaboración
Modela la interacción entre los
objetos de un Caso de Uso
Los objetos están conectados por
enlaces (links) en los cuales se
representan los mensajes
enviados acompañados de una
flecha que indica su dirección
Ofrece una mejor visión del
escenario cuando el analista está
intentando comprender la
participación de un objeto en el
sistema
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo
5: entregar recibo
25. Diagrama de Estados
Modela el comportamiento de una parte del sistema
con préstamos
sin préstamos
alta baja
prestar devolver[ número_préstamos = 1 ]
prestar
devolver[ número_préstamos > 1 ]
número_préstamos = 0
número_préstamos > 0
Socio
número : int
nombre : char[50]
número_prestamos : int = 0
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
26. Diagrama de Actividad
Es un caso especial de un diagrama de state-
chart en donde los estados son actividades
(“funciones”).
Es util para dibujar los flujos de trabajo
(workflows) en un sistema
Puede especificar:
(1)El comportamiento de los objetos de una
clase
(2) La lógica de una operación (método)
(3) Parte o toda la descripción de un Caso de
uso
(4) La descripción de un Flujo de Trabajo
Buscar Bebida [ no hay café ]
Poner café
en filtro
Añadir agua
al depósito
Coger taza
Poner filtro
en máquina
Encender
máquina
Café en
preparación
/ cafetera.On
Servir café Beber
Coger
zumo
[ hay café ]
indicador de fin
[ hay zumo ]
[ no zumo ]
27. Diagrama Componentes
Interfaz de Terminal
Gestión de Cuentas Rutinas de conexión Acceso a BD
Control y Análisis
Permite modelar la estructura del software y la
dependencia entre componentes, en donde un
componente es un grupo de clases que trabajan
estrechamente. Los componentes pueden corresponder
código fuente, binario o ejecutable.
Una relación de dependencia indica que un componente
utiliza otro, por lo cual depende de él
28. Diagrama de Despliegue
Punto de Venta
Servidor Central
Terminal de Consulta
Gestión de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Análisis
Comment
Modela la distribución en tiempo de ejecución de los
elementos de procesamiento y componentes de
software, junto a los procesos y objetos asociados
Se modelan los nodos y la comunicación entre ellos
Cada nodo puede contiene instancias de componentes
29. Los modelos se usan para describir al
sistema de software
Modelo del sistema: Modelo de objetos + modelo funcional + modelo
dinamico
Modelo de objetos: Cual es la estructura del sistema? Cuales son los
objetos y cual es su relacion?
Notacion UML: Diagramas de clases
Modelo funcional: Cuales son las funciones del sistema? Como fluyen los
datos en el sistema?
Notacion UML: Diagramas de casos de uso
Modelo dinamico: Como reaccciona el sistema a eventos externos (e
internos) y cual es el flujo de eventos?
Notacion UML: Diagramas de secuencia, state charts y de actividad.
30. Modos de utilizacion de UML
Ingenieria hacia adelante(Forward Engineering)
Se comienza con un modelo antes de producir codigo
Ingenieria en reversa (Reverse Engineering)
Se crea un modelo a partir de algun codigo
Proyectos de interfaces o re-ingenieria
Ingenieria ciclica (Roundtrip Engineering)
Se mueve constantemente entre ingenieria hacia adelante y en reversa.
Util en proyectos que utilizan el modelo de procesos evolutivo, o cuando los
requerimientos cambian frecuentemente.
Se asume que a partir de UML se puede producir codigo, pero en donde se
ubica UML dentro del proceso de Diseño ?.
31. Proceso de Desarrollo Unificado
basado en UML
Propuesta de Rational Unified Process (RUP)
M. de Casos de Uso del Negocio (Business Use-Case Model)
M. de Objetos del Negocio (Business Object Model)
M. de Casos de Uso (Use-Case Model)
M. de Análisis (Analysis Model)
M. de Diseño (Design Model)
M. de Despliegue (Deployment Model)
M. de Datos (Data Model)
M. de Implementación (Implementation Model)
M. de Pruebas (Test Model)
32. Modelado de Software.
¿Cuál es el propósito de nuestros modelos?
“Documentar”.
Comunicar ideas y estudiar alternativas
Tomar decisiones de análisis/diseño que dirijan la implementación
Generar parcial o totalmente una implementación a partir de los modelos
Pragmatismo, los modelos deben ser útiles. Principio básico: “Sencillez y
Elegancia”
Gestión de modelos
Distintos nivel de abstracción, expresados en diferentes modelos
Seguimiento de transformaciones durante el proceso (Traceability)
Sincronización de modelos
Dificultades para la introducción de notaciones y herramientas de modelado.
La importancia del Proceso de Desarrollo
33. Comentarios Finales
UML
www.omg.org/uml/
Martin Fowler, autor de “UML Destilled” (“UML Gota a Gota”) http://www.martinfowler.com/
http://www.csci.csusb.edu/dick/samples/uml0.html
http://www.tutorialspoint.com/uml/uml_quick_guide.htm
http://classes.engr.oregonstate.edu/eecs/fall2013/cs561/UML.pdf
Herramientas de modelado UML
https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools