Generales
 Dia 1: Introducción a AyDOO y UML.
 Dia 2: Modelado Estático.
 Dia 3: Modelado Dinámico.
 Dia 4: Modelado Físico.
 Dia 5: Caso de Estudio del CURP.
Contenido
 Orientación a Objetos.
 ¿Qué es UML?
 Diferencias entre UML y otros lenguajes.
 Un vistazo a UML.
 Recomendaciones para el uso de UML.
 Rational Rose.
Desarrollo Orientado a Objetos
 El desarrollo se refiere a la parte frontal del
ciclo de desarrollo de software: análisis,
diseño e implantación.
 La escencia del desarrollo orientado a
objetos es la identificación y organización
de conceptos del dominio.
Orientación a objetos
 A grosso modo el término orientado a objetos
significa que se organiza un concepto como
una colección de objetos discretos que
incorporan tanto la estructura de datos
(atributos) como el comportamiento
(métodos y mensajes).
Ejemplo de objetos
Nombre de variable dirección
Credito
10000007
Debito
13537163
NoCuenta
56826358
CuentasGrabadas
45205128
Un arbol binario
Una tabla de simbolos
La bicicleta de Mike
Una T.V. blanca
La bicicleta de Brian
Una ficha de ajedrez
Objetos y clases
Objetos tipo bicicleta
Abstracción
Clase Bicicleta
Atributos
tamaño de cuadro
tamaño de llanta
baleros
Operaciones
mover
reparar
Objetos tipo polígono
Clase Polígono
Atributos
vertices
color de borde
color de relleno
Abstracción
Operaciones
dibujar
borrar
mover
Características de los objetos
Características de los Objetos
 Estado
– Define múltiples condiciones en las que el objeto puede
existir.
 Identidad
– Define una forma única de cuantificar en identidades
distinguibles y discretas.
 Comportamiento
– Define como el objeto responde a peticiones de otros
objetos, especifíca toda su funcionalidad.
Modelando el mundo físico
 Modelado orientado a objetos
– Es una nueva forma de pensar acerca de los
problemas usando modelos organizados
alrededor de conceptos del mundo real.
– La construcción fundamental es el objeto, el
cual combina tanto las estructuras de datos
como el comportamiento en una sola identidad.
Modelando el mundo físico..
Que Considerar al Modelar
Orientado a Objetos?
 Combinación de datos y comportamiento.
 Compartir recursos.
 Enfasis en estructura de objetos.
Formalmente
 Perspectiva de solución.
 Abstracción.
 Simplicidad (nivel y jerarquia de abstracción).
 Encapsulación.
 Generalización y Herencia.
 Clases.
 Sinergía.
 Verificación fuerte.
Distintas perspectivas de solución
Abstracción
Nivel de abstracción
Jerarquía de abstracción
Encapsulación
Generalización y Herencia
Clases
Sinergía
Verificación fuerte
Fases del Desarrollo de Sistemas
 Requerimientos del Análisis.
 Análisis.
 Diseño.
 Implementación.
 Pruebas.
Métodos y Lenguajes de Modelado
 Un método es una forma explícita y
definida de estructurar ideas y acciones.
 Un método manifiesta de manera
algorítimica, qué hacer, cuándo, cómo y
pórque hacerlo.
 Un lenguaje de modelado carece de un
proceso o instrucciones.
Métodos y Lenguajes de Modelado
 Un lenguaje de modelado consiste de
notación y un conjunto de reglas dirigidas a
como usarlas.
 Especificamente, reglas de tipo :
– Sintácticas: representación visual de elementos de modelado.
– Semánticas: conceptos fundamentales de modelado.
– Pragmáticas: idiomas de utilización en el mester.
Motivación Detrás de UML
 Porque modelar ?
– Tendencias de la industria.
– Complejidad de los sistemas.
– Definición de reglas semánticas y sintácticas
robustas para representar sistemas de distinto
dominio y complejidad.
Que es UML ?
 El Lenguaje Unificado de Modelado (UML)
es un lenguaje para especificar, visualizar,
construir y documentar los artefactos de
sistemas de software, de igual manera, para
el modelado de negocios y otros sistemas no
necesariamente de software.
¿Porque “Unificado” ?
Objetivos de UML
 Proveer un lenguaje de modelado visual para
desarrollar e intercambiar modelos significativos.
 Proveer
mecanismos
de
extensión
y
especialización para ampliar los conceptos
fundamentales del lenguaje.
 Ser independiente de lenguajes de programación y
procesos de desarrollo.
Objetivos de UML..
 Proveer una base formal para comprender el
lenguaje de modelado.
 Fomentar el crecimiento de herramientas OO en el
mercado.
 Incluir conceptos de desarrollo de alto nivel como
colaboración, marcos, patrones y componentes.
 Integrar un conjunto de mejores practicas.
