You are on page 1of 84

2.

Diseo orientado a Objetos


2.1 Diseo del sistema en base a procesos. 2.1.1 Actividades y casos de uso. 2.1.2 Interfaces de usuario. 2.2 Diseo de la lgica. 2.2.1 Clases y Objetos. 2.2.2 Interaccin. 2.2.3 Estados y Transiciones.

Diseo orientado a objetos


Antes de iniciar con el diseo orientado a objetos, se repasaran algunos aspectos bsicos de la orientacin a objetos

Anlisis Orientado a Objetos


Identificacin de clases y objetos Identificacin de estructuras Identificacin de temas Identificacin de atributos Identificacin de servicios

Diseo Orientado a Objetos

Componente del Dominio del Problema Componente de Interaccin Humana Componente de Administracin de Tareas Componente del Manejo de Datos

Anlisis del Sistema

Consiste en identificar y analizar la funcin y ejecucin requeridas del sistema que se va a construir y entonces distribuir esta funcin y ejecucin a cada uno de los elementos del sistema.

Actividades
Desarrollar o adquirir una declaracin del alcance del sistema Aislar los procesos y entidades a nivel superior

Distribuir procesos y entidades a elementos fsicos del sistema


Desarrollar una declaracin refinada del alcance para cada elemento distribuido del sistema Contactar con el cliente para revisar la distribucin

Declaracin del alcance del sistema


Formular preguntas para comprender la funcin global del sistema

Describir la funcin global del sistema


Identificar las principales entradas y salidas Listar todas las restricciones que afecten al sistema Escribir un prrafo en un lenguaje sencillo

Preguntas
Salidas qu informacin produce? cul es el formato? Produce grficos, reportes u otros? quin utiliza los datos de salida? Otro sistema los utiliza?

Entradas

qu informacin acepta como entrada? Los datos se proporcionan interactivamente? qu nivel de validacin de datos es requerido? cul es el formato de entrada? quin proporciona la entrada?

cules son los procesos que realizan? Funciones cmo manejan la informacinde entrada para proporconar la salida?

Describir la funcin global del sistema

Consiste en escribir un prrafo que identifique los objetivos globales del sistema basado en computadora. Utilizar un lenguaje sencillo para describir las funciones que el sistema va a llevar a cabo y la informacin de entrada y de salida

Identificar las entradas y salidas


Clasificar los datos transformados en

Objetos Datos

Informacin transformada por software

Objetos Control

Ocurrencia de una accin o evento especfico

Restricciones que afecten al sistema


Restricciones econmicas

Medio ambiente en el cual se ubicar

Prrafo en un lenguaje sencillo


Escribir una narrativa que contenga:

Un listado de los principales datos de entrada y salida


Una descripcin de la funcin global del sistema

Un listado de las restricciones mas importantes del sistema

Aislar los procesos y entidades a nivel superior

Seleccionar entidades Objetos Seleccionar entidades Procesos

Seleccionar Entidades Objetos

Subrayar cada sustantivo o clusla sustantivo e inclirla en una tala Entidad. (Debe considerar los alias)
Los atributos de las entidades se identifican subrayando todos los adjetivos y asociandolos a las entidades correspondientes

Seleccionar Entidades Procesos

Subrayar todos los verbos, frases verbale y predicados, relacionando cada proceso a la entidad apropiada. (Tabla de Procesos)

Los atributos de los procesos son identificados subrayando todos los adverbios y entonces asociando stos con sus respectivos procesos.

Distribuir proceso y entidades a elementos fsicos del sistema


Desarrollar lista de criterios para la distribucin y priorizar Proponer al menos dos distribuciones Aplicar criterios para estimar la viabilidad de cada alternativa Seleccionar una distribucin

Lista de Criterios
Restricciones econmicas Restricciones en cuanto a experiencia Restricciones en el grado global de riesgo Restricciones en la disponibilidad de apoyo

Proponer dos distribuciones

Es necesario contar con al menos dos soluciones potenciales para el sistema, ya que de no ser as indicaria que no se ha comprendido realmente el problema

Criterios para estimar la viabilidad


Consideraciones del proyecto Consideraciones del negocio Aspectos humanos Interfaces medioambientales Consideraciones legales

Seleccionar una distribucin


Seleccionar la distribucin que mejor cumpla con los criterios establecidos.

Declaracin refinada del alcance para cada elemento

Se realiza una descripcin de los procesos y entidades asociados con el hardware, software, personas, bses de datos, documentos y procedimientos

Revisar distribucin con el cliente


