análisis y diseño orientado a objetos uml

Upload: pepeantorcha

Post on 12-Oct-2015

27 views

Category:

Documents


1 download

TRANSCRIPT

ANLISIS Y DISEO ORIENTADO A OBJETOS UMLCICLO VITAL DEL SOFTWARE IModelo de cascada Anlisis (qu) Diseo (cmo) Codificacin (hacerlo) Pruebas (funciona?) Mantenimiento

CICLO VITAL DEL SOFTWARE IICiclo evolutivo Dedfinicin de un subsistema (descomposicin funcional) Construccin de un modelo (qu clases se requieren) Anlisis de clase(s) Diseo de clase(s)Ciclo Codificacin de clase(s) Prueba de clase(s)Disea un poco, programa un poco, prueba un poco

OOD esModularEfectos laterales mnimos (encapsulamiento)Programacin por extensinOrientado a datosExplota la herencia (jerrquico)Reutilizacin de clasesFcil de modificar

Encapsulamiento IDesarrollador Objetivo: crear clase con interfaz clara y comprensible Manera: ocultar detalles de implementacin Beneficios: cambio de estructuras/algoritmos sin afectar Coste: clases reutilizables ms caras a corto plazo.

Encapsulamiento IIUsuario de las clases Objetivo: usar las clases con el mnimo esfuerzo Manera: usar slo las operaciones provistas Beneficios: interfaz comprensible, bajo coste de programacin Coste: prdida de eficiencia de ejecucin (menor si se utiliza un lenguaje como C++)

Descomposicin funcional Mdulos construidos alrededor de las operaciones Datos globales o distribuidos entre mdulos Entrada/proceso/salida Organigama de trabajo y flujo de datos.

OOD Mdulos construidos alrededor de las clases. Clases escasamente acopladas, sin datos globales. Encapsulamiento y mensajes Diagramas jerrquicos de clases.

Ventajas del OOD Mdulos con fuerte cohesin interna y escaso acoplamiento externo (sin variables globales, ) Facilita el funcionamiento en entorno multiporcesador (objetos distribuidos) Correspondencia directa con el mundo real Prototipos rpidos Herramientas y bibliotecas muy amplias Aplicaciones construidas enganchando objetos Mejor comprensin y mantenimiento.

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

DEFINICIN DE UNA CLASE Identificar y nombrar la clase Identificar sus componentes Identificar sus atributos Identificar los errores Identificar las conexiones funcionales (qu clases sirve/exige) Definir conexiones son superclase y subclases Identificar porpiedades especiales (persistencia, cuncurrencia). Probar la clase en un prototipo.

IDENTIFICACIN DE ATRIBUTOSEl conjunto de atributos de una clase debe ser: Completo (contienen toda la informacin pertinente) General (se aplican a todos los objetos de la clase) Diferenciado (cada atributo representa un aspecto diferente de la clase).

Definicin de atributosTipos de atributos. Atmicos predefinidos (entero, real, carcter, pixel, ) Atmico enumerativo (color, da de la semana, ) Coleccin Composicin (referencias objetos)Valor del atributo Comn a muchos objetos (varible de clase) Propio de un objeto (variable de objeto)

IDENTIFICACIN DE MTODOS Mtodo: algoritmo que utiliza y modifica los atributos de una clase. Un mtodo es desencadenado por un mensaje. Funcionalidad de la clase: conjunto de sus mtodos. El conjunto de mtodos debe ser: Completo (realizan toda la funcionalidad de la clase) General (se aplican a todos los objetos de la clase) Diferenciado (cada mtodo debe ser simple y realizar una sola funcin).Definicin de mtodo Tipos de mtodos Modificador (asigna valor a un atributo) Selector (devuelve el valor de un atributo) Aplicable a la clase (constructor) Aplicable al objeto Parmetros del mtodo qu informacin necesita? (argumentos de entrada) qu debe devolver? (resultado y argumentos de salida)

Identificacin de los errores Qu puede salir mal durante la ejecucin de un mtodo? Qu comprobaciones debe hacer cada mtodo? Cmo interpretar y corregir las condiciones de error?

METODOLOGAS DE ANLISIS Y DISEO (OOA/OOD)

OOAD (Booch) Tipos de relaciones Herencia o generalizacin Agregacin o composicin Asociacin Metaclase Instanciacin (plantillas) Cliente servidor (acceso)

OOAD (Grady Booch) Tipos de clases Clases ordinarias Metaclases Categoras de clases Clases parametrizadas (plantillas) Clases instaciadas (plantillas) Utilidades de clase: subprogramas libres y clases estticas.

PARTES DE UNL 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, extensin y adaptaciones.

VISTAS Vista de casos de uso Funcionalidad externa dl sistema Vista lgica Estructura esttica y conducta dinmica del sistema. Vista de componentes (software9 Organizacin de las componentes Vista de concurrencia Comunicaciones y sincronizacin Vista de despliegue (deployment) Arquitectura fsica

LAS VISTAS EN UML

VISTAS DE 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

Vista de componentes