Alcances de UML
 Es una fusión de los conceptos de Booch, OMT y OOSE.
Es un lenguaje de modelado común y ampliamente
adoptado para el uso de estos y otros métodos.
 Incorpora caracteríticas especiales de métodos de AyDOO.
 Se enfoca en un leguaje de modelado estandar y no en un
método estandar.
 Especifica un lenguaje de modelado que incorpora el
concenso de la comunidad de OO sobre conceptos de
modelado.
Uso de UML
 UML es utilizado para modelar sistemas, el
cual tiene un alcance muy amplio, con el
que pueden ser descritos diferentes tipos de
sistemas.
 UML tiene la característica especial de
poder ser utilizado en las diferentes fases
del desarrollo de sistemas.
Diferentes Tipos de Sistemas
 Sistemas de Información.
 Sistemas Técnicos.
 Sistemas de Tiempo Real.
 Sistemas Distribuidos.
 Sistemas de Software.
 Sistemas de Negocios.
Extensiones de UML
 Es posible extender UML mediante el uso
de estereotipos, valores etiquetados y
restricciones, existen dos extensiones
definidas:
1) Proceso Objectory. (Objectory Process)
2) Ingeniería de Negocios. (Business Engineering)
Mas allá del alcance de UML
 Lenguajes de Programación
 Herramientas
 Procesos
Colaboradores de UML
 Hewlett-Packard, IBM's, i-Logix, ICON,
IntelliCorp, MCI Systemhouse, Microsoft,
ObjecTime, Oracle, Platinum Technology,
Rational Software, Reich Technologies and
Taskon, Softeam, Sterling Software, Unisys.
Versiones de UML
UML Presente Pasado y Futuro
 Estandarización de UML
 Industrialización
 Tendencias futuras
 Variaciones entre UML 1.0 - 1.1
UML 1.0 v.s. UML 1.1
 Mayor formalidad.
 Mejora en la estructura de empaquetamiento.
 Unificación de semanticas de interacción y colaboración.
 Simplificación del modelo class/type/interface
 Unificación de semántica de asociaciones.
 Extensión del modelo de administración de semántica
incluyendo modelos y subsistemas.
 Extensión de semantica de casos de uso.
 Mejora en el mapeo de notación y semántica.
Diferencias entre UML y otros
Lenguajes de Modelado
 UML no intenta ser una desviación radical de
Booch, OMT y OOSE, sino el sucesor legítimo de
ellos.
 UML es más expresivo, uniforme y limpio.
 Cambios ligeros en la notación, que hacen mas
clara la semántica.
Terminología
Notación de Cardinalidad
Algunas otras Diferencias
 Notación de relaciones.
 Notación de visibilidad.
 Nuevos términos y conceptos, colaboración,
patrones, entre otros.
Un vistazo a UML
 Vistas.
 Diagramas.
 Elementos de Modelado.
 Mecanismos generales.
Vistas
 Las vistas representan una proyección de un
sistema como un todo, mostrando un
aspecto particular :
– Funcional (estructura estática, interaciones dinámicas)
– No funcional (tiempos, confiabilidad)
– De organización (código/módulos)
..Vistas
 Una vista es descrita por un grupo de diagramas
que contienen información para enfatizar un
aspecto particular del sistema.
 Un diagrama dentro de una vista debe ser lo
suficientemente simple para ser fácilmente
comunicado y coherente con otros diagramas y
vistas, de manera tal que todas las vistas en
conjunto describan un todo.
Vistas en UML
Component
View
Logical
View
Use-Case
View
Deployment
View
Concurrency
View
..Vistas en UML
 Use-case view: Funcionalidad del sistema desde la
perspectiva de actores externos.
 Logical view: funcionalidad interna, en terminos
de estructura y comportamiento dinámico.
 Component View: Organización de los
componentes de código.
..Vistas en UML
 Concurrency view: muestra los aspectos de
communicacion y sincronización en un sistema
concurrente.
 Deployment view: Muestra el mapeo entre el
sistema y la arquitectura física, computadoras,
dispositivos.
Diagramas
 Diagrama de Casos de Uso.
 Diagrama de Clases.
 Diagrama de Objetos.
 Diagrama de Estados.
 Diagrama de Secuencia.
..Diagramas
 Diagrama de Colaboración.
 Diagrama de Actividades.
 Diagrama de Componentes.
 Diagrama de Deployment.