Se definieron las funciones principales? Se definieron las interfaces entre los elementos del sistema? Se establecieron las restricciones para cada elemento del sistema Fue seleccionada la mejor alternativa? La solucin es factibe? Se establecieron mecanismos de validacin y verificacin? Existe consistencia entre los elementos del sistema?

Un ejemplo
Suponga que deseo enviar flores a mi abuela (cuyo nombre es Elisa) debido a su cumpleaos. Ella vive en la ciudad a varios kilmetros de distancia, asi que no me es posible llevarle las flores en persona. Sin embargo enviarle las flores es lo mas sencillo del mundo; solo tengo que ir con mi florista local (cuyo nombre es Flo) describirle el tipo y cantidad de flores que quiero enviar, y puedo estar seguro de que las flores seran entregadas automticamente

Conceptos de AOO
Superclase Clase (flores, persona) Objeto Encapsulamiento Abstraccin Herencia Polimorfismo Modularidad jerarqua

Caractersticas de un objeto
Tiene un comportamiento Tiene responsabilidades Se asocia con otros a travs de mensajes Son agregados, y juntos conforman un todo Se clasifican y forman las clases Cada clase tiene atributos y operaciones diferentes, aunque cuando tienen igual atributo u operaciones se dice que Heredan caractersticas

2.1 Diseo del sistema en base a procesos.

2.1.1 Actividades y casos de uso. 2.1.2 Interfaces de usuario.

2.1.1 Actividades y casos de uso. Diagramas de casos de uso


Un Diagrama de Casos de Uso muestra la relacin entre los actores y los casos de uso del sistema. Representa la funcionalidad que ofrece el sistema en lo que se refiere a su interaccin externa.

Elementos Actores casos de uso relaciones entre casos de uso.

Diagramas de casos de uso. Elementos


Un actor es una entidad externa al sistema que realiza algn tipo de interaccin con el mismo. Se representa mediante una figura humana dibujada con palotes.
Identificacin de los actores Un actor representa a una cosa, o persona que interacta con el sistema, incluyendo sistemas externos, y otras organizaciones. Los actores son siempre externos al sistema que est siendo modelado.

Cmo encontrar los actores


Mediante las siguientes preguntas Quin es el principal cliente de su sistema? Quin obtiene la informacin de este sistema? Quin proporciona informacin al sistema? Quin instala el sistema? Quin opera el sistema? Quin apaga el sistema? Qu otros sistemas interactan con este sistema? Hay algo que suceder de forma automtica a una hora predeterminada? Quin suministro, utilizacin, o eliminar la informacin del sistema? De dnde viene el sistema de obtener informacin?

Diagramas de casos de uso. Elementos


casos de uso

Es una descripcin de la secuencia de interacciones que se producen entre un actor y el sistema, cuando el actor usa el sistema para llevar a cabo una tarea especfica. Expresa una unidad coherente de funcionalidad. Se representa en el Diagrama de Casos de Uso mediante una elipse con el nombre del caso de uso en su interior. El nombre del caso de uso debe reflejar la tarea especfica que el actor desea llevar a cabo usando el sistema.

Diagramas de casos de uso. Elementos


Identificacin de casos de uso preguntando a sus interesados, lo siguiente, desde el punto de vista de los actores: Cules son los usuarios de este rol tratando de realizar? Qu deben ser capaces los usuarios de hacer? Cules son las principales tareas de los usuarios en este papel? Qu informacin necesitan examinar, crear o cambiar los usuarios de este perfil? Qu informacin necesitan los usuarios de este perfil del sistema? Qu hacen los usuarios en este perfil que necesitan informar al sistema?

Diagramas de casos de uso. Elementos


Relaciones entre Casos de Uso Entre dos casos de uso puede haber las siguientes relaciones: Extiende: Cuando un caso de uso especializa a otro extendiendo su funcionalidad. Usa: Cuando un caso de uso utiliza a otro. Se representan como una lnea que une a los dos casos de uso relacionados, con una flecha en forma de tringulo y con una etiqueta <<extiende>> o <<usa>> segn sea el tipo de relacin.

ejemplo de Diagrama de Casos de Uso para un cajero automtico

2.1.2 Interfaces de usuario


Es la parte del software con el que un usuario interacta directamente. Un prototipo no es exactamente la interfaz de usuario Cuando se disea la interfaz de usuario, este itera entre las siguientes tareas: Explorar el uso del sistema. Las pantallas de informes potenciales, se puede modelar usando papel de rota folio. Se Modelan elementos como campos de entrada, las listas, y los contenedores Se realizan en el software seleccionado

