Clase 11, 2/10/2007
-
Upload
christian-sifaqui -
Category
Documents
-
view
685 -
download
0
Transcript of Clase 11, 2/10/2007
![Page 1: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/1.jpg)
Metodologías de Análisis
Clase 11 – 2/10/2007
Christian Sifaqui
![Page 2: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/2.jpg)
Documento de especificación
Suficientemente informal para el clienteEl cliente no es un especialista computacional
Suficientemente formal para los desarrolladoresEs la única fuente de información para iniciar el
diseño
Estos dos requerimientos con contradictorios
![Page 3: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/3.jpg)
Documento de especificación
El documento de especificación es un contrato entre el cliente y los desarrolladores
Restricciones típicasPlazoEjecución en paraleloPortabilidadConfiabilidadTiempo de respuesta rápido
Para software en tiempo realSe deben cumplir duras restricciones de tiempo real
![Page 4: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/4.jpg)
Documento de especificación
Criterio de aceptaciónEs vital detallar una serie de tests
Si el producto pasa los tests, se supone que ha satisfecho sus especificaciones
Algún criterio de aceptación son repeticiones de restricciones
![Page 5: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/5.jpg)
Estrategia de solución
Una aproximación general para construir el producto
Encontrar estrategias sin preocuparse de las restriccionesEntonces modificar las estrategias a la luz de las
restricciones, si es necesarioMantener un registro escrito de todas las
estrategias descartadas y porqué se descartaronPara proteger al equipo de análisisPara prevenir desacertadas nuevas “soluciones” durante
la mantención post-entrega
![Page 6: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/6.jpg)
Especificaciones informales
Especificaciones informales se escriben en lenguaje natural
Ejemplo:“Si las ventas del mes actual están por debajo de las ventas objetivo, entonces se imprimirá un reporte, a menos que la diferencia entre las ventas objetivo y las ventas actuales sea menor que la mitad de la diferencia entre las ventas objetivo y las ventas actuales del mes previo, o si la diferencia entre las ventas objetivo y las ventas actuales para el mes actual está bajo un 5%”
![Page 7: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/7.jpg)
Especificaciones informales
Las ventas objetivos de enero fueron de US$100.000, pero la ventas actuales fueron sólo de US$64.000 (36% por debajo del objetivo)Imprimir el reporte
La ventas objetivo para febrero fue de US$120.000, las ventas actuales fueron sólo de US$100.000 (16,7% bajo el objetivo)
El porcentaje de diferencia para febrero (16,7%) es menor que la mitad de la diferencia del mes previo (36%), así que no se imprime el reporte
![Page 8: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/8.jpg)
Especificaciones informales
Las ventas objetivos de marzo fue de US$100.000, las ventas actuales US$98.000 (2% bajo el objetivo)El porcentaje de diferencia está bajo el 5%, así
que no se imprime el reporte
![Page 9: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/9.jpg)
Especificaciones informales no dicen
“diferencia entre ventas objetivo y ventas actuales”Pero en las especificaciones no se menciona el
porcentaje de diferencia
La diferencia en enero fue de US$36.000, la diferencia en febrero fue de US$20.000No menos que la mitad de 36.000, así que se imprime el
reporte
“Diferencia … 5%”Nuevamente no se menciona el porcentaje
![Page 10: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/10.jpg)
Especificaciones informales
Ambigüedad - ¿la cláusula se debería leer? “porcentaje de diferencia … de 5%” o “diferencia de US$5.000” u ¿otra cosa totalmente distinta?
El estilo es pobreLas especificaciones deberían indicar cuándo
se imprime el reporte
… en vez de indicar cuándo no se imprime
![Page 11: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/11.jpg)
Especificaciones informales
AfirmaciónEsto no puede aparecer en especificaciones
profesionales
RefutaciónCaso de procesamiento de texto
![Page 12: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/12.jpg)
Caso de estudio de prueba de correctitud
Problema de procesamiento de texto NaurDado un texto compuesto por palabras
separadas por caracteres espacio o nuevalínea, convertir a una forma línea a línea acorde a las siguientes reglas:
1.- se harán retorno de carros sólo donde el texto tenga espacio o nuevalínea
2.- cada línea se llenará tanto como sea posible, mientras
3.- la línea no tiene más de maxpos caracteres
![Page 13: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/13.jpg)
Caso de estudio de prueba de correctitud
1969: paper de Naur
Naur construyó un procedimiento (25 líneas en Algol 60) e informalmente probó su correctitud
![Page 14: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/14.jpg)
Caso de estudio de prueba de correctitud
1970: revisor en Computing ReviewsLa primera palabra de la primera línea está
precedida por un espacio a menos que la primera palabra sea exactamente maxpos caracteres
![Page 15: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/15.jpg)
Caso de estudio de prueba de correctitud
1971: London encontró 3 fallas másIncluyendo: el procedimiento no termina a
menos que se encuentre una palabra más larga que maxpos caracteres
![Page 16: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/16.jpg)
Caso de estudio de prueba de correctitud
1975: Goodenough y Gerhart encontraron 3 fallas másIncluyendo: la última palabra no será emitida a
menos que esté precedida por un espacio o nuevalínea
Goodenough y Gerhart definieron un nuevo conjunto de especificaciones, casi cuatro veces más largo que las de Naur
![Page 17: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/17.jpg)
Caso de estudio de prueba de correctitud
1985: Meyer detectó 12 fallas en las especificaciones de Goodenough y Gerhart
![Page 18: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/18.jpg)
Caso de estudio de prueba de correctitud
Las especificaciones de Goodenough y GerhartFueron construidas con gran cuidadoSe construyeron para corregir las especificaciones de
NaurPasaron por dos versiones, revisadas cuidadosamenteFueron escritas por expertos en especificacionesCon más tiempo del necesarioPara un producto de casi 30 líneas de largo
¿Qué probabilidad existe para escribir especificaciones sin errores para un producto real?
![Page 19: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/19.jpg)
Caso de estudio de prueba de correctitud
1989: Schach encontró una falla en las especificaciones de Meyer
El ítem 2.- de los requerimientos originales de Naur (“cada línea se llenará tanto como sea posible”) no se cumple
![Page 20: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/20.jpg)
Especificaciones informales
ConclusiónLenguaje natural NO es una buena manera de
especificar un producto
![Page 21: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/21.jpg)
Análisis clásico
![Page 22: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/22.jpg)
Análisis estructurado
Tres métodos gráficos de especificación de los 70’s
DeMarco
Gane and Sarsen
Yourdon
Son equivalentes
Son igualmente buenos
![Page 23: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/23.jpg)
Análisis estructurado
Muchas corporaciones de EE.UU. las usan para productos comerciales
El método Gane and Sarsen se enseña porque es ampliamente usado
![Page 24: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/24.jpg)
Estudio de caso de Sally Software Shop
Sally’s Software Shop (SSS) adquiere software de diversos proveedores y los vende al público. Paquetes de software populares se mantienen en stock, pero el resto se ordena cuando se solicita. Se les entrega crédito a instituciones y corporaciones, así como a algunos del público. A SSS le está yendo bien, con una rotación de 300 paquetes mensuales a un promedio de costo de US $250 cada uno. A pesar de su éxito, a Sally se la ha recomendado computarizar. ¿Debería?
![Page 25: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/25.jpg)
Estudio de caso de SSS
Mejor preguntar¿Qué funciones del negocio debería
computarizar?Pagos de cuentas
Recibos de cuentas
Inventario
Mejor aún¿Cómo? ¿Batch u on-line? ¿Desarrollo propio o
outsourcing?
![Page 26: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/26.jpg)
Estudio de caso de SSS
La clave fundamental¿Cuál es el objetivo de Sally al computarizar su
negocio?
¿Porque vende software?Ella necesita un sistema propio con efectos
deslumbrantes
¿Porque usa su negocio para lavar dinero?Ella necesita un producto que mantenga 5 tipos
diferentes de libros y sin auditoría financiera
![Page 27: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/27.jpg)
Estudio de caso de SSS
Se supone que Sally desea computarizar “para ganar más dinero”Se necesita desarrollar análisis costo-beneficio
para cada sección de su negocio
![Page 28: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/28.jpg)
Estudio de caso de SSS
El peligro de muchas aproximaciones estándares¡Primero producir la solución y después
encontrar cuál es el problema! “compremos un PC y de ahí vemos”
Método Gane and SarsenMétodo de nueve pasos
Se usa refinamiento sucesivo en muchos pasos
![Page 29: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/29.jpg)
Estudio de caso de SSS
El diagrama de flujo de datos (DFD) muestra el flujo lógico de datos“Lo que pasa, no cómo pasa”
![Page 30: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/30.jpg)
Estudio de caso de SSS
Símbolos
Cuadrado
dobleFuente o destino de datos
Flujo de datos
Rectángulo
redondeadoProceso que transforma un flujo de datos
Almacenamiento de datos
flecha
Rectángulo
abierto
![Page 31: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/31.jpg)
Paso 1: crear el DFD
Primer refinamientoNúmero infinito de posibles interpretaciones
CLIENTE procesar_órdenes
detalles_paquete
PAQUETE_DE_DATOS
estado_crédito
DATOS_CLIENTE
pedido
factura
![Page 32: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/32.jpg)
Paso 1
Segundo refinamientoÓrdenes pendientes se revisan diariamente
CLIENTEverificar_si_orden_
válida
detalles_paquete
PAQUETE_DE_DATOS
estado_crédito
pedido
DATOS_CLIENTE
ensamblar_
órdenes
ÓRDENES_
PENDIENTES
PROVEEDOR_
DE_SOFTWARE
poner_orden_
a_proveedor_
de_software
dirección_o_número_telefónico
detalles_de_paquete_a_ordenar
detalles_paquete_disponiblefactura
grupo_de_órdenes
![Page 33: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/33.jpg)
Paso 1
Porción del tercer refinamiento
CLIENTEverificar_si_orden_
válida
detalles_paquete
PAQUETE_DE_DATOS
estado_crédito
pedido
DATOS_CLIENTE
ensamblar_
órdenes
detalles_paquete_a_ordenar
detalles_paquete_disponible
factura crear_
factura
dirección
detalles_entrega
detalles_paquete_recibido_de_agencia_softwareguía_despacho
![Page 34: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/34.jpg)
Paso 1
El DFD final es mucho más grandepero es entendido fácilmente por el cliente
Cuando se trabaje con DFD grandesDefinir una jerarquía de DFDs
Una caja se convierte en DFD en nivel inferior
![Page 35: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/35.jpg)
Paso 2: decidir qué partes computarizar y cómo
Depende de cuánto está dispuesto a invertir el cliente
Grandes volúmenes, controles firmesBatch
Pequeños volúmenes, microcomputadores in-houseOn-line
Análisis costo-beneficio
![Page 36: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/36.jpg)
Paso 3: determinar los detalles de los flujos de datos
Determinar los ítemes de datos para cada flujo de dato
Refinar sucesivamente cada flujoEjemplo:
Orden:
identificación_orden
detalles_cliente
detalles_paquete
Se necesita un diccionario de datos para productos grandes
![Page 37: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/37.jpg)
Ejemplo de entradas de diccionario de datos
Nombre de elemento de datos
descripción Narrativa
orden Registro que comprende los campos: Identificación_orden Detalles_cliente Dirección_cliente … Detalles_paquete Nombre_paquete Precio_paquete
Los campos contienen todos los detalles de una orden
Identificación_orden Entero 12-dígitos Número único generado por el procedimiento genear_número_orden. Los primeros 10 dígitos contienen el número de orden y os últimos 2 son dígitos de chequeo
Verificar_órden_válida Procedimiento: Parámetro de entrada: órden Parámetro de salida: número_de_errores
Este procedimiento toma la orden como entrada y chequea la validez de cada campo; por cada error encontrado, se muestra un mensaje apropiado (el número total de errores encontrados se retorna en el parámetro número_de errores)
![Page 38: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/38.jpg)
Paso 4: definir la lógica de los procesos
Se tiene el proceso entregar_descuento_educacionalSally debe explicar el descuento que ella
entrega a instituciones educacionales10% para más de 4 paquetes
15% en 5 ó mas
![Page 39: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/39.jpg)
Paso 4: definir la lógica de los procesos
Traducir esto a un árbol de decisión
entregar_descuento_educacional
Institución
educacional
≤ 4 paquetes: 10%
Otros: 0%
> 4 paquetes: 15%
![Page 40: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/40.jpg)
Paso 4: definir la lógica de los procesos
La ventaja de un árbol de decisiónDetectar olvidos es muy fácil
![Page 41: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/41.jpg)
Paso 5: definir los almacenamientos de datos
Definir los contenidos exactos y su representación (formato)COBOL: especificar a nivel pic
ADA: especificar digits o delta
![Page 42: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/42.jpg)
Paso 5: definir los almacenamientos de datos
Especificar donde se requiera acceso inmediatoDiagrama de acceso inmediato de datos (DIAD)
Acceso a Paquete de datos por nombre, por función o por máquina, pero no por precio
![Page 43: Clase 11, 2/10/2007](https://reader033.fdocuments.ec/reader033/viewer/2022052908/5596feeb1a28abb3778b475e/html5/thumbnails/43.jpg)
Paso 5: definir los almacenamientos de datos
nombre
máquinafunción PAQUETE_DE_DATOS
nombre
precio
función
máquina
Diagrama de acceso inmediato de datos (DIAD)