Técnicas
y Desarrollo de Prototipos
Un
prototipo representa un modelo del comportamiento de un sistema propuesto. Su
aplicación resuelve la incertidumbre sobre si el diseño del producto se ajusta
realmente a las necesidades del usuario. Su uso, en la etapa de desarrollo del
ciclo de vida de un producto, ayuda a los diseñadores a tomar provecho de la
información suministrada por los usuarios, permiitendoles hacer un bueno y sano
sobre:
·
La necesaria funcionalidad del sistema
·
Secuencia operacional
·
Necesidades de dar soporte al usuario
·
Utilidad de las representaciones gráficas
requeridas
·
Operatividad de la interfaz
En
el ambiente de los diseños de sistemas de información, varios tipos de
prototipos han sido desarrollados, para tomar ventaja de los diferentes tipos
de información:
·
Requerimiento de animación: Permite que un
posible requerimiento sea demostrado en un software, permitiendo a su vez ser
evaluado por un usuario.
·
Prototipo Rápido: Ayda a recopilar
información sobre requirimiento y adaptabilidad de posibles diseños. Se
reconoce que los requerimientos sean probablemente imprecisos cuando son
especificados en su primera vez. El enfasis se centra en evaluar el prototipo
antes de tomar una decisión de implementar otra idea.
·
Prototipo Incremental: Permite que grandes
sistemas sean instalados por fases para evitar retrasos entre las etapas de
especificación y entrega del producto. El sistema es construido
incrementalmente una fase a la vez. En este tipo de prototipo, el cliente y el
proveedor del sistema acuerdan la realización del desarrollo del producto por
etapas. Esto permite que los requerimientos sean chequeados e inspeccionadops
en el área de trabajo y los cambios realizados tan pronto sean posibles, para
adecuarlos a las necesidades. Cualquier cambio adicional menos importante puede
ser realizado mas adelante.
·
Prototipo Evolucionario: Es la forma mas
extensiva de prototipo. Representa un compromiso entre la producción del
producto y el diseño del prototipo. El prototipo inicial es construido,
evaluado y desarrollado continuamente hasta el producto final.
En
ambientes de diseño de interfaz usuario-computador, se pueden encontrar los
siguientes tipos:
·
Prototipo completo: Contiene una completa
funcionalidad, pero con una baja capacidad operativa.
·
Prototipo horizontal: Contiene toda la
funcionalidad de los niveles altos del sistema, pero obvia detalles de los
niveles bajos.
·
Prototipo Vertical: Contine toda la
funcionalidad de los niveles altos y bajos del sistema, pero restrnge parte de
el .
·
Prototipo de alta fidelidad: Refiere a un
prototipo que involucra un medio como video, sonido, etc., en la que se utiliza
la interfaz final tan cercano a a la realidad como sea posible.
·
Prototipo de baja fidelidad: Usa materiales
de baja calidad, muy distantes a la versión final y que tiende por lo general a
ser muy económicos y rápidos de desarrollar.
·
Prototipos conducido: Involucra al usuario
observando a un miembro del equipo desarrollador construyendo el sistema. Es
una manera de probvar si la interfaz del sistema reune las necesidades del
usuario sin que él tenga acción con el sistema.
·
Prototipos Mago de Oz (Wizard of Oz): Similar
al anterior, pero en este caso el usuario no esta conciente de que está siendo
observado por un miembro del equipo desarrollar. El usuario interactua con el
sistema, pero en lugar de recibir asesoria del sistema, un miembro del equipo
ubicado en otro equipo responde las inquietudes del usuario.
Limitaciones
·
Usuarios frecuentemente no tienen la
habilidad para imaginar que decisión tomar, con respecto al diseño del sistema.
·
Usuarios frecuentemente no tienen la
capacidad para hacer comentarios técnicos sobre el diseño del producto, proceso
o sistema.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a pensar las cosas de una manera
distinta, para escribir nuestros programas en términos de objetos, propiedades,
métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una
pequeña base que permita soltarnos un poco con este tipo de programación.
Elementos de POO:
- Objetos: Entender que es un objeto es la clave para
entender cualquier lenguaje orientado a objetos. Existen muchas
definiciones que se le ha dado al Objeto. Primero empecemos entendiendo
que es un objeto del mundo real. Un objeto del mundo real es cualquier
cosa que vemos a nuestro alrededor. Digamos que para leer este artículo lo
hacemos a través del monitor y una computadora, ambos son objetos, al
igual que nuestro teléfono celular, un árbol o un automóvil.
Analicemos un poco más a un
objeto del mundo real, como la computadora. No necesitamos ser expertos en
hardware para saber que una computadora está compuesta internamente por varios
componentes: la tarjeta madre, el chip del procesador, un disco duro, una
tarjeta de video, y otras partes más. El trabajo en conjunto de todos estos
componentes hace operar a una computadora.
Internamente, cada uno de estos
componentes puede ser sumamente complicado y puede ser fabricado por diversas
compañías con diversos métodos de diseño. Pero nosotros no necesitamos saber
cómo trabajan cada uno de estos componentes, como saber que hace cada uno de
los chips de la tarjeta madre, o cómo funciona internamente el procesador. Cada
componente es una unidad autónoma, y todo lo que necesitamos saber de adentro
es cómo interactúan entre sí los componentes, saber por ejemplo si el
procesador y las memorias son compatibles con la tarjeta madre, o conocer donde
se coloca la tarjeta de video. Cuando conocemos como interaccionan los
componentes entre sí, podremos armar fácilmente una computadora.
¿Qué tiene que ver esto con la
programación? La programación orientada a objetos trabaja de esta manera. Todo
el programa está construido en base a diferentes componentes (Objetos), cada
uno tiene un rol específico en el programa y todos los componentes pueden
comunicarse entre ellos de formas predefinidas.
Todo objeto del mundo real tiene
2 componentes: características y comportamiento.
Por ejemplo, los automóviles
tienen características (marca, modelo, color, velocidad máxima, etc.) y
comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar
llantas, etc.).
- Atributos: Los
atributos son las características individuales que diferencian un objeto
de otro y determinan su apariencia, estado u otras cualidades. Los
atributos se guardan en variables denominadas de instancia, y cada objeto
particular puede tener valores distintos para estas variables. Las
variables de instancia también denominados miembros dato, son declaradas
en la clase pero sus valores son fijados y cambiados en el
objeto. Además de las variables de instancia hay variables de clase,
las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el
número de ruedas de un automóvil es el mismo cuatro, para todos los
automóviles.
- Mensaje: Un objeto es inútil si está aislado. El medio
empleado para que un objeto interactúe con otro son los mensajes. Hablando
en términos un poco más técnicos, los mensajes son invocaciones a los
métodos de los objetos. Un mensaje en un objeto es la acción
de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un
objeto coche que se ponga en marcha estamos pasándole el mensaje ponte en marcha. Para mandar mensajes a los objetos
utilizamos el operador punto, seguido del método que deseamos invocar. miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar
paréntesis igual que cualquier llamada a una función, dentro irían los
parámetros.
- Clase: Los objetos están organizados en familias claramente
delimitadas. Una familia se reconoce porque reúne un grupo de objetos que
heredan elementos entre sí. El modelo de programación visual, al igual que
la naturaleza, organiza los objetos en clases (familias), así una clase es
el conjunto de objetos que pertenecen a una misma familia. Por ejemplo
Madonna, Michael Jackson, Prince y Dire Straits son objetos de una clase
cantantes de rock, sin embargo personas específicas con nombres
específicos son miembros de esa clase si poseen ciertas características
comunes. El modelo de programación visual permite así organizar las
familias de objetos en un orden jerárquico. En el mundo real, normalmente tenemos muchos
objetos del mismo tipo. Por ejemplo, nuestro teléfono celular es sólo uno
de los miles que hay en el mundo. Si hablamos en términos de la
programación orientada a objetos, podemos decir que nuestro objeto celular
es una instancia de una clase conocida como "celular". Los
celulares tienen características (marca, modelo, sistema operativo,
pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas,
enviar mensajes multimedia, transmisión de datos, etc.).Definición
teórica: La clase es un modelo o prototipo que define las variables y
métodos comunes a todos los objetos de cierta clase. También se puede
decir que una clase es una plantilla genérica para un conjunto de objetos
de similares características. Por otro lado, una instancia de una
clase es otra forma de llamar a un objeto. En realidad no existe
diferencia entre un objeto y una instancia. Sólo que el objeto es un
término más general, pero los objetos y las instancias son ambas
representación de una clase. Definición Teórica: Una instancia es un
objeto de una clase en particular.
Características de
la POO:
- Abstracción: La abstracción consiste en captar las
características esenciales de un objeto, así como su comportamiento. Por
ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características
podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué
características semejantes tienen todos los automóviles? Todos tendrán una
marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc.
Y en cuanto a su comportamiento todos los automóviles podrán acelerar,
frenar, retroceder, etc. En los lenguajes de programación orientada
a objetos, el concepto de Clase es la representación y el mecanismo por el
cual se gestionan las abstracciones.
- Encapsulamiento: El encapsulamiento consiste en unir en la Clase
las características y comportamientos, esto es, las variables y métodos.
Es tener todo esto es una sola entidad. En los lenguajes estructurados
esto era imposible. Es evidente que el encapsulamiento se logra gracias a
la abstracción y el ocultamiento que veremos a continuación.
La utilidad del encapsulamiento
va por la facilidad para manejar la complejidad, ya que tendremos a las Clases
como cajas negras donde sólo se conoce el comportamiento pero no los detalles
internos, y esto es conveniente porque nos interesará será conocer qué hace la
Clase pero no será necesario saber cómo lo hace.
- Polimorfismo: El polimorfismo se presenta cuando se ha creado
objetos que pertenecen a clases que han sido derivadas de otras clases. En
otras palabras, el polimorfismo aparece en las clases derivadas.
También se dice que el polimorfismo es la propiedad
que indica literalmente, la posibilidad de que una entidad tome muchas formas,
en términos prácticos el polimorfismo permite referirse a objetos de clases
distintas mediante el mismo elemento de programa y realizar la misma operación
de diferentes formas, según sea el objeto que se referencia en ese momento. Por
ejemplo cuando se describe la clase mamíferos se puede observar que la
operación comer es una operación fundamental en la vida de los mamíferos, de
modo que cada tipo de mamíferos debe poder realizar la operación o función
comer. Por otra parte, una vaca o una cabra que pasta en el campo, un niño que
se come un bombón o caramelo y un león que devora a otro animal, son diferentes
formas que utilizan los distintos mamíferos para realizar la misma función
(comer).
- Herencia: La herencia es uno de los conceptos más cruciales
en la POO. La herencia básicamente consiste en que una clase puede heredar
sus variables y métodos a varias subclases (la clase que hereda es llamada
superclase o clase padre). Esto significa que una subclase, aparte de los
atributos y métodos propios, tiene incorporados los atributos y métodos
heredados de la superclase. De esta manera se crea una jerarquía de
herencia. las clases no están
aisladas, sino que se relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las propiedades y el comportamiento de
todas las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos
y creados como tipos especializados de objetos preexistentes. Estos pueden
compartir (y extender) su comportamiento sin tener que volver a
implementarlo. Esto suele hacerse habitualmente agrupando los objetos
en clases y
estas en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice
que hay herencia múltiple.
No hay comentarios:
Publicar un comentario