a2 análisis y diseño tarea

44
UD – Técnicas de Programación Actividad 2: Análisis y Diseño

Upload: pacpachuamanwilder

Post on 22-Nov-2015

32 views

Category:

Documents


1 download

TRANSCRIPT

Actividad N: Descripcin de Actividad de Aprendizaje

UD Tcnicas de ProgramacinActividad 2: Anlisis y DiseoActividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosAnlisis Orientado a Objetos Caso de EstudioDirectClothing, Inc. vende camisas por catlogo. El negocio crece a un ritmo del 30 por ciento anual y necesitan un nuevo sistema de introduccin de pedidos. La empresa le ha contratado para disear ese nuevo sistema.DirectClothing produce un catlogo de prendas de vestir cada seis meses y se lo enva a sus suscriptores. Cada prenda del catlogo tiene un identificador de artculo (ID), uno o varios colores (cada uno con un cdigo de color), uno o varios tamaos, una descripcin y un precio.La empresa acepta cheques y las principales tarjetas de crdito.Para hacer un pedido, los clientes pueden llamar directamente al servicio de atencin al cliente de la compaa o envian a DirectClothing un formulario de pedido por fax o correo.

Anlisis Orientado a Objetos Caso de EstudioEn la figura siguiente se muestra el formulario de pedido que aparece en el catlogo de DirectClothing.

Anlisis Orientado a Objetos Caso de EstudioLos pedidos que llegan por correo o fax son introducidos por un miembro del servicio de atencin al cliente.DirectClothing quiere dar al cliente la opcin de introducir sus pedidos directamente a travs de Internet. Los artculos que aparecen en la web tienen el mismo precio que se marca en el ltimo catlogo.Cuando se introduce un pedido en el sistema, se verifica la disponibilidad de cada artculo (cantidad en stock). Si uno o varios de los artculos no estn disponibles en ese momento (en el almacn de DirectClothing), el pedido se pone en espera hasta que llegan al almacn. Cuando todos los artculos estn disponibles, se verifica el pago y el pedido se enva al almacn para su preparacin y envo a la direccin del cliente.

Anlisis Orientado a Objetos Caso de EstudioSi el pedido se recibe por telfono, el servicio de atencin al cliente da a ste un ID de pedido que se utiliza para hacer el seguimiento de la orden de compra a lo largo del proceso. Tambin le proporciona la extensin de telfono del representante del servicio de atencin al cliente.

Actividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosAnlisis Orientado a Objetos Identificacin del Dominio del ProblemaDado que el lenguaje Java es un lenguaje orientado a objetos, uno de los primeros objetivos del programador en esta tecnologa es crear objetos para componer un sistema o, ms concretamente, para resolver un problema.El mbito del problema que se va a resolver se denomina dominio del problema.La mayora de los proyectos empiezan por definir el dominio del problema mediante la recopilacin de los requisitos del cliente y la escritura de un enunciado donde se especifica el alcance del proyecto, es decir, lo que el programador, usted, quiere conseguir. Por ejemplo, un enunciado del alcance del proyecto de DirectClothing podra ser: Crear un sistema de introduccin de pedidos que permita a los operadores introducir y aceptar el pago de los pedidos.

Actividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosAnlisis Orientado a Objetos Identificacin de los ObjetosPara validar los objetos del dominio de un problema, es preciso identificar primero las propiedades de todos los objetos:Los objetos pueden ser fsicos o conceptuales: una cuenta de un cliente es un ejemplo de objeto conceptual, porque no es algo que se pueda tocar fsicamente. Un cajero automtico es algo que muchas personas tocan al cabo del da y es un ejemplo de objeto fsico.Los objetos poseen atributos (caractersticas) tales como el tamao, el nombre o la forma, entre otros. Por ejemplo, un objeto puede tener el color como atributo.El valor de todos los atributos de un objeto a menudo se conoce como el estado actual del objeto. Por ejemplo, un objeto puede tener un atributo de color con el valor rojo y un atributo de tamao con el valor grande.

