Vous êtes sur la page 1sur 29

Presentacin

Anlisis Orientado a Objetos

Ing. Mauricio Paletta, Msc


INGENIERA EN INFORMTICA
Programacin II

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programacin II

Anlisis Orientado a Objetos


Descomposicin de un problema en sus partes.
Resultado: Problema entendido como una preparacin para el diseo. Preocuparse ms por identificar los tipos de objetos que los objetos individuales.

Programacin II

Anlisis Orientado a Objetos


Preocuparse ms por el modelo esttico (estructura) que por el modelo dinmico (comportamiento). Productos: Diagramas de casos de uso y diagrama de clases.
4 pasos a realizar.

Programacin II

Anlisis Orientado a Objetos


Paso 1: Identificar la idea y objetivos bsicos del sistema
Primer contacto con el problema, se busca entenderlo de forma completa. Tcnicas que se pueden seguir:
o Escribir entre 5 y 20 oraciones de la informacin que se haya podido recopilar mediante entrevistas. o Si ya se tiene un enunciado o documento explicativo, extraer las oraciones de all. o Mapas mentales sobre el problema.

Programacin II

Anlisis Orientado a Objetos

Programacin II

Anlisis Orientado a Objetos

Programacin II

Anlisis Orientado a Objetos


Paso 2: Identificar actores / nombres
Los actores o nombres son posibles clases. Se identifican a partir de las oraciones obtenidas en el paso anterior. Todos los nombres deben ser considerados inicialmente, luego se har un proceso de seleccin o filtrado. Ejemplo:

Un sistema de reservacin para la venta de boletos a varias obras de teatro


Programacin II

Anlisis Orientado a Objetos


Paso 3: Identificar procesos / requerimientos
Descripcin del sistema desde el punto de vista del usuario. Se conocen como casos de uso y se pueden representar mediante los diagramas de casos de uso de UML. Coleccin de situaciones respecto al uso de un sistema. Cada escenario describe una secuencia de eventos. Cada secuencia se inicia por una persona, otro sistema, una parte del hardware o por el paso del tiempo. A estas entidades que inician secuencias se les conoce como actores.
Programacin II

Anlisis Orientado a Objetos


El resultado de una secuencia debe ser algo utilizable ya sea por el actor que la inici o por otro actor. El detalle de la secuencia de eventos desde que un actor la inicia hasta que se llega al resultado se puede representar mediante los diagramas de actividad de UML.

Programacin II

Anlisis Orientado a Objetos


Paso 4: Identificar Clases y Asociaciones
Obtener la lista definitiva de conceptos que representan clases dentro del contexto del problema. Hay que aplicar criterios para identificar clases incorrectas o innecesarias. Identificar las relaciones o asociaciones entre clases. Hay que aplicar criterios para saber si las asociaciones son o no correctas. Realizar el Diagrama de Clases sin niveles de detalle. Representar las relaciones entre clases incluyendo los roles (breve descripcin de su objetivo) y la multiplicidad (nmero de elementos involucrados en la relacin).
Programacin II

Anlisis Orientado a Objetos


Criterios para identificar clases incorrectas o innecesarias:
Clases redundantes: cuando dos clases expresan la misma informacin; se debe tomar el nombre ms descriptivo. Ejemplo:

cliente / pasajero persona que va a tomar un vuelo cliente / usuario ATM o cualquier servicio bancario

Programacin II

Anlisis Orientado a Objetos


Clases irrelevantes: cuando una clase tiene poco o nada que ver con el problema. La posible clase a eliminar puede ser importante en otro contexto. Ejemplo: reservacin cuando el contexto es la ocupacin del teatro venta cuando el contexto es administrativo / financiero

Programacin II

Anlisis Orientado a Objetos