Diagrama de Casos de Uso
Signing an insurance policy
Cus tom er
Sales s tatistics
Cus tom er statis tics
Ins urence
sales person
Diagrama de Clases
Cus tom er
Owns
1..*
Portfolio
1
1..*
Handles
1
Contains
0..*
0..*
Ins trum ent
Bond
Stock
Stock Option
Trader
Diagrama de Objetos
Author
nam e : string
age : integer
Com puter
Uses
0..*
1..*
nam e : string
m em ory : integer
Diagram a de Clases
Bob's Job PC: Com puter
nam e = "Dell 466"
m em ory : 64
Bob: Author
nam e = "Bob J."
age = 32
Bob's Hom re PC: Com puter
nam e = "Com paq Pentium MMX"
m em ory = 32
Diagrama de Estados
On first floor
go up (floor)
Moving up
arrive at first floor
m oving to firs t floor
arrive at floor
Moving down
arrive at floor
go down (floor)
tim e-out
Idle
go up (floor)
Diagrama de Secuencia
Print (file)
: Computer
: PrinterServer
Print (file)
[Printer free] Print (file)
[printer bus y] Sore (file)
: Printer
: Queue
Diagrama de Colaboración
:Computer
1: Print (file)
:PrinterServer
:Queue
[printer busy]
1.2: Store (file)
[printer free] 1.1: Print (file)
:Printer
Diagrama de Actividades
[disk full]
Show
MessageBox
"Disk full"
on screen
Print (File)
[free disk space]
Remove
MessageBox
Show
MessageBox
"printing"
on screen
^Printer.print(File)
Create postcript
file
Diagrama de Componentes
Window
Handler
(whnd.cpp)
Window
Handler
(whnd.obj)
Graphic
lib
(graphic.dll)
Comm
Handler
(comhnd.cpp)
Main
Class
(main.cpp)
Comm
Handler
(comhnd.obj)
Client
Program
(client.exe)
Main
Class
(main.obj)
Diagrama de Deployment
ClientA:
Compaq Pro PC
« TCP/IP »
Application
server:
Sillicon Graphics
02
« TCP/IP »
ClientB:
Compaq Pro PC
« DecNet »
Database
server:
VAX
Elementos de Modelado
 Clase
 Objeto
 Estado
 Caso de Uso
 Nodo
Elementos de Modelado
 Interface.
 Paquete (Subsistema).
 Nota.
 Componente.
Elementos de Modelado
Clase
Atributos
Operaciones
Objeto
Estado
Atributos
Operaciones
Nodo
Interface
Caso de
Uso
Nota
Paquete
Componente
Asociaciones
 Asociación.
 Generalización.
 Dependencia.
 Agregación.
Asociaciones
Dependencia
Generalización
Asociación
Agregación (una forma de dependencia)
Mecanismos Generales
 Ornamentos.
 Notas.
 Especificaciones. (propiedades)
 Estereotipos.
 Valores etiquetados.
 Restricciones.
Ornamentos y Notas
Class
anObjec t: Class
Stock Option
TheorPrice( )
MarketPrice( )
ExpireDate( )
Using Black &
Schole Formula
Propiedades y Restricciones
Instrument
{abstract}
{author=“HEE”}
{status=“draft”}
value : int
expdate : Date
Senior
Citizen
Group
0..1
{Person.age > 60}
0..*
Person
Uso de los Artefactos de Modelado
 La elección de los modelos y diagramas que
uno crea tiene una influencia profunda en
como un problema es atacado y como su
solución es modelada.
 Todo sistema complejo es mejor
aproximado a través de un conjunto
reducido de vistas del modelo.
Uso de los Artefactos de Modelado
 Ningúna vista por si sola es suficiente.
 Todos los modelos pueden ser expresados a
un nivel distinto de fidelidad.
 Existen modelos distintos en cada fase del
desarrollo.
 Los mejores modelos, son los que estan
conectados a la realidad.
Entrada: Conocimiento,
Experiencia, Descripción
del problema, etc.
Construyendo Modelos:
Un Proceso de Trabajo Práctico
Lluvia de Ideas
Bosquejo
Utilizar herramientas
informal, como pizarrón,
post-it
[el bosquejo es una aproximación practica]
Organizar el bosquejo
informal en una
herramienta y producir
diagramas mas formales
Organización
Especificar los detalles
del diagrama (proceso
iterativo a medida que se
conoce mejor el sistema)
Especificación
Integración
Verificación
En Prototipo y probado
Evaluar
Validación
Comprobar la congruencia de
los diagramas y que se
satisfacen los requerimientos
Cosntruir un prototipo y
probarlo
Evaluar el resultado; volver
y corregir deficiencias
Funcionalidad Deseada en una
Herramienta de Modelado
 Trazo de diagramas.
 Repositorio de información.
 Navegación.
 Soporte multi-usuario.
 Generación de código.
Funcionalidad Deseada en una
Herramienta de Modelado
 Ingeniería reversa.
 Integración con otras herramientas.
 Visibilidad en distintos niveles de
abstracción.
 Habilidad de intercambiar modelos.
Descargar

Desarrollo Orientado a Objetos