Anlisis Orientado a Objetos Identificacin de los ObjetosLos objetos pueden realizar operaciones (cosas que pueden hacer), tales como configurar un valor, abrir una pantalla o incrementar la velocidad. Las operaciones suelen afectar a los atributos del objeto y, a menudo, nos referimos a ellas como el comportamiento de los objetos. As, un objeto puede llevar asociada una operacin que permita a otros objetos cambiar su atributo de color de un estado a otro, por ejemplo, de rojo a azul.Los objetos se designan mediante nombres como, por ejemplo, cuenta o camisa. Los atributos de los objetos tambin suelen ser nombres, como color o tamao. Sin embargo, las operaciones de los objetos suelen designarse mediante verbos o combinaciones de nombre y verbo, como es el caso de mostrar o enviar pedido

Anlisis Orientado a Objetos Identificacin de los ObjetosLa figura siguiente ilustra las caractersticas de una ballena que la convierten en un objeto.

Identifiquemos objetos en el aula.

Objeto Fsico con Atributos y OperacionesAnlisis Orientado a Objetos Identificacin de los ObjetosPor ejemplo, una puerta puede ser un objeto en el dominio del problema de construir una casa. Una puerta incluye al menos un atributo, que puede tener valores (abierta o cerrada), y una operacin, por ejemplo cerrar puerta o abrir puerta, lo que permite cambiar el estado de la puerta.Un atributo que slo puede tener dos estados se conoce como booleano (Boolean).

Anlisis Orientado a Objetos Otros criterios para reconocer objetosUtilice los criterios siguientes para determinar si algo debera ser considerado como un objeto en el dominio de un problema:Relevancia para el dominio del problemaExistencia independiente

Anlisis Orientado a Objetos Otros criterios para reconocer objetosRelevancia para el dominio del problemaPara averiguar si el objeto es relevante para el dominio del problema, pregntese lo siguiente:El objeto existe dentro de los lmites del dominio?El objeto es necesario para que la solucin sea completa?Es necesario como parte de una interaccin entre un usuario y la solucin?

Algunos elementos del dominio de un problema pueden ser atributos de objetos u objetos en s. Por ejemplo, la temperatura puede ser un atributo de un objeto en un sistema mdico o un objeto en un sistema cientfico que lleve el control de patrones atmosfricos.

Anlisis Orientado a Objetos Otros criterios para reconocer objetosExistencia IndependientePara que un elemento sea un objeto y no un atributo de otro objeto, debe ser independiente en el contexto del dominio del problema. Varios objetos pueden estar relacionados y, sin embargo, tener una existencia independiente. En el caso de DirectClothing, el cliente y el pedido estn conectados, pero son independientes entre s, por lo que ambos seran objetos.Al evaluar la utilizacin de objetos potenciales, pregntese si el objeto debe existir de forma independiente o ser atributo de otro objeto.Identificar los objetos de un dominio es un arte, no una ciencia. Cualquier objeto puede ser vlido si es relevante para el dominio de un problema y posee las caractersticas de un objeto, pero eso no significa que sea un buen objeto. En cualquier caso, la persona que modele el sistema o la solucin debe tener una comprensin global de la totalidad del sistema.

Anlisis Orientado a Objetos Identificacin de ObjetosCules son los posibles objetos de DirectClothing, Inc.?

Anlisis Orientado a Objetos Identificacin de ObjetosEn la figura siguiente se ilustran tres objetos pertenecientes al dominio del sistema de introduccin de pedidos de DirectClothing.

Actividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosAnlisis Orientado a Objetos Identificacin de Atributos y Operaciones de los ObjetosDespus de identificar los objetos, debe especificar sus atributos y operaciones.Como indicbamos anteriormente, los atributos definen el estado de un objeto. Los atributos pueden ser datos, como el ID de pedido y el ID de cliente del objeto Order (Pedido), o bien pueden ser otro objeto, como sera el caso de un cliente que, en lugar de tener nicamente el ID de pedido como atributo, tuviese todo el objeto Order.Como decamos, las operaciones son comportamientos que normalmente modifican el estado de un atributo. Por ejemplo, es posible imprimir un pedido, agregarle o suprimirle un artculo, etc. (El cliente o el operador del centro de atencin al cliente iniciara esas acciones en la vida real, pero pertenecen al objeto Order.)

Anlisis Orientado a Objetos Identificacin de Atributos y Operaciones de los ObjetosAtributos como referencia a otros objetosUn atributo puede hacer referencia a otro objeto.Por ejemplo, el objeto Customer (Cliente) puede tener un atributo que sea un objeto Order. Esta asociacin podra ser necesaria o no, en funcin del problema que se est tratando de resolver.