Clases vagas: cuando una clase no es especfica, no tiene sus lmites bien definidos con claridad o su alcance es muy amplio. Ejemplo: sistema / universo / horizonte Clases o atributos: Nombres que describen objetos individua-les pueden ser considerados como atributos de una clase. Si fuese importante la existencia de una propiedad independiente, entonces hacer de sta una clase y no un atributo. Ejemplo:

nombre / edad / peso / direccin estudiante direccin sistema de correo


Programacin II

Anlisis Orientado a Objetos


Clase u operacin: si un nombre describe una operacin que es aplicada a objetos, no es una clase. Una operacin que tiene caractersticas propias debe ser modelada como una clase. Ejemplo: llamada telefnica contexto del problema es el telfono llamada telefnica sistema de facturacin Clase o asociacin: el nombre de una clase debe reflejar su naturaleza intrnseca y no un role que sta juega en una asociacin. Ejemplo: propietario no es una clase produccin de carros
Programacin II

Anlisis Orientado a Objetos


Uso de implementaciones: Implementaciones externas al mundo real no se deben agregar en el anlisis. Probablemente se requieran en el diseo. Est basado en la reutilizacin de elementos. Ejemplo: CPU / subrutina / proceso / algoritmo / interrupcin / lista enlazada / arreglo / rbol / conjunto / tabla / elementos de interfaz

Programacin II

Anlisis Orientado a Objetos


Criterios para no tomar en cuenta asociaciones incorrectas o innecesarias:
Asociaciones entre clases eliminadas: si una de las clases de la asociacin ha sido eliminada, la asociacin debe ser eliminada o redefinida en trminos de otra clase.

Programacin II

Anlisis Orientado a Objetos


Asociaciones irrelevantes o de implementaciones: eliminar toda asociacin que est fuera del dominio del problema o tenga que ver con el uso de implementaciones. Ejemplo: Banco mantiene ATM es irrelevante cuando el contexto del problema es el servicio que el banco presta a sus clientes ATM tiene impresora tiene que ver con implementacin

Programacin II

Anlisis Orientado a Objetos


Acciones: una asociacin debe describir una propiedad estructural del dominio de la aplicacin, no un evento. Un requerimiento expresado como una accin puede implicar una relacin estructural y debe ser reescrito acordemente. Ejemplo: ATM acepta tarjetas de dbito describe parte de un ciclo de interaccin entre ATM y Cliente, no una relacin entre ATM y tarjeta de dbito. Computador central transfiere transaccin con banco describe una accin que implica la siguiente relacin: Computador central se comunica con el banco.

Programacin II

Anlisis Orientado a Objetos


Asociaciones ternarias: muchas asociaciones entre 3 o ms clases se pueden descomponer en asociaciones binarias o rescritas como asociaciones calificadas. Si un trmino en una asociacin ternaria es puramente descriptivo y no tiene caractersticas propias, el trmino es un atributo enlace en una asociacin binaria. Ejemplo: Cajeros introducen transacciones de cuentas se puede romper en Cajeros introducen transacciones y transacciones tienen que ver con cuentas.

La compaa emplea personas con un sueldo

Programacin II

Anlisis Orientado a Objetos


Asociaciones derivadas: asociaciones que pueden ser definidas en trminos de otras asociaciones deben ser omitidas ya que son redundantes. Tambin hay que omitir asociaciones definidas por condiciones en los atributos. Ejemplo: Abuelo de puede ser definido usando un par de relaciones Padre de Ms joven que expresa una condicin en la edad de dos personas, no es informacin adicional.

Programacin II

Anlisis Orientado a Objetos


NOTA: tanto como sea posible, las clases, los atributos y las asociaciones deben representar informacin independiente. Muchos caminos entre clases a veces indican asociaciones derivadas que estn compuestas por asociaciones primitivas. Ejemplo: Consorcio comparte ATM es una composicin de Consorcio tiene computador central y computador central se comunica con los ATM

Programacin II

Anlisis Orientado a Objetos


