Está en la página 1de 56

Diseo orientado a objetos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 1

Objetivos

Explicar cmo un diseo de software puede ser representado como un conjunto de objetos que interactan para gestionar su propio estado y las operaciones Describir las actividades en el proceso de diseo orientado a objetos Introducir varios modelos que se pueden utilizar para describir un diseo orientado a objetos Mostrar cmo el UML puede utilizarse para representar a estos modelos
Software Engineering, 7th edition. Chapter 14 Slide 2

Ian Sommerville 2004

Tpicos expuestos

Objetos y clases de objetos Proceso de diseo orientado a objetos Evolucin del diseo

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 3

Desarrollo orientado a objetos

Anlisis orientado a objetos, el diseo y la programacin estn relacionadas pero son distintas. OOA se refiere a la elaboracin de un modelo de objetos de la solicitud de dominio. OOD se refiere al desarrollo de un modelo de sistema orientado a objetos para aplicar los requisitos. OOP se refiere a la realizacin de un OOD utilizando un lenguaje de programacin como Java o C + +.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 4

Caractersticas de OOD

Los objetos son abstracciones del mundo real o entidades del sistema y se gestionan ellos mismos. Objetos son independientes y encapsulan el estado y la representacin de informacin. Funcionalidad del sistema se expresa en trminos de servicios entre objetos. Areas de datos compartidos se eliminan. Los objetos pueden ser distribuidos y pueden ejecutarse secuencialmente o en paralelo.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 5

Objetos que interactan

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 6

Ventajas de OOD

Ms fcil mantenimiento. Los objetos se pueden entender como entidades autnomas. Los objetos son potencialmente componentes reutilizables. Para algunos sistemas, puede haber un evidente mapeo de entidades del mundo real al sistema.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 7

Objetos y clases de objetos

Los objetos son entidades de un sistema de software que representan los casos del mundo real y entidades del sistema. Clases de objetos son las plantillas de los objetos. stos pueden utilizarse para crear objetos. Clases de objetos pueden heredar los atributos y servicios de otras clases de objetos.
Software Engineering, 7th edition. Chapter 14 Slide 8

Ian Sommerville 2004

Objetos y clases de objetos


Un objeto es una entidad que tiene un estado y un conjunto definido de operaciones que operan en ese estado. El estado es representado como un conjunto de los atributos de los objetos. Las operaciones asociadas de prestar servicios a otros objetos (clientes) que solicitan estos servicios cuando se requiere algn clculo. La definicin de la clase de un objeto sirve de plantilla para los objetos. Incluye las declaraciones de todos los atributos y servicios que debera estar asociada con un objeto de esa clase.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 9

El Lenguaje Unificado de Modelado

Diferentes notaciones para la descripcin de los diseos orientados a objetos se propusieron en los aos 1980 y 1990. El Lenguaje Unificado de Modelado es una integracin de estas anotaciones. En l se describe una serie de anotaciones de los diferentes modelos que pueden ser producidos durante el anlisis y diseo OO. Ahora es un estndar de facto para el modelado OO.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 10

Clase Empleado (UML)

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 11

Comunicacin de objetos

Conceptualmente, los objetos se comunican por mensajes. Mensajes

El nombre del servicio solicitado por el objeto, la convocatoria; Copias de la informacin necesaria para ejecutar el servicio y el nombre de un titular para el resultado del servicio.

En la prctica, los mensajes se aplican a menudo por llamadas de procedimiento


Name = nombre de procedimiento; Informacin = lista de parmetros.
Software Engineering, 7th edition. Chapter 14 Slide 12

Ian Sommerville 2004

Mensaje - ejemplos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 13

Generalizacin y la herencia

Los objetos son miembros de las clases que definen Tipos de atributos y operaciones. Las clases pueden ser organizadas en una jerarqua de clase donde una clase (una super-clase) es una generalizacin de una o ms clases (sub-clases). Una sub-clase hereda los atributos y operaciones de su super clase y puede agregar nuevos mtodos o de sus propios atributos. Generalizacin en UML se implementa como herencia en los lenguajes de programacin OO.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 14

Una jerarqua con generalizacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 15

Ventajas de la herencia

