Especificaciones de software. Acuerdo entre dos partes Especificaciones de requisitos ...
-
Upload
dolores-moya-carrasco -
Category
Documents
-
view
220 -
download
0
Transcript of Especificaciones de software. Acuerdo entre dos partes Especificaciones de requisitos ...
Especificaciones de
software
Especificaciones de software
Acuerdo entre dos partes Especificaciones de requisitos Especificaciones de diseño
Puede decirnos Qué hacer Cómo hacerlo División no tan clara
Uso de las especificaciones
Dar los requisitos del cliente.Dar los requisitos de diseño.Verificar la implementación.Como punto de referencia en el
mantenimiento. mantenimiento correctivo. mantenimiento adaptativo. mantenimiento perfectivo.
Cualidades de las especificaciones
Claras, no ambiguas y entendibles.
“Seleccionar es el proceso para designar áreas del documento sobre las cuales se quiera trabajar. La mayoría de las acciones de formateado requieren de dos pasos: primero se debe seleccionar el área donde se quiere trabajar y luego iniciar la acción apropiada”.
Cualidades de las especificaciones
Consistentes.
Completas Internamente.Respecto a los requisitos.
Estilos de especificaciones
Formales vs. informales
Operacionales vs. descriptivas.
Estilos de especificaciones
“Sea a un arreglo de n elementos. El resultado de ordenar a es un arreglo b de n elementos tal que el primer elemento de b es el mínimo de a (si varios elementos de a tienen el mismo valor, cualquiera de ellos es aceptable), el segundo elemento de b es el mínimo del arreglo de n-1 elementos obtenidos de a al remover su mínimo elemento; y así sucesivamente hasta que todos los n elementos de a hayan sido removidos”.
Estilos de especificaciones
“El resultado de ordenar a es un arreglo b el cual es una permutación de a y está ordenado”.
Estilos de especificaciones
Primero, a debe estar ordenado; donde la definición de “ordenado” se encuentra dada en la especificación descriptiva anterior.
Luego, cualquier elemento duplicado del arreglo ordenado debe ser eliminado del arreglo.
Conclusiones
No siempre existe una distinción muy clara entre las especificaciones descriptivas y operacionales.
No existe un estilo que sea adecuado para todo tipo de problema.
Ningún estilo garantizará la calidad de la especificación.
Modelos del
Análisis
Modelado del Análisis
Análisis Estructurado
Análisis Orientado a Objetos
Análisis EstructuradoElementos del modelo de análisis
Modelo de datos
¿Qué es un modelo?
MODELO REALIDAD
RepresentaciónAbstractade la realidad
Modelo de datosDiagramas de Entidad-Relación
Modelo de Datos ¿Cuáles son los objetos de datos primarios que
va a procesar el sistema? ¿Cuál es la composición de cada uno de estos
objetos y qué atributos los describen? ¿Cuál son las relaciones entre dichos objetos?
Primitivas de los DER Entidades Relaciones Atributos
Entidades y atributos
Entidad Abstracción de un objeto del mundo real. Representa una colección de objetos que tienen
propiedades comunes. Ejemplo: CLIENTE
Atributo Propiedad de una entidad Ejemplo: Nombre y apellido, edad, dirección, etc.
Instancia de una entidad Ejemplo.
Entidades y atributos
numero_cliente nombre direccion
CLIENTE
Area de Datos (Atributos no-clave)
Area de Clave Primaria (Atributos de clave primaria).
Relaciones
compra CLIENTE PRODUCTO
Modelo conceptual
• En IDEF1X las relaciones son binarias.
•Entidades asociativas
Relaciones uno a muchos
esta_formado EQUIPO JUGADOR
Entidad hijoEntidad padre
Cardinalidad: cero, una o más
Cardinalidades
“P” indica uno o más.“Z” indica cero o una.“n” indica exactamente n. ausencia de símbolo indica cero o más.
esta_formado
EQUIPO JUGADOR 22
Relaciones muchos a muchos
No específicas No hay padre ni hay hijo
alquila
PERSONA COPIA_PELICULA
COPIA_PELICULA
ALQUILER
PERSONA registra es_registrada
Entidad asociativa
Relaciones identificantes y no-identificantes
Identificantes: la clave primaria del padre pasa a ser parte de la clave primaria del hijo.
Depende para Formar su identidad Existir
Siempre mandatorias.
esta_en_stock_como PELICULA COPIA_PELICULA numero_pelicula nombre_pelicula
numero_pelicula (FK) numero_copia
Línea llena
Entidad dependiente
Relaciones identificantes y no-identificantes No-identificantes:la clave primaria del padre no migra a la clave del
hijo. Puede ser opcional. No depende su identidad.
Puede depender su existencia.
COPIA_PELICULA
numero_copia
numero_pelicula (FK)
esta_en_stock_como PELICULA numero_pelicula nombre_pelicula
cubre VENDEDOR CIUDAD vendedor_id nombre
ciudad_id
vendedor_id (FK)
Relaciones identificantes y no-identificantes
Uno a exacta-mente n
Uno a cero o más
Uno a uno o más
Uno a cero o uno
Uno a exacta-mente n
Relaciones identificantes (siempre mandatorias)
Relaciones no-identificantes (opcionales o mandatorias)
Uno a cero o más
Uno a uno o más
Cero o uno a exactamente n
Cero o uno a cero o más
Uno a cero o uno
Cero o uno a uno o más
Cero o uno a cero o uno
Z
n
P
n
P
ZP
Z
n
Capacidad expresiva de los DER
En cada curso el número de alumnos inscriptos no puede ser menor de 5 ni puede exceder el valor del
atributo “max_inscriptos” de la entidad CURSO.
id_alumno
CURSO
INSCRIPCION
id_alumno (FK) id_curso (FK)
id_curso nombre max_inscriptos
ALUMNO
Entidades dependientes e independientes
id_alumno
CURSO
INSCRIPCION
id_alumno (FK) id_curso (FK)
id_curso nombre max_inscriptos
ALUMNO
Entidad independiente
Entidad dependiente
Entidad independiente
Jerarquías de generalizaciónJerarquía OR
Agrupamiento de entidades que comparten características comunes.
CAJA_AHORRO
CUENTA nro_cta tipo_cta fecha_apertura
Entidad Generalización o Padre Genérico
Entidades Categoría
tipo_cta Discriminante de categoría
CTA_CTE
nro_cta (FK)
saldo_cheques descubierto cargo_cheque
nro_cta (FK)
saldo tasa_intereses intereses_ganados
CTA_PRESTAMO
nro_cta (FK)
saldo_deudor cantidad-prestada tasa_intereses
Jerarquías de generalizaciónJerarquía OR
CUENTA CTA_CTE nro_cta tipo_cta fecha_apertura nro_cta saldo_cheques descubierto cargo_cheque
1 corriente 15/1/2000 1 12000 11500 1 2 corriente 20/1/2000 2 500 1000 1.2 3 ahorro 21/2/2000 4 ahorro 25/2/2000 CAJA_AHORRO 5 prestamo 4/3/2000 nro_cta saldo tasa_intereses intereses_ganados
3 45000 6.5% 1443 4 1223 5% 85
CTA_PRESTAMO nro_cta saldo_deudor cantidad_prestada tasa_intereses
5 5424 10000 12.5%
Jerarquías de generalizaciónJerarquía AND
CUENTA nro_cta fecha-apertura indicador_cta_c indicador_caja_a indicador_cta_p
indicador_caja_a
CAJA_AHORRO
nro_cta (FK)
saldo tasa_intereses intereses_ganados
CTA_PRESTAMO
nro_cta (FK)
saldo_deudor cantidad-prestada tasa_intereses
indicador_cta_c indicador_cta_p
CTA_CTE
nro_cta (FK)
saldo_cheques descubierto cargo_cheque
Jerarquías de generalizaciónJerarquía AND
CUENTA
CTA_CTE nro_cta indicador
_cta_c indicador_caja_a
indicador_cta_p
fecha_apertura nro_cta saldo_ cheques
descubierto cargo_ cheque
1 1 0 1 15/1/2000 1 12000 11500 1 2 1 0 0 20/1/2000 2 500 1000 1.2 3 0 1 0 21/2/2000 5 876 760 1.2 4 0 1 1 25/2/2000 5 1 0 0 4/3/2000 CAJA_AHORRO
nro_cta saldo tasa_ intereses
intereses_ ganados
3 45000 6.5% 1443 CTA_PRESTAMO 4 1223 5% 85
nro_cta saldo_ deudor
cantidad_ prestada
tasa_ intereses
1 5424 10000 12.5% 4 345 4000 12.5%
Jerarquías de generalización completas e incompletas
Estructura de Categoría Completa
Estructura de Categoría Incompleta
Relaciones Recursivas
es_dueño
COMPAÑIA
compañía_id
nombre
dueño.compañía_id (FK)
Conclusiones DER
Notación semi-formalDescriptivaExpresividad limitadaAltamente intuitivos
Modelo de ProcesosDiagrama de Flujo de Datos (DFD)
Características Fáciles de comunicar Notación operacional semi-formal Variedad de nombres y notación Aplicabilidad amplia Descomposición por niveles
DD
DFDDER
DTE
Componentes de un DFD
Procesos
Flujos de datos
Almacenes
Terminadores o Entidades Externas.
Procesos
Una actividad, tarea, proceso, función, etc. Transforma entradas en salidas Representación Gráfica
1SOLICITARTARJETA
procesoburbujafuncióntransformación
verbo-objeto (qué)en modelos de procesadores (quién)
Flujo de Datos
Representan datos en movimiento lógicamente relacionados.
Describen el movimiento de paquetes de datos de una parte del sistema a otra.
etiqueta del flujo
Flujo de Datos
Entra a o sale de proceso entidad externa almacén
2
VALIDARUSUARIO
contraseña +nro_usuario
respuesta de validación
dirección
Elegir nombres significativos
Flujos de DatosDiálogo
pregunta sobre estado de pedido
respuesta sobre estado de pedido
1DETERM. ESTADO
DEL PEDIDO
pregunta sobre estado de pedido
respuesta sobre estado de pedido
1DETERM. ESTADO
DEL PEDIDO
Flujos de Datos Divergentes
OBTENERDETALLE
DEORDEN
GENERAR FACTURA
detalle de pedidosorden de compra
ACTUALIZAR
INVENTARIO
VALIDARNUMEROTELEFO-
NO
VALIDARCODIGOPOSTAL
domicilio
VALIDAR CALLE
código postal
numero teléfono
calle
Flujos de Datos Convergentes
OBTENERNUMEROTELEFO-
NO
OBTENERCODIGOPOSTAL
domicilio
OBTENER CALLE
código postal
numero teléfono
calle
VALIDAR DOMICILIO
Aplicabilidad
1MEZCLAR
INGRE-DIENTES
harinamasa
leche azúcar
manteca
huevos
2
HORNEAR
torta
Almacén de Datos
Colección de datos en reposo. archivo en disco microfichas datos en un fichero de papel etc.
Representación gráfica:
nombre del almacén
Almacén de DatosLectura
OBTENERDATOS
PERSONALES
CLIENTESdatos_cliente
no destructiva
pasivonombre en plural
nro_cliente
datos_cliente
Almacén de DatosEscritura
ACTUALIZARINFORMACION DE CONTACTO
DECLIENTE
CLIENTES
info_contacto
escritura
sólo paquetes que el almacén pueda guardar
nro_cliente
info_contacto
CLIENTES = {CLIENTE}
CLIENTE = @nro_cliente + nombre + domicilio + teléfono
nro_cliente = ...
nombre = *nombre de una persona*
primer nombre + (segundo nombre) + apellido
domicilio = ...
teléfono = ...
primer nombre = ...
segundo nombre = ...
apellido = ...
datos_cliente = nombre + domicilio + teléfono
info_contacto = [domicilio + telefono | domicilio | telefono]
Diccionario de Datos - Notación
= Está compuesto por+ y() Opcionalidad{} Iteración. Cero o más ocurrencias. [] Selección de una de varias alternativas. | Separador de opciones alternativas.* Principio y fin de comentario. @ Identificador de clave para un almacén. Se
coloca precediendo la clave.
Entidad Externa o Terminador
Representan objetos con los cuales el sistema se comunica. personas agrupamientos organizaciones otros sistemas de software o hardware
Se encuentran por fuera del sistema. Representación gráfica:
nombre del terminador
Entidad Externa o Terminador
Proveen con datos al sistema y/o esperan algún tipo de salida.
“Cuando recibimos los formularios XYZ de Contaduría debemos producir los reportes financieros para el Comité de finanzas”.
CONTADURIACOMITÉ DE FINANZASPRODUCIR
REPORTESFINANCIEROSformularios_XYZ
reportes_financieros
DFDs por niveles
Cuando el DFD es muy complejo.Organización por niveles
DFD de nivel inferior proporciona más detalles sobre proceso en DFD de nivel superior.
DFDs por niveles
Diagrama de Contexto Nivel más alto. Visión más abstracta del
sistema.
Da la visión externa del sistema.
Muestra todo el sistema proceso único flujos de entrada y salida entidades externas
Propósito: delinear el alcance del sistema.
DFDs por niveles
Figura 0 Muestra procesos de más alto nivel y sus
interfaces. Numerar burbujas.
Cada burbuja i de un nivel particular se asocia con una figura del nivel siguiente (si es que se explotó).
0EL
SISTEMA
E1 E2
E3
a b
c
Diagrama deContexto
Figura 3: PC
3.1PE
3.2PF
3.3PG
z
y
x
o
t
1
PA2
PB
4
PD3
PC
a
z
b
yx
c
w
v
Figura 0: EL SISTEMA
DFDs por niveles
¿Cómo se realiza la partición de los DFDs por niveles? Dos enfoques.
¿Cuántos niveles tiene que tener un DFD? Cada burbuja lleva a cabo un función única indivisible. Pistas para saber que no hemos particionado lo
suficiente: proceso difícil de nombrar. proceso con demasiadas entradas y salidas.
¿Deben desarrollarse todas las partes del sistema con el mismo número de niveles?
¿Cómo asegurar que los niveles de un DFD sean consistentes entre sí?
Guía práctica
Escoger nombres significativos. Numerar los procesos. Redibujar. Evitar complejidad => niveles Evitar los flujos y procesos no etiquetados. Controlar consistencia entre niveles. Tener cuidado con los almacenes de solo
lectura o solo escritura.
Guía práctica Evitar sumideros infinitos.Los datos que entran a una burbuja deberían ser usados.
Evitar burbujas de generación espontánea. Los datos no pueden ser generados de la nada.
Excepciones: fecha y hora; nro rándom.
Un “milagro”
un “agujero negro”
Observaciones sobre los DFDs
• Fáciles de comunicar.
• Carecen de un significado preciso:– La semántica de los componentes usados
solamente se encuentra especificada por los nombres elegidos por el analista.
– Carecen de aspectos de control.
Modelo de ComportamientoDiagramas de Transición de Estados (DTE)
Notación gráfica semi-formal operacional.
Permite construir modelos de
comportamiento dependientes del tiempo.
Componentes: Estados
Transiciones Condiciones
Acciones
Estados
El sistema está esperando que: algo ocurra en el ambiente externo (evento)
o, alguna actividad que se está realizando en
ese momento cambie a otra.
Representación gráfica:
nombre del estado
Transiciones
Representan cambios de un estado a otro.
ESTADO 1
ESTADO 2
ESTADO 3
estado inicial
estado final
transición
Condiciones y Acciones
Pueden aparecer asociadas a una transición.
ESTADO 1
ESTADO 2
Condición
Acción
ESPERANDO TARJETA
ESPERANDO OPCION
Mostrar menú de opciones
Se ingresó contraseña
ESPERANDO CONTRASEÑA
Se ingresó tarjeta
Mostrar “Ingrese contraseña”
Se pulsó CancelarDevolver Trajeta
EXTRACCION
Se pulsó “Extraer efectivo”
TRANSFERENCIA
Se pulsó “Transferir Fondos”
CONSULTAS
Se pulsó “Realizar Consulta”Mostrar opciones de consulta
Se pulsó CancelarDevolver Tarjeta
Se pulsó “Finalizar”Devolver Tarjeta
Mostrar menú de opciones
ESPERANDO ELECCION
IMPRIMIENDO SALDO IMPRIMIENDO MOVIMIENTOS
Se pulsó “Consulta de Saldo”
Se pulsó “Consulta de Ultimos Movimientos”
Balanceo de modelos
Balanceo del DFD con el DD Cada flujo de datos y cada almacén de datos deben
estar definidos en el DD. Caso contrario se dice que el dato está indefinido.
Cada dato y almacén que se define en el DD debe encontrase en alguna parte del DFD. Si no aparece se dice que es un dato fantasma.
Balanceo del DFD con el DER Cada almacén del DFD debe corresponderse con una
entidad dependiente o independiente del DER. Los nombres de objetos en el DER deben coincidir con
los nombres de los almacenes de datos del DFD. CLIENTES = {CLIENTE}CLIENTE = nombre + domicilio + teléfono + ...nombre = ...