Академический Документы
Профессиональный Документы
Культура Документы
ORIENTADO A OBJETOS
rup
anlisis y diseo orientado a objetos
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
Agenda
INFORMTICA
Y DE SISTEMAS
Introduccin
El paradigma de desarrollo orientado a objetos.
Anlisis y Diseo en RUP.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Introduccin
Atributos de un buen diseo
Bajo acoplamiento
Permite minimizar o eliminar el impacto de los cambios
en la funcionalidad de un componente.
Alta cohesin
Permite mejorar la solidez, facilidad de mantenimiento y
facilidad de reutilizacin de la funcionalidad de un
componente.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Introduccin
Bajo acoplamiento o baja dependencia
Ofrece transparencia para los clientes de una
clase, sobre sus detalles de implementacin.
Protege a los clientes de una clase, del impacto de
los cambios en su implementacin.
Facilitado por enmascaramiento de informacin
(information hiding)
Interfaz o especificacin pblica.
Implementacin privada.
Protege la estructura interna del objeto.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Introduccin
Alta cohesin
Cada componente est orientado a cumplir una y
slo una tarea, bien definida y enfocada.
Mejor manejo de la complejidad.
Facilitado por diseo modular
Todas las responsabilidades de un componente estn
fuertemente relacionadas, concentradas en cubrir
completamente slo un rea de inters.
Elimina o minimiza la superposicin funcional entre
componentes.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Introduccin
Paradigmas de desarrollo
Procedimental
Aplicaciones se construyen en base a variables,
estructuras de datos y subrutinas.
Subrutina puede invocar a otra subrutina o a s misma.
Objeto contiene datos/funcionalidad, mas no ambos.
Orientado a objetos
Aplicaciones basadas en objetos que interactan.
Objetos se comunican entre s a travs de mensajes.
Un objeto puede contener datos y funcionalidad
relacionada al mismo tiempo.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Conceptos clave
Clase
Descripcin de un conjunto de objetos que comparten los
mismos atributos, mtodos, relaciones y semntica.
Una clase puede utilizar un conjunto de interfaces para
especificar colecciones de operaciones que ofrece a su
entorno.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Conceptos clave
Objeto
Una entidad con una frontera e identidad bien definidas,
que encapsula estado y comportamiento.
Estado est representado por atributos y relaciones.
Comportamiento est representado por operaciones,
mtodos y mquinas de estado.
Un objeto es una instancia de una clase.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Atributo
Representa una propiedad nombrada de una clase
o sus objetos.
Un atributo est asociado con un tipo de datos o
una clase.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Operacin
Un servicio que puede ser solicitado a un objeto
para llevar a cabo un comportamiento.
Est asociada con una firma o especificacin de los
parmetros de entrada y sus respectivos tipos,
opcionalmente un parmetro de retorno.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Mtodo
La implementacin de una operacin, especifica el
algoritmo o procedimiento asociado con una
operacin.
Mensaje
La invocacin de una operacin.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Clase en UML ejemplo
Nombre
Producto
sku
Atributos descripcion
precio
rebajarStock()
aumentarStock()
Mtodos
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Propiedades clave
Encapsulacin
Herencia
Polimorfismo
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Encapsulacin
Propiedad que permite empaquetar datos y
funcionalidad en cada clase u objeto.
Atributos almacenan la informacin que conoce el objeto
(su estado).
Mtodos implementan el comportamiento del objeto.
Mecanismo que facilita implementar
enmascaramiento de informacin en los lenguajes
orientados a objetos.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Enmascaramiento de informacin
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Interfaz vs. implementacin
Interfaz
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Interfaz vs. implementacin
Interfaz Implementacin
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Herencia
Permite representar jerarquas de generalizacin
especializacin
Clases genricas: superclases, clases base o clases padre.
Clases especializadas: subclases, clases derivadas o
clases hijas.
Clases derivadas adquieren las propiedades de las clases
base y contienen informacin adicional.
Clases derivadas deben poder reemplazar SIEMPRE a sus
respectivas clases base.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Herencia
Clase derivada debe ser un tipo especial de la clase base
(no un rol desempeado por) SIEMPRE, SIN
EXCEPCIONES.
No abusar usar con cuidado.
Quiebra el enmascaramiento de informacin:
implementacin de la clase base es visible a las
clases derivadas
Genera acoplamiento fuerte entre clase base y clases
derivadas.
Habilita polimorfismo.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Herencia en UML ejemplo
Cliente
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
Paradigma orientado a
ORIENTADO A OBJETOS
objetos
Polimorfismo
Una instancia de un elemento ms especializado
puede reemplazar a una instancia de un elemento
ms genrico.
Objetos de diferentes clases que pertenecen a la
misma jerarqua, responden de maneras diferentes
al mismo mensaje genrico.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Anlisis y diseo
Workflow
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Anlisis y diseo
Actividades principales
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Anlisis y diseo
Analizar la arquitectura.
Analizar casos de uso.
Disear y elaborar prototipo de interfaz de
usuario.
Refinar la arquitectura.
Disear clases.
Disear casos de uso.
Disear la base de datos.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Anlisis y diseo
Artefactos principales
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Qu es arquitectura de software?
La organizacin fundamental de un sistema,
expresada en trminos de sus componentes
principales, las relaciones entre ellos y el ambiente,
y los principios que gobiernan su diseo y
evolucin.
Estos componentes
Componen subsistemas de mayor nivel.
Estn compuestos a su vez de componentes
sucesivamente ms pequeos.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Caractersticas de la arquitectura
Comprende el conjunto de decisiones significativas
acerca de la organizacin de un sistema de
software.
Decisiones difciles de cambiar, importantes, que se
toman en las primeras instancias del proyecto.
Es el primer artefacto de diseo en el que se
atienden los atributos de calidad del sistema.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Caractersticas de la arquitectura
La arquitectura trae implcito un estilo que gua el
desarrollo.
Un sistema siempre tiene una arquitectura, aunque
puede tener varias a la vez.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Atributos de calidad del software
Funcionalidad
Costoyplazos Compatibilidad
Rendimiento Confiabilidadydisponibilidad
Capacidad Seguridad
Escalabilidad Toleranciaafallas
Tecnologadepunta Flexibilidadyadaptabilidad
Analizar la arquitectura
Arquitectura vs. diseo
Requisitos arquitectura
no funcionales
Requisitos
diseo
funcionales
Arquitectura: donde se forjan las decisiones no funcionales y se dividen los requisitos funcionales
Diseo: donde se cumplen los requisitos funcionales
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Panorama general de la arquitectura
Comunica un bosquejo inicial de la estructura de
alto nivel de la solucin propuesta, dirigido al
cliente, equipo de desarrollo y otros grupos de
inters.
Refleja decisiones tempranas y supuestos de
trabajo sobre la arquitectura fsica y lgica y los
requisitos no funcionales del sistema.
Puede tomar la forma de un conjunto de esquemas
informales, principalmente grficos.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Panorama general de la arquitectura
Ilustra la naturaleza esencial de la solucin
propuesta, expresando sus ideas rectoras y
mostrando sus principales componentes.
Se recomienda tomar como base una arquitectura
de referencia.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Panorama general de arquitectura ejemplo 1
Analizar la arquitectura
Panorama general de arquitectura ejemplo 2
Analizar la arquitectura
Panorama general de arquitectura ejemplo 3
Analizar la arquitectura
Definir la organizacin en subsistemas de alto
nivel
Crear una estructura inicial para el modelo de
diseo.
Normalmente el modelo de diseo est organizado
por capas, un patrn de arquitectura comn para
sistemas medianos a grandes; la cantidad de capas
no es fija, vara segn la situacin.
Usualmente la atencin se enfoca en dos capas de
alto nivel: la de aplicacin y la de negocio.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Arquitectura en capas
Capa de presentacin
Interfaz de usuario.
Servicios para aplicaciones externas.
Capa de aplicacin o de servicios
No contiene reglas o conocimiento del negocio.
Establece un conjunto de operaciones disponibles y
coordina la respuesta de la aplicacin para cada
operacin.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Arquitectura en capas
Capa de negocio o de dominio
Contiene las reglas de negocio.
Constituye el corazn del software.
Capa de fuentes de datos
Persistencia.
Mensajera.
Servicios de aplicaciones externas.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Arquitectura en capas
Capa de presentacin
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Ejemplo: Subsistemas de alto nivel
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Identificar las abstracciones principales
Preparase para el anlisis identificando las
abstracciones principales que el sistema debe
manejar: los conceptos identificados durante
modelado del negocio y requisitos.
Identificar mecanismos de arquitectura a nivel
de anlisis.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Mecanismos de arquitectura
Auditora: pistas de auditora sobre la ejecucin del
sistema.
Comunicaciones: permite la comunicacin entre
procesos distribuidos.
Depuracin: ofrece elementos para apoyar la
determinacin de fallas en la aplicacin.
Gestin de errores: permite detectar, propagar e
informar los errores.
Analizar la arquitectura
Mecanismos de arquitectura
Gestin de eventos: apoya el uso de mensajes
asncronos dentro del sistema.
Gestin de archivos: ofrece servicios para acceder
al sistema de archivos.
Grficos: apoya servicios de la interfaz de usuario
para presentar grficos.
Intercambio de informacin: apoya la conversin
entre formatos de datos.
Analizar la arquitectura
Mecanismos de arquitectura
Licenciamiento: ofrece servicios para adquirir,
instalar, hacer seguimiento y monitorizar el uso de
licencias.
Localizacin: ofrece facilidades para permitir el uso
de mltiples lenguejes humanos.
Correo: servicios que permiten a las aplicaciones
enviar y recibir correo electrnico.
Megadatos: apoyo para manejar grandes
volmenes de datos.
Tomado de: http://www.ibm.com/developerworks/rational/library/4707.html
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Analizar la arquitectura
Mecanismos de arquitectura
Metadatos: apoya la configuracin automtica de
componentes en tiempo de ejecucin.
Ayuda en lnea: ofrece capacidad de ayuda en
lnea.
Persistencia: servicios para manipular datos
persistentes.
Impresin: ofrece facilidades para emitir
documentos y reportes impresos.
Analizar la arquitectura
Mecanismos de arquitectura
Generacin de informes: ofrece facilidades para
definir nuevos informes.
Tareas programadas: ofrece capacidad para
programar y ejecutar tareas automticamente.
Seguridad: ofrece servicios para proteger y
controlar el acceso a ciertos recursos o
informacin.
Analizar la arquitectura
Mecanismos de arquitectura
Hora: servicios para sincronizar la hora en una red
y convertir la hora entre diferentes zonas horarias.
Motor de automatizacin de procesos: apoyo para
definir y controlar procesos de negocio.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
1 0..*
Cliente colocado por expide
Pedido
1
pertenece a
Composicin
contiene
*
Clase
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Disear clases
Arquitectura en capas
Capa de presentacin
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Disear clases
Disear clases de interfaz con el mundo
exterior
Interfaz de usuario.
Interfaz con sistemas externos.
Disear clases controladoras
No contiene reglas o conocimiento del negocio.
Establece un conjunto de operaciones disponibles y
coordina la respuesta de la aplicacin para cada
operacin.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Disear clases
Disear clases entidad
Deriva de modelo de anlisis.
Contiene las reglas de negocio.
Disear mecanismos de persistencia.
Detallar clases
Definir visibilidad, operaciones, atributos,
asociaciones.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Disear clases
Visibilidad
Tipo Smbolo Puede ser utilizado desde
Privada - Mtodos de la misma clase donde
est definido
Paquete ~ Mtodos de clases que pertenecen
al mismo paquete que la clase
donde est definido
Disear clases
Clase de diseo ejemplo
Producto
- sku: String
- descripcion: String
- precio: Double
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
<<realizes>>
Vender Vender
productos productos
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
nuevoPedido()
crear()
loop
nuevoDetalle(id, cant)
desc := getDescripcionProducto(id)
precio := getPrecioProducto(id)
calcularTotal ()
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
<<realizes>>
Vender
productos
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS
TPICOS DE DESARROLLO DE SOFTWARE
ORIENTADO A OBJETOS
Resumen
En esta sesin hemos revisado:
Aspectos introductorios de anlisis y diseo.
Principales propiedades del paradigma de
desarrollo orientado a objetos.
Actividades principales para anlisis y diseo en
RUP.
CARRERA DE
INGENIERA
EMPRESARIAL
Y DE SISTEMAS