Se trata de un mecanismo de abstraccin que se puede utilizar para clasificar las entidades. Se trata de un mecanismo de reutilizacin, tanto en el diseo y la programacin. El grfico de la herencia es una fuente de conocimientos sobre mbitos de organizacin y sistemas.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 16

Problemas con la herencia

Clases de objetos no son auto-contenidas. que no puede entenderse sin referencia a sus super-clases. Los diseadores tienen una tendencia a la reutilizacin del patrimonio grfico creado durante el anlisis. Puede llevar a importantes ineficiencias. La herencia de los grficos de anlisis, el diseo y la aplicacin tienen diferentes funciones y debe ser mantenido por separado.
Software Engineering, 7th edition. Chapter 14 Slide 17

Ian Sommerville 2004

Asociaciones UML

En UML, una relacin generalizada se indica mediante una asociacin. Las asociaciones pueden ser anotadas con la informacin que describe la asociacin. Asociaciones son de carcter general, pero pueden indicar que un atributo de un objeto es un objeto o asociaciones de que un mtodo se basa en un objeto asociado.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 18

Un modelo de asociacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 19

Objetos concurrentes

La naturaleza de los objetos como autnomos de las entidades hace que sean adecuados para concurrentes aplicaciones. No es necesario que un objeto ejecute los mensajes de forma secuencial y que espere hasta completar un servicio solicitado.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 20

Servidores y objetos activos

Servidores.
El objeto est implementado como un proceso paralelo (servidor) con los puntos de entrada correspondientes a las operaciones de objeto. Los objetos se implementan como procesos paralelos y el estado interno del objeto podr ser modificado por el objeto en s mismo y no slo por las llamadas externas.

Objetos activos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 21

Transpondedor de objeto

Objetos activos pueden tener sus atributos modificados por las operaciones, pero tambin puede actualizarlos autnomamente mediante operaciones internas. Un transpondedor de objeto emite la posicin de una aeronave. La posicin puede ser actualizada mediante un sistema de posicionamiento por satlite. El objetivo es actualizar peridicamente la posicin mediante la triangulacin de los satlites.
Software Engineering, 7th edition. Chapter 14 Slide 22

Ian Sommerville 2004

Un transpondedor

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 23

Hilos de Java

Hilos en Java son una simple construccin de los objetos de aplicacin concurrente. Debe incluir un mtodo llamado run () y este se inicia por el JRE o tiempo de ejecucin del sistema. Objetos activos suelen incluir un bucle infinito de modo que siempre estn llevando a cabo el cmputo.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 24

Proceso de diseo orientado a objetos

Los procesos de diseo estructurado implican el desarrollo de un nmero de diferentes modelos de sistemas. Requieren un gran esfuerzo para el desarrollo y mantenimiento de estos modelos y, para sistemas pequeos, esto puede no ser rentable. Sin embargo, para los grandes sistemas desarrollados por diferentes grupos de diseo de modelos son un mecanismo de comunicacin esencial.
Software Engineering, 7th edition. Chapter 14 Slide 25

Ian Sommerville 2004

Las fases del proceso

Destacan las principales actividades sin estar atados a ninguna propiedad, como el proceso RUP.

Definir el contexto y las modalidades de utilizacin del sistema; Diseo de la arquitectura del sistema; Identificar los principales objetos del sistema; Desarrollar modelos de diseo; Especificar las interfaces de los objetos.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 26

Descripcin del sistema

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 27

Contexto del sistema y los modelos de utilizacin

Desarrollar una comprensin de las relaciones entre la fase de diseo de software y su entorno externo Contexto del sistema
Un modelo que describe otros sistemas en el entorno. Utilice un subsistema modelo para mostrar otros sistemas. Tras las presentaciones de diapositivas de los sistemas de todo el sistema de estacin meteorolgica.
Un modelo dinmico que describe cmo el sistema interacta con su entorno. Usar casos de uso para mostrar las interacciones

Modelo del utilizacin del sistema

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 28

Arquitectura

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 29

Subsistemas en el sistema de cartografa meteorolgica

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 30

Modelos de casos de uso

Los modelos de casos de uso se utilizan para representar a cada interaccin con el sistema. Un modelo de caso de uso muestra las caractersticas del sistema en puntos suspensivos y la interaccin de la entidad figura como un palo.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 31

