Professional Documents
Culture Documents
ETAPAS:
Anlisis
Diseo
Implementacin
LA ETAPA DE ANLISIS
Se obtienen los requisitos generales del sistema
Se intenta comprender el mbito del sistema
Se determina la factibilidad del sistema
LA ETAPA DE IMPLEMENTACIN
Se traducen los modelos a un lenguaje de programacin
Se depura la codificacin
Se pone en marcha el proyecto
QUE ES DISEO?
Tiene como objetivo producir modelos o representaciones de un sistema que se construir
posteriormente
Proporciona detalles sobre la arquitectura del software, estructura de datos, interfaces y
componentes que se necesitan para implementar el sistema
DISEO E INGENIERA DE SOFTWARE
El diseo es el ncleo tcnico del proceso de ingeniera
Toma como base la informacin proporcionada por el modelo de anlisis
El diseo de software evoluciona constantemente
PORQU ES IMPORTANTE?
Permite modelar al sistema o producto que se va a construir. Este modelo se evala respecto a la
calidad y su mejora antes de generar cdigo, despus se realizan las pruebas, involucrando a
muchos usuarios. El diseo es el lugar en el que se establece la calidad del software.
CUL ES EL PRODUCTO FINAL?
Modelo de diseo que agrupa las representaciones arquitectnicas, interfaces en el nivel de
componentes y despliegue.
Cita:
Hay dos formas de construir un diseo de software. Una es hacerlo tan simple que sea obvio que
no hay deficiencias y la otra es hacerlo tan complicado de que no haya deficiencias obvias. El
primer mtodo es mucho ms difcil.
C.A.R. Hoare
LA ETAPA DE DISEO
Se define una estructura eficaz del software
Se especifica el detalle procedimental
Se analiza la adecuacin al hardware
Se define la arquitectura del software
COMO ES UN BUEN DISEO?
Implementa todos los requisitos contenidos en el modelo de anlisis
Es comprendido por quienes construyen, prueban y mantienen el sistema
Brinda una idea completa del software, desde la perspectiva de la implementacin
LINEAMIENTOS DE UN BUEN DISEO
Tener una arquitectura creada con patrones reconocibles, que tenga componentes con buenas
caractersticas de diseo que se implemente en forma evolutiva.
Debe ser modular.
Debe contener distintas representaciones de datos, arquitectura, interfaces y componentes
Debe conducir a estructuras de datos apropiadas para las clases que se van a implementar y que
surjan de patrones reconocibles de datos.
...LINEAMIENTOS DE UN BUEN DISEO
Debe llevar a componentes que tengan caractersticas funcionales independientes.
Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los componentes
y el ambiente externo.
Debe obtenerse con el empleo de un mtodo repetible motivado por la informacin obtenida
durante el anlisis de los requerimientos del sw
Debe representarse con una notacin que comunique con eficacia su significado.
LAS METODOLOGAS DE DISEO
Abstraccin
Arquitectura
Patrones
Divisin De Problemas
Modularidad
Ocultamiento de informacin
Independencia funcional
Flexibilidad
Generalidad
Rediseo
ABSTRACCIN (1/2)
Permite concentrarse en los detalles importantes y eliminar la informacin irrelevante
En el nivel ms elevado se enuncia una solucin en trminos gruesos
En el nivel ms bajo se da una descripcin ms detallada de la solucin.
ABSTRACCIN (2/2)
Una abstraccin de procedimiento es una secuencia de instrucciones que tienen una funcin
especfica y limitada.
Tiene un nombre y se omiten detalles especficos. Ejm abrir una puerta.
Una abstraccin de datos es un conjunto de stos con nombre que describe a un objeto de datos.
Ejm. puerta
Abrir usa la abstraccin de datos puerta
ARQUITECTURA
Alude a la estructura general del software y a las formas en las que sta da integridad conceptual
a un sistema.
Es la estructura de organizacin de los componentes de un programa (mdulos), la forma en que
estos interactan y la estructura de datos que utilizan.
Cita:
La abstraccin es uno de los modos fundamentales con los que los humanos luchamos con la
complejidad.
Grady Boach
ARQUITECTURA (PROPIEDADES)
Propiedades estructurales: Define los componentes de un sistema (mdulos, objetos, filtros, etc)
y la manera que estn agrupados e interactan.
Propiedades extrafuncionales: La forma en que satisface los requerimientos de desempeo,
capacidad, confiabilidad, seguridad, adaptabilidad, etc.
Familias de sistemas relacionados: Basarse en patrones repetitivos. Reutilizar bloques de
construccin arquitectnica.
PATRONES
Describe una estructura de diseo que resuelve un problema particular del diseo dentro de un
contexto especfico y entre fuerzas que afectan la manera en que se aplica dicho patrn.
Su objetivo es proporcionar una descripcin que permita determinar si el patrn es aplicable, si
puede volverse a usar y si sirve como gua para disear un patrn distinto.
DIVISIN DE PROBLEMAS
Cualquier problema complejo puede manejarse con ms facilidad si se subdivide en elementos
susceptibles de resolverse u optimizarse de manera independiente.
Divide y vencers.
MODULARIDAD
El software se divide en componentes con nombres distintos y abordables por separado, en
ocasiones llamados mdulos, que se integran para satisfacer los requerimientos del problema.
La modularidad es el nico atributo del software que permite que un programa sea manejable en
lo intelectual.
MODULARIDAD (COSTO DEL SW)
OCULTAMIENTO DE INFORMACIN
Los mdulos se caractericen por decisiones de diseo que se oculten (cada una) de las dems.
Deben disearse mdulos de forma que la informacin (algoritmos y datos) contenida en un
mdulo sea inaccesible para los que no necesiten de ella.
INDEPENDENCIA FUNCIONAL
Debe disearse software de manera que cada mdulo resuelva un subconjunto especfico de
requerimientos y tenga una interfaz sencilla cuando se vea desde otras partes de la estructura del
programa.
Se evala con el uso de dos criterios cualitativos: la cohesin y el acoplamiento.
INDEPENDENCIA FUNCIONAL
La cohesin es un indicador cualitativo del grado en el que un mdulo se centra en hacer una sola
cosa.
El acoplamiento es un indicador cualitativo del grado en el que un mdulo est conectado con
otros y con el mundo exterior.
FLEXIBILIDAD
Anticipacin al cambio
El sistema debe adecuarse a nuevos requerimientos
La metodologa debe adecuarse rpidamente a un nuevo requerimiento
GENERALIDAD
Si es ms general, la solucin tiene ms potencial para ser reutilizada
Puede ser ms costosa
Es una forma de anticiparse al cambio
REDISEO
Tcnica de reorganizacin que simplifica el diseo de un componente sin cambiar su funcin o
comportamiento, pero s mejorando su estructura interna.
Se buscan redundancias, elementos de diseo no utilizados, algoritmos ineficientes o
innecesarios, estructuras de datos mal construidas o inapropiadas y cualquier otra falla del diseo
que pueda corregirse para obtener un diseo mejor.
ATRIBUTOS DE LA CALIDAD DEL SW
HP desarroll un conjunto de atributos de calidad a los que se dio el acrnimo FURPS:
Funcionalidad, Usabilidad, Confiabilidad, Rendimiento y Mantenibilidad.
La Funcionalidad se califica de acuerdo con el conjunto de caractersticas y capacidades del
programa.
La Usabilidad se evala tomando en cuenta factores humanos, esttica general, la consistencia y
la documentacin.
ATRIBUTOS DE LA CALIDAD DEL SW
La confiabilidad se evala con la medicin de la frecuencia y gravedad de las fallas, la exactitud
de los resultados, el tiempo medio para que ocurra una falla, la capacidad de recuperacin ante
sta.
El rendimiento se mide con base en la velocidad de procesamiento, el tiempo de respuesta, el uso
de recursos y la eficiencia.
La mantenibilidad combina la capacidad del programa para ser ampliable, adaptable y servicial.
CLASES DE DISEO
El modelo de requerimientos define un conjunto de clases de anlisis. El nivel de abstraccin de
una clase de anlisis es relativamente alto.
Conforme el diseo evoluciona se definir un conjunto de clases de diseo que refinan las clases
de anlisis, dando detalles del diseo que permitirn que las clases se implementen.
Pueden desarrollarse cinco tipos de clases de diseo, cada una representa una capa distinta de la
arquitectura de diseo.
DISEO DE LA ARQUITECTURA
QU ES? (1/2)
El diseo arquitectnico representa la estructura de los datos y de los componentes del programa
que se requieren para construir un sistema.
La arquitectura del sw es la estructura o estructuras del sistema, lo que comprende a los
componentes del sw, sus propiedades externas visibles y las relaciones entre ellas.
QU ES? (2/2)
Es una representacin que permite 1) analizar la efectividad del diseo para cumplir los
requerimientos establecidos, 2) considerar alternativas arquitectnicas en una etapa en la que
hacer cambios en el diseo es relativamente fcil y 3) reducir los riesgos asociados con la
construccin del software.
Pone nfasis en el papel de los componentes del software en cualquier representacin
arquitectnica.
PORQU ES IMPORTANTE LA ARQUITECTURA?
Las representaciones de la arquitectura del software permiten la comunicacin entre todas las
partes (participantes) interesadas en el desarrollo de un sistema.
La arquitectura resalta las primeras decisiones que tendrn un efecto profundo en todo el trabajo
de ingeniera de software.
La arquitectura constituye un modelo relativamente pequeo y asequible por la va intelectual
sobre cmo est estructurado el sistema y la forma en que sus componentes trabajan juntos.
GNEROS ARQUITECTNICOS (1/3)
El gnero arquitectnico es el que dicta el enfoque especfico para la estructura que deba
construirse. Implica una categora especfica dentro del dominio general del software. Dentro de
cada categora hay varias subcategoras.
A continuacin algunos de los gneros arquitectnicos para sistemas basados en software:
Inteligencia artificial: Sistemas que simulan el conocimiento humano.
Comerciales y no lucrativos. Para la operacin de una empresa
Comunicaciones: Proveen la infraestructura para transferir y manejar datos
GNEROS ARQUITECTNICOS (2/3)
Contenido de autor: Crean o manipulan artefactos de texto o multimedia.
Dispositivos: Interactan con el mundo fsico a fin de brindar algn servicio puntual a un
individuo.
Entretenimiento y deportes: Administran eventos pblicos que proveen una experiencia grupal de
entretenimiento.
Financieros: Proporcionan la infraestructura para transferir y manejar dinero y otros ttulos.
Juegos: Dan una experiencia de entretenimiento a individuos o grupos.
Gobierno: Dan apoyo a la conduccin y operaciones de uns institucin pblica.
Las arquitecturas centradas en los datos promueven la integralidad. Es decir, los componentes del
software pueden ser cambiados y agregarse otros nuevos, del cliente, a la arquitectura sin
problemas con otros clientes (porque los componentes del cliente operan en forma independiente).
ESTILOS DE ARQUITECTURA (4/9)
Arquitecturas de flujo de datos: Se aplica cuando los datos de entrada van a transformarse en
datos de salida a travs de una serie de componentes computacionales o manipuladores. Un patrn
de tubo y filtro tiene un conjunto de componentes llamados filtros, conectados por tubos que
transmiten datos de un componente al siguiente. Cada filtro trabaja en forma independiente de
aquellos componentes que se localizan arriba o abajo del flujo: se disea para esperar una entrada
de datos de cierta forma y produce datos de salida.
ESTILOS DE ARQUITECTURA (5/9)
PATRONES ARQUITECTNICOS
Los patrones arquitectnicos se abocan a un problema de aplicacin especfica dentro de un
contexto dado y sujeto a limitaciones y restricciones . El patrn propone una solucin
arquitectnica que sirve como base para el diseo de la arquitectura.
La mayora de las aplicaciones caen dentro de un gnero especfico y para stas son apropiados
uno o ms estilos de arquitectura, pero dentro de estos estilos se encontrarn una serie de
problemas comunes que se abordan mejor con patrones arquitectnicos especficos.
DISEO ARQUITECTNICO
Cuando comienza el diseo arquitectnico, el software que se va a desarrollar debe situarse en
contexto, es decir, el diseo debe definir las entidades externas (otros sistemas, dispositivos,
personas, etc.) con las que interacta el software y la naturaleza de dicha interaccin.
Una vez que se ha modelado el contexto y descrito todas las interfaces externas del software se
identifica un conjunto de arquetipos de arquitectura. Un arquetipo es una abstraccin (similar a
una clase) que representa un elemento de comportamiento del sistema.
DISEOARQUITECTNICO
REPRESENTACIN DEL SISTEMA EN CONTEXTO (1/4)
Un diagrama de contexto arquitectnico (DCA) se usa para modelar la manera en la que el
software interacta con entidades ms all de su frontera.
En la figura se ilustra la estructura general de un DCA. En ella los sistemas que interactan con
el sistema objetivo (aquel para el que se va a desarrollar un diseo arquitectnico) estn
representados como sigue:
Sistemas superiores: aquellos que utilizan al sistema objetivo como parte de algn esquema de
procesamiento de alto nivel.
DISEOARQUITECTNICO
REPRESENTACIN DEL SISTEMA EN CONTEXTO (2/4)
DISEO ARQUITECTNICO
REPRESENTACIN DEL SISTEMA EN CONTEXTO (3/4)
Sistemas subordinados: los que son usados por el sistema objetivo y proveen datos o
procesamiento que son necesarios para completar las funciones del sistema objetivo
Sistemas entre iguales (pares): son los que interactan sobre una base de igualdad (por ejemplo
la informacin se produce o consume por los iguales y por el sistema objetivo)
Actores: entidades (personas, dispositivos, etc.) que interactan con el sistema objetivo mediante
la produccin o consumo de informacin que es necesaria para el procesamiento de los
requerimientos.
Cada una de estas entidades externas se comunica con el sistema objetivo a travs de una interfaz
(rectngulos pequeos sombreados)
.
DISEO
REPRESENTACIN DEL SISTEMA EN CONTEXTO (4/4)
ARQUITECTNICO
DISEO
DEFINICIN DE ARQUETIPOS (1/3)
ARQUITECTNICO
Un arquetipo es una clase o un patrn que representa una abstraccin fundamental de importancia
crtica para el diseo de una arquitectura para el sistema objetivo.
La arquitectura del sistema objetivo est compuesta de estos arquetipos, que representan
elementos estables de la arquitectura.
En muchos casos los arquetipos se obtienen con el estudio de las clases de anlisis.
DISEO
DEFINICIN DE ARQUETIPOS (2/3)
ARQUITECTNICO
DISEO
DEFINICIN DE ARQUETIPOS (3/3)
ARQUITECTNICO
DISEO
REFINAMIENTO HACIA LOS COMPONENTES
ARQUITECTNICO
Conforme la arquitectura se refina hacia los componentes, comienza a emerger la estructura del
sistema. Para elegir los componentes se empieza con las clases descritas en el modelo de
requerimientos, que representan entidades dentro del dominio de aplicacin (negocio). Otra
fuente de obtencin y refinamiento de componentes es el dominio de la infraestructura. La
arquitectura debe albergar muchas componentes de la infraestructura que hagan posible los
componentes de la aplicacin. Por ejemplo, los componentes de administracin de memoria, de
comunicacin, de BD, con frecuencia estn integrados a la arquitectura de software.
DISEO
REFINAMIENTO HACIA LOS COMPONENTES
ARQUITECTNICO
DISEO
REFINAMIENTO HACIA LOS COMPONENTES
ARQUITECTNICO
DISEO
DESCRIPCIN DE LAS INSTANCIAS DEL SISTEMA
ARQUITECTNICO
A pesar del refinamiento anterior aun est en un nivel relativamente alto. Es necesario ms
refinamiento (diseo iterativo).
Para lograr ello se disean instancias de la arquitectura. Esto significa que la arquitectura se aplica
a un problema especfico con objeto de demostrar que tanto ella como sus componentes son
apropiados.
La figura 9 ilustra instancias de la arquitectura CasaSegura para el sistema de seguridad. Por
ejemplo, el componente administracin de detectores interacta con un componente
infraestructura programador que implementa la prueba de cada objeto sensor usado por el sistema
DISEO
DESCRIPCIN DE LAS INSTANCIAS DEL SISTEMA
ARQUITECTNICO
Qu es?
Durante el diseo arquitectnico se define un conjunto de componentes de software. Pero las
estructuras internas de datos y detalles de procesamiento de cada componente no estn
representados en un nivel de abstraccin cercano al cdigo
El diseo en el nivel de componentes define las estructuras de datos, algoritmos, caractersticas
de la interfaz y mecanismos de comunicacin asignados a cada componente del software.
Por qu es importante?
Antes de elaborar el software se tiene que ser capaz de determinar si funcionar. El diseo en el
nivel de componentes lo representa en forma tal que permite revisar los detalles del diseo para
garantizar su correccin y su consistencia con otras representaciones del diseo (por ejemplo, los
datos y el diseo de la arquitectura y la interfaz). Esto proporciona un medio para evaluar si
funcionarn las estructuras de datos, interfaces y algoritmos.
Cules son los pasos?
Las representaciones de diseo de datos, arquitectura e interfaces constituyen el fundamento para
el diseo en el nivel de componentes. La definicin de clase o narrativa de procesamiento de cada
componente se traduce a un diseo detallado que utiliza formas de diagrama o basadas en texto
que especifican las estructuras de datos internas, los detalles de la interfaz local y la lgica del
procesamiento. Se incluye diagramas UML y formatos complementarios.
La visin tradicional
En el contexto de la ingeniera de software tradicional, un componente es un elemento funcional
de un programa que incorpora la lgica del procesamiento, las estructuras de datos internas que
se requieren para implantar la lgica del procesamiento y una interfaz que permite la invocacin
del componente y el paso de los datos. Se obtienen a partir del elemento de datos orientado al
flujo del modelo de anlisis. Siguiendo con el ejemplo del taller de impresin, en la figura 2 se
aprecia el mapeo de la arquitectura.
La visin tradicional
En la figura 4 se ilustra una forma de seguir el PAC para la clase Detector. La interfaz sensor
presenta una consistente visin de los componentes sensores para los detectores. Si se agregara
un nuevo tipo de sensor, no se requerir hacer ningn cambio para la clase Detector
(componente). Se preservar el PAC.
Cohesin
En el nivel de componentes para los sistemas orientados a objetos, la cohesin implica que un
componente o clase slo contiene atributos y operaciones que se relacionan de cerca uno con el
otro y con la clase o componentes en s. Algunos autores tambin definen varios tipos de cohesin:
Funcional: Lo tienen sobre todo las operaciones; este nivel de cohesin ocurre cuando un
componente realiza un clculo y luego devuelve el resultado.
De capa: Lo tienen los paquetes, componentes y clases, este tipo de cohesin ocurre cuando una
capa ms alta accede a los servicios de otra ms baja, pero stas no tienen acceso a las superiores.
Cohesin
En la figura se define un conjunto de paquetes en capas para hacer una llamada si se detecta una
alarma. Los paquetes sombreados contienen componentes de infraestructura. Es posible realizar
el acceso del paquete del panel de control hacia abajo
Cohesin
De comunicacin: Todas las operaciones que accede a los mismos datos se definen dentro de una
clase. En general, tales clases se centran nicamente en los datos en cuestin, acceden a ellos y
los guardan.
Las clases y componentes que tienen cohesin funcional, de capa y comunicacin son
relativamente fciles de implantar, probar y mantener. Siempre que sea posible, deben alcanzarse
estos niveles de cohesin. Sin embargo, es importante notar que en ocasiones hay aspectos
pragmticos del diseo y de la implantacin que obligan a optar por niveles de cohesin ms
bajos.
Acoplamiento
El acoplamiento es la medicin cualitativa del grado en que las clases se conectan una con otra.
Conforme las clases (y componentes) se hacen ms interdependientes, el acoplamiento crece. Un
objetivo importante del diseo en el nivel de componentes es mantener el acoplamiento tan bajo
como sea posible. El acoplamiento de las clases se manifiesta de varias maneras. Se pueden definir
las siguientes categoras de acoplamiento:
Acoplamiento de contenido: Tiene lugar cuando un componente modifica subrepticiamente
(ocultamente) datos internos en otros componentes. Esto viola el ocultamiento de la informacin,
concepto bsico del diseo.
Acoplamiento
Acoplamiento comn: Sucede cuando cierto nmero de componentes hacen uso de una variable
global. Aunque a veces esto es necesario (Por ejemplo, para establecer valores definidos que se
utilizan en toda la aplicacin), el acoplamiento comn lleva a la propagacin incontrolada del
error y a efectos colaterales imprevistos cuando se hacen los cambios.
Acoplamiento de control: Tiene lugar si la operacin A() invoca a la operacin B() y le pasa una
bandera de control. La bandera dirige entonces el flujo de la lgica dentro de B. El problema
con esta forma de acoplamiento es que un cambio no relacionado en B puede dar como resultado
la necesidad de cambiar el significado de la bandera de control que pasa A. Si esto se pasa por
alto ocurrir un error.
Acoplamiento
Acoplamiento de molde: Se presenta cuando se declara a ClaseB como un tipo para un argumento
de una operacin de ClaseA. Como ClaseB ahora forma parte de la definicin de ClaseA, la
modificacin del sistema se vuelve ms compleja.
Acoplamiento de datos: Ocurre si las operaciones pasan cadenas largas de argumentos de datos.
El ancho de banda de la comunicacin entre clases y componentes crece y la complejidad de la
interfaz se incrementa. Se hace ms difcil hacer prueba y mantenimiento.
Acoplamiento de rutina de llamada: Tiene lugar cuando una operacin invoca a otra. Este nivel
de acoplamiento es comn y con frecuencia muy necesario. Sin embargo, aumenta la conectividad
del sistema.
Acoplamiento
Acoplamiento de tipo de uso: Ocurre si el componente A usa un tipo de datos definidos en el
componente B (esto ocurre siempre que una clase declara una variable de instancia o una variable
local como si tuviera otra clase para su tipo. Si cambia la definicin de tipo, tambin debe
cambiar todo componente que la utilice.
Acoplamiento de inclusin o importacin: Pasa cuando el componente A importa o incluye un
paquete o el contenido del componente B.
Acoplamiento externo: Sucede si un componente se comunica o colabora con componentes de
infraestructura (por ejemplo, funciones del sistema operativo, capacidad de la base de datos,
funciones de telecomunicacin, etc.). Aunque este tipo de acoplamiento es necesario, debe
limitarse a un nmero pequeo de componentes o clases dentro de un sistema.
Figura 10
Figura 11
Por qu es importante?
Si el software es difcil de usar fuerza al usuario a cometer errores, o si frustra sus esfuerzos para
alcanzar las metas, entonces no le gustar, sin que importe el poder computacional que tenga, el
contenido que entregue o las funciones que ofrezca. La interfaz tiene que estar bien hecha porque
moldea la percepcin que el usuario tiene del software.
Figura 1
Revelar informacin de manera progresiva. La interfaz debe estar organizada de manera
jerrquica. Es decir, la informacin acerca de una tarea, objeto o comportamiento debe presentarse
primero en un nivel de generalizacin elevado. Despus de que con el ratn el usuario manifieste
inters, deben darse ms detalles. Ejemplo la funcin de subrayar.
Mantener la consistencia en toda la familia de aplicaciones. Todas las aplicaciones que hay en
un grupo deben implementar las mismas reglas de diseo a fin de que se mantenga la consistencia
en toda la interaccin.
Figura 2
2. Contenidos de la ponencia
2.1. Interfaces
Qu es una interfaz de usuario
Facilidad
uso
Medidas de la usabilidad
no
son
contrapuestos
sino
Diseo
Implementacin
Medicin
Evaluacin
Diseo
Implementacin
Medicin
(Test
usabilidad)
Evaluacin
de
2Batallas
listas
de
3Guerra
productividad
de
4- Transparencia
La
salida
es
redefinir
Entonces, se vuelve al segundo estadio.
el
mercado.
Para ello son de gran utilidad las metforas, que asocian un dominio nuevo a uno ya conocido
por el usuario. Un ejemplo tpico es la metfora del escritorio, comn a la mayora de las
interfaces grficas actuales.
Modelo del diseador: El diseador mezcla las necesidades, ideas, deseos del usuario y los
materiales de que dispone el programador para disear un producto de software. Es un
intermediario entre ambos.
El modelo del diseador describe los objetos que utiliza el usuario, su presentacin al mismo y
las tcnicas de interaccin para su manipulacin. Consta de tres partes: presentacin, interaccin
y relaciones entre los objetos (Figura 1).
La presentacin es lo que primero capta la atencin del usuario, pero ms tarde pasa a un
segundo plano, y adquiere ms importancia la interaccin con el producto para poder satisfacer
sus expectativas. La presentacin no es lo ms relevante y un abuso en la misma (por ejemplo,
en el color) puede ser contraproducente, distrayendo al usuario.
La segunda parte del modelo define las tcnicas de interaccin del usuario, a travs de diversos
dispositivos.
La tercera es la ms importante, y es donde el diseador determina la metfora adecuada que
encaja con el modelo mental del usuario. El modelo debe comenzar por esta parte e ir hacia
arriba. Una vez definida la metfora y los objetos del interfaz, los aspectos visuales saldrn de
una manera lgica y fcil.
Estos modelos deben estar claros para los participantes en el desarrollo de un producto, de forma
que se consiga una interfaz atractiva y a la vez efectiva para el trabajo con el programa.
Una interfaz no es simplemente una cara bonita; esto puede impresionar a primera vista pero
decepcionar a la larga. Lo importante es que el programa se adapte bien al modelo del usuario,
cosa que se puede comprobar utilizando el programa ms all de la primera impresin.
Modelo del programador: Es el ms fcil de visualizar, al poderse especificar formalmente. Est
constituido por los objetos que manipula el programador, distintos de los que trata el usuario
(ejemplo: el programador llama base de datos a lo que el usuario podra llamar agenda). Estos
objetos deben esconderse del usuario.
Los conocimientos del programador incluyen la plataforma de desarrollo, el sistema operativo,
las herramientas de desarrollo y especificaciones. Sin embargo, esto no significa necesariamente
que tenga la habilidad de proporcionar al usuario los modelos y metforas ms adecuadas.
Muchos no consideran el modelo del usuario del programa, y s sus propias expectativas acerca
de cmo trabajar con la computadora.
2. Principios para el Diseo de Interfaces de Usuario
Existen principios relevantes para el diseo e implementacin de IU, ya sea para las IU
grficas, como para la Web.
Anticipacin
En la Figura se ilustra como el procesador de texto se anticipa a las necesidades del usuario,
proporcionando las caractersticas del texto seleccionado -fuente, tamao, alineacin, etc.permitiendo que el usuario pueda modificarlas gilmente.
Autonoma
Consistencia
Para lograr una mayor consistencia en la IU se requiere profundizar en diferentes aspectos que
estn catalogados en niveles. Se realiza un ordenamiento de mayor a menor consistencia:
Ley de Fitt
El tiempo para alcanzar un objetivo es una funcin de la distancia y tamao del objetivo. Es por
ello, que es conveniente usar objetos grandes para las funciones importantes.
Interfaces Explorables
Siempre que sea posible se debe permitir que el usuario pueda salir gilmente de la IU, dejando
una marca del estado de avance de su trabajo, para que pueda continuarlo en otra oportunidad.
Para aquellos usuarios que sean noveles en el uso de la aplicacin, se deber proveer de guas
para realizar tareas que no sean habituales.
Los objetos de interfaz humana no son necesariamente los objetos que se encuentran
en los sistemas orientados a objetos. Estos pueden ser vistos, escuchados, tocados o
percibidos de alguna forma. Adems, estos objetos deberan ser entendibles,
consistentes y estables.
Uso de Metforas
Las buenas metforas crean figuras mentales fciles de recordar. La IU puede contener
objetos asociados al modelo conceptual en forma visual, con sonido u otra caracterstica
perceptible por el usuario que ayude a simplificar el uso del sistema.
Curva de Aprendizaje
Reduccin de Latencia
Siempre que sea posible, el uso de tramas (multi-threading) permite colocar la latencia
en segundo plano (background). Las tcnicas de trabajo multitarea posibilitan el trabajo
ininterrumpido del usuario, realizando las tareas de transmisin y computacin de datos
en segundo plano.
Se debe poder asegurar que el usuario nunca pierda su trabajo, ya sea por error de su
parte, problemas de transmisin de datos, de energa, o alguna otra razn inevitable.
Legibilidad
Interfaces Visibles
El uso de Internet, ha favorecido la implementacin de interfaces invisibles. Esto significa que el
usuario siempre ve una pgina especfica, pero nunca puede conocer la totalidad del espacio de
pginas de Internet. La navegacin en las aplicaciones debe ser reducida a la mnima expresin.
El usuario debe sentir que se mantiene en un nico lugar y que el que va variando es su trabajo.
Esto no solamente elimina la necesidad de mantener mapas u otras ayudas de navegacin, sino
que adems brindan al usuario una sensacin de autonoma.
3. Utilizacin de Prototipos en la Implementacin de IU
Niveles de Prototipado
Se puede hacer una clasificacin de los principales tipos de prototipos, variando su grado de
complejidad, de acuerdo a las caractersticas que consideren y a su operabilidad para realizar
simulaciones.
Prototipos Estticos: son aquellos que no permiten la alteracin de sus componentes,
pero sirven para identificar y resolver problemas de diseo. En esta categora se incluyen
las presentaciones sobre reproductores, papel u otro medio de visualizacin.
Prototipos Dinmicos: permiten la evaluacin de un modelo del sistema sobre una
estacin de trabajo o una terminal. Estos prototipos involucran aspectos de diseo mas
detallados que los prototipos estticos, incluyendo la validacin del diseo del sistema
en trminos de requerimientos no funcionales, por ejemplo de performance.
Prototipos Robustos: deben ser relativamente completos en la simulacin de las
caractersticas dinmicas de la interfaz (presentacin de mensajes de error, entrada y
edicin de datos, etc.). Esta categora puede ser utilizada para validar los objetivos de
diseo.
El nivel de sofisticacin del prototipo debera incrementarse a lo largo del proceso de diseo
de interfaces de usuario. La informacin recolectada durante las tareas de anlisis del sistema y
la especificacin de los requisitos del usuario constituyen los datos clave para el proceso de
prototipacin.
4. Heursticas para la Evaluacin de IU
Las heursticas ayudan a poder analizar las IU y localizar problemas que afecten la utilizacin de
las
mismas.
Algunas pautas para evaluar una IU son:
Visibilidad del estado del sistema
Semejanza del sistema al mundo real
Control y libertad por parte del usuario
Consistencia y estandarizacin
Prevencin de Errores
Reconocimiento de acciones y opciones
Flexibilidad y eficiencia en el uso
Esttica y diseo minimalista
Reconocimiento de errores, diagnstico y recuperacin
Ayuda y documentacin
Para establecer medidas que indiquen la severidad de los problemas en el uso de las interfaces,
se deben conocer los factores que determinan el grado de un problema:
La frecuencia de ocurrencia.
El impacto que causa la ocurrencia del problema.
La persistencia del problema.
El impacto en el mercado.
Descripcin de componentes
Barra de Ttulo: se utiliza para desplegar el ttulo de la pantalla desplegada. Si la ventana est
activa, la barra de titulo tendr un color diferente al resto de las ventanas desplegadas.
Men Principal: contiene un conjunto de botones que permiten desplegar la totalidad de las
pantallas del sistema.
Usuario del Sistema: indica el nombre del usuario que est utilizando el sistema, el cual ha sido
previamente ingresado con una contrasea como requisito para acceder al sistema.
Reloj del Sistema: indica la hora actual del sistema.
Area de Trabajo: es el lugar donde se despliegan las pantallas que son activadas a travs del
Men Principal.
Maximizar/Restaurar Ventana: botn que se utiliza para ampliar o reducir el tamao de la
pantalla.
Minimizar Ventana: control que se utiliza para quitar de primer plano de trabajo una ventana, sin
cerrarla.
Cerrar Ventana: control que se usa para cerrar una ventana.
Puede utilizarse para la descripcin de las pantallas, las operaciones que se especifican en los
diagramas de la Historia de Vida de las Entidades del sistema anteriormente presentado (AGA
2000). Cada operacin representa una pantalla diferente, por lo que se expondrn algunas de
ellas (Figuras 13 y 14) con el objeto de ilustrar el diseo de las mismas.
Opciones de Men
Avera
Operaciones
Alta avera, Actualizacin perodo Avera,
Borrado de avera.
Alta cliente, Modificar direccin, Emisin tarjeta,
Cancelacin tarjeta, Renovacin tarjeta.
Alta entrega, Borrar Entrega
Alta entrega / vehculo, Borrar entrega /
vehculo
Alta fabricante, Actualizar datos
Alta factura fabricante, Borrar factura fabricante
Alta modelo, Borrar modelo
Alta modelo/pedido, Borrar modelo/pedido
Alta oficina, Borrar oficina
Alta pago cliente, Borrar pago cliente
Alta pago fabricante, Borrar pago fabricante
Alta pedido, Borrar pedido
Alta reserva vehculo, Borrar reserva vehculo
Alta seguro, Modificar porcentaje seguro,
Borrar seguro
Cliente
Entrega
Entrega/Vehculo
Fabricante
Factura Fabricante
Modelo
Modelo/Pedido
Oficina
Pago Cliente
Pago Fabricante
Pedido
Reserva vehculo
Seguro
Avera
Cliente
Entrega
EntregaVehculo
Nro. Pedido
Fabricante
Fabricante
Direccin
Factura Cliente
Factura Fabricante
Modelo
Unidades
Modelo
Modelo/Pedido
Oficina
ACEPTAR
CANCELAR
Pago Cliente
Pago Fabricante
Pedido
>
Reserva Vehculo
Alta Pedido
Borrar Pedido
/
\
Seguro
Usuario: Perez_Juan
08:55:01
Avera
Cliente
Entrega
EntregaVehculo
Fabricante
>
Alta Fabricante
Factura Cliente
Actualizar Datos
\
/
Factura Fabricante
Modelo
Modelo/Pedido
Cdigo
Oficina
Nombre
Pago Cliente
Direccin
Pago Fabricante
Pedido
ACEPTAR
CANCELAR
Reserva Vehculo
Seguro
Usuario: Perez_Juan
08:55:01
Pensar en patrones
El buen diseo comienza con la consideracin del contexto: el panorama. Cuando se evala
el contexto, se extrae una jerarqua de problemas que deben resolverse. Algunos de stos
sern de naturaleza global, mientras que otros se abocarn a caractersticas y funciones
especficas del software.
Pensar en patrones
Se sugiere el siguiente enfoque que permite que un diseador piense en patrones:
1. Asegurarse de entender el panorama: el contexto en el que se encuentra el software que
se va a elaborar.
2. Estudiar el panorama, identificar los patrones presentes en el nivel de abstraccin.
3. Comenzar el diseo con patrones del panorama que establezcan un contexto o
esqueleto para el trabajo de diseo adicional.
Pensar en patrones
4. Trabajar dentro del contexto en busca de patrones en niveles ms bajos de abstraccin
que contribuyan a la solucin del diseo
5. Repetir los pasos 1 a 4 hasta que el diseo est completo.
6. Mejorar el diseo, adaptando cada patrn a las especificaciones del software que se
trata de elaborar.
Tareas de diseo
Cuando se utiliza una filosofa de diseo basado en patrones, se llevan a cabo las siguientes
tareas:
1. Examinar el modelo de requerimientos y desarrollar una jerarqua del problema.
2. Determinar si se ha desarrollado un lenguaje del patrn confiable para el dominio del
problema.
3. A partir de un problema amplio, determinar si para el mismo se dispone de uno o ms
patrones arquitectnicos.
4. Con el uso de colaboraciones provistas para el patrn arquitectnico, deben estudiarse
los problemas en el nivel de subsistema o componente, y buscar las patrones ms
apropiados para enfrentarlos.
5. Repetir los pasos 2 a 5 hasta que se hayan resuelto todos los problemas amplios.
6. Si los problemas de diseo de la interfaz de usuario han sido aislados (ste es el caso
casi siempre), buscar los muchos depsitos de patrones de la interfaz de usuario para
encontrar patrones apropiados.
7. Sin importar su nivel de abstraccin, si resulta promisorio un lenguaje de patrn o un
depsito de patrones o un patrn individual, hay que comparar el problema por resolver
con el patrn o patrones presentados.
8. Asegurarse de refinar el diseo a medida que se obtiene de los patrones, con el empleo
de criterios de calidad como gua.