Sei sulla pagina 1di 89

ANLISIS Y

DISEO
- RUP -

TPICOS DE DESARROLLO DE SOFTWARE

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

Programacin Orientada a Objetos


programa

Procedimientos

Datos

Componente

Componente

Componente

Datos
Parmetros
Procedimientos

Procedimientos
Objetos
Datos
Datos y procedimientos. Se tratan
separadamente

Funciones

Paradigmas Orientado a Objetos


Conceptos Clave
Clase
Descripcin de un conjunto de objetos que
comparten los mismos atributos, mtodos y
relaciones y semntica.
Una clase puede utilizar un conjunto de interfaces
para especificar colecciones de operaciones que
ofrecen a su entorno.

Paradigmas Orientado a Objetos


Clase en UML - ejemplo
Nombre
Producto

Atributos
Mtodos

sku
descripcin
precio
rebajarStock()
aumentarStock()

Paradigmas Orientado a Objetos


Conceptos Clave
Objeto
Es una entidad con una frontera e identidad bien
definidas, encapsula estado y comportamiento.
Su estado est representado por atributos y
relaciones.
Su comportamiento esta representado por
operaciones, mtodos y maquinas de estado.
Un objeto es una instancia de una clase.

Paradigmas Orientado a Objetos


Clase en UML - ejemplo

Nombre

Computador

Atributos

Marca: Acer
RAM: 8 GB
S/N: 8APXXY

Metodos

Imprimir()
Transmitir Informacin()

Paradigmas Orientado a Objetos


Conceptos Clave
Atributo
Representa una propiedad de una clase o sus
objetos, identificada con un nombre, que describe
un rango de valores que pueden tomar las
instancias de la propiedad.
Un atributo esta asociado con un tipo de datos o
una clase.

Paradigmas Orientado a Objetos


Conceptos Clave
Tipos de Atributo
Los atributos o caractersticas de una clase pueden ser
de tres tipos, los que definen el grado de comunicacin
y visibilidad de ellos con el entorno:
Public
: Indica que el atributo ser visible tanto
dentro como fuera de la clase, es decir, es accesible
por todos.
Private
: Indica que el atributo slo ser accesible
desde dentro de la clase (slo sus mtodos lo pueden
accesar).
Protected
: Indica que el atributo no ser accesible
desde fuera de la clase, pero si podr ser accesado por
mtodos de la clase adems de las subclases que se
deriven (ver herencia).

Paradigmas Orientado a Objetos


El objeto hereda todos los atributos de la clase

Paradigmas Orientado a Objetos


Conceptos Clave
Operacin
Un servicio que puede ser solicitado a un objeto
para llevar a cabo un comportamiento.
Esta asociado con una firma o especificacin de
los parmetros de entrada y sus respectivos tipos,
opcionalmente un parmetro de retorno.

Paradigmas Orientado a Objetos


Conceptos Clave
Mtodo
Es la implementacin de una operacin.
Especifica el algoritmo o procedimiento asociado
con una operacin.

Mensaje
Es la invocacin de una operacin.

Paradigmas Orientado a Objetos


El objeto hereda todos los atributos y operaciones de la clase.

Paradigmas Orientado a Objetos


