Ingeniería de Software II
Ingeniería de Software II Competencia: Impl Implem emen enta tarr sist sistem emas as de infor informa maci ción ón de calid calidad ad,, a travé travéss de técn técnic icas as avanza avanzadas das de desarr desarroll ollo o de softw software are para para eficie eficienta ntarr los proces procesos os de las organizaciones Unidades Temáticas
I I. II. III .
Diseño de interfaz de usuario Documentación en en la la et etapa de de co codificación Pruebas de software Liberación de software
O!etivo de la asignat"ra: #l al"mno desarrollará "n sistema de información empleando las técnicas, metodologías $ %erramientas de dise&o, pr"eas $ lieración necesarias para garantizar la implementación, de ac"erdo a los re'"erimientos del cliente(
Unidad I( )ise&o de interfaz de Us"ario O!etivo de la Unidad #l al"mno dise&ará "n sistema de información aplicando los principios de "sailidad, estándares $ g"ías de estilo para me!orar la facilidad de "so( Temas de la Unidad:
Identificar los principios de Usabilidad: Interacción Consistencia Facilidad de Aprendizae Aprendizae !etroalimentación A"uda #standarización Accesibilidad Identificar los tipos de est$ndares: iure facto Identificar las %u&as de estilo.
P!I'CIPI() D# U)A*ILIDAD.
Ingeniería de Software II *a "sailidad es "n tema '"e está corando "na importancia cada vez ma$or en el desarrollo de software( + pesar de ello, la Ingeniería del Software sig"e centrándose casi ecl"sivamente en atri"tos del software más relacionados con el interior del sistema, como el rendimiento o la fiailidad( #n el entorno act"al, en el '"e los sistemas software están dirigidos a "n p-lico cada vez más amplio, a "s"arios cada vez menos epertos en el mane!o de sistemas informáticos, la "sailidad está destacándose como atri"to f"ndamental para el éito de "n prod"cto software( *a "sailidad se dee considerar como "n atri"to más de calidad del software, integrar la "sailidad en "n proceso de desarrollo de software no es fácil, el costo de introd"cir conceptos de "sailidad se !"stifica c"ando:
.ed"ce tiempos de desarrollo Incrementa las ventas /e!ora la prod"ctividad del "s"ario .ed"ce costos de soporte $ mantención
*a Usailidad se define en el est$ndar I)( +,- como 0el grado en el '"e "n prod"cto p"ede ser "tilizado por "s"arios específicos para conseg"ir o!etivos específicos con efectividad, eficiencia $ satisfacción en "n determinado conteto de "so1 2ISO345,
Atributos de Usabilidad *a "sailidad es "na c"alidad demasiado astracta como para ser medida directamente( 6ara poder est"diarla se descompone %ait"almente en los sig"ientes cinco atri"tos ásicos 27ielsen385: •
•
•
Facilidad de aprendizae: C"án fácil es aprender la f"ncionalidad ásica del sistema, como para ser capaz de realizar correctamente la tarea '"e desea realizar el "s"ario( Se mide normalmente por el tiempo empleado con el sistema %asta ser capaz de realizar ciertas tareas en m enos de "n tiempo dado 9el tiempo empleado %ait"almente por los "s"arios epertos( #ste atri"to es m"$ importante para "s"arios noveles( #ficiencia: #l n-mero de transacciones por "nidad de tiempo '"e el "s"ario p"ede realizar "sando el sistema( *o '"e se "sca es la máima velocidad de realización de tareas del "s"ario( C"anto ma$or es la "sailidad de "n sistema, más rápido es el "s"ario al "tilizarlo, $ el traa!o se realiza con ma$or rapidez( 7ótese '"e eficiencia del software en c"anto s" velocidad de proceso no implica necesariamente eficiencia del "s"ario en el sentido en el '"e a'"í se %a descrito( !ecuerdo en el tiempo: 6ara "s"arios intermitentes 9'"e no "tilizan el sistema reg"larmente es vital ser capaces de "sar el sistema sin tener '"e
Ingeniería de Software II
•
•
aprender cómo f"nciona partiendo de cero cada vez( #ste atri"to refle!a el rec"erdo acerca de cómo f"nciona el sistema '"e mantiene el "s"ario, c"ando v"elve a "tilizarlo tras "n periodo de no "tilización( /asa de errores: #ste atri"to contri"$e de forma negativa a la "sailidad de "n sistema( Se refiere al n-mero de errores cometidos por el "s"ario mientras realiza "na determinada tarea( Un "en nivel de "sailidad implica "na tasa de errores a!a( *os errores red"cen la eficiencia $ satisfacción del "s"ario, $ p"eden verse como "n fracaso en la transmisión al "s"ario del modo de %acer las cosas con el sistema( )atisfacción: ;ste es el atri"to más s"!etivo( /"estra la impresión s"!etiva '"e el "s"ario otiene del sistema(
+lg"nos de estos atri"tos no contri"$en a la "sailidad del sistema en la misma dirección, p"diendo oc"rrir '"e el a"mento de "no de ellos tenga como efecto la dismin"ción de otro( 6or e!emplo, esto p"ede oc"rrir con la facilidad de aprendiza!e $ la eficiencia( #s preciso realizar el dise&o del sistema c"idadosamente si se desea tanto "na alta facilidad de aprendiza!e como "na alta eficiencia< siendo el "so de aceleradores 9cominaciones de teclas '"e e!ec"tan operaciones de "so %ait"al la sol"ción más com-n para con!"gar amos atri"tos de "sailidad( *a "sailidad del sistema no es "na simple adición del valor de estos atri"tos, sino '"e se define para cada sistema como "n nivel a alcanzar para alg"nos de ellos( Estos cinco atributos pueden descomponerse a su vez para conseguir una mayor precisión en los aspectos de usabilidad en los que se quiere poner mayor énfasis. 6or e!emplo, rendimiento en "so normal $ "so
de opciones avanzadas son amos s"atri"tos de eficiencia, mientras '"e primera impresión es "n s"atri"to de satisfacción(
Principios de Usabilidad( *os => principios de la "sailidad del maestro ?a@o 7ielsen, p"licado por #d"ardo +g"a$o en 7oviemre del A>>B para Intel6CS asado en análisis %e"rístico de "sailidad(
. 0isibilidad del estado del sistema: #l sistema siempre dee mantener informado al "s"ario acerca de lo '"e está pasando, "tilizando para ello "n feedac@ adec"ado $ en "n tiempo razonale( ,. Concordancia entre el sistema " el mundo real: #l sistema dee %alar el leng"a!e del "s"ario, con palaras, frases $ conceptos familiares a él, más allá de los términos orientados al sistema( Se deen seg"ir las convenciones del m"ndo real, logrando '"e la información aparezca en "n orden lógico $ nat"ral( 1. Control " libertad del usuario : *os "s"arios escogen frec"entemente por error alg"nas f"nciones del sistema, $ necesitan de "na 0salida de emergencia1
Ingeniería de Software II claramente rot"lada, de modo '"e p"edan volver al estado anterior sin pasar por diálogos comple!os o etensos( /antenga $ de soporte para )es%acer $ .e%acer acciones(
-. Consistencia " est$ndares : *o "s"arios no deen lidiar con diferentes palaras, sit"aciones o acciones '"e signifi'"en lo mismo( Siga las convenciones de la plataforma( 2. Pre3ención de errores : +"n'"e "n mensa!e de error ien dise&ado es "eno, es m"c%o me!or c"idar el dise&o $ evitar los prolemas( Intente eliminar las posiilidades de error, o ien determine c"áles serían $ m"éstrelas a los "s"arios con "na opción de confirmación antes '"e realicen la acción( 4. !econocimiento antes 5ue llamadas: /inimice la carga nemotécnica del "s"ario entregando visiilidad a o!etos, acciones $ opciones( #l "s"ario no tiene por'"é recordar la información de "n diálogo anterior en presencia de otro( *as instr"cciones para el "so del sistema deen ser visiles o fácilmente accesiles c"ando es necesario( 6. Fle7ibilidad " eficiencia de uso: +celeradores, invisiles al "s"ario novato, deerían entregar rapidez en la interacción de los "s"arios epertos, de tal modo '"e el sistema satisfaga a amos( 6ermita a los "s"arios a"tomatizar acciones frec"entes( 8. Diseño est9tico " minimalista: *os diálogos no deen contener información '"e sea irrelevante o raramente necesitada( Cada it etra de información compite con a'"ella '"e es relevante, $ dismin"$e s" visiilidad relativa( +. A"ude a los usuarios a reconocer dia%nosticar " recuperarse de los errores : *os mensa!es de error deen ser epresados en "n leng"a!e nat"ral, sin códigos específicos del sistema( )een indicar con precisión el prolema, e indicar en forma constr"ctiva la posile sol"ción( ;. A"uda " documentación: +"n'"e se piense '"e lo me!or es '"e el sistema sea "tilizale sin man"ales ni g"ías de "so, siempre es necesario incl"ir alg-n tipo de a$"da $ doc"mentación( +l respecto, toda información proporcionada dee ser fácil de encontrar, enfocada en la tarea del "s"ario $ listando los pasos concretos a realizar, $ por sore todo, no ser demasiado larga( !elación entre la Usabilidad " la Interfaz
Ingeniería de Software II *a "sailidad de "n sistema está ligada principalmente a la interacción del mismo, al modo en '"e se realizan las operaciones con el sistema( #sta interacción no está definida en la interfaz gráfica, sino '"e está ligada en el código '"e implementa la f"ncionalidad del sistema( *a interfaz gráfica de "s"ario es la parte visile de tal interacción( #s cierto '"e la interfaz gráfica es "na parte importante del sistema, $ "n "en dise&o de la misma p"ede %acer '"e "n sistema a"mente s" nivel de "sailidad, pero "n sistema con "n dise&o de la interacción pore no p"ede me!orar s" nivel de "sailidad tan solo camiando la interfaz gráfica(
#)/A'DA!#) Un estándar es "n re'"isito, regla o recomendación asada en principios proados $ en la práctica( .epresenta "n ac"erdo de "n gr"po de profesionales oficialmente a"torizados a nivel local, nacional o internacional •
*os estándares p"eden ser:
*ocales
7acionales
Internacionales
#l o!etivo de los estándares es %acer las cosas más fáciles, definiendo características de o!etos $ sistemas '"e se "tilizan cotidianamente
#!emplos: teclado de teléfono, teclado D#.TE
Toda la ind"stria f"nciona con estándares
#!emplo: Constr"cción
Tamién la ind"stria informática
#stándares de pantallas, teclados, conectores, incl"so moiliario
#!emplo: Fla inclinación del teclado dee estar entre > $ AG gradosH
#stándares de la interfaz
(beti3o: conseg"ir "n software más fácil $ seg"ro, estaleciendo "nos re'"isitos mínimos de faricación, eliminando inconsistencias $ variaciones innecesarias en las interfaces(
Ingeniería de Software II eneficios de "tilizar #stándares
Una terminología común: 6ermite a los dise&adores disc"tir los mismos
conceptos $ %acer valoraciones comparativas
El mantenimiento y la evolución: Todos los programas tienen la misma
estr"ct"ra $ el mismo estilo
Una identidad común: *o '"e %ace '"e todos los sistemas sean fáciles de
reconocer
Reducción en la formación: *os conocimientos son más fáciles de transmitir
de "n sistema a otro
Salud y seguridad: Si los sistemas %an pasado controles de estándares es
difícil '"e tengan comportamientos inesperados( Tipos de estándares
#stándares de iure
#stándares de facto
#)/='DA!#) D# IU!#
Son generados por comit9s con estat"s legal $ gozan del apo$o de "n goierno o instit"ción para prod"cir estándares( 6ara %acer "n estándar de iure se %a de seg"ir "n proceso comple!o:
)oc"mento preliminar p-lico
#nmiendas
+proación 9tras cierto tiempo, a veces a&o #!emplo: +nsi C
#n Informática tienen estat"s legal para definir estándares de iure: ISO
+sociación Internacional para #stándares
I#C
Comisión #lectrotécnica Internacional
+7SI
Instit"to 7acional +mericano para #stándares
I###
Instit"to de Ingenieros #léctricos $ #lectrónicos +mericano
Ingeniería de Software II C#7
Comité #"ropeo para la #standarización
D8C
Consorcio para la Dorld Dide De
+lg"nos estándares de i"re de los más importantes son: •
•
• • • •
•
ISOJI#C 3=AB: #val"ación de prod"ctos software: características de calidad $ directrices para s" "so ISO 3AK=: re'"isitos ergonómicos para traa!ar con terminales de presentación vis"al 9L)T ISOJI#C =>MK=: interacción de diálogos ISOJI#C ==G4=: símolos $ f"nciones de los iconos ISO ==>BK: dise&o ergonómico de centros de control ISO =8K>B: re'"isitos ergonómicos para traa!ar con presentaciones vis"ales asadas en paneles planos ISO =8K>M: procesos de dise&o centrados en la persona para sistemas interactivos
+lg"nos aspectos c"iertos por la ISO 3AK= 9re'"isitos ergonómicos para traa!ar con terminales de presentación vis"al: • • • • • • • •
.e'"isitos de la presentación vis"al .e'"isitos de teclado )ise&o de estaciones de traa!o $ re'"isitos de las post"ras .e'"isitos para colores vis"alizados .e'"isitos para dispositivos de entrada noNteclado 6resentación de información )iálogos de men-s )iálogos para completar form"larios
Ingeniería de Software II #)/A'DA!#) D# FAC/( Son estándares '"e nacen a partir de prod"ctos de la ind"stria '"e tienen "n gran éito en el mercado o desarrollos %ec%os por gr"pos de investigación en la Universidad '"e tienen "na gran dif"sión Son aceptados como tales por s" uso %eneralizado, s" definición se enc"entra en man"ales, liros o artíc"los, #!emplos: • • •
Sistema NDindows *eng"a!e C 7ormas CU+
P"ías de estilo comerciales P"ías de estilo corporativas
*a principal venta!a es '"e aseg"ran "na me!or "sailidad mediante la consistencia '"e imponen( #n el leng"a!e ind"strial se %ace referencia a las g"ías de estilo como el look and feel
P"ías de estilo comerciales Son prod"cidas por faricantes de software $ %ardware, $ son en general estándares de facto
+pple
/otif
OSJA
Dindows
Open *oo@
Ingeniería de Software II
C)#, Common )es@top #nvironment
?ava Swing
#!emplo de +pple 9=34G
Ingeniería de Software II
Sistema de ventanas
Ingeniería de Software II
Motif
Wind ows
OS/ 2
6rincipios ásicos de dise&o
*os "s"arios tienen el control del diálogo
*os "s"arios tienen '"e desarrollar "n modelo concept"al de la i nterfaz
Uso de metáforas
/etáfora de la soremesa: los "s"arios ven carpetas $ doc"mentos, no programas $ arc%ivos( #l sistema estalece la asociación datosNprogramas
Sistema dirigido por el "s"ario
Consistencia
Ingeniería de Software II
Qacer la interfaz transparente
/odelo gráfico
*as aplicaciones comparten la pantalla
Cada "na tiene asignada "na parte o ventana
Lentana activa: a'"ella con la '"e el "s"ario interacciona
7iveles del modelo gráfico:
6resentación +cciones Interacción
Presentación.
.epresenta el aspecto vis"al de la interfaz
*as aplicaciones tienen dos tipos de elementos '"e %a$ '"e presentar:
O!etos
C"al'"ier cosa '"e el "s"ario p"eda manip"lar
Son el centro de atención del "s"ario
+cciones
6ermiten al "s"ario crear o manip"lar o!etos
Se realizan mediante cominaciones de men-s $ ca!as de diálogo
Acciones
/en-s
/en-s desplegales
/en-s en cascada 9no más de dos niveles
Ingeniería de Software II
Tipos de ca!as de diálogo
7o modal
6ermite a los "s"arios contin"ar con s" traa!o sin completar el diálogo
/odal
.e'"iere '"e los "s"arios completen la ca!a de diálogo antes de contin"ar
Ca!a de mensa!e #s "n tipo especial de ca!a de diálogo '"e se "tiliza ecl"sivamente para mostrar mensa!es a los "s"arios