Laboratorio No 2_Calidad del Software

Anuncio
CEET - Distrito Capital
Programa de Formación:
ADSI 150752 – TRIMESTRE VI
Conocimiento de Proceso: Aplicar los estándares de calidad involucrados en los procesos de desarrollo
de software, siguiendo el plan establecido para mantener la integridad de los productos de trabajo definidos,
según las prácticas de configuración establecidas por la empresa.
Instructor: Ing. Espec. Javier Vaquiro
Laboratorio No. 2
(Calidad del Software)
OBJETIVO: Aprender a evaluar la Calidad de un producto de Software a través
de los diferentes factores propuestos por los modelos y estándares de calidad.
Ejercicio 1 . Encontrar ejemplos concretos de dependencias de aplicaciones para con el
sistema operativo o con el hardware. ¿Por qué razón estas dependencias pueden afectar la
calidad del software?
Ejercicio 2 . Uno de los sistemas operativos más utilizados en el mundo es Microsoft
Windows . Evaluar el cumplimiento de los distintos factores externos de calidad de software
para este sistema operativo, indicando qué versión del mismo se está evaluando. Analizar si
las sucesivas versiones introducidas mejoraron el cumplimiento de alguno de los factores
identificados.
Ejercicio 3 . Se denominó “problema Y2K” a la incapacidad de un sistema de
software de representar fechas usando cuatro dígitos para codificar los años. A fines del
año 1999 mucho dinero fue invertido en la actualización de los sistemas que no estaban
preparados para el cambio de siglo. ¿Qué factor o factores de calidad de software no
cumplían los sistemas alcanzados por el problema Y2K?
Ejercicio 4 . En el contexto del tema factores de calidad externos, considere la
siguiente métrica de usabilidad:
Usabilidad = 1 / (cantidad de clicks de ratón necesarios para llevar a cabo
una determinada tarea)
Elija dos usuarios de mail y determine el valor de la métrica “Usabilidad” para la tarea:
enviar un mail sin usar el teclado a una persona existente en la libreta de contactos y
adjuntando un archivo de texto ubicado en el directorio raíz. Conteste cuál de los dos
programas sería el "más usable" de acuerdo con los resultados obtenidos.
ADSI – Calidad del Software
Página 1
CEET - Distrito Capital
Programa de Formación:
ADSI 150752 – TRIMESTRE VI
Conocimiento de Proceso: Aplicar los estándares de calidad involucrados en los procesos de desarrollo
de software, siguiendo el plan establecido para mantener la integridad de los productos de trabajo definidos,
según las prácticas de configuración establecidas por la empresa.
Instructor: Ing. Espec. Javier Vaquiro
Ejercicio 6 . ¿Es posible medir la interfaz de un módulo? Proponer al menos dos
criterios que sirvan a tal efecto.
Ejercicio 5. En programación orientada a objetos, las Clases de tipo prívate son
procedimientos privados. ¿Por qué razón sería incorrecto afirmar que estos
procedimientos y funciones en java o PhP son en general reusables?
Ejercicio 7.
En el contexto del tema factores de calidad internos del software, una
métrica para medir la complejidad del código fuente en función de su contenido de
información es la métrica de Halstead, que se define de la siguiente manera y su unidad es
en bits:
Volumen = Longitud * Log2(Vocabulario)
donde :
Longitud = cantidad de todas las instancias de variables usadas
Vocabulario = cantidad de variables definidas.
Determine el volumen de las siguientes porciones de código y en base a ello decida cuál
de las dos contiene más contenido de información:
Procedure
BubbleSort(numbers:
Array of
Integer;
size
:
Integer); Var i, j,
temp : Integer; Begin
For i := size-1 DownTo 1 do
For j := 2 to i do
If (numbers[j-1] > numbers[j])
then
Begin
temp := numbers[j-1];
numbers[j-1] :=
numbers[j]; numbers[j]
:= temp;
End; End;
ADSI – Calidad del Software
Function
Array of
Integer)
Var i, p
LinearSearch(numbers :
Integer; size : Integer; x:
: Integer;
: Integer;
Begin
P := -1;
For i:=1 to size do
If numbers[i] = x then
P := i;
LinearSearch :=
p;
End;
Página 2
CEET - Distrito Capital
Programa de Formación:
ADSI 150752 – TRIMESTRE VI
Conocimiento de Proceso: Aplicar los estándares de calidad involucrados en los procesos de desarrollo
de software, siguiendo el plan establecido para mantener la integridad de los productos de trabajo definidos,
según las prácticas de configuración establecidas por la empresa.
Instructor: Ing. Espec. Javier Vaquiro
Ejercicio 8.
En el contexto del tema Factores de calidad externos del software,
considere la métrica para medir la portabilidad de un sistema que ya está operando en
un ambiente e1 y se desea migrar a un ambiente e2:
Portabilidad = 1 – ET / ER
donde ET es una medida de la cantidad de recursos necesarios para migrar el
sistema del ambiente e1 al ambiente destino e2, y ER es una medida de la cantidad
de recursos necesarios para crear el sistema para el ambiente destino e2.
Suponga que tenemos dos sistemas S1 y S2 que se desean migrar del sistema operativo
Windows XP al sistema operativo Windows Mobile Edition. Si adaptar a S1 cuesta
$4.000.000 en sueldos de programadores mientras que desarrollarlo desde cero cuesta
$10.000.000. En cambio, adaptar a S2 cuesta $2.800.000 pero desarrollarlo desde
cero cuesta $8.500.000.
a) Justifica tu respuesta adecuadamente, cuál de los dos sistemas es más portable.
b) Desde su punto de vista, explique cuál sería el problema de utilizar esta métrica en la
práctica.
Ejercicio 9.
Describir un sistema que no sea de software pero que presente una
organización basada en módulos, donde toda comunicación entre los distintos módulos se
realice a nivel de las interfaces. El sistema descripto, ¿en qué forma cumple las reglas y
principios de modularidad?
Ejercicio 10. ¿Es suficiente con que un lenguaje de programación soporte el concepto
de módulo, o en realidad hacen falta herramientas meta-lingüísticas (esto es, herramientas
fuera del lenguaje) adicionales para asegurar la calidad del software?
Ejercicio 11. El modelo en cascada completamente lineal del ciclo de vida del
software es usualmente impracticable. En este contexto, indicar cuál o cuáles son los
inconvenientes de este modelo.
Ejercicio 12. Un error común en ciencias de la computación es pensar que la
codificación insume la mayor parte del tiempo de desarrollo del software. Apelando a
la experiencia individual, establecer qué porcentaje de tiempo requieren aproximadamente
las fases de especificación de requerimientos, diseño, codificación, testeo y mantenimiento
en el desarrollo de un programa.
Ejercicio 13. Definir el concepto de riesgo en el desarrollo de software. Enumerar
algunos de los riesgos que deberían tenerse en cuenta a lo largo de la producción de
software.
ADSI – Calidad del Software
Página 3
CEET - Distrito Capital
Programa de Formación:
ADSI 150752 – TRIMESTRE VI
Conocimiento de Proceso: Aplicar los estándares de calidad involucrados en los procesos de desarrollo
de software, siguiendo el plan establecido para mantener la integridad de los productos de trabajo definidos,
según las prácticas de configuración establecidas por la empresa.
Instructor: Ing. Espec. Javier Vaquiro
Ejercicio 14. Explicar brevemente cómo funciona el modelo en espiral del ciclo de
vida del software. Los modelos en espiral o en cascada (con feedback), ¿se pueden usar
indistintamente? Justificar la respuesta suministrada.
Ejercicio 15. Explicar por qué está mal pensar que la Ingeniería de Software
(producción de software de alta calidad) consume mucho tiempo e interfiere con la
productividad del programador. Repasar la respuesta dada en el ejercicio 12. Con todo
esto en mente, ¿cuál sería la mejor estrategia para reducir los tiempos de
codificación?
Ejercicio 16. Si hoy es lunes y se debe entregar en una semana uno de los
proyectos de programación de esta asignatura, cuyo enunciado recién hoy está disponible
en fotocopiadora, proponer un plan coherente para desarrollar el programa en el plazo
previsto, considerando acomodar otras actividades prioritarias (por ej., asistir a clase o
dormir la cantidad necesaria de horas). Se debe tener en cuenta el siguiente dato
importante: la cátedra dispone sólo de una clase de consulta en donde resolver cualquier
eventualidad en relación al proyecto y la misma está acordada para el día jueves.
Ejercicio 17. En el contexto de la planificación descripta en el ejercicio anterior,
suponer que la impresora decide dejar de funcionar justo el día asignado para imprimir el
informe. Además, el informe se debe entregar junto al programa implementado. Comprobar
si la planificación propuesta es capaz de tolerar el fallo de la impresora, proponiendo como
manejar esta situación.
Ejercicio 18. En el contexto del tema gestión de riesgos, suponga que usted es el
dueño de una pequeña empresa de desarrollo de software, por ejemplo formada por cinco
programadores. Considere el riesgo asociado a la pérdida de todos los archivos de datos y
código fuente y conteste las siguientes preguntas:
a) ¿Cuáles son los riesgos asociados?
b) ¿Cuál es la probabilidad de pérdida asociada a esos riesgos?
c) ¿Cuál sería el costo monetario de recuperarse de los riesgos si éstos ocurrieran?
d) ¿Cuál sería el costo si ocurriera el peor escenario? ¿Cómo se puede hacer para
disminuir o eliminar el costo si ocurriera el peor escenario?
e) ¿Cuáles son las alternativas para atenuar los riesgos? ¿Cómo se controla
que las alternativas son efectivas y se están llevando a cabo correctamente?
f)
¿Las alternativas producen otros riesgos?
ADSI – Calidad del Software
Página 4
Descargar