Sie sind auf Seite 1von 53

Anlisis y diseo de sistemas orientado a objetos

Ing. EDWIN ARUHUANCA CCAMA

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.

Ventajas del lenguaje orientado a objetos


Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos. Relacionar el sistema al mundo real. Facilita la creacin de programas visuales. Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software

El modelo orientado a objetos


Para entender este modelo debemos tratar con los siguientes conceptos bsicos:
Objeto Clase Herencia

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.

Que es una clase ?

Conjunto de objetos que poseen caractersticas similares , es decir objetos del mismo tipo.

Diferencia entre clase y objeto


Clase: Es un conjunto de objetos relacionados. Ejemplo: La clase Zapato. Objeto: Es una instancia de una clase. Ejemplo: Zapato mocasn.

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.

Caractersticas asociadas al poo


Abstraccin: La abstraccin consiste en captar las caractersticas esenciales de un objeto, as como su comportamiento.

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.

Anlisis y diseo orientado a objetos


Para el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a objetos. Tambin se necesitar realizar un anlisis y diseo orientado a objetos.
El modelamiento visual es la clave para realizar el anlisis OO. Desde los inicios del desarrollo de software OO han existido diferentes metodologas para hacer esto del modelamiento, pero sin lugar a duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologas. Segn los mismos diseadores del lenguaje UML, ste tiene como fin modelar cualquier tipo de sistemas (no solamente de software) usando los conceptos de la orientacin a objetos. Y adems, este lenguaje debe ser entendible para los humanos y mquinas.

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

Metodologas de Anlisis y Diseo (OOA/OOD)


Booch (OOAD) Rumbaugh (OMT) Jacobson (OOSE) UML (Unified Modelling Language)
Lenguaje visual Unin de los tres anteriores Estndar internacional (OMG) Versin actual: 2.0

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 Rumbaugh (OMT)


Modelos

Metodologa de Diseo

Metodologa de Jacobson (OOSE)

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

principales beneficios de UML


Mejores tiempos totales de desarrollo (de 50 % o ms). Modelar sistemas (y no slo de software) utilizando conceptos orientados a objetos. Establecer conceptos y artefactos ejecutables. Encaminar el desarrollo del escalamiento en sistemas complejos de misin crtica. Crear un lenguaje de modelado utilizado tanto por humanos como por mquinas. Mejor soporte a la planeacin y al control de proyectos. Alta reutilizacin y minimizacin de costos.

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

UML, Mtodo o Lenguaje de Modelado?

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

Elementos del modelo


Clases, objetos, mensajes, relaciones

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 Componentes (software)


Organizacin de las componentes

Vista de Concurrencia
Comunicaciones y sincronizacin

Vista de Despliegue (deployment)


Arquitectura fsica

Las Vistas en UML


lgica

Casos uso
comp conc

despliegue

Vista de Casos de uso


Casos de uso Los casos de uso requieren tener al menos un conocimiento parcial de los requerimientos del sistema. Un caso de uso es un documento narrativo que describe la secuencia de eventos de un actor (agente externo) que utiliza un sistema para completar un proceso.

Vista de Casos de uso


El formato para la descripcin de los casos de uso es el siguiente: Caso de uso: Nombre

Actores:
Propsito: Resumen: Tipo:

Lista de actores (agentes externos)


Intencin del caso de uso Repeticin del caso de uso de alto nivel o alguna sntesis. Primario, secundario u opcional. Esencial o real. Casos de uso relacionados y funciones relacionadas del sistema.

Referencias
cruzadas: Descripcin: Descripcin del caso de uso.

Vista de Casos de uso


Ejemplo: el siguiente caso de uso describe el proceso de comprar artculos en una tienda, a travs de un terminal de punto de venta. 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.

Es conveniente comenzar con los casos de uso de ms alto nivel para lograr comprender mejor los principales procesos globales.

Vista de Casos de uso


Diagrama UML de casos de uso para el sistema de punto de venta:

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.

Vista de Casos de uso


Un diagrama de casos de uso ms refinado seria el siguiente:

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

Define las colaboraciones dinmicas


Mensajes y funciones

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

De Componentes De Despliegue (deployment)

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.

Herramienta de anlisis Casos de uso Modelo conceptual Diagramas de secuencia

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

Das könnte Ihnen auch gefallen