NOTA: Hay que tener cuidado porque no todas las asociaciones que forman mltiples caminos entre clases indican redundancia. Algunas veces la existencia de una asociacin puede ser derivada de dos o ms asociaciones primitivas. Aunque las asociaciones derivadas no agregan informacin, son tiles para el diseo.

Programacin II

Anlisis Orientado a Objetos


Ejemplo:
Una compaa emplea a muchas personas y es propietaria de muchas computadoras; a cada empleado se le puede asignar alguna de estas computadoras para su uso personal.

persona y empleado son conceptos redundantes


Compaa 1 posee 1 emplea 1 asignada * Empleado

Computadora

0,1

Programacin II

Anlisis Orientado a Objetos


Ejercicio enunciado del problema:
Una red bancaria computarizada incluye tanto cajeros humanos como automticos (ATM), stos ltimos compartidos por un consorcio de bancos. Cada banco provee su propia computadora para mantener sus propias cuentas y procesar las transacciones contra ellas. Las estaciones de los cajeros son propias de cada banco y se comunican directamente con la computadora propia del banco. Los cajeros humanos introducen datos de cuentas y transaccin. Los ATM se comunican con un computador central el cual transfiere las transacciones con los bancos apropiados. Un ATM acepta una tarjeta de dbito, interacta con el usuario, se comunica con el sistema central para llevar a cabo la transaccin, dispensa efectivo e imprime un recibo. El sistema requiere de mecanismos de seguridad y auditoria adecuados. El sistema puede manejar acceso concurrente a la misma cuenta. Los bancos proveen su propio software para sus propias computadoras. El costo del sistema compartido es distribuido por los bancos segn el nmero de clientes con tarjetas de dbito.
Programacin II

Anlisis Orientado a Objetos


Ejercicio identificacin de nombres / conceptos:
Una red bancaria computarizada incluye tanto cajeros humanos como automticos (ATM), stos ltimos compartidos por un consorcio de bancos. Cada banco provee su propia computadora para mantener sus propias cuentas y procesar las transacciones contra ellas. Las estaciones de los cajeros son propias de cada banco y se comunican directamente con la computadora propia del banco. Los cajeros humanos introducen datos de cuentas y transaccin. Los ATM se comunican con un computador central el cual transfiere las transacciones con los bancos apropiados. Un ATM acepta una tarjeta de dbito, interacta con el usuario, se comunica con el sistema central para llevar a cabo la transaccin, dispensa efectivo e imprime un recibo. El sistema requiere de mecanismos de seguridad y auditoria adecuados. El sistema puede manejar acceso concurrente a la misma cuenta. Los bancos proveen su propio software para sus propias computadoras. El costo del sistema compartido es distribuido por los bancos segn el nmero de clientes con tarjetas de dbito
Programacin II

Anlisis Orientado a Objetos


Ejercicio aplicar criterios:
Nombres: red bancaria, cajero, ATM, consorcio, banco, computadora-banco, cuenta, transaccin, estacincajero, datos-cuenta, datos-transaccin, computadorcentral, tarjeta-dbito, usuario, sistema, efectivo, recibo, mecanismos-seguridad, mecanismosauditoria, acceso, software, costo, cliente

Programacin II

Anlisis Orientado a Objetos


Ejercicio aplicar criterios:
Vagas: sistema, mecanismos-seguridad, mecanismosauditoria, red-bancaria Atributos: datos-cuenta, datos-transaccin, recibo, efectivo Irrelevante: costo Redundante: usuario Implementaciones: acceso, software
Definitivos: cuenta, ATM, banco, computadora-banco, tarjetadbito, cajero, estacin-cajero, computadorcentral

Programacin II

Anlisis Orientado a Objetos


Ejercicio posible diagrama de clases preliminar:

Programacin II

Anlisis Orientado a Objetos


Ejercicio posible diagrama de clases definitivo:

Programacin II

Vous aimerez peut-être aussi