Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a los lenguajes de programacin, adems se viene aplicando en el anlisis y diseo con mucho xito, al igual que en las bases de datos. para hacer una buena programacin orientada a objetos hay que desarrollar todo el sistema aplicando esta tecnologa, de ah la importancia del anlisis y el diseo orientado a objetos.
La programacin orientada a objetos es una de las formas ms populares de programar y viene teniendo gran acogida en el desarrollo de proyectos de software desde los ltimos aos.
Perspectiva histrica
la programacin fue hecha en una manera secuencial o lineal, es decir una serie de pasos consecutivos con estructuras consecutivas y bifurcaciones. Los lenguajes basados en esta forma de programacin ofrecan ventajas al principio, pero el problema ocurre cuando los sistemas se vuelven complejos. Estos programas escritos al estilo espaguetti no ofrecen flexibilidad y el mantener una gran cantidad de lneas de cdigo en slo bloque se vuelve una tarea complicada. Frente a esta dificultad aparecieron los lenguajes basados en la programacin estructurada. La idea principal de esta forma de programacin es separar las partes complejas del programa en mdulos o segmentos que sean ejecutados conforme se requieran. De esta manera tenemos un diseo modular, compuesto por mdulos independientes que puedan comunicarse entre s. Poco a poco este estilo de programacin fue reemplazando al estilo espaguetti impuesto por la programacin lineal.
Qu es un objeto ?
Un objeto del mundo real es cualquier cosa que vemos a nuestro alrededor, donde poseen las siguientes cualidades : identidad , estado y comportamiento.
Conjunto de objetos que poseen caractersticas similares , es decir objetos del mismo tipo.
Que es la herencia ?
La herencia es uno de los conceptos ms cruciales en la POO. La herencia bsicamente consiste en que una clase puede heredar sus variables y mtodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y mtodos propios, tiene incorporados los atributos y mtodos heredados de la superclase. De esta manera se crea una jerarqua de herencia.
En general, podemos tener una gran jerarqua de Clases tal y como vemos en el siguiente grfico:
Envo de mensajes
Un objeto es intil si est aislado. El medio empleado para que un objeto interacte con otro son los mensajes. Hablando en trminos un poco ms tcnicos, los mensajes son invocaciones a los mtodos de los objetos.
Encapsulamiento: El encapsulamiento consiste en unir en la Clase las caractersticas y comportamientos, esto es, las variables y mtodos. Es tener todo esto es una sola entidad.
Ocultamiento: Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer slo los detalles que sean necesarios para el resto del sistema. Polimorfismo: capacidad que tienen objetos de diferentes clases de responder al mismo mensaje. Comportamientos alternos entre clases derivadas relacionadas. Servicio: Es el comportamiento de los objetos. Son mtodos o procedimientos, que llegan a ser parte de los objetos, en forma muy similar a los atributos.
OOD es...
Modular Efectos laterales mnimos (encapsulamiento) Programacin por extensin Orientado a datos Explota la herencia (jerrquico) Reutilizacin de clases Fcil de modificar
Ventajas de OOD
Mdulos con fuerte cohesin interna y escaso acoplamiento externo (sin variables globales, ) Facilita el funcionamiento en entorno multiprocesador (objetos distribuidos) Correspondencia directa con el mundo real Prototipos rpidos Herramientas y bibliotecas muy amplias Aplicaciones construidas enganchando objetos Mejor comprensin y mantenimiento
Inconvenientes de OOD
Impactos desfavorables sobre espacio y tiempo de ejecucin Forma de pensar diferente: curva de aprendizaje lenta Peligro de atomizacin, con dificultad de comprensin global Herencia y ligadura dinmica dificulta las pruebas
UP (Unified Process)
Metodologa de diseo iterativo Basada en casos de uso Incorpora UML de forma natural
Metodologa de Booch
- Disear
es un proceso iterativo e incremental - Ni top-down, ni bottom-up: "ida y vuelta" - Modelo en espiral - dirigido segn los riesgos (risk driven) Pasos de la Metodologa de Booch 1- Identificar las clases y los objetos a un cierto nivel de abstraccin 2- Identificar la semntica de esas clases y objetos 3- Identificar las relaciones entre esas clases y objetos 4- Implementar esas clases y objetos
Metodologa de Diseo
Que es UML ?
El Lenguaje de Modelamiento Unificado (UML) es un lenguaje para especificar, construir, visualizar y documentar los elementos que componen un sistema de software intensivo. El UML es una notacin para escribir modelos de objetos Define los diagramas, sus grficos y su semntica
Autores de UML
- Autores * Grady Booch: Booch-91, 93 * James Rumbaugh y otros : OMT-1, OMT-2 * Ivar Jacobson y otros: OOSE - Aportes importantes * Rebeca Wirfs-Brock * Shlaer y Mellor - Aportes importantes No-OO * Harrel: Diagramas de estados * Work flow: Diagramas de Actividades
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo y los smbolos utilizados en los modelos y un conjunto de mecanismos generales o reglas que indican cmo utilizar los elementos. Las reglas son sintcticas, semnticas y pragmticas.
Proceso de Unificacin
Partes de UML
Vistas
Conjunto de diagramas
Diagramas
9 tipos de grafos Combinan los elementos del modelo
Mecanismos generales
Comentarios, informacin, semntica, extensiones y adaptaciones
VISTAS
Vista de Casos de Uso
Funcionalidad externa del sistema
Vista Lgica
Estructura esttica y conducta dinmica del sistema
Vista de Concurrencia
Comunicaciones y sincronizacin
Casos uso
comp conc
despliegue
Actores:
Propsito: Resumen: Tipo:
Referencias
cruzadas: Descripcin: Descripcin del caso de uso.
Es conveniente comenzar con los casos de uso de ms alto nivel para lograr comprender mejor los principales procesos globales.
Este esquema tiene por objeto ofrecer un diagrama contextual que nos permita conocer rpidamente los actores externos de un sistema y las formas bsicas en que stos lo utilizan.
Casos de Uso
Dirigida al Anlisis de Requisitos (lo que quiere hacer el usuario) Describe la funcionalidad del sistema, como la perciben los actores externos Dirige el desarrollo de las otras vistas Define los objetivos finales del sistema Permite validar el sistema
Actor externo:
Usuario Otro sistema
Se plasma en diagramas
de Casos de Uso de Actividad
Vista Lgica
Describe la funcionalidad interna Dirigida a diseadores y desarrolladores Define la estructura esttica
Clases, objetos y relaciones
Propiedades adicionales
Persistencia y concurrencia Interfaces y estructura interna de las clases
Vista Lgica
Se plasma en diagramas
Estticos
de Clases de Objetos
Dinmicos
de Estado de Secuencia de Colaboracin de Actividad
Vista de Componentes
Describe los mdulos del sistema y sus dependencias Dirigida a desarrolladores Se plasma en diagramas
de Componentes
Vista de Concurrencia
Describe la divisin del sistema en procesos y procesadores Dirigida a desarrolladores e integradores Resuelve problemas de
uso eficiente de los recursos ejecucin en paralelo (hilos) comunicacin y sincronizacin de hilos
Se plasma en diagramas
dinmicos de Componentes de Despliegue
Vista de Despliegue
Muestra la distribucin fsica del sistema (ordenadores, dispositivos) y sus conexiones Dirigida a desarrolladores, integradores y probadores Se plasma en
el diagrama de Despliegue el mapa de asignacin de componentes a la arquitectura fsica
Tipos de Diagramas
De Casos de Uso Estticos
de Clases de Objetos
Dinmicos
de Estado de Secuencia de Colaboracin de Actividad
Diagramas de secuencia
El diagrama de secuencia de un sistema muestra grficamente los eventos que originan los actores y que impactan al sistema. La creacin de los diagramas de secuencia depende de la formulacin de los casos de uso. Durante la operacin del sistema, los actores generan eventos, solicitando alguna operacin a cambio. Ejemplo: cuando un cajero ingresa un cdigo de barras de un artculo, est pidiendo al sistema de TPV que registre esa compra. Con este evento se inicia una operacin en el sistema.
Diagramas de secuencia
Antes de hacer el diseo lgico de la aplicacin de software, es conveniente investigar y definir su comportamiento como una "caja negra". Se estudia el comportamiento del sistema, desde la perspectiva de qu es lo que hace, y no de cmo lo hace.
Definicin: El diagrama de secuencia de un sistema es una representacin que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema. En esta fase del proyecto, el sistema mismo es una caja negra.
Diagramas de secuencia
Recordemos el caso de uso Comprar productos: Caso de uso: Actores: Tipo: Descripcin: Comprar productos Cliente, cajero Primario Un Cliente llega a la caja registradora con los artculos que va a comprar. El Cajero registra los artculos y cobra el importe. Al terminar la operacin, el Cliente se marcha con los productos.
Diagramas de secuencia
El diagrama de secuencia del caso de uso ComprarProductos podra ser el siguiente:
Diagramas de colaboracin
Diagramas de colaboracin Los diagramas de interaccin (diagramas de secuencia y diagramas de colaboracin) explican grficamente cmo los objetos interactan a travs de mensajes para realizar las tareas. Antes de definir estos diagramas, hay que generar el modelo conceptual y los casos de uso reales (estos ltimos se generan a partir de los casos de uso definidos en el anlisis).
Diagramas de colaboracin
Los diagramas de colaboracin explican grficamente las interacciones entre las instancias del modelo (objetos). Por ejemplo:
Diagramas de colaboracin
Diseo de la solucin Para cada evento del sistema se debe construir un diagrama de colaboracin cuyo mensaje inicial sea el de sus eventos. En el caso del punto de venta, tendremos tres diagramas, uno para cada evento: pasarProducto, terminarVenta, y efectuarPago.
Diagramas de colaboracin
El diagrama de colaboracin del caso de uso pasarProducto sera el siguiente:
Diagramas de clases
Anlisis y Diseo OO
Las herramientas usadas en la etapa de anlisis (investigacin del problema) se pueden resumir en la siguiente tabla.
Preguntas que contesta Cules son los procesos del dominio? Cules son los conceptos, los trminos?
Cules son los eventos y las operac. del sistema?
Anlisis y Diseo OO