Anlisis Orientado a Objetos Identificacin de Atributos y Operaciones de los ObjetosAtributos como referencia a otros objetosEn la figura siguiente puede verse cmo el objeto Cliente contiene un atributo Pedido.

Los asteriscos (*) de los grficos anteriores indican atributos que son otros objetos.

Anlisis Orientado a Objetos Identificacin de Atributos y Operaciones de los ObjetosAtributos como referencia a otros objetosCules son los posibles atributos y operaciones de los objetos en el caso de DirectClothing?Alguno de los atributos que ha elegido hace referencia a otro objeto?

Anlisis Orientado a Objetos Identificacin de Atributos y Operaciones de los ObjetosAtributos como referencia a otros objetosEn la figura siguiente se ilustran algunos posibles atributos y operaciones de los objetos Pedido, Camisa y Cliente.

Actividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosAnlisis Orientado a Objetos Solucin del CasoA continuacin se incluyen una serie de cuadros que contienen una lista parcial de los objetos (incluidos la mayora de sus atributos y operaciones) identificados para el ejemplo de DirectClothing.

Anlisis Orientado a Objetos Solucin del Caso

Anlisis Orientado a Objetos Solucin del Caso

Anlisis Orientado a Objetos Solucin del Caso

Actividad 2: Anlisis y DiseoAnlisis Orientado a ObjetosCaso de estudioIdentificacin del Dominio del ProblemaIdentificacin de ObjetosIdentificacin de Atributos y Operaciones de los ObjetosSolucin del Caso de estudioDiseo de ClasesModelado de las ClasesContenidosDiseo de ClasesDiseo de ClasesLa identificacin de objetos ayuda a disear la clase o el prototipo de cada uno de los objetos de un sistema. Por ejemplo, los fabricantes de ventanas suelen crear un modelo de cada uno de los estilos de ventana que producen. En estos modelos se definen una serie de colores y estilos que pueden elegirse al adquirir la ventana. Asimismo, estos modelos sirven de base para generar cualquier cantidad de ventanas con cualquier combinacin de color y estilo.En trminos del diseo orientado a objetos, cada objeto (ventana) creado utilizando la clase (prototipo genrico) se denomina instancia de una clase.En concreto, cada objeto creado a partir de una clase puede tener un estado especfico (valores) para cada uno de sus atributos, pero tendr los mismos atributos y operaciones.

Diseo de ClasesDiseo de ClasesLas clases y objetos se utilizan con frecuencia en el campo de la biologa. Por ejemplo, a los bilogos marinos que estudian las criaturas de los mares y ocanos a menudo se les pide que clasifiquen estas criaturas por familias o clases. En trminos del anlisis y el diseo OO, cada animal (por ejemplo, una ballena azul) de una familia como puede ser la de las ballenas se considera una instancia (objeto) de la clase ballena.

Diseo de ClasesDiseo de ClasesEn la figura siguiente se ilustran dos instancias de la clase ballena.

Diseo de ClasesDiseo de ClasesEn lo que se refiere a DirectClothing:Una clase es la definicin de un objeto. Las clases son categoras descriptivas, plantillas o prototipos. Shirt (Camisa) podra ser una clase que define a todas las camisas como objetos poseedores de un ID de camisa, un tamao, un cdigo de color, una descripcin y un precio.Los objetos son instancias nicas de las clases. La camisa azul grande que cuesta 29,99 dlares y tiene el ID de camisa 62467-B es una instancia de la clase Shirt, al igual que la camisa verde pequea etiquetada con el mismo precio y con el ID 66889-C, o la camisa de dibujos de 39,99 dlares con ID 09988-A. Es posible tener en la memoria dos objetos Shirt con atributos que tengan exactamente los mismos valores.

Diseo de ClasesDiseo de ClasesEn la figura siguiente puede verse una clase y varios objetos basados en ella:

Diseo de ClasesDiseo de ClasesEn programacin Java, los atributos se representan mediante variables, y las operaciones se representan mediante mtodos. Las variables son el mecanismo que utiliza el lenguaje Java para contener los datos. Los mtodos son el mecanismo que utiliza para realizar una operacin.

Adems de los datos de atributos, las variables pueden contener otros datos tales como los valores utilizados exclusivamente en el interior de algn mtodo.

