buscador

Visita

Mostrando las entradas con la etiqueta Identificaci贸n de Objetos. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Identificaci贸n de Objetos. Mostrar todas las entradas

domingo, 3 de julio de 2016

馃搷 Capitulo 2 馃憤Casos de Estudios: Programaci贸n orientada a objetos ☕Java

Bienvenido al Blog, en esta oportunidad desarrollaremos un tema de introducci贸n al desarrollo de programaci贸n orientado a objetos, para entender sobre como desarrollar un sistema con el lenguaje java veremos casos de estudios en la fase de inicio: An谩lisis y dise帽o.

Sobre el contenido …
  1. El  contenido de este blog tiene como fuente el curso Fundamentos de programaci贸n de Oracle.
  2. Con algunos agregados del autor "EL INFORMATICO IBERO"

An谩lisis Orientado a Objetos

Casos de Estudio 

DirectClothing, Inc. vende camisas por catalogo. El negocio crece a un ritmo del 30 por ciento anual y necesitan un nuevo sistema de introducci贸n de pedidos. La empresa le ha contratado para dise帽ar ese nuevo sistema. 

DirectClothing produce un catalogo de prendas de vestir cada seis meses y se lo env铆a a sus suscriptores. Cada prenda de catalogo tiene un identificador de articulo (ID), uno o varios colores (cada uno  con un c贸digo de color), uno o varios tama帽os, una descripci贸n y un precio.

La empresa acepta cheques y principales tarjetas de cr茅dito.

Para hacer un pedido los clientes pueden llamar directamente al servicio de atenci贸n al cliente de la compa帽铆a o enviar a DirectClothing un formulario de pedido por fax o correo.

En la siguiente imagen se visualiza el formulario de pedido que aparece en el catalogo de DirectClothing.

Los pedidos que llegan por correo o fax son introducidos por un miembro del servicio de atenci贸n al cliente.

DirectClothing quiere dar al cliente la opci贸n de introducir sus pedidos directamente a trav茅s de internet. Los art铆culos que aparecen en la web tienen el mismo precio que se marca en el ultimo catalogo.

Cuando se introduce un pedido en el sistema, se verifica la disponibilidad de cada articulo (cantidad en stock). Si uno o varios de los art铆culos no est谩n disponibles en ese momento (en el almac茅n de DirectClothing), el pedido se pone en espera hasta que llegan al almac茅n. Cuando todos los art铆culos est谩n disponibles, se verifica el pago y el pedido se env铆a al almac茅n para su preparaci贸n y envi贸 a la direcci贸n del cliente.

Si el pedido se recibe por tel茅fono, el servicio de atenci贸n al cliente da a este un ID de pedido que se utiliza para hacer el seguimiento de la orden de compra a lo largo del proceso. tambi茅n le proporciona la extensi贸n de tel茅fono del representante del servicio de atenci贸n al cliente.

Identificaci贸n del dominio del Problema

Dado que el lenguaje Java es un lenguaje orientado  objetos, uno de los primeros objetivos del programador en esta tecnolog铆a es crear objetos para componer un sistema o, mas concretamente, para resolver un problema.

 El 谩mbito del problema que se va a resolver se denomina dominio del problema.

La mayor铆a de los proyectos empiezan por definir el domino del problema mediante la recopilaci贸n 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 podr铆a ser: "Crear un sistema de introducci贸n de pedidos que permita a los operadores introducir y aceptar el pago de los pedidos".

Identificaci贸n de los Objetos
Para validar los objetos del dominio de un problema, es preciso identificar primero las propiedades de todos los objetos:
  • Los objetos pueden ser f铆sicos o conceptuales: una cuenta de un cliente es un ejemplo de objeto conceptual, porque no es algo que se pueda tocar f铆sicamente. Un cajero autom谩tico es algo que muchas personas tocan al cabo del d铆a y es un ejemplo de objeto f铆sico.
  • Los objetos poseen atributos (caracter铆sticas) tales como el tama帽o, 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 tama帽o con el valor "grande".
  • Los 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 operaci贸n 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 tambi茅n suelen ser nombres, como "color" o "tama帽o". Sin embargo, las operaciones de los objetos suelen designarse mediante verbos o combinaciones de nombre y verbo, c贸mo es el caso de "mostrar" o "enviar pedido"