Anlisis Orientado a Objetos (AOO)

2.2.1 Clases y Objetos

Establecer una correspondencia cercana entre la representacin tcnica de un sistema y la vista conceptual del mundo real.

Anlisis Orientado a Objetos (AOO)

Igualar la representacin tcnica de un sistema lo ms cercanamente posible a la vista conceptual del mundo real. Lograr y comunicar un entendimiento del espacio del problema. Crear un marco de referencia establecido para el anlisis y la especificacin. Reducir la volatilidad. Constituye la expresin inicial del contexto del problema. Evitar el cambio de representacin del anlisis al diseo.

Anlisis Orientado a Objetos (AOO)

Dominio o Espacio del problema. Campos de inters bajo consideracin.

Responsabilidades del sistema. Arreglo de cosas de inters, relacionadas entre s como un todo.

Dominio del problema: Persona Nombre Direccin Peso Edad Estilo de vida Preferencias religiosas

Responsabilidades del sistema: Persona Nombre Direccin

Anlisis Orientado a Objetos (AOO)

Objeto Una abstraccin de algo parteneciente al espacio del problema, la cual refleja las capacidades de un sistema de mantener informacin sobre l y/o interactuar con l, un encapsulamiento de valores de Atributos y sus Servicios exclusivos.

Clase. Una descripcin de unos o ms objetos con un conjunto uniforme de Atributos y Servicios.

Clases-y-Objetos. Trmino que significa una clase y los objetos en esa clase.

Notacin

Clase y Objetos

Algunos objetos dentro de una Clase

Clase

Anlisis Orientado a Objetos (AOO)

Nombre de la Clases-y-Objetos.
Atributos de la Clases-y-Objetos. Servicios de la Clases-y-Objetos.

Los nombres de Clase-y-Objetos deben ser del vocabulario estndar del problema. Deben ser nombres familiares. Los nombres deben ser legibles. No abusar de los prefijos.

Anlisis Orientado a Objetos (AOO)

Observar. Checar resultados de AOO previos. Checar otros sistemas. Documentarse. Realizar prototipos.

Anlisis Orientado a Objetos (AOO)

Estructuras. Buscar estructuras del tipo Generalizacin-Especializacin y Entero-Parte. Otros sistemas. Interactuar el sistema con algn otro sistema(s)? Dispositivos. Con qu dispositivos necesita interactuar el sistema? Cosas o eventos que deben ser recordados. Roles desempeados. Qu papeles o roles desempean las personas en el sistema bajo estudio? Procedimientos operativos. Cuando el sistema necesita recordar alguna operacin o secuencia de pasos en particular. Sitios. De qu sitios, localidades o sitios necesita el sistema tener conocimiento? Unidades organizacionales.

Anlisis Orientado a Objetos (AOO) (Usualmente) ms de un Objeto en la clase. Supervisor

Atributos siempre aplicables.

Construccin Direccin Precio rea NmeroBao

Anlisis Orientado a Objetos (AOO)

Informacin retenida. Necesita el sistema recordar algo acerca de los Objetos de la Clase? Puede un Objeto de la Clase ser descrito? Cules son los atributos? Es el conocimiento de esta del mundo real, de inters para el sistema bajo estudio? Comportamiento necesario. Necesita un Objeto de la Clase exhibir algn comportamiento? Si necesita recordar algo sobre la Clase-y-Objeto, entonces se requerirn servicios: crear, conectar, accesar y liberar. (Usualmente) mltiples atributos.

Anlisis Orientado a Objetos (AOO) Servicios siempre aplicables. Existe comportamiento que se aplique para cada objeto en la clase? Los servicios pueden ser algortmicamente sencillos (crear, conectar, accesar, liberar) o algortmicamente complejos (calcular, inicializar, monitorear, etc.)

Requerimientos esenciales. Son requerimientos que el sistema debe tener, independientemente de la tecnologa empleada para implementar el sistema. No incluir resultados que puedan derivarse.

Anlisis Orientado a Objetos (AOO) Ejemplo: Sistema de registro de vehculos de motor.

1. Gente

2. Legal

Capa de Temas

Anlisis Orientado a Objetos (AOO) Capas de temas y de Clases&Objetos

Anlisis Orientado a Objetos (AOO)

Anlisis Orientado a Objetos (AOO)

Anlisis Orientado a Objetos (AOO)

Estructura Una expresin de la complejidad del espacio del problema correspondiente a las responsabilidades del sistema. El trmino Estructura describe tanto a la estructura GeneralizacinEspecializacin (Gen-Espec) como la estructura Entero-Parte.