Casos de uso para la estacin meteorolgica

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 32

Descripcin del caso de uso

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 33

Diseo arquitectnico

Una vez que las interacciones entre el sistema y su entorno se han entendido, se utiliza esta informacin para disear la arquitectura del sistema. Una arquitectura como se explica en el captulo 11 es apropiado para la estacin meteorolgica
Capa de interfaz para el manejo de las comunicaciones; Capa de recogida de datos para la gestin de los instrumentos; Capa de instrumentos para la recoleccin de datos.

Normalmente no habr ms de 7 entidades en un modelo arquitectnico.


Software Engineering, 7th edition. Chapter 14 Slide 34

Ian Sommerville 2004

Estacin meteorolgica arquitectura

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 35

Identificacin de objetos

La identificacin de objetos (o clases de objetos) es la parte ms difcil de diseo orientado a objetos. No hay ninguna "frmula mgica" para la identificacin de objetos. Se basa en la habilidad, la experiencia, dominio y conocimiento de los diseadores de sistemas. Identificacin de objetos es un proceso iterativo. Es poco probable que salga bien la primera vez.
Software Engineering, 7th edition. Chapter 14 Slide 36

Ian Sommerville 2004

Aproximaciones a la identificacin

Utilice un enfoque gramatical basado en una descripcin en lenguaje natural del sistema (utilizado en el mtodo de OOD Hood). Base de la identificacin de las cosas tangibles en la aplicacin de dominio. Utilice un enfoque de comportamiento e identificar los objetos sobre la base de lo que participa en el comportamiento. Utilice un escenario basado en el anlisis. Los objetos, atributos y mtodos en cada una de las hiptesis se han identificado.
Software Engineering, 7th edition. Chapter 14 Slide 37

Ian Sommerville 2004

Estacin meteorolgica descripcin


Una estacin meteorolgica es un paquete de software de control de instrumentos que recoge los datos, realiza procesamiento de datos y transmite estos resultados para su posterior interpretacin. Los instrumentos de aire y tierra como termmetros, un anemmetro, una veleta, un barmetro y un pluvimetro. La recogida de datos se realiza peridicamente. Cuando se emite un comando de transmitir los datos del tiempo, la estacin meteorolgica procesa y resume los datos recogidos. Un resumen de los datos se transmitirn a la cartografa de equipo cuando se recibe una peticin.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 38

Estacin meteorolgica - clases de objetos

Termmetro, anemmetro, barmetro


Aplicacin de objetos que son de dominio "hardware" objetos relacionados con los instrumentos en el sistema. La interfaz bsica de la estacin meteorolgica con su entorno. Por lo tanto, refleja las interacciones identificadas en el uso de caso modelo. Encapsula el resumen de datos de los instrumentos.

Estacin meteorolgica

Datos meteorolgicos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 39

Estacin meteorolgica clases de objetos

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 40

Objetos y refinacin

Uso de dominio de ms conocimientos para identificar los objetos y las operaciones


Estaciones meteorolgicas deberan tener un identificador nico; Las estaciones meteorolgicas se encuentra a distancia de los instrumentos, de modo que los fracasos tienen que ser reportados automticamente. Por lo tanto, los atributos y las operaciones de auto-control son obligatorios. En este caso, los objetos son pasivos y recopilan datos sobre pedido en lugar de manera autnoma. Esto introduce la flexibilidad a costa del controlador de tiempo de procesamiento.
Software Engineering, 7th edition. Chapter 14 Slide 41

Objetos activos o pasivos

Ian Sommerville 2004

Diseo de modelos

Mostrar modelos de diseo de los objetos y clases de objetos y relaciones entre estas entidades. Los modelos describen la estructura del sistema en trminos de clases de objetos y relaciones. Modelos dinmicos describen las interacciones dinmicas entre objetos.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 42

Ejemplos de diseo de modelos

Sub-sistema de modelos que muestran agrupaciones lgicas de objetos en los subsistemas coherentes. Secuencia de modelos que muestran la secuencia de interacciones objeto. Modelos de mquinas de estados que muestran cmo cada uno de los objetos cambian su estado en respuesta a los acontecimientos. Otros modelos incluyen el uso de los modelos de casos de uso, los modelos de agregacin, modelos de generalizacin, etc
Software Engineering, 7th edition. Chapter 14 Slide 43

