especificaciones de software. acuerdo entre dos partes especificaciones de requisitos ...

Post on 24-Jan-2016

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 = ...

top related