La siguiente figura ilustra las caracter铆sticas de una ballena que la conviene en un objeto.
Otro ejemplo, una puerta puede ser un objeto en el domino del problema de "construir una casa". Una perta incluye al menos un atributo, que puede tener valores (abiertas o cerradas), y una operaci贸n, por ejemplo "cerrar puerta" o "abrir puerta", lo que permite cambiar el estado de la puerta.
Un atributo que solo puede tener dos estados se conoce como boleano (Boolean).

Otros criterios para reconocer objetos
Utilice los siguientes criterios para determinar si algo deber铆a ser considerado como un objeto en el dominio de un problema: 
  • Relevancia para el dominio del problema.
  • Existencia independiente
Otros criterios para reconocer objetos
    Relevancia para el dominio del problema.
    Para averiguar si el objeto es relevante para el dominio del problema, preg煤ntese lo siguiente: 
  • ¿El objeto existe dentro de los limites del domino?
  • ¿El objeto es necesario para que la soluci贸n sea completa?
  • ¿Es necesario como parte de una interacci贸n  entre un usuario y la soluci贸n?                
Algunos elementos del dominio de un problema puede ser atributos de objetos u objetos en si. Por ejemplo, la temperatura puede ser un atributo de un objeto en un sistema medico o un objeto en un sistema cient铆fico que lleve el control de patrones atmosf茅ricos.

Otros criterios para reconocer objetos
    Existencia Independiente
  • Para que un elemento sea un objeto y no un atributo de otro objeto, debe ser independiente en el contexto del domino del problema. Varios objetos pueden estar relacionados y, sin embargo, tener una existencia independiente. En el caso de DirectClothing, el cliente y el pedido est谩n conectados, pero son independientes entre si, por lo que ambos serian objetos.
  • Al evaluar la situaci贸n de objeto potenciales, preg煤ntese 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 valido si es relevante para el dominio de un problema y posee las caracter铆sticas de un objeto, pero eso no significa que sea un buen objeto. En cualquier caso, la persona que modele el sistema o la soluci贸n debe tener una comprensi贸n global de la totalidad del sistema.

Identificaci贸n de Objetos
En la figura siguiente se ilustran tres objetos pertenecientes al dominio del sistema de introducci贸n  de pedidos de DirectClothing.

Identificaci贸n de atributos y Operaciones de los Objetos
  • Despu茅s de identificar los objetos, debe especificar sus atributos y operaciones. 
  • Como se indicaba anteriormente, los atributos definen el estado de un objeto. Los atributos pueden ser datos como el ID de cliente y el ID del pedido, o bien pueden ser otros objetos, como seria en el caso de un cliente que, en lugar de tener 煤nicamente el ID de pedido como atributo, tuviese todo el objeto Order (pedido).
  • Las operaciones son comportamientos que normalmente modifican el estado de un atributo. Por ejemplo, es posible imprimir un pedido, agregarle o suprimirle un articulo, etc. (El cliente o el operador del centro de atenci贸n  al cliente iniciar铆a esas acciones en la vida real, pero pertenecen al objeto order).
Atributo como referencia a otros objetos
  • Un atributo puede hacer referencia a otro objeto.
  • Por ejemplo, el objeto Customer (cliente) puede tener un atributo que sea un objeto Order. Esta asociaci贸n podr铆a ser necesaria o no, en funci贸n del problema que se este tratando de resolver.
  • En la figura se visualiza el objeto Cliente contiene un atributo Pedido. (Los asterisco (*) de los gr谩ficos indican atributos que son otros objetos)
  • En la imagen se ilustran algunos posibles atributos y operaciones de los objetos Pedido, Camisa y cliente.