Diseo de ClasesModelado de las clasesLa primera parte de la fase de diseo consiste en organizar o modelar visualmente un programa y sus clases. Cada clase de un diseo debera modelarse de manera que quede incluida en un recuadro con el nombre de la clase en la parte superior seguido de una lista de variables de atributos (incluido el rango de valores posibles) y una lista de mtodos.

Diseo de ClasesModelado de las clasesLa sintaxis para modelar una clase se muestra en la figura siguiente:

Donde:NombreClase es el nombre de la clase.nombreVariableAtributo es el nombre de la variable correspondiente a un atributo.rango de valores es una serie opcional de valores que el atributo puede contener.nombreMtodo es el nombre de un mtodo.Diseo de ClasesModelado de las clasesPor ejemplo, la figura siguiente contiene el modelado de un objeto Shirt:

Esta tcnica de modelado se basa ligeramente en una versin simplificada del sistema de notacin UML (Unified Modeling Language), una herramienta utilizada en procesos de modelado (algunos detalles se han suprimido para los programadores con menos experiencia).

Diseo de ClasesModelado de las clasesLos nombres de mtodos y variables se escriben utilizando una forma especial de escritura abreviada de tal manera que, si hacen referencia a un atributo u operacin formados por varias palabras, la primera palabra se escribe en minscula y la inicial de las sucesivas palabras se escribe en mayscula. Por ejemplo, una operacin como calcular el precio total se escribira calcPrecioTotal() o, en ingls, calcTotalPrice(). Asimismo, la existencia de parntesis de apertura y cierre indica que se trata de un mtodo.El modelado de clases es similar al modelado de estructuras de bases de datos. De hecho, los objetos creados pueden almacenarse en una base de datos utilizando el API JDBC (Java Database Connectivity). Este API permite leer y escribir registros utilizando sentencias SQL (Structured Query Language) dentro de los programas basados en la tecnologa Java.

Tarea DomiciliariaEjercicio 1: Anlisis del Dominio de un ProblemaEste ejercicio se basa en un pequeo caso de estudio. En l deber identificar los objetos, sus atributos y las operaciones que intervienen en el dominio del sistema.Lea el caso siguiente y modele el sistema eligiendo los objetos, sus atributos y las operaciones necesarias.Caso de Estudio:En una liga de ftbol intervienen muchos jugadores. Cada ao contiene tres temporadas y es preciso formar equipos para cada temporada de la liga. Cada equipo se compone de 15 jugadores. En cada temporada se hace el seguimiento de los goles marcados por cada jugador. Tambin se lleva un registro de los partidos disputados entre los diferentes equipos, los resultados finales y la posicin de cada equipo en el ranking en funcin de los partidos ganados y perdidos.

Tarea DomiciliariaEjercicio 1: Anlisis del Dominio de un ProblemaTarea de Anlisis:Deber realizar un anlisis orientado a objetos para el desarrollo de una aplicacin Java que haga el seguimiento de los resultados de la liga de ftbol. El programa deber llevar el registro de:Las lista de jugadores en cada equipo.El nmero de goles marcado por cada jugador.Los partidos celebrados en cada temporada, incluidos los equipos que han jugado entre s, y el marcador final.La aplicacin debera ser capaz de generar estadsticas relativas a los equipos, los jugadores y las temporadas.Para finalizar el anlisis, lleve a cabo estos pasos:Cree una lista de los objetos potenciales.Aplique las reglas descritas en el mdulo para determinar si todos esos objetos son vlidos.Cree una lista de atributos y operaciones para cada uno de los objetos.Tarea DomiciliariaEjercicio 2: Diseo de la SolucinEn este ejercicio, utilizar la notacin UML para representar las clases.Tarea de Diseo:Deber realizar el diseo de cada una de las clases creadas en el sistema anterior para hacer el seguimiento de los resultados de la liga de ftbol.No olvide:Utilizar la escritura abreviada para asignar el nombre a las clases, las variables de los atributos y los mtodos.Identificar un rango vlido de valores para cada atributo (cuando haya un rango).Utilizar parntesis para identificar los mtodos.Tarea DomiciliariaLa tarea domiciliaria deber entregarse en hoja de papel cuadriculado y escrita a mano.La tarea domiciliaria es individual.Plazo de Entrega: 1 semana.