Tema 2
Tema 2
Tema 2
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
EL ANÁLISIS DEL PROBLEMA<br />
F.J. Zarazaga Soria, J. Nogueras Iso, M.A. Latre Abadía<br />
Ingeniería del Software I<br />
Versión 2.1 (febrero 2.002), revisión 2.1.6 (febrero 2.006), revisión 2.1.7 (febrero 2.010)<br />
Departamento de Informática e Ingeniería en Sistemas
“El análisis de sistemas es frustrante; está repleto de<br />
relaciones interpersonales complejas, indefinidas y<br />
difíciles. En una palabra, es fascinante. Una vez que<br />
uno se vuelve adicto, los viejos placeres fáciles de la<br />
construcción de sistemas ya nunca vuelven a<br />
satisfacerle.”<br />
Tom DeMarco. Structured Analysis and<br />
Systems Specification. Englewood Cliffs, N.J.:<br />
Prentice Hall, 1979, página 6.<br />
2
Índice<br />
1. Determinar requisitos<br />
2. Las labores de análisis<br />
3
EL ANÁLISIS DEL PROBLEMA<br />
1. Determinar requisitos<br />
F.J. Zarazaga Soria, J. Nogueras Iso, M.A. Latre Abadía<br />
Ingeniería del Software I<br />
Departamento de Informática e Ingeniería en Sistemas
Determinar requisitos. Índice<br />
1.1. El problema de la comunicación.<br />
1.2. ¿Qué es determinar requisitos?<br />
1.2.1. Búsqueda de requisitos.<br />
1.2.2. Clasificación de los requisitos.<br />
1.2.3. Especificación de los requisitos.<br />
1.3. Algunas técnicas utilizables.<br />
1.3.1. Tablas de requisitos.<br />
1.3.2. Entrevistas.<br />
1.3.3. Reuniones.<br />
1.3.4. Cuestionarios.<br />
1.3.5. Árboles de decisión.<br />
1.3.6. Tablas de decisión.<br />
1.3.7. Los Casos de Uso.<br />
5
Ejercicio de Comunicación (I)<br />
6
Ejercicio de Comunicación (II)<br />
7
Ejercicio de Comunicación (III)<br />
8
Necesitamos vichy de cuadros o de un color vivo, de 30 cm<br />
de ancho y largura y media del área que vamos a cubrir.<br />
Haremos una jareta en la parte de arriba de 5 cm de ancho,<br />
dejando 3 cm para la patilla y 2 para la goma. Una vez este<br />
pasada, hacer una presilla e cada extremo para poder<br />
colgarlo. En la parte de abajo se efectúa un dobladillo<br />
estrecho y se remata con puntos de escapulario o de tripa.<br />
Para finalizar, se hacen unos círculos de bodoques y otros<br />
de ojetes alternando uno de cada. En el centro de éstos se<br />
hace un grupo de rococos.<br />
9
1.1. La Torre de Babel (I)<br />
“The mythical man-month” , F.P.Brooks (1995)<br />
10
La Torre de Babel (II)<br />
Según el Génesis, fue el segundo gran proyecto de<br />
ingeniería, después del Arca de Noé. Pero fue el<br />
primer fiasco.<br />
El proyecto contaba con todos los factores<br />
necesarios para el éxito:<br />
Una clara misión.<br />
Mano de obra.<br />
Materiales.<br />
Suficiente tiempo.<br />
Adecuada tecnología.<br />
Entonces, ¿qué fallo?<br />
La comunicación y, consecuentemente, la organización.<br />
11
1.2. ¿Qué es determinar requisitos?<br />
Los requisitos no son el objetivo del proyecto.<br />
Determinar requisitos consiste en estudiar un sistema para conocer<br />
como trabaja y donde es necesario efectuar mejoras.<br />
Un requisito es una característica que debe incluirse en el nuevo<br />
sistema. Esta puede ser la inclusión de determinada forma para<br />
capturar o procesar datos, producir información, controlar una<br />
actividad de la empresa o brindar soporte a los directivos. El<br />
cumplimiento de dichos requisitos será una condición básica para la<br />
aceptación final del sistema por parte de los usuarios.<br />
Los analistas de sistemas no trabajan como directivos o empleados de<br />
los departamentos de usuarios, no tiene los mismos conocimientos,<br />
hechos y detalles que los usuarios y directivos de estas áreas. Por lo<br />
tanto el primer paso del analista es comprender la situación.<br />
12
1.2.1. Líneas de investigación del analista (I)<br />
Los analistas se deben reunir con:<br />
los responsables del área que se está tratando que<br />
aportan una visión global del sistema<br />
con los usuarios finales que aportan el detalle de la zona<br />
que controlan<br />
Los analistas estructuran su investigación en base<br />
a 4 preguntas:<br />
¿Cuál es el proceso básico que se está estudiando?<br />
¿Qué datos utiliza o produce este proceso?<br />
¿Qué frecuencia y volumen del proceso existe?<br />
¿Qué controles utiliza para su realización?<br />
13
Líneas de investigación del analista (II)<br />
¿Cuál es el proceso básico que se está estudiando?<br />
¿Cuál es la finalidad de esta actividad en la empresa?<br />
¿Qué pasos se siguen para llevarla a cabo?<br />
¿Donde se realizan estos pasos?<br />
¿Quienes los realizan?<br />
¿Cuánto tiempo tardan en efectuarlos?<br />
¿Con cuanta frecuencia lo hacen?<br />
¿Quienes emplean la información resultante?<br />
¿Qué datos utiliza o produce este proceso?<br />
Este paso consiste en detectar qué datos se utilizan para<br />
llevar a cabo cada actividad.<br />
14
Líneas de investigación del analista (III)<br />
¿Qué frecuencia y volumen de proceso existe?<br />
Los analistas deben investigar con cuanta frecuencia se repite<br />
una actividad. Esto cambia mucho dependiendo de la actividad<br />
ya que por ejemplo el pago de la nómina se repite<br />
mensualmente o semanalmente pero el pago de impuestos es<br />
anualmente.<br />
La manera más fácil de obtener esta información es identificar<br />
el objetivo de la actividad, es decir, cuál es la causa de la<br />
actividad.<br />
El volumen de los procesos puede aumentar el tiempo de<br />
realización de las actividades, es decir la cantidad total de<br />
pasos que puede constar una actividad puede generar<br />
problemas aún ocurriendo con poca frecuencia.<br />
15
Líneas de investigación del analista (IV)<br />
¿Qué controles utiliza para su realización?<br />
¿Quién se encarga de comparar lo realizado con los estándares?<br />
¿Cómo se detectan los errores?<br />
¿Cómo se corrigen los errores?<br />
16
Fuentes de Información<br />
Alguna de las fuentes más comunes son:.<br />
Usuarios del sistema<br />
Formularios y documentos<br />
Programas<br />
Manual de procedimiento<br />
Informes<br />
17
Catálogo de requisitos<br />
Con la información recogida se empezará a elaborar un<br />
Catálogo de Requisitos a satisfacer por el nuevo sistema.<br />
Los requisitos identificados en la realización de estas<br />
actividades han de ser definidos de modo que:<br />
Sean cuantificables y medibles.<br />
Sean lo suficientemente detallados para reducir cualquier<br />
tipo de ambigüedad y permitir validar si el nuevo sistema<br />
satisface las necesidades de los usuarios.<br />
Se minimice la duplicación de los diferentes productos<br />
obtenidos en la Fase de Análisis.<br />
18
1.2.2. Clasificación de los requisitos (I)<br />
Requisitos funcionales. Describen lo que debe<br />
hacer el sistema en cuanto a:<br />
Funciones de actualización de datos.<br />
Funciones de consulta.<br />
Informes proporcionados.<br />
Datos manejados.<br />
Interacción con otros sistemas.<br />
19
Clasificación de los requisitos (II)<br />
Requisitos no funcionales. Describen las facilidades que<br />
debe proporcionar el sistema en cuanto a:<br />
Rendimiento. Volumen y tamaño de datos.<br />
Frecuencia de tratamiento.<br />
Requisitos de seguridad:<br />
Control de accesos<br />
Procedimientos de copias de respaldo y recuperación<br />
Integridad de la información<br />
Requisitos especiales de comunicaciones.<br />
Requisitos organizacionales<br />
Directrices técnicas y de gestión.<br />
Requisitos generales a cumplir en cuanto a necesidades<br />
futuras de información.<br />
Tendencias de evolución de la empresa.<br />
20
1.2.3. Especificación de los requisitos (I)<br />
Principios de una especificación<br />
Separar funcionalidad de implementación.<br />
Ser modelo de conocimiento, no de diseño o<br />
implementación.<br />
Ser tolerante a la completitud.<br />
Ser ampliable.<br />
Ser operativa.<br />
21
Especificación de los requisitos (II)<br />
Criterios que rigen una especificación<br />
Huir de las conectivas persuasivas:<br />
por lo tanto, obviamente, ciertamente, ...<br />
Indagar qué hay detrás de los términos imprecisos:<br />
alguno, a veces, a menudo, la mayoría, ...<br />
Averiguar qué hay en una lista sin fin:<br />
etc., y así sucesivamente, otros, ...<br />
No admitir suposiciones de conocimiento.<br />
Cuidado con verbos de interpretación múltiple:<br />
manejar, rechazar, procesar, ignorar, ...<br />
Si se especifican cálculos, probar al menos con dos<br />
ejemplos.<br />
Buscar certezas y exigir pruebas:<br />
siempre, cada, todos, ...<br />
22
Los problemas para expresar la lógica (I)<br />
No solo pero no obstante, y/ o a menos que...<br />
¿Cuál es la diferencia entre las siguientes 5 oraciones?<br />
Sumar A a B a menos que A sea menor que B, en cuyo caso<br />
restar A de B<br />
Sumar A a B. Sin embargo, si A es menor que B, la respuesta<br />
es la diferencia de A y B.<br />
Sumar A a B, pero restar A de B cuando A es menor que B.<br />
El total se encuentra sumando B a A. A pesar de la<br />
expresión previa, en caso que B sea mayor que A el<br />
resultado será la diferencia entre B y A.<br />
El total es la suma de A y B. Sólo cuando A sea menor que B<br />
deberá usarse la diferencia como total.<br />
No existe diferencia lógica<br />
SI A es menor que B ENTONCES restar A de B<br />
SINO sumar A a B<br />
23
Los problemas para expresar la lógica (II)<br />
Mayor que, menor que<br />
Más de 20 unidades, 5% de descuento<br />
¿inclusive? ¿no inclusive?<br />
Buscar sustituciones por: mayor que, mayor o igual que,<br />
menor que, menor o igual que<br />
Ambigüedad y/ o<br />
Los clientes que nos compran más de $ 10.000 por año y<br />
tienen una buena historia de pagos o que han<br />
comerciado con nosotros por más de 20 años deberán<br />
recibir trato preferencial.<br />
(más de $ 10.000 por año) y (buena historia de pagos<br />
o más de 20 años)<br />
(más de $ 10.000 por año y buena historia de pagos)<br />
o (más de 20 años)<br />
24
1.3. Algunas técnicas utilizables<br />
Tablas de requisitos.<br />
Entrevistas.<br />
Reuniones.<br />
Cuestionarios.<br />
Árboles de decisión.<br />
Tablas de decisión.<br />
Casos de uso.<br />
25
1.3.1. Tablas de requisitos<br />
Es una técnica muy sencilla de representación de los<br />
requisitos mediante una simple tabla.<br />
Un requisito se identifica mediante un código cuya<br />
estructura responde a un estándar fijado por la<br />
organización.<br />
Junto al código se procede a describir el requisito.<br />
En el resto de la aplicación permite indicar de una<br />
manera muy sencilla que parte del desarrollo se<br />
encarga de satisfacer un requisito concreto.<br />
Código Descripción<br />
26
Ejemplo de tabla de requisitos<br />
Filmoteca Española<br />
Código Descripción<br />
RF-1 Las entradas/salidas de material fílmico se realizarán a través de la puerta que existe en el Archivo<br />
de películas, donde se reflejará dicha recepción o salida mediante recibo.<br />
RF-2 Se ha de mantener históricos de los movimientos externos realizados por los materiales.<br />
RF-3 Se ha de obtener información de materiales que habiendo salido en un movimiento externo no han<br />
sido devueltos.<br />
RF-4 Los materiales que hayan formado parte de Filmoteca no se borran, solo se dan de baja (lógica).<br />
RF-5 Mantener histórico sobre los derechos de las películas.<br />
RF-6 Mantener históricos sobre los estados físicos de los materiales.<br />
RF-7 Las pantallas de consultas de materiales han de ser lo más compactas posibles (incluso varios<br />
materiales en una sola pantalla).<br />
RF-8 No todo el material que entre en el almacén provisional pasa a formar parte del Archivo definitivo.<br />
RNF-1 El sistema debe funcionar en una red de área local.<br />
RNF-2 El sistema debe contar con un control de usuarios.<br />
27
1.3.2. Entrevistas<br />
Este es el método más corriente para recoger<br />
información del usuario.<br />
Es un proceso continuo utilizado por el analista<br />
para construir gradualmente un modelo del<br />
sistema y para obtener conocimientos sobre los<br />
problemas del sistema.<br />
Factores de éxito de una entrevista:<br />
Elegir a la persona a entrevistar. Buscar la persona clave.<br />
Encontrar el camino correcto para dirigir la entrevista.<br />
Buscar la cooperación necesaria.<br />
28
Planificación de una entrevista<br />
El plan de entrevista<br />
El usuario a entrevistar<br />
La secuencia en la que será entrevistado<br />
El plan de entrevista para cada usuario<br />
El objetivo de una entrevista es maximizar el volumen de<br />
información relevante a obtener del entrevistado.<br />
La preparación de las entrevistas es esencial.<br />
Se debe tener una idea de lo que se pretende conseguir con la<br />
entrevista y formular preguntas directas para obtener es<br />
información.<br />
Si el entrevistado no puede contrastar, se le preguntará dónde<br />
se podría obtener dicha información.<br />
No se debe esperar obtener toda la información necesaria de<br />
un usuario en el curso de una entrevista<br />
29
Contenidos de una entrevista<br />
Las entrevistas deben efectuarse de forma organizada y<br />
amistosa.<br />
El entrevistador siempre será cortés y respetará la oposición<br />
y necesidades del usuario.<br />
Es importante no imponer soluciones a los usuarios, sino el<br />
papel de asesor.<br />
La jerga informática no se debe utilizar para impresionar al<br />
usuario, los entrevistadores deben explicar las limitaciones<br />
del ordenador en términos cotidianos y describir al usuario<br />
cómo le puede ayudar en su trabajo.<br />
Los entrevistadores deberán asegurarse de obtener toda la<br />
información necesaria de la entrevista. Para eso ayuda poner<br />
en conocimiento del usuario la información que se pretende<br />
obtener con la entrevista.<br />
30
Pasos a seguir en una entrevista<br />
Se establecen los procedimientos de entrevistas (duración y<br />
lo que se piensa obtener, así como conseguir permiso para<br />
tomar apuntes y notas durante la entrevista).<br />
Normalmente, es una buena idea empezar confirmando la<br />
información obtenida en entrevistas anteriores o en alguna<br />
investigación. Esto sirve para situar al entrevistado y ayuda a<br />
encontrar errores en los datos.<br />
Una vez que se está conforme, se sigue con más detalle<br />
cualquier punto relevante.<br />
La entrevista se terminará resumiendo lo obtenido de ella y<br />
confirmándolo.<br />
Finalmente, es buena idea convenir la fecha para la siguiente<br />
entrevista, si se considera necesaria.<br />
31
Tipos de preguntas básicas<br />
Preguntas independientes del contexto<br />
¿De quién ha surgido la petición de este proyecto?<br />
¿Quién va a utilizar la solución?<br />
Beneficio de una buena solución.<br />
Preguntas de ámbito<br />
¿Qué problemas resolverá la solución?<br />
Puede describirme el entorno en el que se utilizará la solución.<br />
Alguna limitación o aspecto especial de rendimiento.<br />
Preguntas de control<br />
¿Es Ud.. La persona adecuada para responder a estas preguntas?<br />
¿Son oficiales sus respuestas?<br />
¿Estoy haciendo demasiadas preguntas?<br />
¿Hay algo más que deba preguntarle?<br />
32
1.3.3. Reuniones<br />
Se pueden ver como una prolongación de las<br />
entrevistas en las que se involucran varios<br />
entrevistadores y varios entrevistados.<br />
Suelen utilizarse en fases muy tempranas de la<br />
determinación de requisitos.<br />
Es una técnica aplicable en muchas fases del<br />
proceso de desarrollo del software:<br />
Análisis del sistema a construir.<br />
Diseño del sistema a construir.<br />
Seguimiento del proceso de desarrollo.<br />
...<br />
33
Estrategias para facilitar las reuniones<br />
Reunión en un lugar neutral para técnicos y clientes.<br />
Reglas de preparación y participación (reunión preparatoria<br />
de la reunión).<br />
Agenda formal para cubrir los puntos importantes.<br />
Agenda informal para estimular el br ain-stor ming.<br />
Elección de un moderador.<br />
Herramientas para la discusión:<br />
hojas de trabajo, diagramas, pizarras, etc.<br />
Se debe buscar la creación de confianza mutua y espíritu de<br />
equipo.<br />
34
Decálogo para la celebración de reuniones<br />
1. Pensar si la reunión es necesaria y quién es imprescindible que asista.<br />
2. Enviar convocatoria, lo más documentada posible, fijando la hora de<br />
comienzo y de terminación.<br />
3. Todos los participantes prepararán adecuadamente la reunión antes de<br />
su comienzo.<br />
4. Ser puntuales. Comenzar a la hora prevista.<br />
5. El convocante, o quien él designe, actuará como moderador.<br />
6. Se evitarán todo tipo de interrupciones. Dejarlo advertido previamente.<br />
7. No tratar otros temas que los propios de la reunión.<br />
8. Respetar las intervenciones de los demás. Practicar la escucha activa.<br />
Ser concretos.<br />
9. Terminar a la hora indicada en la convocatoria.<br />
10. Hacer un acta de la reunión, a no ser que se indique lo contrario.<br />
35
Ampliación del decálogo<br />
Las reuniones no deben durar más de dos horas.<br />
Reparto de tareas:<br />
Preparador<br />
Controlador de tiempos<br />
Secretario<br />
Seguir la agenda.<br />
Intentar planificar la celebración de la siguiente<br />
reunión.<br />
Fecha y hora, lugar y tema<br />
36
1.3.4. Cuestionarios (I)<br />
Hay personas que sugieren el cuestionario, en vez de las<br />
entrevistas, para obtener información sobre el sistema.<br />
El cuestionario contiene todas las preguntas que el usuario<br />
debe responder para proporcionar la información que busca<br />
el analista.<br />
El cuestionario se envía al usuario y el analista analiza las<br />
respuestas.<br />
La experiencia sugiere que estos cuestionarios no son<br />
normalmente buenos sustitutos de las entrevistas por el<br />
peligro de ambigüedad de las preguntas.<br />
'describa todos sus trabajos’<br />
'¿cuáles son los componentes principales del sistema?’<br />
37
Cuestionarios (II)<br />
Los cuestionarios, sin embargo, se utilizan cuando se busca<br />
la misma información en usuarios distintos. Es el caso de<br />
información de naturaleza cuantitativa.<br />
Un cuestionario con esta pregunta es fácil enviarlo a todos los<br />
vendedores de la organización.<br />
Los cuestionarios se utilizan también como complemento de<br />
otras técnicas.<br />
Se usan para recoger datos numéricos u obtener opiniones<br />
relativamente simples de un número de personas.<br />
No son efectivos para búsquedas detalladas ni para<br />
identificar problemas o soluciones del sistema.<br />
38
1.3.5. Árboles de decisión<br />
Sirven para organizar la información recopilada con respecto<br />
a la toma de decisiones y no haya malas interpretaciones.<br />
Características:<br />
La raíz del árbol es donde comienza la secuencia de decisión, la<br />
rama a seguir depende de las condiciones y de la decisión que<br />
debe tomarse. La parte final es la acción.<br />
raíz<br />
condición<br />
condición<br />
condición<br />
condición<br />
condición<br />
condición<br />
acción<br />
acción<br />
acción<br />
acción<br />
El problema de los árboles de decisión es el gran número de<br />
ramas que puede tener un sistema complejo.<br />
39
Ejemplo de árbol de decisión<br />
Autorización de descuento por pronto pago:<br />
Si el cliente paga dentro de los 10 primeros días y el<br />
importe es superior a 10.000€, se le aplica un 3% de dto.<br />
Si el cliente paga dentro de los 10 primeros días y el<br />
importe es entre 5.000€ y 10.000€, se le aplica un 2% de<br />
dto.<br />
En el resto de los casos no se autorizan dtos.<br />
raíz<br />
dentro de<br />
10 días<br />
más de<br />
10 días<br />
>10.000€<br />
5.000€-10.000€<br />
1.3.6. Tablas de decisión<br />
Una tabla de decisión se divide en dos partes (condiciones,acciones), y<br />
está formada por 4 secciones.<br />
La parte de condiciones establece todas las condiciones que se<br />
aplican a los datos.<br />
Las acciones son las acciones distintas que se pueden tomar<br />
dependiendo de las condiciones.<br />
Una tabla de decisión se construye usando columnas, de forma que<br />
cada columna corresponda a una combinación de condiciones.<br />
Las acciones tomadas para las condiciones de las columnas se dan<br />
por una cruz en las columnas. Si la línea de acción tiene una cruz,<br />
entonces se toma esa acción si se da el conjunto de condiciones de<br />
la columna. A esto se le llama r eglas de decisión.<br />
Identificación de<br />
condiciones<br />
Identificación de<br />
acciones<br />
Entrada de condiciones (cada columna representa una<br />
combinación de condiciones)<br />
Entrada de acciones (cada cruz representa una regla<br />
de decisión)<br />
41
Ejemplo de tabla de decisión<br />
Pago de los servicios médicos.<br />
La atención sanitaria en un hospital es de carácter obligatorio,<br />
sin preocupar la financiación de la asistencia. Si el paciente<br />
dispone de seguridad social, su asistencia estará exenta de<br />
pago, sino es así pero dispone de un seguro médico sólo hará<br />
frente al pago de la consulta . Sólo en el caso de no disponer el<br />
paciente ni de seguridad social, ni de seguro médico pagará<br />
todos los servicios.<br />
42
1.3.7. Presentación de los Casos de Uso (I)<br />
Los casos de uso (Use Cases) es una técnica para determinar<br />
las necesidades de un sistema.<br />
Ha sido desarrollada por Ivar Jacobson y se han integrado en<br />
la notación UML que lleva camino de convertirse en el<br />
estándar de notación para metodologías OO.<br />
Se están utilizando como guías para todo el proceso de<br />
desarrollo del software.<br />
Bibliografía sobre Casos de Uso<br />
I. Jacobson. Object-Oriented Software Engineering. A Use Case<br />
Driven Approach. Addison-Wesley Publishing Company, 1992.<br />
G.Booch, J.Rumbaugh, I.Jacobson. El lenguaje unificado de<br />
modelado UML. Addison Wesley, 1999.<br />
43
Presentación de los Casos de Uso (II)<br />
Los casos de uso describen bajo la forma de acciones y<br />
reacciones el comportamiento de un sistema desde el punto de<br />
vista de un usuario; permiten definir los límites del sistema y las<br />
relaciones entre el sistema y el entorno.<br />
Es la imagen de la funcionalidad del sistema, desencadenada en<br />
respuesta a la estimulación de un actor externo<br />
Reubican la expresión de las necesidades sobre los usuarios<br />
La estructuración del método se efectúa respecto a las<br />
interacciones de una sola categoría de usuarios a la vez<br />
Usuario B.<br />
Usuario D.<br />
Conjunto de<br />
Necesidades<br />
Usuario C.<br />
Usuario A.<br />
44
Presentación de los Casos de Uso (III)<br />
Los usuarios deben estructurar y articular sus deseos:<br />
Definir de manera precisa como interactuar con el sistema<br />
Precisar qué informaciones quieren intercambiar<br />
Describir qué debe hacerse para obtener el resultado deseado<br />
Necesidad de un formalismo para los casos de uso accesible<br />
para los diferentes usuarios sin necesidad de una formación<br />
particular<br />
Modelo de casos de uso:<br />
Sistema<br />
S i s t e m a<br />
Actores<br />
Casos de uso<br />
A c t o r A<br />
C a s o d e U s o X<br />
C a s o d e u s o Y<br />
A c t o r B<br />
45
Actores<br />
Un actor representa el papel interpretado por una persona o<br />
una cosa que interactúa con el sistema<br />
Se representan en forma de pequeños personajes que<br />
desencadenan los casos de uso<br />
Los actor es se reclutan entre los usuarios directos del sistema,<br />
los responsables de su configuración y mantenimiento, así<br />
como los otros sistemas que interactúan con el sistema en<br />
cuestión<br />
La determinación de los mismos precisa los límites del sistema<br />
de manera progresiva. Sirve de base contractual para limitar lo<br />
que debe hacerse, lo que forma parte del sistema a desarrollar<br />
y lo que no forma parte de él<br />
46
Categorías de Actores<br />
Cuatro grandes categorías de actores :<br />
Actores Principales:<br />
Personas que utilizan las funciones principales del sistema.<br />
Ejemplo : Los clientes de un dispensador de billetes<br />
Actores Secundarios:<br />
Personas que realizan actividades administrativas o de<br />
mantenimiento. Ejemplo : Persona que recoge la caja del<br />
dispensador<br />
Actores Material Externo:<br />
Dispositivos materiales imprescindibles que forman parte del<br />
ámbito de la aplicación y que deben ser utilizados. Ejemplo :<br />
Impresora. (no el ordenador en sí mismo)<br />
Actores Otros Sistemas:<br />
Sistemas con los que el sistema a desarrollar debe interactuar.<br />
Ejemplo: Sistema grupo bancario que gestiona el parque de<br />
dispensadores<br />
47
Casos de Uso<br />
Los casos de uso son abstracciones del dialogo entre los<br />
actores y el sistema<br />
Se representan por medio de un óvalo identificado por un<br />
nombre<br />
Describen interacciones potenciales, llamadas escenar ios, sin<br />
entrar en detalles concretos<br />
Un caso de uso agrupa una familia de escenarios según un<br />
criterio funcional<br />
Su ámbito de aplicación supera ampliamente la definición de<br />
las necesidades del sistema. Intervienen a lo largo de todo el<br />
ciclo de vida<br />
Es necesario un método para navegar hacia las clases y los<br />
objetos que satisfacen una necesidad y hacia las pruebas que<br />
verifican que el sistema realiza su tarea<br />
48
Relaciones<br />
Tipos de relaciones:<br />
Generalización<br />
Entre Actores<br />
Entre Casos de uso<br />
Extensión entre Casos de<br />
Uso<br />
Inclusión entre Casos de<br />
Uso<br />
Asociación entre un<br />
Actor y un Caso de Uso<br />
C4 siempre ejecuta C2<br />
C1 opcionalmente ejecuta C2<br />
49
Construcción de Casos de Uso<br />
¿Cuales son las tareas de un actor?<br />
¿Qué informaciones debe el actor crear, guardar,<br />
modificar, destruir o simplemente leer?<br />
El actor, ¿deberá informar al sistema de los<br />
cambios externos?<br />
El sistema, ¿deberá informar al actor de las<br />
condiciones internas?<br />
50
Proceso de elaboración de Casos de Uso<br />
Identificar a grandes trazos los casos de uso y<br />
descripción breve de los casos de uso<br />
Profundizar en la comprensión de cada caso de<br />
uso particular, y determinación de los principales<br />
escenarios<br />
Descripción detallada de las etapas estabilizadas,<br />
teniendo en cuenta los escenarios que pasan por<br />
cada etapa<br />
51
Trampas a Evitar<br />
La presencia de un gran número de detalles es un signo<br />
de un escenario más que de un caso de uso<br />
No siempre resulta fácil determinar el nivel de detalle<br />
Un gran número de casos de uso es un signo de falta de<br />
abstracción<br />
Sea cual sea el tamaño del sistema a desarrollar, el número<br />
de casos de uso es relativamente pequeño<br />
No sucede lo mismo con el número de escenarios<br />
Procurar no caer en la tentación de describir demasiado el<br />
comportamiento interno del sistema<br />
Describir los intercambios entre actor y sistema; pero no<br />
llegar a explicar cómo el sistema realiza esos intercambios<br />
Los casos de usos son un medio, no un fin<br />
52
Construye el árbol de decisión<br />
Ejercicio 1:<br />
A un cliente se le dará trato preferencial si cumple una de<br />
estas dos condiciones:<br />
Compran más de 10.000 € por año y tienen una buena historia de pagos<br />
Compran más de 10.000 € por año y han comerciado con nosotros por más<br />
de 20 años<br />
Ejercicio 2:<br />
A un cliente se le dará trato preferencial si cumple una de<br />
estas tres condiciones:<br />
Compran más de 10.000 € por año y tienen una buena historia de pagos<br />
Compran más de 10.000 € por año y han comerciado con nosotros por más<br />
de 20 años<br />
Compran 10.000 € o menos por año y tienen una buena historia de pagos<br />
54
Construye el árbol de decisión<br />
Ejercicio 3:<br />
En una venta de una editorial alibreros el descuento<br />
comercial es del 20 %. En la venta a particulares y bibliotecas,<br />
la editorial concede un 5% de descuento por la compra de 6 o<br />
más libros, 10% para 20 o más libros, y 15% para 50 o más<br />
libros. Los pedidos comerciales de 20 o más libros reciben<br />
un descuento adicional de un 10%.<br />
55
Construye la tabla de decisión<br />
Ejercicio 1:<br />
A un cliente se le dará trato preferencial si cumple una de<br />
estas tres condiciones:<br />
Compran más de 10.000 € por año y tienen una buena historia de pagos<br />
Ejercicio 2:<br />
Compran más de 10.000 € por año y han comerciado con nosotros por más<br />
de 20 años<br />
Compran 10.000 € o menos por año y tienen una buena historia de pagos<br />
Si la cuenta de un cliente se factura un método de tarificación fijo, se establece<br />
una carga mensual mínima para consumos inferiores a 100 Kwh. En los demas<br />
casos se aplica la tarifa A. Sin embargo, si se aplicaun método de tarificación<br />
variable, se aplicará la tarifa A a consumos menores de 100 Kwh. En otro caso, se<br />
facturará de acuerdo a la tarifa B.<br />
56
Construye la tabla de decisión<br />
Ejercicio 3:<br />
Si el importe_total es menor o igual a 10.000 y el %_Descuento es menor del 5%,<br />
entonces el Descuento será cero<br />
Si el importe_total es mayor que 50.000, entonces el Descuento será el<br />
importe_total * %_Descuento + 2.500<br />
En cualquier otro caso el Descuento será el importe_total * %_Descuento<br />
importe_neto = importe_total - Descuento<br />
57
EL ANÁLISIS DEL PROBLEMA<br />
2. Las labores de análisis<br />
F.J. Zarazaga Soria, J. Nogueras Iso, M.A. Latre Abadía<br />
Ingeniería del Software I<br />
Departamento de Informática e Ingeniería en Sistemas
Las labores de análisis. Índice<br />
2.1. El Diagrama de Flujo de Datos.<br />
2.2. El análisis del sistema<br />
2.2.1. Análisis de la situación actual<br />
Construcción del nuevo sistema<br />
2.2.2. Contexto del sistema<br />
2.2.3. Identificación y definición de subsistemas<br />
2.2.4. Especificación de interfaces con otros sistemas<br />
2.2.5. Definición de las interfaces con el usuario<br />
2.2.6. Construcción del esquema lógico de datos<br />
2.2.7. Análisis detallado<br />
2.2.8. Completar especificaciones del sistema<br />
59
2.1. El Diagrama de Flujo de Datos (DFD)<br />
Los diagramas de flujos de datos (DFD), es una técnica de<br />
modelización, que nos muestra un sistema como una red de<br />
procesos conectados entre ellos por flujos y<br />
almacenamientos de datos.<br />
Es un modelo que proporciona el punto de vista funcional de<br />
un sistema.<br />
Utiliza una notación y unas reglas<br />
predeterminadas.<br />
Es la principal herramienta del análisis<br />
estructurado.<br />
60
Ejemplo de DFD<br />
Cajero<br />
Productos<br />
de un ticket<br />
1.1<br />
Crear ticket<br />
1.2<br />
Validar<br />
datos de los<br />
productos<br />
Productos<br />
validados<br />
Ticket base<br />
fecha y hora<br />
Sistema<br />
ticket<br />
Ticket<br />
provisional<br />
1.3<br />
Añadir<br />
productos<br />
al ticket<br />
1.4<br />
Validar<br />
datos del<br />
ticket<br />
2 Ticket<br />
Productos del<br />
ticket validado<br />
1 Producto<br />
1.5<br />
Descontar<br />
unidades del<br />
producto<br />
61
El DFD. Objetivo (I)<br />
Objetivo<br />
Construir un modelo lógico del sistema que facilite la<br />
comprensión del mismo, tanto por parte de los usuarios como<br />
del equipo de desarrollo. Para ello se dividirá el sistema en<br />
distintos niveles de detalle. Esta división permitirá:<br />
Simplificar la complejidad del sistema, representando los<br />
diferentes procesos sencillos de que consta un sistema<br />
complejo.<br />
Repartir el trabajo entre los diferentes miembros del equipo<br />
de desarrollo.<br />
Facilitar el mantenimiento del sistema.<br />
62
El DFD. Objetivo (II)<br />
Los fundamentos de la técnica del DFD son los siguientes:<br />
Representar gráficamente los límites del sistema en estudio.<br />
Mostrar el movimiento de los datos y la transformación de los<br />
mismos a través del sistema.<br />
Diferenciar las restricciones físicas de las lógicas.<br />
63
El DFD. Objetivo (III)<br />
Para conseguir estos objetivos el resultado del<br />
análisis debe ser:<br />
GRAFICO.<br />
LOGICO, nunca referido a entornos físicos.<br />
PRECISO Y BREVE.<br />
COMPRENSIBLE.<br />
DEBIDAMENTE PARTICIONADO.<br />
BIEN DOCUMENTADO.<br />
NUNCA REDUNDANTE.<br />
ESTABLECERA "QUE" FUNCIONES SE DEBEN DESARROLLAR,<br />
SIN IMPLICAR "COMO".<br />
NO AMBIGUO.<br />
64
El DFD. Objetivo (VI)<br />
Como resultado se obtendrá un modelo del<br />
sistema completamente independiente de las<br />
restricciones físicas del entorno, lo que facilitará<br />
su mantenimiento y portabilidad.<br />
En los Diagramas de Flujo de Datos, no se deberán<br />
modelizar:<br />
PROCEDIMIENTOS.<br />
PUNTO DE INICIO Y DE TERMINACION DEL DFD.<br />
CONDICIONES.<br />
TRATAMIENTOS DE ERRORES POCO RELEVANTES.<br />
65
Elementos básicos de un DFD<br />
En cualquier Diagrama de Flujos de Datos,<br />
aparecerán los objetos siguientes:<br />
ENTIDAD EXTERNA.<br />
PROCESO.<br />
ALMACEN DE DATOS.<br />
FLUJO DE DATOS.<br />
La técnica de representación dará lugar a un DFD<br />
en el que se irán detallando los principales<br />
procesos o acciones a desarrollar y que se irán<br />
detallando en mayor medida según se vaya<br />
bajando de nivel (EXPLOSIONANDO) cada uno de<br />
esos procesos.<br />
66
Las entidades externas (I)<br />
Las Entidades Externas representan entes ajenos a<br />
nuestra aplicación, pero que aportan o reciben<br />
información de la misma.<br />
Notación:<br />
Nombre representativo.<br />
Un número identificativo de la entidad.<br />
En el caso de que dentro de un DFD aparezca repetido la<br />
misma entidad externa, se puede representar de la<br />
siguiente forma:<br />
1<br />
Nombre<br />
Simple<br />
1<br />
Nombre<br />
1<br />
Nombre<br />
Métrica V.2.1<br />
1<br />
Nombre<br />
Múltiple<br />
1<br />
Nombre<br />
Yourdon y Gane-Sarson<br />
1<br />
Nombre<br />
67
Las entidades externas (II)<br />
Reglas de construcción:<br />
Representa personas, organizaciones o sistemas que no<br />
pertenecen al sistema.<br />
En el caso de que las entidades externas se comunicasen<br />
entre sí, esto no se contemplaría en el diagrama, por<br />
estar fuera del ámbito de nuestro sistema.<br />
Puede aparecer en los distintos niveles de DFD.<br />
Puede aparecer varias veces en un mismo diagrama, para<br />
evitar entrecruzamientos de líneas.<br />
Suministra información acerca de la conexión del sistema<br />
con el mundo exterior.<br />
68
Las entidades externas. Ejemplos<br />
Notación de entidad<br />
externa utilizada en Métrica<br />
v.2.1<br />
Notación de entidad<br />
externa utilizada en<br />
Yourdon y en Gane-<br />
Sarson<br />
69
Los procesos (I)<br />
Es una actividad que transforma o manipula datos.<br />
Notación:<br />
Nombre del proceso correspondiente. Dependiendo del nivel de<br />
detalle en que nos encontremos dentro de un DFD, el nombre del<br />
proceso simbolizará bien el sistema concreto (nivel sistema), bien el<br />
subsistema de que se trate (nivel subsistema), o bien acciones<br />
concretas y detalladas en niveles inferiores.<br />
Un número identificativo del proceso. Este número permitirá<br />
además indicar el nivel del DFD en que nos encontramos<br />
(descomposición por niveles). Es importante hacer énfasis en que<br />
este número no indica secuencia de realización del proceso, dado<br />
que los DFD no representan una secuencialidad en el tratamiento<br />
de los datos.<br />
1 AREA<br />
NOMBRE<br />
Métrica v.2.1<br />
1<br />
NOMBRE<br />
Yourdon<br />
1<br />
NOMBRE<br />
Gane-Sarson<br />
70
Los procesos (II)<br />
Reglas de construcción:<br />
Cuando un Flujo de datos entra en un proceso sufre una<br />
transformación. Un proceso no es ni origen ni final de los<br />
datos, sólo lugar de transformación de los mismos. Por ello,<br />
cualquier flujo de datos que entre en un proceso ha de<br />
transformarse.<br />
Un proceso puede transformar un dato en varios.<br />
Es necesario un proceso como intermediario entre una<br />
Entidad Externa y un Almacén de Datos.<br />
A<br />
B<br />
MAL<br />
1<br />
Proceso 1<br />
C<br />
B<br />
2<br />
Proceso 2<br />
3<br />
Proceso 3<br />
D<br />
E<br />
BIEN<br />
B<br />
A<br />
1<br />
Proceso 1<br />
2<br />
Proceso 2<br />
C<br />
E<br />
3<br />
Proceso 3<br />
D<br />
71
Almacén de datos (I)<br />
Un almacén de datos representa un depósito de<br />
información dentro del sistema.<br />
Notación:<br />
Nombre del almacén de datos.<br />
Un número identificativo del mismo 1 Nombre<br />
En el caso de que dentro de un DFD aparezca repetido el<br />
mismo almacén de datos, se puede representar de la<br />
siguiente forma:<br />
1 Nombre<br />
1 Nombre<br />
Simple<br />
1 Nombre<br />
1 Nombre<br />
Múltiple<br />
72
Almacén de datos (II)<br />
Diferentes utilidades que representan los<br />
almacenes de datos.<br />
Almacenamiento permanente de datos (ALMACENES<br />
PRINCIPALES).<br />
Almacenamiento transitorio de los datos antes de ser<br />
usados por un proceso.<br />
73
Almacén de datos (III)<br />
Reglas de construcción:<br />
Representa la información en reposo.<br />
No puede crear, destruir ni transformar datos.<br />
No puede estar comunicado directamente con otro<br />
Almacén o Entidad Externa.<br />
El flujo de datos (Entrada o Salida) no lleva nombre<br />
cuando incide sobre su contenido completo.<br />
El almacén de datos aparecerá por vez primera en aquel<br />
nivel en que sea accedido por dos o más procesos y en<br />
modo lectura y/ o escritura.<br />
74
Los flujos de datos<br />
Los Flujos de Datos establecen la comunicación entre<br />
procesos, almacenes y entidades externas, y llevan<br />
información necesaria para esos objetos.<br />
Reglas de construcción:<br />
El concepto de flujo de datos es similar al de una "tubería" a<br />
través de la cual fluye una información de estructura conocida.<br />
Los datos no pueden ser creados ni<br />
destruidos por un flujo de datos.<br />
Sirve para conectar el resto de los<br />
componentes del DFD.<br />
No es un activador de procesos.<br />
Cuando un proceso almacena datos, la<br />
flecha de flujo de datos se indica en la<br />
dirección del almacén de datos y a la<br />
inversa si es el proceso el que lee datos<br />
en el almacén.<br />
75
Conexiones permitidas en un DFD<br />
Entidad<br />
Proceso<br />
Almacén de datos<br />
Entidad Proceso Almacén de datos<br />
x √ x<br />
√ √ √<br />
x √ x<br />
76
Descomposición por niveles (I)<br />
Los Diagramas de Flujo de Datos han de representar el Sistema<br />
de la forma más clara posible, por ello se basarán en el<br />
principio de descomposición o explosión en distintos niveles<br />
de detalle.<br />
La descomposición por niveles permite analizar el sistema<br />
desde el ámbito general al detalle, pasando por sucesivos<br />
niveles intermedios (filosofía de arriba a abajo o "top-down").<br />
La utilización de esta técnica implica la descomposición o<br />
explosión de cada proceso en otro DFD.<br />
El sistema deberá contener:<br />
Un diagrama de contexto (primer nivel).<br />
Varios DFD en niveles intermedios.<br />
Varios DFD en el último nivel de detalle.<br />
77
Descomposición por niveles (II)<br />
Procedimiento:<br />
Representar el Diagrama de Contexto.<br />
Representar el DFD de primer nivel,<br />
indicando los distintos subsistemas en<br />
que se descompone nuestro sistema.<br />
Descomponer cada uno de los procesos<br />
que aparecen en el DFD hasta llegar a<br />
un nivel suficiente de detalle.<br />
Si es necesario, reagrupar y reorganizar<br />
los distintos subsistemas que se han<br />
identificado inicialmente,<br />
Repetir el proceso de descomposición<br />
hasta llegar a un nivel suficiente de<br />
detalle.<br />
78
Descomposición por niveles (III)<br />
La identificación de las áreas funcionales o subsistemas se<br />
hará atendiendo, entre otros, a los siguientes criterios:<br />
Funciones organizativas o administrativas propias del sistema a<br />
desarrollar y específicas de la problemática de la Unidad.<br />
Homogeneidad de las funciones realizadas por los procesos<br />
pertenecientes a un área funcional o subsistema.<br />
Localización geográfica de los procesos.<br />
Procesos que actualicen los mismos almacenes de datos se<br />
colocarán en el mismo subsistema o área funcional.<br />
El objetivo último será conseguir que las comunicaciones o<br />
enlaces entre distintos subsistemas o áreas funcionales sean lo<br />
más reducidas y homogéneas posibles<br />
79
Ejemplo de descomposición por niveles<br />
80
Especificación de procesos (I)<br />
Objetivo:<br />
Describir la lógica de los procesos.<br />
Deberán definirse en más detalle sólo las funciones o<br />
procesos primitivos, es decir, aquellos que no se han<br />
descompuesto más.<br />
No se detallarán funciones que resulten obvias.<br />
Cada especificación de proceso debe describir cómo se<br />
logra transformar el flujo de datos que llega en los flujos<br />
que salen.<br />
Cada especificación de proceso debe describir las normas<br />
que gobiernan la transformación, no el método de implantar<br />
esas normas.<br />
81
Especificación de procesos (II)<br />
Se han de incluir en la descripción de los procesos<br />
de último nivel los siguientes aspectos:<br />
Modo de acceso de los procesos a las entidades de datos<br />
del sistema.<br />
Tipo de tratamiento (interactivo o por lotes).<br />
Información sobre la frecuencia de ejecución.<br />
Características del proceso:<br />
Actualización de datos del sistema.<br />
Consultas e informes.<br />
Realización de algoritmos específicos y descripción de<br />
los mismos.<br />
82
Especificación de procesos. Técnicas (I)<br />
Técnicas para la descripción de procesos:<br />
Tablas de decisión.<br />
Árboles de decisión.<br />
Narrativa tradicional.<br />
Lenguaje estructurado.<br />
83
Especificación de procesos. Técnicas (II)<br />
Narrativa tradicional<br />
Tiene la debilidad inherente del lenguaje natural como herramienta<br />
para especificar:<br />
Imprecisa.<br />
Redundante.<br />
Llena de implicaciones y connotaciones.<br />
Ejemplo:<br />
“Para aplicar el descuento, el cliente debe tener una cifra de<br />
compra de más de 3.000.000 de pesetas/ año y un buen historial<br />
de pagos o haber sido cliente más de 5 años".<br />
¿Cuál es el significado de la anterior descripción narrativa?<br />
o ¿3.000.000 pts. y un buen historial?<br />
o ¿3.000.000 pts y 5 años?<br />
o ¿Basta con los 5 años?<br />
o ¿Qué quiere decir un buen historial de pagos?<br />
84
Especificación de procesos. Técnicas (III)<br />
Lenguaje estructurado<br />
Debe ser comprensible para el informático y el usuario.<br />
Utiliza una sintaxis limitada sin llegar a ser tan rígida como una<br />
codificación.<br />
Las descripciones deben ser precisas y concisas, evitando la<br />
retórica del lenguaje.<br />
Utilizar verbos precisos sin ambigüedad, evitando, por ejemplo:<br />
HACER, TRATAR, PROCESAR, CONTROLAR.<br />
Los nombres utilizados deben estar definidos en el diccionario de<br />
datos.<br />
Los adjetivos utilizados deben ser auto-explicativos. Por ejemplo:<br />
VALIDO, ERRONEO.<br />
No deben utilizarse los adjetivos, adverbios y verbos que expresan<br />
relatividad. Por ejemplo: Incrementar, reducir, escaso, suficiente,<br />
etc.<br />
Hay que indicar de forma inequívoca el objeto sobre el que debe<br />
aplicarse la acción.<br />
85
Especificación de procesos. Técnicas (IV)<br />
Sintaxis del lenguaje estructurado:<br />
Sentencias declarativas simples.<br />
Construcciones de decisión.<br />
Construcciones de repetición.<br />
Combinaciones de ambas.<br />
Las acciones escritas de esta forma son fáciles de leer y<br />
de entender.<br />
Ejemplo:<br />
• SECUENCIA:<br />
ACCION 1<br />
ACCION 2<br />
ACCION 3<br />
ACCION 4<br />
ACCION 5<br />
• DECISION:<br />
• METODO DE LOS CASOS<br />
PARA CADA TRANSACCION<br />
SI (CONDICION), SELECCIONAR:<br />
ENTONCES<br />
CASO 1: ACCION 1<br />
ACCION 1<br />
CASO 2: ACCION 2<br />
ACCION 2<br />
CASO 3: ACCION 3<br />
CASO CONTRARIO,<br />
ACCION 3<br />
86
Especificación de procesos. Técnicas (V)<br />
Consejos prácticos para utilizar el lenguaje estructurado:<br />
La excesiva anidación de sentencias condicionales (si/ no)<br />
complica la comprensión de las especificaciones.<br />
Utilizar el método de los casos cuando la lógica del proceso sea<br />
compleja, por existir diversidad de opciones.<br />
Evitar sentencias del tipo "HACER HASTA" o "HACER MIENTRAS".<br />
Emplear expresiones positivas, evitando sentencias del tipo: "Si<br />
la transacción no es errónea..."<br />
Evitar expresiones matemáticas complejas.<br />
No debe estar referido al entorno físico y por tanto, no se<br />
diferencian los ficheros convencionales de las Bases de Datos.<br />
No se representa la clave de acceso a ese almacén sino sólo la<br />
operación que se realiza (lectura, escritura, actualización)<br />
87
Pautas para dibujar los DFDs (I)<br />
Identificar las entidades externas involucradas.<br />
Identificar las entradas y salidas de información previstas en el<br />
normal funcionamiento. Marcar las que únicamente estén<br />
relacionadas con condiciones de error y excepciones.<br />
Identificar las consultas y los pedidos de información que<br />
podrían surgir.<br />
Diferenciar información dada al sistema frente a r equer ida por el<br />
sistema.<br />
Tomar la entidad externa que parece la principal proveedora de<br />
información:<br />
dibujar los flujos que de ella surjan<br />
los procesos que son lógicamente necesarios<br />
y los almacenamientos de datos que se requieran.<br />
Repetir con las demás entidades sin preocuparse de numerar<br />
procesos.<br />
88
Pautas para dibujar los DFDs (II)<br />
Dibujar el primer borrador a mano alzada concentrándose<br />
en incluirlo todo, excepto errores, excepciones y decisiones.<br />
Aceptar que se van a necesitar tres borradores del DFD de<br />
nivel superior.<br />
Cuando se tenga listo el primer borrador, revisar que se ha<br />
incluido la lista de entradas.<br />
Recordar que cada dato que describe algún hecho exterior<br />
del mundo real debe ser creado y mantenido.<br />
Confeccionar un segundo borrador más claro minimizando<br />
cruces de flujos de datos:<br />
Primero duplique entidades externas<br />
Luego duplique almacenamientos de datos<br />
89
Pautas para dibujar los DFDs (III)<br />
Si se tiene un representante simpático del usuario,<br />
revisar con él el segundo borrador:<br />
explicar que solamente es un borrador<br />
tomar nota de aclaraciones y cambios<br />
Producir una explosión de nivel inferior de cada<br />
proceso del segundo borrador.<br />
Si merece la pena la inversión, buscar un dibujante<br />
experto que copie el diagrama de nivel superior<br />
“en bonito” sobre un A0.<br />
90
Técnicas de mejora y prueba de DFD (I)<br />
Pruebas de corrección<br />
En la descomposición de un proceso puede que se nos<br />
olvide alguno de los Flujos de Datos (FD) del nivel<br />
superior, o que el FD de ese nivel superior se<br />
descomponga pero se incluya algún flujo que no debería<br />
aparecer o nos falte alguno.<br />
Faltan flujos de datos requeridos por un proceso.<br />
Flujos de datos de ningún valor para el proceso.<br />
Faltan procesos.<br />
Incoherencia entre niveles.<br />
91
Técnicas de mejora y prueba de DFD (II)<br />
Ejemplo<br />
En el proceso 3 del DFD de nivel<br />
superior entran los flujos de<br />
datos m y n y sale el flujo de<br />
datos t.<br />
En el DFD resultado de la<br />
descomposición del proceso 3,<br />
representado en la parte inferior<br />
de la figura, el flujo de datos de<br />
entrada es n y los flujos de datos<br />
de salida son t y s.<br />
Aunque el número de flujos de datos netos de<br />
entrada y salida no coincida de un nivel a otro, el<br />
contenido de dichos flujos sí lo haga.<br />
92
Técnicas de mejora y prueba de DFD (III)<br />
Pruebas de utilidad<br />
Son más de sentido común que de un estudio exhaustivo sobre<br />
los DFD.<br />
Comprobar si el diagrama es legible.<br />
Analizar la complejidad de la interfaz.<br />
Comprobar que los nombres asignados ayudan a<br />
comprender sin ambigüedad el DFD.<br />
93
Reglas de consistencia de un DFD<br />
Existen reglas para asegurar la consistencia del DFD con otros<br />
modelos de sistemas (el diagrama de entidad-relación, diagrama<br />
transición de estados, diccionario de datos, especificación de<br />
procesos, etc.).<br />
Evite sumideros infinitos, procesos que tienen entradas pero no salidas.<br />
Evite burbujas de generación espontánea, procesos que tienen salidas<br />
sin tener entradas. Situación normalmente incorrecta.<br />
Cuidado con flujos y procesos no etiquetados, ya que puede esconder<br />
errores importantes.<br />
Tener cuidado con los almacenes de “sólo lectura” o “sólo escritura”, ya<br />
que todo almacenamiento debe tener un flujo entrante y uno saliente,<br />
es decir, la información se almacena y se consume.<br />
Las entidades externas no pueden acceder directamente a ningún<br />
almacenamiento. Siempre debe mediar un proceso que haga de<br />
intermediario y extraiga o inserte la información pertinente.<br />
94
Diccionario de datos (I)<br />
El diccionario de datos es una lista organizada de<br />
todos los datos pertenecientes al sistema, con una<br />
serie de definiciones precisas y rigurosas para que<br />
tanto el analista como el usuario comprendan<br />
entradas, salidas, elementos de los<br />
almacenamientos y cálculos intermedios.<br />
En el diccionario de datos incluimos almacenes de<br />
datos, flujos de datos, estructuras de datos,<br />
elementos de datos y en algunos casos el modelo<br />
E-R.<br />
95
Diccionario de datos (II)<br />
El diccionario de datos (DD) describe los datos que se manejan en<br />
el sistema desde cuatro puntos de vista:<br />
Describe el significado de los flujos de datos y los almacenes que<br />
muestran los DFD's.<br />
Describe la composición de la estructura de datos que se mueven a los<br />
largo de los flujos.<br />
Describe la composición de la estructura de datos en los almacenes.<br />
Describe los detalles de las relaciones entre almacenes que aparecen<br />
en un diagrama entidad-relación.<br />
El analista necesita del DD por cuatro razones:<br />
Para manejar los detalles ya que es imposible recordarlo todo.<br />
Para tener una visión común de todos los elementos del sistema.<br />
Para documentar las características del sistema.<br />
Localizar errores en el sistema.<br />
96
Contenido de un DD<br />
Definiciones lógicas de datos:<br />
Elemento de Dato (Atributos de la Entidad).<br />
Menor unidad de un dato que tiene significado para los<br />
analistas.<br />
o Ej: Número de factura<br />
Estructura de Dato.<br />
Grupo de datos elementales o de otras estructuras de<br />
dato que en su conjunto describen un componente del<br />
sistema.<br />
o Ej: Factura<br />
Flujos de Datos.<br />
Almacenes de datos.<br />
Definiciones lógicas de procesos.<br />
Definiciones lógicas de entidades externas.<br />
97
Propuesta de notación de un DD (I)<br />
Notación del elemento dato: Cada uno está identificado con un<br />
nombre, una descripción, un alias, una longitud, restricciones de<br />
valores.<br />
Nombre de los datos<br />
Deben ser significativos. Por ejemplo: Fecha-factura.<br />
No deben ser mayor de 30 caracteres, ni contener espacios en blanco.<br />
Descripción de los datos<br />
Debe ser comprensible para el lector y pensando que quien lo lea no<br />
sabe nada con respecto al sistema.<br />
Alias<br />
El mismo dato recibe varios nombres, según quien haga uso del dato.<br />
Ejemplo para factura: documento de pago o nota de pago ...<br />
No son alias los siguientes casos: factura autorizada, factura<br />
verificada.<br />
Longitud: indica la cantidad de espacio necesario para cada dato.<br />
Restricciones en los valores de los datos (unidades, rangos, etc.).<br />
98
Propuesta de notación de un DD (II)<br />
Descripción de las estructuras de datos: Se<br />
construyen sobre cuatro relaciones de<br />
componentes (datos o estructuras):<br />
Relación secuencial: Componentes (datos o estructuras)<br />
que siempre se incluyen en una estructura de datos en<br />
particular.<br />
Relación de selección: Alternativas para datos o<br />
estructuras incluidas en una estructura de datos.<br />
Relación de iteración: Define la repetición de un<br />
componente cero o más veces.<br />
Relación opcional: Es un caso especial de la iteración, es<br />
decir, una o ninguna iteración.<br />
99
Propuesta de notación de un DD (III)<br />
Descripción de los flujos de datos: Representamos los flujos<br />
de datos siempre y cuando el flujo no sea un único atributo.<br />
Están compuestos por una o más estructuras<br />
Nombre del flujo de datos:<br />
Nombres que sean significativos. Por ejemplo: factura.<br />
Fuente: indica cual es el proceso (número) fuente de la<br />
información.<br />
Destino: indica cual es el proceso (número) destino de la<br />
información.<br />
Definición: explica el contenido del flujo de datos.<br />
Contenido: describe cuales son las estructuras de datos<br />
incluidas.<br />
100
Propuesta de notación de un DD (IV)<br />
Descripción de los almacenamientos de datos:<br />
Nombre de almacenamiento de datos.<br />
Nombres que significativos. Ejemplo: histórico facturas.<br />
Flujos de entrada: indica cuales son los flujos que<br />
alimentan el almacenamiento de datos.<br />
Flujos de salida: indica cuales son los flujos que extraen<br />
información del almacenamiento de datos.<br />
Definición: describe el contenido del almacenamiento de<br />
datos.<br />
Contenido: especifica el contenido del almacenamiento.<br />
101
Propuesta de notación de un DD (V)<br />
Descripción de los procesos:<br />
Nombre de proceso<br />
Entradas: indica cuales son los procesos,<br />
almacenamientos de datos que ejercen de fuente de<br />
datos.<br />
Flujos de salida: indica cuales los procesos,<br />
almacenamientos de datos que ejercen de destino de<br />
datos.<br />
Definición: indica la misión del proceso.<br />
Descripción: describe el proceso según alguna de las<br />
técnicas vistas.<br />
102
Propuesta de notación de un DD (VI)<br />
Descripción de las entidades externas:<br />
Nombre de entidad externa<br />
Flujos de datos asociados: indica cuales son los flujos<br />
(entrada / salida) asociados.<br />
Definición: indica quienes son la entidad.<br />
Volumen: Número de componentes de la entidad.<br />
103
Implementación de un DD<br />
Repositorio de datos<br />
Herramientas automáticas integradas dentro de un<br />
entorno CASE.<br />
Diccionario de datos de SGBD o SO modernos<br />
Dan soporte automático para definiciones de datos,<br />
validar su consistencia, producir algunos informes.<br />
Procesador de textos convencional<br />
Totalmente manual<br />
104
Ejemplo de DD (I)<br />
Dato elemental<br />
Nombre : Estado_Civil<br />
Descripción : Código de una letra para indicar el estado civil de<br />
cada empleado.<br />
Long y tipo : 1 carácter alfabético.<br />
Sinónimos :<br />
ESTADO (Personal)<br />
CIVIL (Nóminas)<br />
Valores :<br />
S Soltero D Divorciado<br />
C Casado S Separado<br />
V Viudo O Otros<br />
105
Ejemplo de DD (II)<br />
Estructura de dato<br />
Nombre : Empleado<br />
Descripción : Datos necesarios de un empleado.<br />
Componentes :<br />
Nombre_empleado +<br />
Num_empleado +<br />
Datos_personales =<br />
Fecha_nacimiento +<br />
Estado_Civil +<br />
Num_hijos [ 0 - ] +<br />
(Num _ tfno)<br />
Dirección =<br />
Calle +<br />
Número +<br />
(Población) +<br />
Codigo_Postal +<br />
Provincia<br />
106
Ejemplo de DD (III)<br />
Flujo de datos<br />
Nombre : Pago _ aceptado<br />
Ref : 11.1 - 11.2.<br />
Fuente : 11.1 Aceptar pago<br />
Destino : 11.2 Validar pago<br />
Descripción : Pago recibido y sellado pero no validado.<br />
Estruct de datos :<br />
Cheque +<br />
Recibo _ Caja +<br />
(Letra _ Pago) +<br />
Metodo _ pago<br />
Volumen : 5000 por día<br />
Comentarios : La letra de pago esta omitida en el 10 % de los<br />
casos.<br />
107
Ejemplo de DD (IV)<br />
Almacenamiento de datos<br />
Nombre : Historia _Pedidos<br />
Ref : P4.<br />
Flujo de Entrada : 9 - D4 Pedido<br />
Flujo de Salida :<br />
D4 - 10 Detalles pedido<br />
D4 - 11 Detalle ventas<br />
D4 - 9 Demanda anterior<br />
Descripción : Todos los pedidos aceptados en los últimos 6<br />
meses.<br />
Contenido : Pedido =<br />
Id_pedido +<br />
Detalle_cliente +<br />
Detalle_libro<br />
108
Ejemplo de DD (V)<br />
Entidad Externa :<br />
Nombre : Proveedores.<br />
Ref : p.<br />
Definición : Proveedores actuales de la empresa.<br />
Flujos de Datos :<br />
7 - p Pedidos.<br />
p - 3 Albarán.<br />
p - 11 Facturas.<br />
Volumen : Actualmente 25. Se espera llegar a 40.<br />
109
2.2. El análisis del sistema<br />
Análisis de la situación actual<br />
Construcción del nuevo sistema<br />
Contexto del sistema<br />
Identificación y definición de subsistemas<br />
Especificación de interfaces con otros sistemas<br />
Definición de las interfaces con el usuario<br />
Construcción del esquema lógico de datos<br />
Análisis detallado<br />
Completar especificaciones del sistema<br />
110
2.2.1. Modelo físico del sistema actual (I)<br />
Representar gráficamente, sin notación formal, el<br />
funcionamiento del sistema actual desde un punto de vista<br />
físico<br />
funciones que realiza<br />
flujo de información entre las mismas<br />
las entradas, salidas y almacenamiento de la información<br />
comunicaciones con otras unidades de la organización<br />
Analizar los flujos de información del sistema y detectar los<br />
nuevos requisitos de información.<br />
Identificar los objetivos de la unidad que pretende cubrir el<br />
sistema requerido.<br />
Identificar los archivos principales y documentos que serán<br />
fuente de información.<br />
111
Modelo físico del sistema actual (II)<br />
Revisar los aspectos funcionales del sistema existente (manual o<br />
automático)<br />
Principales entradas de datos.<br />
Principales funciones que se ejecutan.<br />
Las principales salidas.<br />
Evaluar la información producida por el sistema actual.<br />
Satisfacción de las expectativas del usuario.<br />
Información requerida por el usuario pero no producida por el sistema.<br />
Departamentos donde se producen demoras en el flujo de la<br />
información.<br />
Otras deficiencias<br />
operativa complicada o engorrosa, informes superfluos o de escasa<br />
utilización, tiempos de respuesta excesivamente altos,<br />
funcionamiento deficiente de algunas operaciones, etc.<br />
La revisión del sistema existente facilitará la identificación de<br />
nuevos requisitos que deberá satisfacer el sistema a desarrollar.<br />
112
Modelo lógico actual<br />
Representa gráficamente el modelo lógico, tanto<br />
para datos como para procesos, del sistema actual<br />
grandes procesos o subsistemas que lo componen y flujos<br />
de información entre ellos<br />
entidades de datos, u objetos sobre los que el sistema<br />
guarda información y las interrelaciones entre ellas.<br />
El objetivo es conocer el funcionamiento del sistema<br />
actual, de un modo conceptual<br />
Los modelos obtenidos en la realización de esta<br />
actividad permitirán identificar nuevos requisitos del<br />
sistema mediante la comparación con el sistema<br />
actual<br />
113
Modelo lógico actual de procesos (I)<br />
Construir un Modelo Lógico actual de procesos:<br />
Eliminar todas las referencias al entorno físico.<br />
Tratar de mostrar qué funciones se hacen, y no cómo se<br />
hacen.<br />
Determinar las grandes funciones del sistema en estudio,<br />
que serán contempladas posteriormente como<br />
subsistemas.<br />
Identificar las entradas y las salidas como flujos de<br />
información de cada uno de los subsistemas.<br />
Definir las principales entidades de datos que estos<br />
subsistemas utilizan.<br />
Descomponer cada subsistema, si se considera<br />
necesario.<br />
114
Modelo lógico actual de procesos (II)<br />
Técnica a utilizar: DFD en el que se muestren<br />
Las actividades o procesos que realiza el sistema.<br />
Los flujos de datos entre los mismos.<br />
Los almacenes de datos (lugares donde se guardan los<br />
datos utilizados por las funciones de consulta y<br />
actualización).<br />
Las entidades externas con que el sistema se comunica.<br />
Identificar nuevos requisitos para el sistema, a<br />
partir del modelo lógico actual de procesos.<br />
115
Modelo lógico actual de datos<br />
Identificar las entidades u objetos sobre los que se<br />
desea almacenar información, y sus principales<br />
atributos.<br />
Estudiar los recursos utilizados por el mismo y los<br />
documentos, pantallas e informes actualmente<br />
existentes.<br />
Definir las asociaciones entre las entidades identificadas<br />
anteriormente.<br />
Diseñar el Modelo Lógico de Datos.<br />
Técnica a utilizar: Diagramas Entidad-Relación<br />
Identificar nuevos requisitos para el sistema, a partir<br />
del modelo lógico actual de datos.<br />
116
Construcción del nuevo sistema<br />
En esta actividad se realizará una descomposición<br />
funcional del sistema en sus Subsistemas<br />
Principales.<br />
Se hará una primera descripción de QUE es lo que<br />
el sistema debe hacer en vez de COMO lo va a<br />
hacer.<br />
Una vez identificados los subsistemas principales,<br />
se describirán en detalle, definiendo sus<br />
componentes, con el fin de obtener una<br />
especificación lo más completa posible.<br />
117
2.2.2. Contexto del sistema (I)<br />
Definir las relaciones del sistema con sus usuarios,<br />
con otras aplicaciones, siempre indicando estas<br />
relaciones como flujos de datos de entrada o<br />
salida.<br />
Identificar qué usuarios o aplicaciones delimitan el<br />
sistema, en el sentido de que tienen entradas y salidas<br />
con él mismo.<br />
Identificar la información que aportan o reciben del<br />
Sistema.<br />
Eliminar todas las referencias al entorno físico.<br />
118
Ejemplo de diagrama de contexto (I)<br />
119
Ejemplo de diagrama de contexto (II)<br />
Pulsador Local ArD<br />
Pulsador Remoto ArD<br />
Pulsador Local ArG<br />
Pulsador Remoto ArG<br />
Interruptor Enable Ar<br />
Pulsador Consola TOC<br />
Pulsador Consola Store<br />
Pulsador Consola Grand Air<br />
Serial Line interface<br />
pr_ard_o<br />
pr_ard_f<br />
pl_arg_o<br />
pl_arg_f<br />
pr_arg_o<br />
pr_arg_f<br />
i_conda<br />
pc_toc_o<br />
pc_toc_f<br />
pc_sto_o<br />
pc_sto_f<br />
pl_ard_o<br />
pl_ard_f<br />
pc_gra_o<br />
pc_gra_f<br />
serial_pom<br />
serial_toc_f<br />
serial_sto_f<br />
serial_ard_f<br />
serial_arg_f<br />
serial_diag<br />
Diagrama de contexto<br />
BGTOC<br />
m_drv_o<br />
m_drv_f<br />
m_pas_o<br />
m_pas_f<br />
m_toc_o<br />
m_toc_f<br />
f_toc_end<br />
a_toc_niv<br />
m_sto_o<br />
m_sto_f<br />
a_sto_niv<br />
m_ard_o<br />
m_ard_f<br />
a_ard_niv<br />
m_arg_o<br />
m_arg_f<br />
a_arg_niv<br />
a_bat_niv<br />
Motor Driver<br />
Motor Passenger<br />
Motor TOC<br />
Detector End TOC<br />
Current Sensor TOC<br />
Motor Store<br />
Current Sensor Store<br />
Motor ArD<br />
Current Sensor ArD<br />
Motor ArG<br />
Current Sensor ArG<br />
Voltage Sensor Bat<br />
120
2.2.3. Identif. y def. de subsistemas (I)<br />
Dividir el sistema en diferentes subsistemas para<br />
su desarrollo posterior.<br />
Homogeneidad de las funciones que realizan los<br />
diferentes subsistemas.<br />
Datos que manejan, con el fin de disminuir la<br />
comunicación entre los subsistemas.<br />
Localización geográfica de los subsistemas.<br />
Factores de seguridad.<br />
Respuesta a eventos externos (solicitud de información,<br />
demanda de servicios, etc.).<br />
Fechas de entrega de alguna parte del sistema.<br />
121
Identif. y def. de subsistemas (II)<br />
Representar gráficamente, mediante un DFD, los diferentes<br />
subsistemas identificados en el paso anterior y las<br />
comunicaciones entre ellos.<br />
Se identifican, representan y describen las entradas y salidas y<br />
Flujos de Datos entre los subsistemas.<br />
Se determinan las principales entidades de datos que estos<br />
subsistemas utilizan y se representan como almacenes de datos<br />
en el diagrama.<br />
Descomponer cada subsistema en las funciones de que consta y<br />
representar gráficamente esta descomposición, mediante un<br />
Diagrama de Flujo de Datos (DFD)<br />
122
Identif. y def. de subsistemas (III)<br />
Para identificar las nuevas funciones de los subsistemas, es<br />
necesario considerar:<br />
El detalle de los nuevos subsistemas identificados.<br />
Funciones necesarias para soportar los requisitos del Catálogo.<br />
Funciones de mantenimiento de los nuevos datos en el modelo<br />
de datos del nuevo sistema.<br />
123
Identif. y def. de subsistemas (IV)<br />
Describir las distintas funciones identificadas en los DFD.<br />
Descomponer de cada una de las funciones identificadas en otro<br />
DFD que muestre el detalle las diferentes subfunciones de que<br />
consta esta función.<br />
Describir cada una de las subfunciones identificadas.<br />
Modo de acceso a las entidades de datos del sistema.<br />
Características de la subfunción:<br />
Actualización de datos.<br />
Consultas e informes.<br />
Realización de algoritmos específicos y descripción de los<br />
mismos.<br />
Tipo de tratamiento (en lotes o interactivo).<br />
Información sobre la frecuencia de ejecución.<br />
124
Identif. y def. de subsistemas (V)<br />
En el caso de que la descripción de alguna de<br />
estas subfunciones sea demasiado extensa, puede<br />
ser conveniente proceder a la descomposición de<br />
la misma en otro DFD que muestre el detalle de<br />
los diferentes procesos elementales que describen<br />
dicha subfunción.<br />
Determinar los diferentes eventos del sistema (sucesos<br />
que activan procesos o funciones que actualizan datos<br />
del sistema).<br />
Refinar los modelo obtenidos<br />
125
Identif. y def. de subsistemas (VI)<br />
Ejemplo DFD de nivel de subsistema<br />
Cajero<br />
Productos de un<br />
ticket<br />
fecha y hora<br />
Sistema<br />
ticket<br />
1<br />
Gestión<br />
ventas<br />
1 Producto<br />
2 Ticket<br />
2<br />
Gestión<br />
productos<br />
Reponedor<br />
Datos Nuevo producto<br />
Datos Borrar producto<br />
Datos Actualizar<br />
producto<br />
126
2.2.4. Interfaces con otros sistemas<br />
Determinar para cada uno de los diferentes subsistemas<br />
identificados, las interfaces con otros sistemas o<br />
subsistemas, especificando:<br />
Datos transferidos.<br />
Modo, Medio y Frecuencia de la interfaz.<br />
Suceso que origina y desencadena la interfaz.<br />
Deberá recogerse información sobre el formato de los datos<br />
que van a comunicarse.<br />
Identificar las interfaces (Diagrama de Contexto).<br />
Especificar los datos a ser transferidos/ recibidos.<br />
Indicar los aspectos operativos de la interfaz (en lotes,<br />
interactiva, medio, frecuencia).<br />
Identificar los sucesos o eventos que desencadenan la<br />
realización de la interfaz.<br />
127
Descripción de procesos manuales<br />
Nos interesan aquellos procesos manuales<br />
relacionados con un proceso interactivo (p. ej.<br />
introducción de datos en pantalla) frente a<br />
aquellos procesos manuales sin relación directa<br />
con procesos automáticos (p. ej. revisión de un<br />
listado).<br />
Para procesos manuales relacionados con<br />
procesos automáticos especificar:<br />
Datos de entrada a introducir por pantalla.<br />
Datos de salida mostrados en pantalla.<br />
Descripción sencilla del diálogo y manejo de la pantalla.<br />
128
2.2.5. Interfaces con el usuario<br />
Comprenden menús, formatos de pantallas, diálogos,<br />
formatos de informes y formularios de entrada.<br />
Prevalecen los requisitos de usuario sobre las definiciones<br />
técnicas.<br />
La participación activa de los usuarios del nuevo sistema es<br />
imprescindible.<br />
Es necesario conocer aspectos relacionados con las<br />
validaciones de campos, ediciones, ayudas, secuencias y<br />
navegación entre pantallas, etc.<br />
Uso de prototipos con el propósito de:<br />
reducir el riesgo en la implantación del nuevo sistema.<br />
aumentar la calidad del producto.<br />
incrementar la productividad.<br />
129
Pantallas del sistema (I)<br />
Definir los formatos individuales de las pantallas utilizadas.<br />
Encabezamiento.<br />
Cuerpo principal.<br />
Pie.<br />
Teclas de función.<br />
Teclas de ayuda y líneas de visualización de los mensajes de<br />
ayuda.<br />
Describir de modo detallado los diálogos entre pantallas y el<br />
encadenamiento entre las mismas.<br />
Realizar una representación jerárquica de las pantallas del<br />
Sistema.<br />
Se representarán en los niveles superiores los menús del<br />
sistema, y en los niveles inferiores las pantallas de diálogos,<br />
representativos de funciones o procesos concretos del sistema.<br />
130
Pantallas del sistema (II)<br />
Identificar los menús o diálogos concretos en función de los<br />
grupos de usuarios que los utilicen.<br />
Determinar los diálogos que se consideran críticos para un<br />
funcionamiento correcto del nuevo sistema. Dependerán de:<br />
Tipo de proyecto.<br />
Grado de cambio con respecto al sistema actual.<br />
La complejidad de los trabajos del sistema.<br />
131
Pantallas del sistema (III)<br />
En esta determinación, serán de utilidad los siguientes<br />
criterios:<br />
Frecuencia de uso de esos diálogos.<br />
Acceso a gran número de entidades de datos del sistema.<br />
Gran número de elementos de datos asociados con el diálogo.<br />
Cambio en el modo habitual de trabajo en el sistema actual.<br />
Diálogos comunes a diferentes grupos de usuarios.<br />
Diálogos que contienen opciones complejas de navegación.<br />
132
Pantallas del sistema (IV)<br />
Prototipado de las pantallas del sistema<br />
Determinar el punto de entrada a cada pantalla, y sus<br />
posibilidades de navegación a otras.<br />
Especificar los datos asociados a cada pantalla (longitud,<br />
reglas de validación, mensajes de ayuda, etc.).<br />
Evaluar la consistencia del diseño, asegurando que toda<br />
la información necesaria para el usuario está<br />
contemplada en las pantallas y corregirlas en caso<br />
contrario.<br />
Confirmar con el usuario la validez de los diseños de<br />
pantalla realizados.<br />
133
Jerarquía de pantallas (I)<br />
134
Jerarquía de pantallas (II)<br />
Menú principal<br />
Gestión de productos<br />
Ventas<br />
Nuevo producto<br />
Modificar producto<br />
Borrar producto<br />
135
Jerarquía<br />
de pantallas (III)<br />
M e n u<br />
P p a l .<br />
C o n t r o l d e R e d<br />
C o n f i g u r a c i ó n<br />
g e n e r a l<br />
C o n f i g u r a c i ó n<br />
i n f r a e s t r u c t u r a<br />
C o n f i g u r a c i ó n<br />
d e f l o t a s y<br />
t e r m i n a l e s<br />
C o n f i g u r a c i ó n d e<br />
a b o n a d o s<br />
E s t a d í s t i c o s<br />
M a n t e n i m i e n t o<br />
A d m i n i s t r a c i ó n<br />
d e l s i s t e m a<br />
F a c t u r a c i ó n<br />
L l a m a d a s e n c o l a<br />
C o m u n i c a c i o n e s e x i s t e n t e s<br />
L o c a l i z a c i ó n d e u n t e r m i n a l<br />
R e l a c i ó n d e t e r m i n a l e s p o r z o n a<br />
E s t a d o d e l a i n f r a e s t r u c t u r a<br />
M o n i t o r d e a l a r m a s<br />
P a r á m e t r o s g e n e r a l e s<br />
D u r a c i ó n d e l a s c o m u n i c a c i o n e s<br />
A c t u a l i z a c i o n e s s o b r e l a r e d<br />
N o d o C e n t r a l<br />
E s t a c i ó n B a s e d e Z o n a<br />
O p c i o n e s i n f r a e s t r u c t u r a<br />
E d i c i ó n d e f l o t a s<br />
E d i c i ó n d e e q u i p o s<br />
A l t a s y b a j a s d e a b o n a d o s<br />
A s i g . d e f l o t a s y / o e q u i p o s a a b o n a d o s<br />
D u r a c i ó n c o m u n i c a c i o n e s<br />
C o n f i g u r a c i o n e s d i a r i a s<br />
C o n f i g u r a c i ó n f e s t i v i d a d e s m e n s u a l e s<br />
G r u p o s d e<br />
c o m p a r t i c i ó n<br />
S i s t e m a A b i e r t o<br />
C o n f l i c t o s p a r a l a c o m p a r t i c i ó n d e<br />
e n l a c e s d e a u d i o<br />
C o n f l i c t o s p a r a l a c o m p a r t i c i ó n d e<br />
c a n a l e s d e t r á f i c o<br />
G r a d o d e u t i l i z a c i ó n d e l a r e d ( r e p e t i d o r e s , e n l a c e s y a u d i o s )<br />
T r á f i c o g l o b a l<br />
T r á f i c o t o t a l c u r s a d o<br />
T r á f i c o i n d i v i d u a l i z a d o p o r e q u i p o t e r m i n a l<br />
N º d e l l a m a d a s p e r d i d a s y e s t a d í s t i c a d e l a s c a u s a s<br />
N º d e l l a m a d a s i n m e d i a t a s<br />
M e d i a d e d u r a c i ó n d e l l a m a d a s s e g ú n e l t i p o d e l l a m a d a<br />
C á l c u l o d e i n d i c a d o r e s d e c a r g a d e l a r e d<br />
A c c e s o a e l e m e n t o s<br />
L i s t a d o d e i n c i d e n c i a s<br />
A d m i n i s t r a c i ó n d e u s u a r i o s<br />
C o p i a s d e s e g u r i d a d<br />
L i m p i e z a d e l a s B a s e s d e D a t o s<br />
C o n f i g u r a c i ó n f a c t u r a<br />
T a b l a s d e t a r i f i c a c i ó n<br />
L l a m a d a s d e u n a b o n a d o<br />
F a c t u r a r<br />
V i s u a l i z a c i ó n d e f a c t u r a s<br />
C o n t a b i l i d a d g e n e r a l<br />
A c t u a l i z a r d u r a c i o n e s e n l a r e d t r u n k i n g<br />
S i n c r o n i z a c i ó n c o n e l r e l o j d e l a r e d<br />
V o t e n o w<br />
A l t a s y b a j a s d e u s u a r i o s<br />
C a m b i a r P a s s w o r d<br />
L i s t a d o d e u s u a r i o s<br />
H a c e r c o p i a<br />
R e s t a u r a r c o p i a<br />
C o m p a r t i c i ó n d e<br />
e n l a c e d e<br />
s e ñ a l i z a c i ó n<br />
C a n a l d e C o n t r o l y<br />
E n l a c e S e ñ a l i z a c i ó n<br />
c o m p a r t i d o s<br />
136
C o n t r o l d e R e d<br />
C o n f i g u r a c i ó n<br />
d e a b o n a d o s<br />
Jerarquía de<br />
pantallas (IV)<br />
E s t a d o d e l a<br />
i n f r a e s t r u c t u r a<br />
Información de estado<br />
del Nodo Central<br />
L l a m a d a s e n c o l a Llamadas en Cola<br />
C o m u n i c a c i o n e s<br />
e x i s t e n t e s<br />
R e l a c i ó n d e t e r m i n a l e s<br />
p o r z o n a<br />
L o c a l i z a c i ó n d e u n<br />
t e r m i n a l<br />
A l t a s y b a j a s<br />
d e a b o n a d o s<br />
A s i g . d e f l o t a s<br />
y / o e q u i p o s a<br />
a b o n a d o s<br />
Comunicaciones<br />
existentes<br />
Relacion de zonas<br />
Localización de un<br />
terminal<br />
Altas y bajas de<br />
abonados<br />
Selección de Abonado<br />
Información de estado<br />
de la Estación Base<br />
de Zona<br />
Criterios de selección<br />
y ordenación de las<br />
llamadas en curso<br />
Criterios de selección y<br />
ordenación de las<br />
comunicaciones existentes<br />
Relación de terminales<br />
por zona<br />
Asignación de flotas<br />
y/o equipos a<br />
abonados<br />
C o n f i g u r a c i ó n<br />
i n f r a e s t r u c t u r a<br />
N o d o C e n t r a l<br />
E s t a c i ó n B a s e<br />
d e Z o n a<br />
O p c i o n e s<br />
i n f r a e s t r u c t u r a<br />
Configuración Nodo<br />
Central<br />
Configurar EBZ<br />
G r u p o s d e<br />
c o m p a r t i c i ó n<br />
C o n f l i c t o s p a r a l a<br />
c o m p a r t i c i ó n d e<br />
c a n a l e s d e t r á f i c o<br />
C o n f l i c t o s p a r a l a<br />
c o m p a r t i c i ó n d e<br />
e n l a c e s d e a u d i o<br />
S i s t e m a A b i e r t o<br />
C o m p a r t i c i ó n d e<br />
e n l a c e d e<br />
s e ñ a l i z a c i ó n<br />
C a n a l d e C o n t r o l y<br />
E n l a c e S e ñ a l i z a c i ó n<br />
c o m p a r t i d o s<br />
Configurar Conexión<br />
Directa<br />
Configurar<br />
redundancias del NC<br />
Acceso a Centralita<br />
Configurar<br />
redundancias de la<br />
EBZ<br />
Alta Enlace Audio<br />
Alta Repetidor<br />
Configurar EBZ en<br />
modo degradado<br />
Conflictos para la<br />
compartición de<br />
canales de tráfico<br />
Conflictos para la<br />
compartición de<br />
enlaces de audio<br />
Grupos del Sistema<br />
Abierto<br />
Compartición de<br />
enlace de señalización<br />
Canal de Control y Enlace de<br />
Señalización compartidos<br />
Configuración<br />
redundancias en los<br />
Enlaces de Audio<br />
Alta frecuencia<br />
Configurar sistema<br />
abierto<br />
Subgrupo 1 Compartición<br />
Enlace de Señalización<br />
Subgrupo 2 Compartición<br />
Enlace de Señalización<br />
137
A d m i n i s t r a c i ó n<br />
d e l s i s t e m a<br />
F a c t u r a c i ó n<br />
Jerarquía de pantallas (V)<br />
A d m i n i s t r a c i ó n<br />
d e l o s u s u s a r i o s<br />
S<br />
E l a b o r a c i ó n d e<br />
l a s T a b l a s d e<br />
T a r i f i c a c i ó n<br />
M a n t e n i m i e n t o<br />
d e l a s b a s e s<br />
d e d a t o s<br />
T r á f i c o c u r s a d o<br />
p o r u n a b o n a d o<br />
P r e s e n t a c i ó n<br />
d e f a c t u r a s<br />
A l t a s y b a j a s d e<br />
u s u a r i o s<br />
C a m b i a r e l<br />
p a s s w o r d<br />
S<br />
L i s t a d o d e<br />
u s u a r i o s<br />
R e a l i z a c i ó n d e<br />
c o p i a s d e<br />
s e g u r i d a d<br />
L i m p i e z a d e l a<br />
b a s e d e d a t o s<br />
Elaboración de las<br />
Tablas de Tarificación<br />
Tráfico cursado por un<br />
abonado<br />
F a c t u r a d e u n<br />
a b o n a d o<br />
F a c t u r a d e<br />
t o d o s l o s<br />
a b o n a d o s<br />
Criterios de selección y<br />
ordenación del tráfico cursado<br />
por un abonado<br />
Selección del abonado<br />
Factura de todos los<br />
abonados<br />
Altas y bajas de<br />
usuarios<br />
Cambiar el password<br />
Listado de usuarios<br />
Copias de seguridad<br />
Limpieza de la base<br />
de datos<br />
C o n f i g u r a c i ó n<br />
d e f l o t a s y<br />
t e r m i n a l e s<br />
Factura de un<br />
abonado<br />
Criterios de selección y<br />
ordenación de la factura de un<br />
abonado<br />
Criterios de selección y<br />
ordenación del listado de<br />
usuarios<br />
A c c e s o a<br />
G r u p o s<br />
A s i g n a c i ó n<br />
d e f l o t a s<br />
A l t a s y b a j a s<br />
d e t e r m i n a l e s<br />
Grupos de una flota<br />
Asignación de flotas<br />
Terminales de una<br />
flota<br />
Acceso a grupos<br />
Altas de terminales<br />
Redirecciones de un<br />
grupo<br />
Monitores de flota Alta Monitores de flota<br />
Redirección de un<br />
terminal<br />
138
Prototipado simple de pantallas<br />
Producto nuevo<br />
Código del producto:<br />
Descripción:<br />
Precio:<br />
Unidades:<br />
Ticket nuevo<br />
Chequear<br />
Añadir<br />
Salir<br />
Fecha: <br />
Código del producto:<br />
Descripción: Precio:<br />
Ticket:<br />
Total:<br />
Unidades:<br />
Importe:<br />
+<br />
-<br />
Total<br />
Salir<br />
139
Prototipado avanzado de pantallas<br />
140
Informes y formularios<br />
Obtener una definición de los formatos de los<br />
informes generados.<br />
Definir los formularios utilizados (si fuera<br />
necesario).<br />
Verificar que los diseños realizados están de<br />
acuerdo con los estándares de la empresa y<br />
obtener la validación y conformidad de los<br />
usuarios.<br />
141
2.2.6. Construcción del modelo de datos<br />
Modelo Lógico de Datos que recoja:<br />
Todas las entidades de datos de relevancia cuya información va a<br />
ser consultada o procesada de alguna manera en el sistema.<br />
Todas las relaciones existentes entre las entidades de manera que<br />
se pueda acceder a los datos relacionados con cualquiera de las<br />
entidades mediante procesos sencillos.<br />
Las claves de acceso a las entidades, así como los atributos<br />
característicos de las distintas entidades definidas.<br />
Construir Modelo Entidad-Relación y describir las entidades<br />
Normalizar el modelo de datos<br />
142
Actualización de modelo de datos<br />
Cuando un sistema reemplaza a otro ya existente hay que tener<br />
en cuenta:<br />
Definir nuevas entidades de datos (estructuras de datos) para<br />
contemplar las necesidades de información futuras.<br />
Incorporar nuevos atributos de datos a las entidades ya existentes.<br />
Modificar el nombre de las entidades y/ o de los atributos.<br />
Identificar nuevas interrelaciones entre las entidades, teniendo en<br />
cuenta las necesidades de acceso a la información.<br />
Cambiar los atributos clave de las entidades.<br />
Describir completamente las entidades de datos con todos sus<br />
atributos e incorporar información sobre volúmenes estimados,<br />
frecuencia de acceso a las mismas, tiempo medio de<br />
almacenamiento dentro del sistema, etc.<br />
... y las implicaciones que todos estos cambios pueden tener<br />
143
2.2.7. Análisis detallado del nuevo sistema<br />
Modelo del nuevo sistema desde el punto de vista de<br />
los eventos que actúan sobre el mismo, considerando<br />
evento como todo suceso que activa los procesos de<br />
actualización de datos dentro del sistema.<br />
Se estudia la relación entre los procesos y las<br />
entidades de datos<br />
El orden en que se suceden los distintos eventos dentro del<br />
sistema.<br />
La posible existencia de situaciones no usuales, dentro del<br />
tratamiento realizado por el sistema.<br />
La interacción con otros sistemas dentro de la Unidad<br />
144
Catálogo de eventos<br />
Evento: Cualquier suceso que activa a un proceso que actualiza<br />
datos del sistema. Se pueden considerar tres tipos de eventos:<br />
Eventos producidos en el exterior del sistema, por ejemplo,<br />
solicitudes de altas o modificaciones de los datos almacenados en el<br />
sistema. Estos eventos "ponen en marcha" los procesos que realizan<br />
dichas funciones de actualización.<br />
Eventos periódicos: se identifican en los Diagramas de Flujos de<br />
Datos, estudiando aquellos procesos que actualizan los almacenes de<br />
datos, sin un estímulo externo, con una periodicidad temporal.<br />
Por ejemplo:En un sistema donde las entidades a las que no se<br />
haya accedido en cierto tiempo, se archiven, se identificaría el<br />
evento periódico "Archivar entidades".<br />
Eventos reconocidos internamente, por ejemplo, prerrequisitos que el<br />
sistema exige para activar el proceso de actualización.<br />
145
Ejemplo de catálogo de eventos<br />
Filmoteca Española<br />
Evento: FE-ALTA.MATERIAL<br />
Descripción:<br />
o Alta de un nuevo material, que puede producir o no el alta de un<br />
nuevo titular<br />
Evento: FE-CAMBIO.TITULAR<br />
Descripción:<br />
o Notificación del cambio de titular de un material.<br />
Evento: FE-CAMBIO.TITULAR.DERECHO<br />
Descripción:<br />
o Notificación del cambio de titular a un derecho de película. Este<br />
cambio provoca:<br />
Un alta de una ocurrencia en la Entidad FE-DERECHO.<br />
Una modificación de la vigencia en la ocurrencia de la Entidad FE-<br />
DERECHO, que ostentaba el derecho antes del cambio del titular.<br />
146
Diagramas de Estado<br />
Un diagr ama de estados muestra un<br />
comportamiento que especifica la secuencia de<br />
estados por los que pasa el sistema o una entidad<br />
concreta a lo largo de su tiempo de vida, en<br />
respuesta a eventos.<br />
Se emplean para modelar aspectos dinámicos del<br />
sistema :<br />
Muestran el flujo de control de un estado a otro.<br />
Trabajador<br />
pérdida empleo<br />
En Activo<br />
contratación<br />
En el Paro<br />
más de 60 años<br />
más de 60 años<br />
Jubilación<br />
147
Elementos de Modelado<br />
Elementos de modelado de los Diagramas de Estados<br />
:<br />
Estado : condición o situación en la vida de un objeto en la cual<br />
cumple una condición, desarrolla una actividad o bien espera algún<br />
evento.<br />
Transición : relación entre dos estados indicando que una entidad<br />
en el primer estado desarrolla una serie de acciones y entra en el<br />
segundo estado cuando un evento concreto ocurre y se satisfacen<br />
una condiciones específicas.<br />
Evento : especificación de una ocurrencia significativa que tiene<br />
una localización en el tiempo y el espacio, y que desencadena una<br />
transición de estados.<br />
Además de notas y restricciones.<br />
matricular<br />
despegar<br />
En Vuelo<br />
En Tierra<br />
aterrizar<br />
estrellarse<br />
148
Ejemplo: Análisis de cadenas<br />
Parser de cadenas de caracteres con sintaxis :<br />
mensaje :: ‘’ cadena ‘;’<br />
Diagrama de estados :<br />
149
Ejemplo Diagrama de Estados (I)<br />
150
Ejemplo Diagrama de Estados (II)<br />
151
Diagramas de Secuencia<br />
Herramienta muy utilizada en metodologías<br />
orientadas a objeto<br />
Los diagramas de secuencia nos permite mostrar<br />
la secuencia de ejecución de los procesos.<br />
Proceso<br />
1<br />
Proceso<br />
2<br />
152
Redes de Petri<br />
Las redes de Petri son una herramienta que<br />
permite mostrar aspectos de secuenciación de<br />
procesos y de sincronización de los mismos.<br />
Se propone un uso “libre” de las RdP:<br />
promoción de uso como herramienta gráfica,<br />
minimizar aspectos de formalismo<br />
153
Ejemplo de uso<br />
154
Ejemplo de uso<br />
155
2.2.8. Completar la especificación del sistema<br />
En esta actividad se contemplan en detalle los<br />
requisitos no funcionales del sistema, es decir, las<br />
facilidades que debe proporcionar el mismo en<br />
cuanto a:<br />
Seguridad.<br />
Rendimiento.<br />
Frecuencia de tratamiento.<br />
Comunicaciones.<br />
156
Seguridad y Control (I)<br />
Especificar la política de Seguridad y Control para el nuevo<br />
sistema.<br />
Definir exactamente los puntos de control que deben<br />
establecerse para garantizar los requisitos de seguridad<br />
establecidos.<br />
Planificación de la seguridad lógica en tres niveles:<br />
Protección de acceso, establece las posibilidades del acceso a la<br />
información en función de los procesos y sus futuros usuarios.<br />
En casos extremos de necesidad de protección, pueden<br />
emplearse técnicas de encriptación de datos.<br />
Continuidad integral, que indicará los procedimientos<br />
adecuados para asegurar una recuperación de los datos<br />
involucrados en una operación de actualización en caso de<br />
terminación anormal.<br />
Integridad de datos.<br />
157
Seguridad y Control (II)<br />
Determinar los requisitos de seguridad para<br />
almacenamientos de datos, y de otros recursos a<br />
proteger, identificando las causas de peligro. Los<br />
peligros más comunes son:<br />
Modificación.<br />
Destrucción.<br />
Revelación de datos a personas no autorizadas.<br />
Definir requisitos de seguridad para los procesos y<br />
muy principalmente para las transacciones<br />
interactivas.<br />
158
Robustez del sistema<br />
Copias de respaldo, contingencias y recuperación de errores.<br />
Definir las necesidades de copias de seguridad para los<br />
almacenamientos de datos, procesos y transacciones del nuevo<br />
sistema.<br />
Especificar los almacenamientos de datos que deberán entrar en los<br />
procedimientos de copias de respaldo, su periodicidad y condiciones<br />
especiales.<br />
Establecer un plan de contingencias para aquellas situaciones de fallo<br />
crítico del sistema.<br />
Especificar los procedimientos de tratamientos de los errores que se<br />
podrán producir en el nuevo sistema, teniendo especial cuidado en:<br />
Revisar las posibilidades de error y detallar los procedimientos de<br />
recuperación para cada subsistema.<br />
Planificar el contenido de los mensajes de error, teniendo en<br />
cuenta si son fáciles de comprender para el destinatario.<br />
159
Rendimiento del sistema<br />
Especificar requisitos de rendimiento y eficiencia<br />
del nuevo sistema.<br />
Tiempos de respuesta requeridos.<br />
Volúmenes de ocupación dentro del sistema.<br />
Circunstancias especiales de explotación (días o períodos<br />
de alto volumen de transacciones).<br />
Asegurar que la inclusión de las funciones de<br />
seguridad, control, copias de seguridad,<br />
tratamiento de errores, etc., no están limitando el<br />
rendimiento deseado para el sistema.<br />
160
V&V de la especificación del sistema<br />
Asegurar la coherencia y exactitud de los modelos<br />
obtenidos.<br />
Garantizar que los modelos obtenidos satisfacen los<br />
requisitos recogidos en el Catálogo de Requisitos del<br />
Sistema.<br />
Esto se debería hacer mediante una revisión con el Grupo de<br />
Calidad y con los usuarios.<br />
Comprobar con el Grupo de Calidad, que la documentación<br />
elaborada como producto final de este módulo sigue los<br />
estándares establecidos. Se harán las correspondientes<br />
modificaciones con el objetivo de ajustarse al máximo a<br />
estos estándares.<br />
Una vez revisadas las especificaciones, y corregidos sus<br />
posibles defectos, deberá haber una aprobación formal de<br />
las mismas por parte del Comité de Dirección. No se<br />
continuará con la Fase siguiente hasta que el equipo del<br />
proyecto no cuente con esta aprobación.<br />
161
162
Ejercicio de Análisis: “Gestión de aula informática” (I)<br />
Un aula informática de una escuela universitaria tiene la<br />
siguiente política de reservas:<br />
Los alumnos pueden reservar un máximo de 4 horas a la<br />
semana.<br />
Las reservas pueden realizarse hasta el día anterior al<br />
uso.<br />
Cuando un alumno hace una reserva A, se le entrega un<br />
justificante de la misma. El formato del justificante es el<br />
siguiente.<br />
Reserva Aula Informática<br />
Número de Expediente: 54.321<br />
Nombre: Alicia Kensington Carroll<br />
Equipo: 014<br />
Día reservado: 28-06-93<br />
Hora reservada: 16:00<br />
163
Ejercicio de Análisis: “Gestión de aula informática” (II)<br />
Cuando se abre el Aula hay un listado de las reservas<br />
realizadas sobre cada equipo, de modo que la gente puede<br />
usar los equipos no reservados. El formato del listado de<br />
reservas es el siguiente:<br />
<br />
Reservas del aula informática<br />
001<br />
014<br />
014<br />
…<br />
Equipo<br />
10:00<br />
10:00<br />
16:00<br />
…<br />
Hora<br />
Día: 28-06-93<br />
Peter Pan<br />
María Montesa<br />
Alicia Pérez<br />
El horario del aula es de 10:00 a 18:00 todos los días lectivos<br />
y las reservas comienzan siempre a una hora en punto<br />
…<br />
Alumno<br />
164
Ejercicio de análisis: gestión de un aparcamiento<br />
público<br />
Un aparcamiento público admite tant o a clientes que cogen el ticket en la entrada, como a abonados que<br />
cuentan con una tarjeta que los identifica. Para ello, el aparcamiento cuenta con dos barreras, una a la entrada<br />
y otra a la salida, conectadas al ordenador de gestión. La barrera de entrada dispone de un lector de tarjeta de<br />
abonados y un expendedor de tickets, mientras que la barrera de salida cuenta también con un lector de<br />
tarjetas y con un lector de tickets.<br />
Cuando un usuario llega a la barrera de entrada y retira el ticket de ent rada, el emisor de tickets envía un<br />
mensaje al ordenador indicando el código del ticket y la fecha y hora de ret irada del mismo, y abre<br />
automáticamente la barrera. El código del ticket es un número secuencial y cíclico que va generando el emisor<br />
entre 0 y 99.999. Si el usuario es abonado, entonces el lector de tarjeta de abonado envía un mensaje al<br />
ordenador de gestión con el número de abonado y se queda esperando a recibir confirmación de que puede<br />
abrir la barrera. El número de abonado está entre el 1 y el 999.<br />
Un usuario no abonado debe pasar por caja antes de poder salir. El cajero dispone de un lector inteligente de<br />
tickets. Al int roducir un ticket en el lector, éste solicita al ordenador al que está conectado que le remita la<br />
fecha y hora de entrada con el fin de poder calcular el importe. Una vez que el operario valida el pago de este<br />
importe, el lector envía un mensaje al ordenador para que apunte el ticket como disponible para salir. Cuando<br />
el usuario va a salir con el coche, introduce el ticket pagado en el lector que se encuentra en la barrera de<br />
salida. Este envía un mensaje al ordenador para que confirme que el ticket ha sido pagado y que autoriza la<br />
salida.<br />
Cuando un usuario abonado desea sacar su coche del aparcamiento, introduce su tarjeta en el lector de la<br />
barrera de salida. Este lector envía un mensaje al ordenador confirmando que puede dejar pasar al abonado.<br />
Pese a ser un único dispositivo físico, cada una de las barreras está integrada por t res dispositivos lógicos (la<br />
barrera en sí, el lector de tarjet a de abonado y el expendedor o el lector de tickets) que obedecen y se<br />
comunican por separado con el ordenador de gestión.<br />
Un abonado debe haber pasado su tarjeta por el lect or de salida antes de poder volver a utilizarla en el de<br />
entrada.<br />
Un ticket que no ha sido pagado no debe permitir abrir la barrera de salida.<br />
Se debe atender las peticiones de apertura de barrera, tanto de entrada como de salida, en menos de tres<br />
segundos.Del abonado se debe guardar información referente a su nombre, su dirección y su número de<br />
teléfono.<br />
165