Soluci贸n del Caso
A continuaci贸n se incluye una serie de cuadros que contienen una lista parcial de los objetos (incluidos la mayor铆a de sus atributos y operaciones) identificados para el ejemplo de DirectClothing.

       
     

Dise帽o de Clases
La identificaci贸n de objetos ayuda a dise帽ar 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 combinaci贸n de color y estilo.
En t茅rminos del dise帽o orientado a objetos, cada objeto (ventana) creado utilizando la clase (prototipo gen茅rico) se denomina instancia de una clase.
En concreto, cada objeto creado a partir de una clase puede tener un estado especifico (valores) para cada uno de sus atributos, pero tendr谩 los mismos atributos y operaciones.

Las clases y objetos se utilizan con frecuencia en el campo de la biolog铆a. Por ejemplo, a los bi贸logos marinos que estudian las criaturas de los mares y oc茅ano a menudo se les pide que clasifiquen estas criaturas por familia o clases. En t茅rminos del an谩lisis y el dise帽o 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.

En la siguiente imagen se ilustran dos instancias de la clase ballena.

En lo que se refiere a DirectClothing:
  • Una clase es la definici贸n de un objeto. Las clases son categor铆as descriptivas, plantillas o prototipos. Shirt(Camisa) podr铆a ser una clase que define a todas las camisas como objetos poseedores de una ID de camisa, una tama帽o, un c贸digo de color, una descripci贸n y un precio. 
  • Los objetos son instancias 煤nicas de las clases. La camisa azul grande que cuesta 29.99 Dolares y tiene el ID de camisa 62467-B es uan instancia de la clase Camisa, al igual que la camisa verde peque帽a etiquetada con el mismo precio y con el ID 66889-C, o la camisa de dibujos de 39.99 d贸lares con el ID 09988-A. Es posible tener en la memoria dos objetos Camisa con atributos que tengan exactamente los mismos valores.
  • En la siguiente figura puede verse una clase y varios objetos basados en ella.

En programaci贸n Java , los atributos se representan mediante variables, y las operaciones se representan mediante m茅todos.
Las variables son el mecanismo que utiliza e lenguaje Java para contener los datos. Los m茅todos son el mecanismo que utiliza para realizar una operaci贸n.
Adem谩s de los datos de atributos, las variables pueden contener otros datos tales como los valores utilizados exclusivamente en el interior de alg煤n m茅todo.

Modelado de las clases
La primera parte de la fase de dise帽o consiste en organizar o modelar visualmente un programa y sus clases. Cada clase de dise帽o deber铆a 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 m茅todos.

La sintaxis para modelar una clase se muestra en la siguiente figura:
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.
  • nombreMetodo es el nombre de un m茅todo.
Ejemplo el modela de la clase Shirt (Camisa):
Esta t茅cnica de modelado se basa ligeramente en una versi贸n simplificada del sistema de notaci贸n UML, una herramienta utilizada en procesos de modelado (algunos detalles se han suprimido para los programadores con menos experiencia).

Los nombres de m茅todos y variables se escriben utilizando una forma especial de escritura abreviada de tal manera que, si hacen referencia a un atributo u operaci贸n formado por varias palabras, la primera palabra se escribe en min煤scula y la inicial de las sucesivas palabras se escribe en may煤scula. Por ejemplo, una operaci贸n como "Calcular el precio total" se escribir铆a calcPrecioTotal() o, en ingles, calcTotalPrice(). Asimismo, la existencia de par茅ntesis de apertura y cierre indica que se trata de un m茅todo.

El modelado de Clases es similar al modelado de estructura 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 tecnolog铆a Java.

Esos son los pasos para empezar a crear una clase y un sistema, primero se tiene que memorizar los conceptos para llevarlos a la practica, siguiente capitulo seguiremos revisando acerca de este bonito lenguaje de programaci贸n JAVA.
Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!