Anlisis Orientado a Objetos (AOO)

Se enfoca la atencin del analista y de los expertos del espacio del problema en la complejidad de mltiples Clases-y-Objetos. Se analizan los lmites de las responsabilidades del sistema, descubriendo Clases-y-Objetos adicionales.

Gen_Espec

Clasificacin

Entero_Parte

Ensamblaje

Anlisis Orientado a Objetos (AOO)

La Reja: Enfatiza las especializaciones adicionales. Captura explcitamente las similitudes. Incrementar en menor grado la complejidad del modelo

Anlisis Orientado a Objetos (AOO)

Considerar cada Clase como una generalizacin. Para cada una de sus especializaciones candidatas, preguntar: Est en el espacio del problema? Est dentro de las responsabilidades del sistema? Habr herencia? Cumplen las especializaciones con cada uno de los criterios de Clase-y-Objetos?. De igual forma, considerar cada Clase como una especializacin y para sus generalizaciones potenciales preguntar: Est en el espacio del problema? Est dentro de las responsabilidades del sistema? Habr herencia? Cumplen las especializaciones con cada uno de los criterios de Clase-y-Objetos?. Deben checarse AOO previos para detectar Estructuras Gen-Espec que puedan reutilizarse.

Anlisis Orientado a Objetos (AOO)

Nave

Avin Jet

Helicptero

Jet Militar

(Ej. Sistema Transporte Areo) Las especializaciones AvinJet y Helicptero tienen sentido en el espacio del problema? Necesita el sistema reconocer la diferencia entre un Avin Jet y un Helicptero? Habr herencia? Es decir, atributos y servicios heredados a todas las naves, y Atributos y Servicios especializados aplicables slo a AvinJet y otros a Helicptero?. Si la nica diferencia entre un AvinJet y Helicptero y es el tipo, entonces sese un atributo tipo con enumeracin de valores. Si la nica distincin entre las especializaciones es que el sistema es responsable de conocer la carga mxima de un jet (pero no en el caso del helicptero), entonces use un Atributo MaxCarga en Nave con Valores. Si una Clase no agrega Atributo y Servicios, entonces no es necesaria, amenos que sea una Clase con mucha Generalizaciones Directas (como en el caso de una reja).

Anlisis Orientado a Objetos (AOO)

Anlisis Orientado a Objetos (AOO)

Sub-dominios del problema. Emplear Entero-Parte. Interdependencias (Estructuras) mnimas entre temas. Interacciones (Conexiones de mensaje) mnimas entre temas.

1. Gente

2. Legal

Anlisis Orientado a Objetos (AOO)

Dependiendo de la complejidad del problema.

1 1 2 2 3 3

1 1 2 2 3 3

Anlisis Orientado a Objetos (AOO)

1. Gente

2. Legal 2. Legal Clases-y-Objetos1 Clases-y-Objetos2

1. Gente Clases-y-Objetos1 Clases-y-Objetos2

Anlisis Orientado a Objetos (AOO)

Servicio.
Comportamiento especifico que el Objeto es responsable de exhibir.

Anlisis Orientado a Objetos (AOO)

Especificar los servicios dentro de un formato de clases-y-objetos, empleando un Diagrama de Servicio.

Especificacin Atributo Atributo Atributo Entrada Externa Salida Externa Diagrama de Estado del Objeto Restricciones adicionales Notas servicio<nombre y Diagrama de Servicios> servicio<nombre y Diagrama de Servicios> servicio<nombre y Diagrama de Servicios> y, conforme sea necesario Cdigos de estado aplicables Requerimientos de tiempo Requerimientos de memoria

Anlisis Orientado a Objetos (AOO)

Debe considerarse a cada objeto como un todo, y para cada una de las partes potenciales preguntar: Est dentro del espacio del problema? Est dentro de las responsabilidades del sistema? Captura ms que un valor de estado? Si no, entonces basta con incluir un atributo en el todo. Proporciona una abstraccin til para tratar el espacio del problema? Qu papeles o roles desempea las personas en el sistema bajo estudio? De igual manera considerar a cada Objeto como Parte, y para cada Todo potencial realizar las mismas preguntas.

Anlisis Orientado a Objetos (AOO)

Entero

Parte 1

Parte 2

Estructura Entero-Parte La notacin es direccional, por lo que la estructura puede dibujarse en cualquier ngulo. Las lneas estn posicionadas de manera que reflejan el mapeo entre objetos.

Anlisis Orientado a Objetos (AOO)