Ian Sommerville 2004

Subsistema de modelos

Muestra cmo el diseo se organiza en grupos relacionados con la lgica de los objetos. En el UML, estas se muestran utilizando paquetes. Se trata de un modelo lgico. La organizacin efectiva de los objetos en el sistema puede ser diferente.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 44

Subsistemas de estacin meteorolgica

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 45

Modelos de secuencia

Los modelos de secuencia muestran la secuencia de las interacciones que tienen lugar entre los objetos

Los objetos estn dispuestos horizontalmente en la parte superior; El tiempo es representado de manera vertical, los modelos se leen de arriba hacia abajo; Las interacciones son representadas por flechas etiquetadas, Diferentes estilos de flecha representan los diferentes tipos de interaccin;

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 46

La recopilacin de datos de secuencias

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 47

Statecharts

Mostrar cmo los objetos responden a diferentes solicitudes de servicio y el estado de transicin provocada por estas peticiones
Si el estado es apagado luego responde a un mensaje de inicio (); En el estado de espera el objeto est a la espera de nuevos mensajes; Si reportWeather () entonces el sistema se mueve a resumir el estado; Una recopilacin de estado se recibe cuando se introduce una seal de reloj.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 48

Estacin meteorolgica diagrama de estado

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 49

Especificacin de la interfaz

Las interfaces tienen que ser especificadas de manera que los objetos y otros componentes pueden ser diseados en paralelo. Los diseadores deben evitar el diseo de la interfaz de la representacin, sino que debe ocultar esta en el objeto en s. Puede haber varias interfaces que son puntos de vista sobre los mtodos previstos. El UML utiliza los diagramas de clase de especificacin de interfaz de Java, pero tambin puede ser utilizada.
Software Engineering, 7th edition. Chapter 14 Slide 50

Ian Sommerville 2004

Estacin meteorolgica de interfaz


interface WeatherStation { public void WeatherStation () ; public void startup () ; public void startup (Instrument i) ; public void shutdown () ; public void shutdown (Instrument i) ; public void reportWeather ( ) ; public void test () ; public void test ( Instrument i ) ; public void calibrate ( Instrument i) ; public int getID () ; } //WeatherStation

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 51

Evolucin del diseo

Ocultar la informacin dentro de los objetos significa que los cambios realizados a un objeto no afecten a otros objetos en una forma impredecible. Asumir la vigilancia de la contaminacin son las instalaciones que se agregan a estaciones meteorolgicas. Estas muestran el aire y calculan la diferencia del importe de contaminantes en la atmsfera. Lecturas de datos de la contaminacin se transmiten con el clima.

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 52

Cambios necesarios

Aadir una clase de objeto llamado la calidad del aire como parte de WeatherStation. Aadir una operacin reportAirQuality a WeatherStation. Modificar el software de control para recoger lecturas de la contaminacin. Aadir los objetos que representan los instrumentos de vigilancia de la contaminacin.
Software Engineering, 7th edition. Chapter 14 Slide 53

Ian Sommerville 2004

La vigilancia de la contaminacin

Ian Sommerville 2004

Software Engineering, 7th edition. Chapter 14

Slide 54

Puntos clave

OOD es un enfoque para disear de manera que los componentes de diseo tienen su propio estado y las operaciones privadas. Los objetos deben tener el constructor y las operaciones de inspeccin. Prestan servicios a otros objetos. Los objetos pueden aplicarse simultneamente o secuencialmente. El Lenguaje Unificado de Modelado provee diferentes notaciones para la definicin de modelos de objetos diferentes.
Software Engineering, 7th edition. Chapter 14 Slide 55

Ian Sommerville 2004

Puntos clave

Una gama de diferentes modelos pueden ser producidos en un proceso de diseo orientado a objetos. Estos incluyen el establecimiento de modelos de sistemas y dinmica. Las interfaces de objetos deben definirse con precisin usando, por ejemplo, un lenguaje de programacin como Java. Diseo orientado a objetos potencialmente simplifica la evolucin del sistema.
Software Engineering, 7th edition. Chapter 14 Slide 56

Ian Sommerville 2004

También podría gustarte