Una operacin es una abstraccin de algo que se puede
hacer a un objeto y que es compartido por todos los
objetos de la clase.
public (+,): Indica que el mtodo ser visible tanto dentro
como fuera de la clase, es decir, es accesible desde todos
lados.
private (-,): Indica que el mtodo slo ser accesible desde
dentro de la clase (slo otros mtodos de la clase lo
pueden accesar).
protected (#,): Indica que el mtodo no ser accesible
desde fuera de la clase, pero si podr ser accesado por
mtodos de la clase adems de mtodos de las subclases
que se deriven (ver herencia).

Paradigmas Orientado a Objetos


Propiedades clave
Encapsulacin
Herencia
Polimorfismo

Paradigmas Orientado a Objetos


Encapsulacin
Propiedad que permite empaquetar datos y
funcionalidades 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.

Paradigmas Orientado a Objetos


Encapsulacin
Enmascaramiento de informacin

Tomado de: Object Technology (second edition), David Taylor

Interfaz

Implementacin

Paradigmas Orientado a 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.

Paradigmas Orientado a 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:
La implementacin de las clase base es visible a las clase
derivadas.

Genera acoplamiento fuerte entre la clase base y


clases derivadas.
Habilita polimorfismo.

Paradigmas Orientado a Objetos


Herencia en UML ejemplo

Paradigmas Orientado a Objetos


Herencia en UML ejemplo
Figura Geomtrica
Calcular superficie

Circulo
Calcular radio (r)

Proporciona el valor cero


Calcular superficie se recibe
de la clase base por herencia

Rectngulo

Triangulo

Calcular superficie
Lados x,y

Calcular superficie base


y altura

Polimorfismo:

Polimorfismo significa que la misma operacin puede


comportarse diferentemente sobre distintas clases.
Varios Mtodos con el mismo nombre, siempre y
cuando que el tipo de parmetros que recibe o el
numero sean diferentes.
El mismo mensaje puede originar acciones diferentes
al ser recibidos por diferentes objetos.
Polimorfismo (muchas
formas") es la propiedad por la
que una operacin se comporta
de forma diferente en diferentes
clases [Sutherland, 1997]

Polimorfismo:
Funciones que se pueden aplicar a los objetos de distintas clases para
obtener el mismo resultado semntico

Habilidad de un requerimiento que pueda ser atendido por varios objetos,


actuando de diferente forma.
( Requerimiento )
( objetos )
Imprimir
orden de servicio
Imprimir
liquidacin de servicio
Imprimir
orden de supervisin
El concepto de polimorfismo est basado en la herencia

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.

Disear la base de datos.

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.

-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.

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.

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.

Identificar mecanismos de arquitectura a


nivel de anlisis.

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.

-Intercambio de informacin: apoya la conversin entre los


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 lenguajes humanos.
-Correo: servicios que permiten a las aplicaciones enviar y
recibir correo electrnico.

-Megadatos: apoya para manejar grandes volmenes de datos.

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.

Disear la base de datos.

Analizar casos de uso


Diferencias entre anlisis y diseo
-Anlisis vs. Diseo
Hacer la cosa correcta vs. Hacer correctamente la cosa.

-Anlisis orientado a objetos


Investigacin del dominio del problema, en trminos de
sus conceptos.
Producto: modelo conceptual o modelo de dominio.

-Diseo orientado a objetos


Especificacin lgica de una solucin de software, en
trminos de objetos de software.

Los diseos se implementan en cdigo.

Analizar casos de uso


Complementar la descripcin de los
casos de uso.

Encontrar clases de anlisis a partir del


comportamiento del caso de uso.
Describir atributos y asociaciones.

Analizar casos de uso


Clases de anlisis
Clases conceptuales
Documentar su definicin.
Ilustrar con ejemplos.

No son artefactos de software


No indicar tipos de datos.
No indicar mtodos

Analizar casos de uso


Clases de anlisis
- Modelo dominio
Identificar clases conceptuales y objetos de dominio.
Dibujarlas en un modelo de dominio o diagrama de
clases conceptuales.
Aadir asociaciones entre clases.
Aadir atributos a las clases.

Analizar casos de uso


Identificar clases conceptuales
-Patrones de anlisis o experiencias anteriores.
-Lista de categoras.
-Extraccin de nombres mencionados en los
casos de uso.
-Atributos
Son textos o nmeros en el mundo real.
Si no, es candidato a ser clase conceptual.

Analizar casos de uso


Relaciones
-Se mantienen a travs de combinaciones de
atributos y mtodos.
Atributos almacenan la informacin.
Mtodos mantienen actualizados los atributos.

-Tipos
Asociacin
Composicin
Herencia

Analizar casos de uso


Relaciones
-Propiedades
Navegabilidad Quin tiene la responsabilidad de
mantener e informar sobre el estado de la
informacin?.
Multiplicidad = cardinalidad + opcionalidad.
Roles.

Analizar casos de uso


Diagrama de clase en UML - ejemplo

Relaciones entre clases

Las relaciones entre las clases son los links


conectndolos.
Recuerde: las relaciones se convertirn en atributos
de las clases.
Existen varias clases de relaciones:

Asociacin
Agregacin
Composicin
Generalizacin ( Herencia)
Dependencia

Las relaciones tienen roles, cardinalidad,


navegabilidad, calificadores.

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 controladoras


No contiene reglas o conocimiento del
negocio.
Establece un conjunto de operaciones
disponibles y coordina la respuesta de la
aplicacin para cada operacin.

Disear clases
Disear clases entidad
Deriva de modelo de anlisis.
Contiene las reglas de negocio.

Disear mecanismos de persistencia.


Disear clases
Definir visibilidad, operaciones, atributos,
asociaciones.

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.

Disear la base de datos.

Disear casos de uso


Crear realizaciones de casos de uso.
Describir interacciones entre objetos de
diseo
Diagramas de secuencia.
Diagramas de comunicacin.

Disear casos de uso


Realizacin de caso de uso en UML

Disear casos de uso


Ejemplo de diseo .
Caso de Uso: vender productos
Flujo principal (escenario de xito)
1. Cajero inicia nuevo pedido.
2. Cajero ingresa cdigo del producto y cantidad deseada.
3. Sistema valida informacin ingresada, presenta
descripcin del articulo, precio unitario y total acumulado
de la venta.
4. Para cada producto que el cliente desea comprar se
repiten los pasos 2 y 3.
5.

Disear casos de uso


Diagrama de secuencia - ejemplo

Disear casos de uso


Diagrama de comunicacin - ejemplo

Disear casos de uso


Realizacin de caso 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.

Potrebbero piacerti anche