Toda-parte es uno de los mtodos bsicos de organizacin empleados por la mente humana. En la investigacin del espacio del problema, es muy til al identificar Clases-y-Objetos en el espacio del problema y en cuanto a las responsabilidades del sistema.

Deben considerar las siguientes variaciones: Ensamblado-Partes. Contenedor-Contenido. Coleccin-Elementos.

Anlisis Orientado a Objetos (AOO)

Piloto

ArtculoCarga

Motor
(Ej. Sistema Transporte Areo) Cules son las partes potenciales de una aeronave? Considrense los motores. Tiene sentido un motor en este dominio? Si el dominio es servicios de alimentacin probablemente no, si el dominio es transporte areo entonces tiene sentido. Est el motor dentro de las responsabilidades del sistema? Necesita el sistema saber de o interactuar con los motores? Para el caso de transporte areo, podra ser parte de las responsabilidades del sistema. Tiene un motor ms que slo un valor de estado? Si las responsabilidades del sistema slo incluyen el estado de la nave o del motor, entonces no es necesario una clase-y-objetos Motor. Pero si se requiere ms que su estado entonces se requiere una Clase-y-Objetos Motor. Proporcionar una abstraccin til en el espacio del problema? Si.

Anlisis Orientado a Objetos (AOO) Capas de temas y de Clases&Objetos y Estructuras

Anlisis Orientado a Objetos (AOO)

Anlisis Orientado a Objetos (AOO) Capas de temas y de Clases&Objetos y Estructuras

Anlisis Orientado a Objetos (AOO)

Anlisis Orientado a Objetos (AOO) Capas de temas y de Clases&Objetos, Estructuras y Servicios

Anlisis Orientado a Objetos (AOO)

2.2.2 Interaccin
Muestra un patrn de interaccin entre objetos. Los diagramas de interaccin son: Diagramas de Secuencia Diagramas de Colaboracin.

Diagramas de secuencia
Muestra los objetos participantes en la interaccin y los mensajes que intercambian, ordenados segn su secuencia en el tiempo. El eje vertical representa el tiempo, y en el eje horizontal se colocan los objetos y actores participantes en la interaccin, sin un orden prefijado. Cada objeto o actor tiene una lnea vertical Los mensajes se representan mediante flechas entre los distintos objetos.

El tiempo fluye de arriba abajo. Se pueden colocar etiquetas (como restricciones de tiempo, descripciones de acciones, etc.) bien en el margen izquierdo o bien junto a las transiciones o activaciones a las que se refieren.

Ejemplo de un diagrama de secuencia

Diagramas de Colaboracin
Muestra una interaccin organizada basndose en los objetos que toman parte en la interaccin y los enlaces entre los mismos (en cuanto a la interaccin se refiere). Muestran las relaciones entre los roles de los objetos. La secuencia de los mensajes y los flujos de ejecucin concurrentes deben determinarse explcitamente mediante nmeros de secuencia.

2.2.3 Estados y Transiciones


Los diagramas de estado se utilizan para describir el comportamiento de un sistema. Representa los diferentes estados que puede adquirir una clase. Representa las diferentes etapas de su vida En UML los estado se representan por valos

Anlisis Orientado a Objetos (AOO)

Cada objeto pasa por diferentes estados, desde que es creado hasta que es liberado o eliminado. Un estado de Objeto es la identificacin de valor(es) de Atributo, que refleja un cambio en el comportamiento del objeto. Para identificar los estados de un objeto: (1) Examinar los valores potenciales para los atributos, y (2) Determinar si las responsabilidades del sistema incluyen un comportamiento distinto para dichos valores potenciales.

Estado

Transicin

Simbologa
Circulo lleno. Apuntando a un estado inicial. Circulo Hueco. Que contiene un crculo lleno ms pequeo en el interior, indicando el estado final ( si existiera). Rectngulo redondeado. Denotado un estado, en la parte superior del rectngulo esta el nombre del estado. Puede contener una lnea horizontal en la mitad, debajo de la cual se indican las actividades que se hacen en el estado.

Flecha, denotado transicin. El nombre de un evento(si existiera) que causa la transicin etiqueta el cuerpo de la flecha. Lnea horizontal gruesa con flecha. Denotan unin/separacin, respectivamente

2.2.3 Estados y Transiciones


Un estado puede descomponerse en subestados, con transiciones entre ellos y conexiones al nivel superior. Las conexiones se ven al nivel inferior como estados de inicio o fin, los cuales se suponen conectados a las entradas y salidas del nivel inmediatamente superior

Ejemplo de diagrama de estado en UML