Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISEO
- RUP -
ORIENTADO A OBJETOS
Agenda
Introduccin
El paradigma de desarrollo orientado a
objetos
Anlisis y Diseo de RUP
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.
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 publica.
Implementacin Privada
Protege la estructura del Objeto.
Introduccin
Alta Cohesin
Cada componente esta orientado a cumplir una y
solo 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 solo un rea de inters.
Elimina o minimiza la superposicin funcional entre
componentes.
Introduccin
Paradigmas de desarrollo
Procedimental
Aplicaciones se construyen en base a variables, estructura
de datos y subrutinas.
Subrutina puede invocar a otra subrutina o a si 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.
Paradigmas de desarrollo
Programacin Procedimental
Procedimientos
Datos
Componente
Componente
Componente
Datos
Parmetros
Procedimientos
Procedimientos
Objetos
Datos
Datos y procedimientos. Se tratan
separadamente
Funciones
Atributos
Mtodos
sku
descripcin
precio
rebajarStock()
aumentarStock()
Nombre
Computador
Atributos
Marca: Acer
RAM: 8 GB
S/N: 8APXXY
Metodos
Imprimir()
Transmitir Informacin()
Mensaje
Es la invocacin de una operacin.
Interfaz
Implementacin
Circulo
Calcular radio (r)
Rectngulo
Triangulo
Calcular superficie
Lados x,y
Polimorfismo:
Polimorfismo:
Funciones que se pueden aplicar a los objetos de distintas clases para
obtener el mismo resultado semntico
ANLISIS Y DISEO
- RUP -
Anlisis y Diseo
Workflow
Anlisis y
Diseo
Workflow
(servicios)
Anlisis y Diseo
Actividades principales
Anlisis y Diseo
Actividades principales
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.
Anlisis y Diseo
Artefactos principales
Anlisis y Diseo
Actividades principales
Analizar la arquitectura.
Analizar casos de uso.
Disear y elaborar prototipo de interfaz de
usuario.
Refinar la arquitectura.
Disear clases.
Disear casos de uso.
Analizar la arquitectura
Qu es arquitectura de software?
-La organizacin fundamental de un sistema,
expresaba en trminos de sus componentes
principales, las relaciones entre ellos y el ambiente,
y los principios que gobiernan su diseo y evolucin.
-Esto componentes
Componen subsistemas de mayor nivel.
Estn compuestos a su vez de componentes
sucesivamente mas pequeos.
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
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.
Analizar la arquitectura
Atributos de la calidad del software
Analizar la arquitectura
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.
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.
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
Panorama general de arquitectura ejemplo 4
Analizar la arquitectura
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 esta organizado
por Capas, un patrn de arquitectura comn para
sistemas medianos a grandes; la cantidad de capas
no es fija, varia segn la situacin.
Usualmente la atencin se enfoca de dos capas de
alto nivel: la de aplicacin y la de negocio.
Analizar la arquitectura
Arquitectura en capas
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.
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.
Analizar la arquitectura
Arquitectura en capas
Analizar la arquitectura
Ejemplo: Subsistemas de alto nivel
Analizar la arquitectura
Identificar las abstracciones principales
Prepararse para el anlisis identificando
las abstracciones principales que el
sistema debe manejar: los conceptos
identificados durante modelado de
negocio y requisitos.
Analizar la arquitectura
Mecanismos de arquitectura
-Auditoria: pistas de auditoria 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.
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 lenguajes humanos.
-Correo: servicios que permiten a las aplicaciones enviar y
recibir correo electrnico.
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 negocios.
Anlisis y Diseo
Actividades principales
Analizar la arquitectura.
Analizar casos de uso.
Disear y elaborar prototipo de interfaz de
usuario.
Refinar la arquitectura.
Disear clases.
Disear casos de uso.
-Tipos
Asociacin
Composicin
Herencia
Asociacin
Agregacin
Composicin
Generalizacin ( Herencia)
Dependencia
Asociacin
Se presenta cuando dos clases son independientes.
Pueden existir relaciones de asociacin entre la misma
clase
En un diagrama se representa como un lnea
conectando dos clases
Navegabilidad
Muestra en cual direccin la asociacin puede ser
recorrida consultada
Indica quien es el propietario de la implementacin de
la asociacin.
Las asociaciones sin flechas de navegabilidad son
bidireccionales
Agregacin
Una asociacin en la cual una clase pertenece a una coleccin, un
objeto es parte de un todo. (tiene un)
Distingue una parte de un todo.
La multiplicidad en el todo es diferente de 1.
Una agregacin tiene una punta de diamante sin rellenar hacia la
parte que contiene el todo.
En el siguiente ejemplo un equipo tiene una coleccin de
personas, est conformado por personas.
Composicin
Es una asociacin fuerte (pertenencia fuerte) en la cual la parte
pertenece a un todo, ella no puede existir sin el todo
Los objetos contenidos no son compartidos, esto es, no hacen
parte del estado de otro objeto
La multiplicidad en el lado todo es 0,1 y en el lado parte un
intervalo.
La composicin es denotada por una punta de diamante rellena
hacia la parte del todo.
Disear clases
Disear clases de interfaz con el mundo
exterior
Interfaz de usuario.
Interfaz con sistemas expertos.
Disear clases
Disear clases entidad
Deriva de modelo de anlisis.
Contiene las reglas de negocio.
Disear clases
Visibilidad
Disear clases
Clase de diseo - ejemplo
Producto
-Sku: String
-Descripcin: String
-Precio: String
+rebajarStock (almacn, cantidad)
+aumentarStock (almacn, cantidad)
Anlisis y Diseo
Actividades principales
Analizar la arquitectura.
Analizar casos de uso.
Disear y elaborar prototipo de interfaz de
usuario.
Refinar la arquitectura.
Disear clases.
Disear casos de uso.
resumen
En esta sesin hemos revisado:
Aspectos introductorios de anlisis y diseo.
Principales paradigmas de desarrollo orientado a
objetos.
Actividades principales para Anlisis y Diseo en
RUP.