Upload
beatriz-moreyra
View
107
Download
0
Embed Size (px)
Citation preview
Modelado de Software Orientado a Objetos usando UML
Construcción de Algoritmo de Fibonacci
Puede hacerlo una sola personaRequiere:
Modelado mínimoProceso simpleHerramientas simples
int fib(int val){ if ((val==1)||(val==2)) return 1; else return (fib(val-1)+fib(val-2)); }
Construcción del software para un cajero automatico
Auto-tellersystem
Securitysystem
Maintenancesystem
Accountdatabase
Usagedatabase
Branchaccounting
system
Branchcountersystem
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
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)
Pioneros de UML
Grady Booch James Rumbaugh Ivar Jacobson
Cada uno había desarrollado su método pero compartieron notas
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
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
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
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
... 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
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
Diagramas de UMLLos diagramas expresan gráficamente partes de un modelo
Use CaseDiagramsUse Case
DiagramsDiagramas de Casos de Uso
ScenarioDiagramsScenario
DiagramsDiagramas deColaboración
StateDiagramsState
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagramsState
DiagramsDiagramas de Objetos
ScenarioDiagramsScenario
DiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas deSecuencia
StateDiagramsState
DiagramsDiagramas deClases
Diagramas deActividad
Modelos
Diagrama de Casos de Uso
Es una técnica para capturar información sobre los servicios queun sistema proporciona a suentorno, desde el punto de vista delusuario. Es una técnica para capturay especificación de requisitos
Retirar dinero
Consultar ExtractoCliente
Realizar transferencia
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
Clases y Objetos
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
AsociaciónProfesorDepartamento
10..1
director
1
dirige
0..1
Empresa Empleado
1..** 1..**
trabajadoresempleador
Cargonombresueldo 0..1
1..*
superior
subordinado 1..*
0..1
•Permite asociar objetos.•La asociacion se representa mediante una línea que une las cajas de los dos objetos.
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 numberAcquisition dateCostTypeStatusNumber of copies
Library item
Acquire ()Catalogue ()Dispose ()Issue ()Return ()
AuthorEditionPublication dateISBN
Book
YearIssue
MagazineDirectorDate of releaseDistributor
Film
VersionPlatform
Computerprogram
TitlePublisher
Published itemTitleMedium
Recorded item
Relacion de Dependencia entre Clases
Se usa para mostrar relaciones entre paquetes (grupos de clases)
ProveedorCliente
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.
Videotape
Tape ids.
Lecturenotes
Text
OHP slides
SlidesAssignment
Credits
SolutionsTextDiagrams
Exercises#ProblemsDescription
Course titleNumberYearInstructor
Study pack
Diagrama de Secuencia
Describe el comportamiento 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
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.
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éstamo5: entregar recibo
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
Socionúmero : intnombre : char[50]número_prestamos : int = 0
alta()baja()prestar(código_libro : int, fecha : date)devolver(código_libro : int, fecha : date)
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 ]
Diagrama ComponentesInterfaz 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
Diagrama de Despliegue
Punt o de Vent a
Servidor Cent ral
Terminal de Consult a
Gest ión de Cuent as
Comment
I nt er f az de Terminal
Comment
Rut inas de ConeccionComment
Rut inas de Coneccion
Comment
I nt erf az de Terminal
Comment
Rut inas de Coneccion
Comment
Acceso a BD
Comment
Cont rol 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
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.
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 ?.
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)
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
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