Análisis y Diseño de Sistemas Estructurado Moderno
ADSEM
Texto Preparado por Oscar A. Núñez Madrid Para los Alumnos del CFT Simón Bolívar Marzo - 2006 Santiago - Chile
Análisis y Diseño de Sistemas
1.
Introducción
La información es inherente a la existencia de las personas y de las sociedades. Permite conocer la realidad, interactuar con el medio físico, apoyar la toma de decisiones y evaluar las acciones de individuos y de grupos. El aprovechamiento de la información propicia la mejoría de los niveles de bienestar y permite aumentar la productividad y competitividad de las naciones. El mundo de hoy, está inmerso en una nueva revolución tecnológica basada en la informática, que encuentra su principal impulso en el acceso expedito y en la capacidad de procesamiento de información sobre prácticamente todos los temas y sectores de la actividad humana. La nueva revolución tecnológica ha contribuido a que culturas y sociedades se transformen aceleradamente tanto económica, como social y políticamente, con el objetivo fundamental de alcanzar con plenitud sus potencialidades. Debemos tomar conciencia que la informática tiene un carácter estratégico. Sus aplicaciones ya han afectado prácticamente todas las actividades humanas, modificando las estructuras de producción y comercialización, la organización de instituciones, la generación de nuevas tecnologías y la difusión de conocimientos, así como la prestación de servicios. A todo ello se están sumando transformaciones igualmente importantes en el ámbito social, básicamente en la forma en que se llevan a cabo innumerables actividades cotidianas y personales. En la actualidad, la información, obtenida en forma completa y oportuna dentro de cualquier tipo de organización, constituye un elemento esencial que garantiza la gestión eficaz de los recursos de la misma, así como la calidad de los servicios que presta y la adecuación constante al entorno que lo rodea. A medida que se difunde con gran rapidez el uso de las Computadoras dentro de una Organización, surgen muchas inquietudes acerca de la forma de usarlas para mejorar la productividad y objetivos de la Organización. En Chile la mayoría de las instituciones y empresas carecen de una política de informática adecuada, constituyendo así una de las características negativas del desarrollo de sistemas informáticos. Frente a la importancia de la información, dentro de una organización y el incremento del uso del computador y la carencia de una política de informática adecuada, se ve por conveniente emitir metodologías orientadas al desarrollo de Sistemas de Información, en tal sentido, la literatura técnica propone una serie de metodologías orientada a las Fases de Análisis y Diseño de Sistemas de Información, la cual constituye el cuerpo del presente libro La filosofía implícita en la Metodología, es que el Análisis y Diseño de Sistemas es un Proceso en el que se aplican muchas técnicas orientadas a mejorar el negocio mediante la implantación o el cambio de los sistemas de información existentes. La Metodología propuesta, tiene sus fundamentos en la Teoría General de Sistemas (TGS), y debe de considerarse como herramienta y guía para asegurar su efectividad. En muchas organizaciones los Sistemas de Información se encuentran en la fase de expansión y todavía no se ha establecido una metodología efectiva de Planificación de los mismos. En estos casos no ser posible implantar directamente una metodología activa de generación de Planes Estratégicos de Empresas y de Sistemas de Información simultáneamente al carecer la organización de la cultura organizativa correspondiente. En esta circunstancia hay que llegar al método activo por vía evolutiva mediante la implantación de una metodología pasiva en una primera fase que ayude a la creación de una cultura necesaria (el término pasivo hace mención que solamente requiere el conocimiento de las estrategias que la institución desee llevar a cabo independientemente del proceso que se haya seguido para llegar a ellas) es difícil de implantar si no existe los siguiente consideraciones: 1. Una cultura corporativa en la Institución que sea sensible al uso del potencial de las tecnologías de la información. 2. El conocimiento por parte del Centro Informático, de los objetivos y estrategias corporativas de la Institución, en términos que permita buscar un alineamiento del plan de sistemas con las estrategias de la institución (método pasivo). Sin embargo, cabe la posibilidad de desarrollar una integración o planificación en paralelo de ambas estrategias (estrategias empresariales y en tecnologías de Información), Siendo el objetivo básico de cualquier procedimiento sistemático de planificación paralela (estrategias - TI/SI) es el aprendizaje organizado asociado a la utilización de tal procedimiento. Incorporar el pensamiento estratégico y desarrollar la sensibilidad acerca de las posibilidades de la TI/SI a todos los niveles directivos de la organización es extraordinariamente importante para asegurar la continuidad efectiva 2
Análisis y Diseño de Sistemas
del procedimiento en cuestión. En consecuencia, es responsabilidad de la Alta Dirección procurar que existan las condiciones para que éste aprendizaje pueda desarrollarse efectivamente. El Plan de Sistemas de Información, responde a la necesidad de lograr que el tratamiento de la información (considerado en términos de disponibilidad), ayude al cumplimiento de los objetivos generales definidos para cualquier Unidad organizativa de la Institución. Con esta perspectiva, los planes de sistemas de encuadran dentro del marco más general de la Planificación Estratégica, como el fin de concretarse a corto y medio plazo de ésta. Así, la Planificación Estratégica tiene como finalidad principal, definir los objetivos a largo plazo de una organización, en cuanto a: • Servicios futuros a prestar. • Perspectivas de crecimiento y previsiones de evolución, entre otros. Así mismo, trata de estimar las
necesidades de información en función de dichos objetivos. Para ello se considera tanto la situación de dicha organización frente a su entorno, como la visión de los responsables de la misma. La Planificación de Sistemas se puede considerar como la realización táctica de los objetivos estratégicos ya definidos para la Planificación Estratégica, los cuales tiene por característica: • Definición precisa de los Sistemas de Información identificados. • Una planificación ajustada para la Implantación de dichos sistemas, considerando prioridades y recursos
necesarios. Dentro de cualquier tipo de organización, el disponer de información completa, confiable en el momento oportuno, constituye un elemento esencial para garantizar la gestión eficaz de los recursos de la misma, así como, mejorar la calidad de los servicios que presta y adecuarse constantemente al entorno que lo rodea. Por lo que se requiere, una administración adecuada de la información, que se planifiquen, desarrollen y mantengan sistemas de información eficientes, es decir, sistemas que produzcan en términos de calidad, cantidad y oportunidad la información que ayude o facilite el cumplimiento de los objetivos y funciones de la organización. A medida que crece el volumen de la información a manejar en la administración, aumenta la necesidad de disponer de una Tecnología de la Información que soporte dinámica y eficazmente el funcionamiento normal de las distintas áreas o departamentos que la constituyen. Uno de los problemas existentes en los Departamentos de Sistemas, es la ausencia de políticas en informática, y de metodologías modernas de desarrollo de sistemas, pudiéndose resumir tal situación de la siguiente forma: • Desarrollo de Sistemas de Información sin responder a un Planeamiento de Sistemas de información. • Escasa o nula documentación de los sistemas, lo que dificulta la tarea de desarrollo, implantación y
especialmente la de mantenimiento. • Escaso número de estándares de Desarrollo de Sistemas. • Se justifica, por tanto, la implantación de una Metodología de Desarrollo de Sistemas en las organizaciones,
en las que se define un conjunto de métodos, actividades, técnicas y herramientas que faciliten la construcción de Sistemas de Información con el fin de: o
o
o
Satisfacer las necesidades de los departamentos y/o reas usuarias implicadas. Generar la documentación asociada, la cual comprende instrucciones de operación, documentación del mantenimiento, explotación, entre otros. Elaborar sistemas eficientes en términos de calidad, que produzcan información oportuna y confiable para la adecuada toma de decisiones.
Debido a la importancia que reviste contar con metodologías para el desarrollo de sistemas, se ha considerado conveniente proponer una metodología para la elaboración de las Fases de Análisis y Diseño de Sistemas, el cual es la consecución del conocimiento empírico.
3
Análisis y Diseño de Sistemas
La metodología tiene por objeto establecer las directrices a las que debe ajustarse la elaboración del Análisis de Sistemas en los distintos organismos, empresas y/o gobierno. Así mismo, es importante señalar que la Metodología se encuentra dividida en los siguientes capítulos: Capítulo 2: Generalidades Capítulo 3: Definición del Proyecto de Sistemas Capítulo 4: Análisis, Determinación y Especificación de Requerimientos Capítulo 5: Análisis Estructurado Capítulo 6: Diseño Capítulo 7: Programación Capítulo 8: Prueba Capítulo 9: Implantación Capítulo 10: Mantención
4
Análisis y Diseño de Sistemas
2.
Generalidades del Análisis de Sistemas de Información.
2.1.
El Enfoque Sistémico
El concepto de sistema arranca del problema de las partes y el todo, ya discutido en la antigüedad por Hesíodo (siglo VIII a.C.) y Platón (siglo IV a.C.) Sin embargo, el estudio de los sistemas como tales no preocupa hasta la segunda guerra mundial, cuando se pone de relieve el interés del trabajo interdisciplinario y la existencia de analogías (isomorfismos) en el funcionamiento de sistemas biológicos y automáticos. Este estudio tomaría carta de naturaleza cuando, en los años cincuenta, L. Von Bertalanffy propone su Teoría General de Sistemas. La aparición del enfoque de sistemas tiene su origen en la incapacidad manifiesta de la ciencia para tratar problemas complejos. El método científico, basado en reduccionismo, repetitividad y refutación, fracasa ante fenómenos muy complejos por varios motivos: •
El número de variables interactuantes es mayor del que el científico puede controlar, por lo que no es posible realizar verdaderos experimentos.
•
La posibilidad de que factores desconocidos influyan en las observaciones es mucho mayor.
•
Como consecuencia, los modelos cuantitativos son muy vulnerables.
El problema de la complejidad es especialmente patente en las ciencias sociales, que deben tratar con un gran número de factores humanos, económicos, tecnológicos y naturales fuertemente interconectados. En este caso la dificultad se multiplica por la imposibilidad de llevar a cabo experimentos y por la propia intervención del hombre como sujeto y como objeto (racional y libre) de la investigación. La mayor parte de los problemas con los que tratan las ciencias sociales son de gestión: organización, planificación, control, resolución de problemas, toma de decisiones,... En nuestros días estos problemas aparecen por todas partes: en la administración, la industria, la economía, la defensa, la sanidad, etc. Así, el enfoque de sistemas aparece para abordar el problema de la complejidad a través de una forma de pensamiento basada en la totalidad y sus propiedades que complementa el reduccionismo científico. Véase una excelente presentación de las ideas de sistemas en "Systems Thinking, Systems Practice" (P. Checkland, Wiley, 1999). Lord Rutherford pronunció la frase que refleja más claramente el éxito del método científico reduccionista durante el primer tercio de este siglo: "Hay Física y hay coleccionismo de sellos" . El objetivo último era explicar cualquier fenómeno natural en términos de la Física. Fueron los biólogos quienes se vieron en primer lugar en la necesidad de pensar en términos de totalidades. El estudio de los seres vivos exigía considerar a éstos como una jerarquía organizada en niveles, cada uno más complejo que el anterior. En cada uno de estos niveles aparecen propiedades emergentes que no se pueden explicar a partir de los componentes del nivel inferior, sencillamente porque se derivan de la interacción, y no de los componentes individuales. En los años cuarenta comienza un vivo interés por los estudios interdisciplinarios con el fin de explorar la tierra de nadie existente entre las ciencias establecidas. Estos estudios ponen de manifiesto la existencia de analogías (más bien isomorfismos) en la estructura y comportamiento de sistemas de naturaleza muy distinta (sistemas biológicos, mecánicos, eléctricos, etc.) Así es como Wiener y Bigelow descubren la ubicuidad de los procesos de realimentación, en los que informaciones sobre el funcionamiento de un sistema se transmiten a etapas anteriores formando un bucle cerrado que permite evaluar el efecto de las posibles acciones de control y adaptar o corregir el comportamiento del sistema. Estas ideas constituyen el origen de la Cibernética, cuyo objeto es el estudio de los fenómenos de comunicación y control , tanto en seres vivos como en máquinas.
5
Análisis y Diseño de Sistemas
Un concepto previo al de comunicación es el de información. Los trabajos en este campo de Wiener y especialmente de Shannon llevaron a establecer una teoría estadística de la información. En esta misma década, Von Bertalanffy proponía los fundamentos de una Teoría de Sistemas Generales y en 1954 se crea la Sociedad para la Investigación de Sistemas Generales. El programa de la sociedad era el siguiente: 1. Investigar el isomorfismo de conceptos, leyes y modelos en varios campos, y promover transferencias útiles de un campo a otro. 2. Favorecer el desarrollo de modelos teóricos adecuados en aquellos campos donde faltaran. 3. Reducir en lo posible la duplicación de esfuerzo teórico en campos distintos. 4. Promover la unidad de la ciencia, mejorando la comunicación entre los especialistas. El objetivo último de Von Bertalanffy, el desarrollo y difusión de una única meta-teoría de sistemas formalizada matemáticamente, no ha llegado a cumplirse. En su lugar, de lo que podemos hablar es de un enfoque de sistemas o un pensamiento sistémico que se basa en la utilización del concepto de sistema como un todo irreducible.
2.1.1.
Qué es un Sistema Mostramos a continuación la definición de Sistema propuesta por varios autores. L. Von Bertalanffy (1968): "Un sistema es un conjunto de unidades en interrelación." Ferdinand de Saussure (1931): "Sistema es una totalidad organizada, hecha de elementos solidarios que no pueden ser definidos más que los unos con relación a los otros en función de su lugar en esa totalidad." Mario Bunge (1979): Sistema Σ es una terna ordenada [C(Σ), E(Σ), S(Σ)] en la que: • C(Σ) (composición de Σ) representa el conjunto de partes de Σ. • E(Σ) (entorno o medio ambiente de Σ es el conjunto de aquellos elementos que, sin pertenecer a
C(Σ), actúan sobre sus componentes o están sometidos a su influencia. • S(Σ) (estructura de Σ) es el conjunto de relaciones y vínculos de los elementos de C(Σ) entre sí
o bien con los miembros del entorno E(Σ). IEEE Standard Dictionary of Electrical and Electronic Terms: "Sistema es un todo integrado, aunque compuesto de estructuras diversas, interactuantes y especializadas. Cualquier sistema tiene un número de objetivos, y los pesos asignados a cada uno de ellos pueden variar ampliamente de un sistema a otro. Un sistema ejecuta una función imposible de realizar por una cualquiera de las partes individuales. La complejidad de la combinación está implícita."
6
Análisis y Diseño de Sistemas
Estándar X3.12-1970 (ANSI), Estándar 2382/V, VI (ISO) Vocabulary for Information Processing: "Sistema es una colección organizada de hombres, máquinas y métodos necesaria para cumplir un objetivo específico."
Resumiendo, de las definiciones se pueden extraer unos aspectos fundamentales del concepto Sistema: Sistema:
2.1.2.
•
La existencia de elementos diversos e interconectados.
•
El carácter de unidad global del conjunto.
•
La existencia de objetivos asociados al mismo.
•
La integración del conjunto en un entorno.
Las Ciencias de la Complejidad
El enfoque de sistemas ha dado lugar a estudios teóricos y aplicados. Entre los primeros se encuadran algunos de los citados anteriormente: la Cibernética y la Teoría de Sistemas Generales, de los Sistemas Dinámicos, de los Sistemas Auto-organizativos, de la Información y de las Jerarquías. Todos ellos se pueden englobar bajo la denominación genérica de Ciencias de los Sistemas. Sistemas . Los estudios aplicados son por su parte aquellos que emplean el enfoque sistémico para la resolución de problemas, y entre ellos se encuentran la Ingeniería de Sistemas, la Gestión de Sistemas, la Investigación Operativa o la Dinámica de Sistemas. En los últimos tiempos se está extendiendo el uso del término Ciencias de la Complejidad para referirse a todas las disciplinas que hacen uso del enfoque de sistemas. En general, las Ciencias de la Complejidad comparten bastantes de las siguientes características: •
Han sido establecidas por grupos interdisciplinarios de investigadores interesados en explorar los aspectos invariantes de la complejidad y la sistemicidad fuera de las fronteras establecidas entre los distintos campos del saber.
•
Hacen hincapié en el estudio de la estructura (interconexión entre componentes) y su importancia en el comportamiento de los sistemas. Esta estructura puede conllevar aspectos de paralelismo o circularidad (realimentación).
•
Destacan el carácter de totalidad o unidad global de los sistemas objeto de estudio.
•
Manejan aspectos no materiales de los sistemas, en particular aquellos que tiene que ver con información, comunicación u organización. Los conceptos de complejidad e incertidumbre suelen ser básicos.
•
Suelen tratar con sistemas abiertos, aquellos que intercambian materia, energía o información con el entorno. En este contexto son especialmente importantes la interacción con el observador y la toma de decisiones.
•
El ordenador es la herramienta fundamental de las ciencias de la complejidad debido a su capacidad para modelar y simular sistemas complejos.
7
Análisis y Diseño de Sistemas
2.1.2.1. Ingeniería de Sistemas La primera referencia que describe ampliamente el procedimiento de la Ingeniería de Sistemas fue publicada en 1950 por Melvin J. Kelly, entonces director de los laboratorios de la Bell Telephone, subsidiaria de investigación y desarrollo de la AT&T. Esta compañía jugó un papel importante en el nacimiento de la Ingeniería de Sistemas por tres razones: la acuciante complejidad que planteaba el desarrollo de redes telefónicas, su tradición de investigación relativamente liberal y su salud financiera. Así, en 1943 se fusionaban los departamentos de Ingeniería de Conmutación e Ingeniería de Transmisión bajo la denominación de Ingeniería de Sistemas. A juicio de Arthur D. Hall, "la función de Ingeniería de Sistemas se había practicado durante muchos años, pero su reconocimiento como entidad organizativa generó mayor interés y recursos en la organización". En 1950 se creaba un primer curso de postgrado sobre el tema en el M.I.T. y sería el propio Hall el primer autor de un tratado completo sobre el tema.. Para Hall, la Ingeniería de Sistemas es una tecnología por la que el conocimiento de investigación se traslada a aplicaciones que satisfacen necesidades humanas mediante una secuencia de planes, proyectos y programas de proyectos. Hall definiría asimismo un marco para las tareas de esta nueva tecnología, una matriz tridimensional de actividades en la que los ejes representaban respectivamente: •
La dimensión temporal: son las fases características del trabajo de sistemas, desde la idea inicial hasta la retirada del sistema.
•
La dimensión lógica: son los pasos que se llevan a cabo en cada una de las fases anteriores, desde la definición del problema hasta la planificación de acciones.
•
La dimensión del conocimiento: se refiere al conocimiento especializado de las diversas profesiones y disciplinas. (Esta dimensión, ortogonal a las anteriores, no ha sido incluida en la tabla a efectos de una mayor claridad.)
Para Wymore, el objeto de la Ingeniería de Sistemas es el "análisis y diseño de sistemas hombre-máquina, complejos y de gran tamaño", incluyendo por tanto los sistemas de actividad humana. En estos casos el inconveniente habitual suele ser la dificultad de expresar los objetivos de manera precisa. Encontramos una definición muy general en el IEEE Standard Dictionary of Electrical and Electronic Terms: "Ingeniería de Sistemas es la aplicación de las ciencias matemáticas y físicas para desarrollar sistemas que utilicen económicamente los materiales y fuerzas de la naturaleza para el beneficio de la humanidad." Una definición especialmente completa (y que data de 1974) nos la ofrece un estándar militar de las fuerzas aéreas estadounidenses sobre gestión de la ingeniería. "Ingeniería de Sistemas es la aplicación de esfuerzos científicos y de ingeniería para: (1) transformar una necesidad de operación en una descripción descripción de parámetros de rendimiento del sistema y una configuración del sistema a través del uso de un proceso iterativo de definición, síntesis, análisis, diseño, prueba y evaluación; (2) integrar parámetros técnicos relacionados para asegurar la compatibilidad de todos los interfaces de programa y funcionales de manera que optimice la definición y diseño del sistema total; (3) integrar factores de fiabilidad, mantenibilidad, seguridad, supervivencia, supervivencia, humanos y otros en el esfuerzo esfuerzo de ingeniería total a fin de cumplir los objetivos de coste, planificación y rendimiento técnico. Como vemos, en la literatura se pueden encontrar tantas definiciones del término como autores se han ocupado del tema. A pesar de ello, podemos dar otra basada en las ideas de Hall, Wymore y M'Pherson: Ingeniería de Sistemas es un conjunto de metodologías para la resolución de problemas mediante el análisis, diseño y gestión de sistemas.
8
Análisis y Diseño de Sistemas
Como era de esperar por el amplio espectro de sus intereses, la Ingeniería de Sistemas no puede apoyarse en una metodología monolítica. Cada una de las metodologías que comprende puede ser útil en una fase concreta del proceso o para un tipo concreto de sistemas; lo que todas ellas comparten es su enfoque: el enfoque de sistemas.
2.1.2.2. Análisis de Sistemas El Análisis de Sistemas trata básicamente de determinar los objetivos y límites del sistema objeto de análisis, caracterizar su estructura y funcionamiento, marcar las directrices que permitan alcanzar los objetivos propuestos y evaluar sus consecuencias. Dependiendo de los objetivos del análisis podemos encontrarnos ante dos problemáticas distintas: •
Análisis de un sistema ya existente para comprender, mejorar, ajustar yo predecir su comportamiento.
•
Análisis como paso previo al diseño de un nuevo sistema-producto.
En cualquier caso, podemos agrupar más formalmente las tareas que constituyen el análisis en una serie de etapas que se suceden de forma iterativa hasta validar el proceso completo: •
Conceptualización: Consiste en obtener una visión de muy alto nivel del sistema, identificando sus elementos básicos y las relaciones de éstos entre sí y con el entorno.
•
Análisis funcional: funcional: Describe las acciones o transformaciones que tienen lugar en el sistema. Dichas acciones o transformaciones se especifican en forma de procesos que reciben una entradas y producen unas salidas.
•
Análisis de condiciones (o constricciones): Debe reflejar todas aquellas limitaciones impuestas al sistema que restringen el margen de las soluciones posibles. Estas se derivan a veces de los propios objetivos del sistema: o
o
Operativas, como son las restricciones físicas, ambientales, de mantenimiento, de personal, de seguridad, etc. De calidad, como fiabilidad, mantenibilidad, seguridad, confidencialidad, generalidad, etc.
Sin embargo, en otras ocasiones las constricciones vienen impuestas por limitaciones en los diferentes recursos utilizables: •
Económicos, reflejados en un presupuesto.
•
Temporales, que suponen unos plazos a cumplir.
•
Humanos.
•
Metodológicos, que conllevan la utilización de técnicas determinadas.
•
Materiales, como espacio, herramientas disponibles, etc.
•
Construcción de modelos: Una de las formas más habituales y convenientes de analizar un sistema consiste en construir un prototipo (un modelo en definitiva) del mismo.
•
Validación del análisis: A fin de comprobar que el análisis efectuado es correcto y evitar en su caso la posible propagación de errores a la fase de diseño, es imprescindible proceder a la validación del mismo. Para ello hay que comprobar los extremos siguientes: •
El análisis debe ser consistente y completo. 9
Análisis y Diseño de Sistemas
•
Si el análisis se plantea como un paso previo para realizar un diseño, habrá que comprobar además que los objetivos propuestos son correctos y realizables.
Una ventaja fundamental que presenta la construcción de prototipos desde el punto de vista de la validación radica en que estos modelos, una vez construidos, pueden ser evaluados directamente por los usuarios o expertos en el dominio del sistema para validar sobre ellos el análisis.
2.1.2.3. Diseño de Sistemas El diseño de sistemas se ocupa de desarrollar las directrices propuestas durante el análisis en términos de aquella configuración que tenga más posibilidades de satisfacer los objetivos planteados tanto desde el punto de vista funcional como del no funcional (lo que antes hemos denominado constricciones). El proceso de diseño de un sistema complejo se suele realizar de forma descendente: •
Diseño de alto nivel (o descomposición del sistema a diseñar en subsistemas menos complejos).
•
Diseño e implementación de cada uno de los subsistemas: o
Especificación consistente y completa del subsistema de acuerdo con los objetivos establecidos en el análisis.
o
Desarrollo según la especificación.
o
Prueba.
•
Integración de todos los subsistemas.
•
Validación del diseño.
Dentro del proceso de diseño de sistemas hay que tener en cuenta los efectos que pueda producir la introducción del nuevo sistema sobre el entorno en el que deba funcionar, adecuando los criterios de diseño a las características del mismo. En este contexto está adquiriendo una importancia creciente la adaptación de todo sistema producto a las capacidades de las personas que van a utilizarlo, de forma que su operación sea sencilla, cómoda, efectiva y eficiente. De estas cuestiones se ocupa una disciplina, la ergonomía, que tiene por objeto la optimización de los entornos hombre-máquina. Si bien en un principio estaba centrada en los aspectos antropométricos de la relación hombre-máquina, en la actualidad ha pasado a intervenir con fuerza en todos los procesos cognitivos (análisis, interpretación, decisión, comunicación y representación del conocimiento). Así, con respecto al diseño de herramientas software, la ergonomía tiene mucho que decir en cuestiones relacionadas con la disposición de informaciones en pantalla, profundidad de menús, formato de iconos, nombres de comandos, control de cursores, tiempos de respuesta, manejo de errores, estructuras de datos, utilización de lenguaje natural, etc.
2.1.2.4. Gestión de Sistemas La Gestión de Sistemas se ocupa de integrar, planificar y controlar los aspectos técnicos, humanos, organizativos, comerciales y sociales del proceso completo (desde el análisis y el diseño hasta la vida operativa del sistema). Los objetivos principales de la Gestión de Sistemas suelen ser: •
Planificar y controlar el proceso completo de análisis, diseño y operación del sistema dentro del presupuesto, plazo, calidad y restantes condiciones convenidas.
•
Controlar la validez de los criterios de diseño.
•
Controlar la adecuación del producto del diseño a los requisitos establecidos en el análisis. 10
Análisis y Diseño de Sistemas
•
Planificar y desarrollar las necesidades de mantenimiento.
•
Planificar y desarrollar las necesidades de formación del personal que va a operar el sistema.
•
Planificar la supervisión del funcionamiento del sistema.
En grandes proyectos de ingeniería, y dentro del ámbito de la gestión, el ingeniero de sistemas suele funcionar como asesor del director del proyecto, obteniendo, elaborando y presentando informaciones en un formato adecuado para que éste pueda tomar las decisiones pertinentes.
2.2.
Sistemas de Información.
La edad de los sistemas -la edad de la síntesis –Sistemas abiertos –Cibernética –Sistemas homeostáticos – Reglas de decisión –Retroalimentación de información –Control automático –Diseño de sistemas –Sistemas de información a la gerencia. gerencia. Éstas y otras frases semejantes forman parte del dialecto y vocabulario de la nueva ciencia de los sistemas de información a la administración, misma que ofrece grandes promesas para enfrentarse al enorme crecimiento del tamaño, complejidad y diversidad de las operaciones de la organización moderna. Ese incremento de la complejidad y del tamaño, que caracteriza la moderna organización en gran escala, ha hecho que las funciones administrativas de planeamiento, organización y control sean más difíciles de ejecutar, aunque cada vez más indispensables para la estabilidad y el crecimiento de las empresas actuales, en un mundo que evoluciona a pasos acelerados. Ya sea evolutiva o revolucionaria, la era de los sistemas está con nosotros. Durante más de cien años -desde la Revolución Industrial- la administración se ha considerado como un arte que ha progresado mediante la adquisición y el registro de la experiencia humana. Mediante un estudio de las situaciones administrativas y un examen de las experiencias pasadas registradas en la literatura, se ha esperado que los gerentes y los estudiantes obtengan un conocimiento intuitivo de los principios fundamentales de los problemas a los que tendrán que enfrentarse. Sin embargo, los gerentes de nuestra época necesitan más ayuda que la que pueden encontrar estudiando las experiencias de otros. Lo que se necesita es una ciencia fundamental o por lo menos, un enfoque mucho más estructurado para la toma de decisiones. El enfoque de sistemas proporciona el proceso para reconciliar las complejidades de la -empresa moderna. Los sistemas de información: a la gerencia, manuales o basados en computadoras, proporcionan los instrumentos. Considerados en conjunto, la estructura del enfoque de sistemas y los instrumentos de los sistemas de información a la gerencia suministran a los gerentes, técnicas y modernos métodos para el planeamiento, la organización, la integración y el control de sus operaciones en una forma, más efectiva.
2.2.1.
Concepto de sistema, características que lo definen y su enfoque.
En el sentido más amplio, un sistema es un conjunto de componentes que interaccionan entre sí para lograr un objetivo común. Nuestra sociedad está rodeada de sistemas. Por ejemplo, cualquier persona experimenta sensaciones físicas gracias a un complejo sistema nervioso formado por el cerebro, la medula espinal, los nervios y las células sensoriales especializadas que se encuentran debajo de la piel; estos elementos funcionan en conjunto para hacer que el sujeto experimente sensaciones de frío, calor, comezón, etc. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado formador por palabras y símbolos que tiene significado para el que habla y para quienes lo escuchan. Asimismo, las personas viven en un sistema económico en el que se intercambian bienes y servicios por otros de valor comparable y en el que, al menos en teoría, los participantes obtienen un beneficio en el intercambio. Una organización es un sistema. Sus componentes mercadotecnia, manufactura, ventas investigación, embarques, contabilidad y personal trabajan juntos para crear utilidades que beneficien tanto a los empleados como a los accionistas de la compañía. Cada uno de estos componentes es a su vez un sistema. El departamento de contabilidad, por ejemplo, quizá esté formado por cuentas por pagar, cuentas por cobrar, facturación y auditoria entre otras. 11
Análisis y Diseño de Sistemas
Todo sistema organizacional depende, en mayor o menor medida, de una entidad abstracta denominada sistema de información. Este sistema es el medio por el cual los datos fluyen de una persona o departamento hacia otros y puede ser cualquier cosa, desde la comunicación interna entre los diferentes componentes de la organización y líneas telefónicas hasta sistemas de cómputo que generan reportes periódicos para varios usuarios. Los sistemas de información proporcionan servicio a todos los demás sistemas de una organización y enlazan todos sus componentes en forma tal que éstos trabajen con eficiencia para alcanzar el mismo objetivo.
Características que lo definen. La finalidad de un sistema es la razón de su existencia. Existe un sistema legislativo, por ejemplo, para estudiar los problemas que enfrentan los ciudadanos y aprobar la legislación que los resuelva. El sistema de encendido de un automóvil tiene el claro propósito de quemar el combustible para crear la energía que emplean los demás sistemas del automóvil. Para alcanzar sus objetivos, los sistemas interaccionan con su medio ambiente, el cual está formado por todos los objetos que se encuentran fuera de las fronteras de los sistemas. Los sistemas que interactúan con su medio ambiente (reciben entradas y producen salidas) se denominan sistemas abiertos. En contraste, aquellos que no interactúan con su medio ambiente se conocen como sistemas cerrados. Todos los sistemas actuales son abiertos. Es así como los sistemas cerrados existen sólo como un concepto, aunque muy importante como se verá más adelante. El elemento de control está relacionado con la naturaleza de los sistemas, sean cerrados o abiertos. Los sistemas trabajan mejor -"se encuentran bajo control"- cuando operan dentro de niveles de desempeño tolerables. Por ejemplo, las personas trabajan mejor cuando su temperatura es de 37 grados centígrados. Quizá una desviación de 37 a 37.5 grados no afecte en mucho su desempeño aunque, en algunos casos, la diferencia puede ser notable. Una mayor desviación, sin embargo, tal como una fiebre de 39.5 grados, desencadena un cambio drástico en las funciones corporales. El sistema deja de funcionar y permanece inactivo hasta que se corrija su condición. Si esta condición se prolonga demasiado, los resultados pueden ser fatales para el sistema. Este ejemplo muestra además la importancia del control en los sistemas de todo tipo. Todos, los sistemas tienen niveles aceptables de desempeño, denominados estándares y contra los que se comparan los niveles de desempeño actuales. Siempre deben anotarse las actividades que se encuentran muy por encima o por debajo de los estándares para poder efectuar los ajustes necesarios. La información proporcionada al comparar los resultados con los estándares junto con el proceso de reportar las diferencias a los elementos de control recibe el nombre de retroalimentación. Para resumir, los sistemas emplean un modelo de control básico consistente en: 1. Un estándar para lograr un desempeño aceptable 2. Un método para medir el desempeño actual 3. Un método para comparar el desempeño actual contra el estándar 4. Un método de retroalimentación Los sistemas que pueden ajustar sus actividades para mantener niveles aceptables, continúan funcionando. Aquellos que no lo hacen, tarde o temprano dejan de trabajar. El concepto de interacción con el medio ambiente, que es lo que caracteriza a los sistemas abiertos, es esencial para el control. Recibir y evaluar la retroalimentación, permite al sistema determinar qué tan bien está operando. Si una empresa, por ejemplo, produce como salidas productos o servicios con un precio elevado pero de baja calidad, entonces es probable que las personas dejen de adquirirlos. En este caso, las figuras o gráficas de ventas bajas son la retroalimentación que indica a la gerencia que es necesario efectuar ajustes, tanto en la calidad de sus productos como la forma en la que éstos se fabrican, para mejorar el desempeño, volver al camino y recobrar las esperanzas. En contraste, los sistemas cerrados sostienen su nivel de operación siempre y cuando posean información de control adecuada y no necesiten nada de su medio ambiente. Dado que esta condición no puede sostenerse por mucho 12
Análisis y Diseño de Sistemas
tiempo, la realidad es que no existen sistemas cerrados, El concepto, sin embargo, es importante porque ilustrar un objetivo en el diseño de sistemas: construir sistemas que necesiten la menor intervención del medio externo para mantener un desempeño aceptable. Por consiguiente, la autorregulación y el propio ajuste son objetivos de diseño en todos los ambientes de sistemas. Los componentes que forman un sistema pueden ser a su vez más pequeños; es decir, los sistemas pueden estar formados por niveles de sistemas o subsistemas. El cuerpo humano, por ejemplo contiene subsistemas tales como los sistemas respiratorio y circulatorio. Un automóvil tiene sistemas de combustión, eléctricos y de control de emisiones. En general, en situaciones de sistemas, es común tener varios niveles de sistemas interactuando entre sí.
Enfoque de sistemas. Esencialmente, el enfoque de sistemas para la administración se diseña para utilizar el análisis científico, en las organizaciones complejas: a) para desarrollar y administrar los sistemas de operación (por ejemplo, flujos de dinero o sistemas de fuerza humana), y b) para diseñar sistemas de información para la toma de decisiones. Es evidente el eslabonamiento entre esos dos procesos: el objetivo del diseño de sistemas de información consiste en ayudar a la toma de decisiones relacionadas con la administración de los Sistemas de operación. Un concepto fundamental del enfoque de sistemas para la organización y la administración es la relación recíproca de las partes o subsistemas de la organización. El enfoque comienza con una serie de objetivos y se dedica al diseño, del todo, a diferencia del diseño, de los componentes o subsistemas. La característica sinérgica del enfoque de sistemas es muy importante. Los sistemas de organización e información se diseñan para lograr la sinergia, la acción simultánea de las partes separadas, aunque recíprocamente relacionadas, que produce un efecto total mayor que el de la suma de los efectos considerados independientemente. Los resultados obtenidos por un equipo o un "sistema" de once jugadores de fútbol son mayores que el que pueda lograr once jugadores individuales que actúen sin esfuerzo integrado. La analogía con una organización de negocios es muy clara. Anteriormente, las organizaciones de negocios no alcanzaban su eficacia óptima porque no relacionaban entre sí las partes o funciones (subsistemas) ni tampoco con el todo. A veces la función de ventas se ejecutaba sin una consideración adecuada de la de manufactura. El control de producción no se coordinaba con el planeamiento financiero o de personal y el sistema clásico de información a la gerencia consistía de la tabla de cuentas. El sistema de contabilidad tradicional se ocupaba principalmente de suministrar información posterior a los hechos para los, estados financieros, no de una torna de decisiones administrativas proyectada hacia lo futuro. Ese enfoque en funciones separadas y la falta de una relación recíproca entre las partes para formar un todo unificado-, pueden atribuirse a varias causas, principalmente a la estrechez de opiniones de los especialistas (o sea los ingenieros, contadores y empleados de inventario), que no pueden o no quieren relacionar sus especialidades o sus "cuadros" en la tabla de organización con el resto, de la compañía. Otras causas son una organización impropia, un mal planeamiento o la falta de integración de los componentes de la organización mediante el enfoque de sistemas. El enfoque en el diseño del todo, a diferencia del de los componentes y subsistemas -una premisa fundamental del enfoque de cisternas se demuestra en la figura siguiente. La línea gruesa continua índica las relaciones de autoridad y la estructura jerárquica de la organización clásica. La principal preocupación la constituyen las relaciones formales de la autoridad y la cadena de mando, no las relaciones recíprocas de las partes. Las líneas de puntos muestran la misma estructura de la organización, con las rutas unidas en un sistema, mediante el flujo de información y el el enfoque de sistemas para la organización y la administración.
13
Análisis y Diseño de Sistemas
La figura no debe hacer que el lector llegue a la conclusión de que la distinción entre el enfoque "clásico" y el de "sistemas" sea clara y absoluta. En realidad, el enfoque clásico siempre ha tenido en cuenta el intercambio de rutina de información a través de la cadena de mando. Las copias de las órdenes de ventas se han enviado a los departamentos de crédito, planes de producción, embarques y cuentas por cobrar. Los presupuestos se han hecho con vista a lo futuro y han incluido las partes separadas de la organización. Sin embargo, aunque proporcionan cierto grado de integración y de coordinación, esos mecanismos no, fueron sinérgicos y no lograron el grado de refinamiento de las tomas de decisiones que queremos obtener con el enfoque de sistemas. El enfoque de sistemas para la solución de problemas incluye 1) una filosofía de enfoque, y 2) un método de diseño de sistemas para la solución de problemas. La filosofía consiste en ver siempre el problema y sus componentes en su totalidad relacionada, no como partes. Thome y Willard han descrito ese enfoque: El enfoque de sistemas es una forma ordenada de valorar una necesidad humana de índole compleja, en un estado de ánimo de “esperemos y estudiemos la situación desde todos los puntos de vista", preguntándonos: •
¿Cuántos elementos distinguibles tiene este aparente problema?
•
¿Qué relaciones de causa y efecto hay entre esos elementos?
•
¿Qué funciones hay que ejecutar en cada caso?
•
¿Qué intercambios pueden requerirse entre los recursos después de que se definan?
Como el enfoque de sistemas se dedica al diseño, del todo, se ocupa de las relaciones antes de perfeccionar los componentes. Para explicar este punto consideremos el "ardiente" expendio de carnes al carbón. De acuerdo con el antiguo enfoque de componentes, la administración trataba de hacer lo siguiente: 14
Análisis y Diseño de Sistemas
1. Optimizar la zona de cocimiento y el proceso. 2. Optimizar el proceso de servicio. 3. Optimizar la zona del comedor y el proceso de recolección del dinero. Así, pues, las instalaciones de cocina podrían ser excelentes, pero serían muy inconvenientes e ineficientes para dar servicio a los clientes. El proceso de servicio podría ser excelente, pero la zona del, comedor pudiera estar dispuesta de tal modo para atender a los clientes y para el cobro del consumo que el servicio no podría adaptarse o integrarse a la misma. En este caso, ¿qué hizo la gerencia? Expresó los objetivos del sistema o sea, servir al cliente alimentos bien preparados en un ambiente agradable. Mediante la revisión de todo el sistema la gerencia decidió que los clientes deberían ordenar primero sus alimentos fríos y luego los calientes, ambos en un mostrador de cafetería. Mientras la carne se prepara al gusto, los clientes pagan la cuenta y se les da un recibo numerado. Llevan los alimentos fríos a la zona del comedor y recogen sus platillos calientes cuando se les llama por número. Con ese diseño, de sistema se logra la eficiencia del sistema total de producción a bajo costo para la clientela. Hay que notar el intercambio entre el manejo material de los alimentos por el restaurante y la economía para el cliente. Además, el método de toma de pedidos, cobro del consumo y cocinado queda estrechamente integrado en el sistema. Es imposible dar instrucciones exactas para el diseño de un sistema como el que acabamos de citar; en vez de ello puede desarrollarse un procedimiento generalizado y una serie de lineamientos que sirvan de guía. El diseñador de sistemas desarrolla el arte de enfrentarse a los problemas de un sistema, en gran parte mediante la experiencia, y sus métodos pueden variar desde un sencillo razonamiento de sentido común hasta las técnicas más refina-das de la investigación de operaciones. Básicamente, sin embargo, el enfoque de sistemas es una aplicación sistemática del intelecto, de las técnicas y de los instrumentos a fin de lograr la integración de los componentes para un fin especificado.
2.2.2.
Concepto y función de un sistema de información.
En la práctica se dispone de una gran variedad de, sistemas de información que soportan los aspectos administrativos y de control de las organizaciones: por ejemplo, en una fábrica se tendrían los siguientes sistemas principales: Función
Sistema
Almacén.
Control de inventarlos.
Producción.
Planeación y control de la producción.
Compras.
Proceso de órdenes y seguimiento de las compras.
Ventas
Facturación y control de créditos.
Contabilidad.
Registro de afectaciones contables y emisión de informes.
Personal.
Nóminas y administración de personal.
Por lo general, en estos sistemas los datos se registran en documentos fuente que representan las actividades y acontecimientos ocurridos durante el flujo de operaciones de la organización. Estos sistemas pueden pasar por un flujo que permita su procesamiento electrónico y con ello tratar de satisfacer las necesidades de información de la organización. Cabe hacer notar que estos sistemas normalmente están relacionados unos con otros; las salidas de un sistema pueden ser transacciones de entrada de otro sistema y durante el diseño de sistemas es de vital importancia identificar estas relaciones. 15
Análisis y Diseño de Sistemas
Los sistemas, según su naturaleza, se clasifican en los grupos siguientes: •
Determinísticos.
•
Probabilísticas.
•
Abiertos.
•
Cerrados.
Hasta cierto punto la clasificación no tiene mayor importancia, pero es imperativo que dentro de los sistemas exista la dinámica suficiente para responder a los cambios que emanan, ya sea de forma externa y/o interna. Esto es esencial en las organizaciones modernas, pues en la época actual se registran cambios sustanciales, ya sean sociológicos, técnicos, económicos o legales, que modifican las políticas y funciones de las organizaciones. El proceso de diseño de los sistemas de información comprende tanto el diseño de uno nuevo como el rediseño de un sistema que se encuentre en operación. Un nuevo sistema se requiere cuando la organización inicia sus operaciones o cuando una nueva división solicita por primera vez el proceso de datos de un cierto sistema. Los sistemas en operación normalmente necesitan ser rediseñados o modificados parcialmente en forma periódica para asegurar que estén acordes con lo actual y no con los requerimientos históricos. Una organización se puede clasificar como un sistema total, y sus subsistemas son: •
Subsistema administrativo.
•
Subsistema operativo.
•
Subsistema de información.
Éstos deben interrelacionarse para lograr las metas y objetivos de la organización.
El subsistema de información tiene una función muy importante dentro de la organización: 16
Análisis y Diseño de Sistemas
1. Debe proporcionar información confiable y oportuna para que el subsistema administrativo tome un nivel adecuado de decisiones. 2. Debe monitorear el subsistema operativo para conocer los resultados reales obtenidos y proporcionar información sobre las operaciones que día con día tiene que realizar la organización. 3. Debe comparar los resultados reales con los planeados y proporcionar información que ayude a corregir las desviaciones incurridas. Tradicionalmente los sistemas computacionales de información se han desarrollado bajo metodologías distintas, producto de la experiencia del personal especialista; sin embargo, en los últimos años ha nacido una serie de nuevas disciplinas (tecnología de información, ingeniería de software, etc.) que tienen como finalidad proporcionar una metodología formal e ingenieril para desarrollar sistemas computacionales de información de manera eficiente y efectiva.
2.2.3.
Tipos de sistemas de información.
Aunque muchas compañías y organizaciones están haciendo grandes esfuerzos para extender las aplicaciones de las computadoras fuera de las zonas que actualmente se consideran comprobadas y de rutina, de todos modos la gran mayoría de los sistemas de información (ya sean manuales o basados en computadoras) continúan en las categorías que veremos a continuación. Ordinariamente la obtención y diseminación de la información es el problema más difícil de la compañía. La información es voluminosa, esparcida, y a menudo difícil de obtener. Si los gerentes quedan envueltos en el papeleo, no tendrán tiempo para llevar a cabo la valoración, el planeamiento o la toma de decisiones. Su trabajo será una constante búsqueda de información para manejar las diversas crisis que se presenten, además del flujo normal del trabajo. Con el transcurso del tiempo las empresas típicas han desarrollado los sistemas principales de información que muestra la tabla 1-1, para proporcionar información de planeamiento, de operación y de control para los tomadores de decisiones de toda la organización. Esos sistemas principales son los siguientes: 1. financiero, 2. de producción o de operaciones, 3. de mercadotecnia, 4. de personal, 5. de control de proyectos y 6. otros sistemas secundarios. Esos sistemas no son separados ni distintos, sino que conectan, interactúan y reúnen los subsistemas de la organización con el medio de la información. También hay que notar que aunque esos sistemas principales sirven para integrar las funciones básicas de planeamiento, operación y control, la mayor parte de los mismos se diseñan y utilizan primordialmente para una o dos de esas funciones.
17
Análisis y Diseño de Sistemas
SISTEMAS Y SUBSISTEMAS PRINCIPALES DE INFORMACIÓN SISTEMA USOS PRINCIPALES SUBSISTEMA Planeamiento Operación FINANZAS Presupuestación de efectivo x x Presupuestación de capital x Contabilidad de costos x Planeamiento de utilidades x x Contabilidad de responsabilidad x x Contabilidad de costeabilidad x x PRODUCCIÓN/OPERACIONES Planeamiento de producción x x Inventario, x x Compras x x Distribución x x MERCADOTECNIA Planeamiento de ventas x Ventas y facturación x Análisis de ventas x Control de crédito Investigaciones de mercado x PERSONAL Registros de personal x Nómina Empleo x Colocación x Adiestramiento x Mantenimiento y materiales x CONTROL DE PROYECTOS PERT/CPM, costo, tiempo, etcétera x x OTRAS INVESTIGACIONES Y DESARROLLOS x Planeamiento, estratégico x Simulación x
2.3.
Control x x x x x x x x
x x
x x
Importancia de los sistemas de información en la toma de decisiones
La toma de decisiones es un término reservado para la acción acción de elegir entre varias alternativas. La toma de decisiones es un proceso de pensamiento que ocupa toda la actividad que tiene por finalidad la solución de problemas. Todo aspecto que refleja el esfuerzo humano involucra actividades con un propósito en las que deben resolverse los problemas y tomar decisiones. La toma de decisiones puede verse verse como un procedimiento, un ciclo que contiene varios círculos. La toma de decisiones es necesaria cuando tenemos un problema que resolver, o necesidades que satisfacer. El paso para definir el problema, puede considerarse como un subproblema del problema principal, es decir, un circuito dentro de otro circuito, en el ciclo de la toma de decisiones. Los sistemas de información son de vital importancia en cualquier tipo de información ya que nos proporciona las herramientas necesarias para que un tomador de decisiones pueda realizar su trabajo óptimamente. Ya que dichos sistemas al proporcionar la información necesaria en el preciso momento y con la mayor eficiencia posible, ayuda a que la empresa crezca y se desarrolle.
18
Análisis y Diseño de Sistemas
2.3.1.
Teoría de la Información
Es la teoría relacionada con las leyes matemáticas que rige la transmisión y el procesamiento de información, es decir, la teoría de la información se ocupa de la medición de la información y de su forma de representarla, y de la capacidad de los sistemas de comunicación para transmitir y procesar información. La codificación se refiere tanto a la transformación de imagen o voz en señales eléctricas, como al cifrado de mensajes para asegurar su privacidad. Esta teoría de la información, fue desarrollada por por 1948, por el ingeniero Claude E. Shannon. La necesidad de una base teórica para la tecnología de la comunicación, surgió del aumento de la complejidad y de la masificación de las vías de comunicación (teléfono, radio, redes). La teoría de la información abarca todas las formas de transmisión y almacenamiento de información, como la televisión, en la grabación de imágenes. El término información, se refiere a los mensajes transmitidos: voz o música transmitida por radio o teléfono, imágenes transmitidas por televisión, información digital, en sistemas y redes de computadoras. La teoría de la información ha sido aplicada en diferentes campos como la cibernética, la lingüística, sicología, etc.
2.3.2.
Por que necesitan información las empresas
Las organizaciones operan en un mundo de desaciertos e intervención gubernamental, de políticas impredecibles a nivel monetario, fiscal, impositivo y regulador; de ciclos de negocios y recesiones; de cambios abruptos en las políticas comerciales; de competencia doméstica e internacional; y de crecientes costos laborales. A decir verdad, este es un ambiente implacable y competitivo en el que deben sobrevivir las organizaciones. Para evitar el fracaso, sobrevivir, y lograr el éxito, las organizaciones deben explorar las dimensiones de la oportunidad de una gerencia informada, de la diferenciación de productos y servicios de una creciente productividad. Claramente, la información es el arma principal que ayudará a la gerencia, a los productos, a los servicios y a la productividad a penetrar en el ambiente competitivo. El encanto de la tecnología informática no hará avanzar estas dimensiones, pero sí lo hará la necesidad de contender y sobrevivir en un ambiente competitivo y violento, un ambiente que incluye una competencia internacional más fuerte. Debe quedar claro que las computadoras, la tecnología informática y la información de calidad no son los fines sino simplemente las armas competitivas que apoyan a las organizaciones para alcanzar las metas de los gerentes triunfadores, de productos y servicios excelentes y de una mayor productividad, y del éxito a final de cuentas. Cualquiera que sea la organización, las compañías que producen la información de la más alta calidad, permanecerán como las más fuertes competidoras del ramo. Por otra parte, si una compañía no puede mejorar su información, quedará a la zaga de aquellas que si pueden.
2.4.
Conceptos y Análisis.
Es un conjunto o disposición de procedimientos o programas relacionados de manera que juntos forman una sola unidad. Un conjunto de hechos, principios y reglas clasificadas y dispuestas de manera ordenada mostrando un plan lógico en la unión de las partes. Un método, plan o procedimiento de clasificación para hacer algo. Esto se lleva a cabo teniendo en cuenta ciertos principios: •
Debe presentarse y entenderse el dominio de la información de un problema.
•
Defina las funciones que debe realizar el Software. 19
Análisis y Diseño de Sistemas
•
Represente el comportamiento del software a consecuencias de acontecimientos externos.
•
Divida en forma jerárquica los modelos que representan la información, funciones y comportamiento.
El proceso debe partir desde la información esencial hasta el detalle de la Implementación. La función del Análisis puede ser dar soporte a las actividades de un negocio, o desarrollar un producto que pueda venderse para generar beneficios. Para conseguir este objetivo, un Sistema basado en computadoras hace uso de seis (6) elementos fundamentales: 1. Software, que son Programas de computadora, con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa. 2. Hardware, dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias, bombas, lectores, etc.), que proporcionan una función externa dentro de los Sistemas. 3. Personal, son los operadores o usuarios directos de las herramientas del Sistema. 4. Base de Datos, una gran colección de informaciones organizadas y enlazadas al Sistema a las que se accede por medio del Software. 5. Documentación, Manuales, formularios, y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa. 6. Procedimientos, o pasos que definen el el uso específico de cada cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento. Un Análisis de Sistema se lleva a cabo teniendo en cuenta los siguientes objetivos en mente: •
Identifique las necesidades del Cliente.
•
Evalúe que conceptos tiene el cliente del sistema para establecer su viabilidad.
•
Realice un Análisis Técnico y económico.
•
Asigne funciones al Hardware, Software, personal, base de datos, y otros elementos del Sistema.
•
Establezca las restricciones de presupuestos y planificación temporal.
•
Cree una definición del sistema que forme el fundamento de todo el trabajo de Ingeniería.
Para lograr estos objetivos se requiere tener un gran conocimiento y dominio del Hardware y el Software, así como de la Ingeniería humana (Manejo y Administración de personal), y administración de base de datos.
2.5.
Objetivos del Análisis.
2.5.1.
Identificación de Necesidades.
Es el primer paso del análisis del sistema, en este proceso en Analista se reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular), e identifican las metas globales, se analizan las 20
Análisis y Diseño de Sistemas
perspectivas del cliente, sus necesidades y requerimientos, sobre la planificación temporal y presupuestal, líneas de mercadeo y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto. •
Reconocimiento del problema.
•
Evaluación y Síntesis.
•
Modelado.
•
Especificación.
•
Revisión.
Antes de su reunión con el analista, el cliente prepara un documento conceptual del proyecto, aunque es recomendable que este se elabore durante la comunicación Cliente – analista, ya que de hacerlo el cliente solo de todas maneras tendría que ser modificado, durante la identificación de las necesidades.
2.6.
Metodologías y Herramientas para el Análisis y Diseño de Sistemas.
El desarrollo de sistemas pequeños, en la cual participan una o dos personas, es una tarea simple. Los cambios naturales que surgen durante el ciclo de desarrollo del sistema no producen una gran propagación de cambios en el sistema. Sin embargo, si el sistema es grande y en su desarrollo participan varios grupos de personas desarrollando una tarea específica, hay que tener en cuenta no solo la comunicación con el usuario sino también la interrelación entre los distintos grupos de trabajo. Algunos de los problemas comunes que los desarrolladores encuentran en la construcción de software de cierta complejidad son los siguientes: •
El dominio de aplicación no es conocido.
•
La comunicación con el usuario.
•
La comunicación con el grupo de desarrollo.
•
La carencia de buena documentación.
Por esta razón, es necesario seguir una serie de pasos sistemáticos para que los diferentes grupos de desarrollo posean una buena comunicación. Estos pasos son brindados por los modelos de ciclo de vida, los cuales están constituidos por diferentes etapas, por ejemplo: Especificación de requerimientos: requerimientos : Se realizan entrevistas con el usuario identificando los requerimientos y necesidades del usuario. Análisis: Análisis: Modela los requerimientos del usuario. Diseño: Diseño: Se modela la solución del sistema, teniendo en cuenta el ambiente de implementación a utilizar, por ejemplo, si el sistema es centralizado o distribuido, la base de datos a utilizar, lenguaje de programación, performance deseada, etc. Implementación: Implementación: Dado el lenguaje de programación elegido se implementa el sistema. Testeo: Testeo: En esta etapa se verifica y valida el sistema teniendo en cuenta algunos criterios determinados por el grupo correspondiente. 21
Análisis y Diseño de Sistemas
Mantenimiento: Mantenimiento: Es la etapa más difícil de desarrollo del sistema, actualiza y modifica el sistema si surgen nuevos requerimientos. Existen varios métodos para describir el ciclo de vida de un sistema, uno de ellos es el desarrollo estructurado en cascada.
2.6.1.
Modelo en Cascada.
Fig. 2.1.: Modelo de ciclo de vida en Cascada.
En un principio fue de gran utilidad pero el problema es que para pasar de una etapa a la otra había que terminar la primera, produciendo un gran problema si algún cambio era requerido. La etapa de Mantenimiento consumía el 80% del costo de producción. Debido a los nuevos requerimientos en el desarrollo de software, surgieron muchos otros modelos que trataban de solucionar los problemas existentes, que se basaron en el modelo en Cascada. Por ejemplo, el Modelo en Espiral, en el cual el sistema se desarrolla incrementalmente (Fig. 2.2.). Los modelos propuestos poseen básicamente las mismas etapas, pero varían en: •
los métodos y herramientas utilizadas en cada actividad
•
los controles requeridos, paralelismo en las actividades
•
las salidas de cada etapa 22
Análisis y Diseño de Sistemas
No es aconsejable elegir un modelo y seguirlo al detalle sino que se debe adaptar a las características del proyecto que esta siendo desarrollado.
Fig.2.2.: Modelo de ciclo de vida en Espiral
2.6.2.
Modelo Espiral.
El modelo espiral para la ingeniería de software ha sido desarrollado para cubrir las mejores características tanto del ciclo de vida clásico, como de la creación de prototipos, añadiendo al mismo tiempo un nuevo elemento: el análisis de riesgo. El modelo representado mediante la espiral de la figura 2.3, define cuatro actividades principales: 1.
Planificación: determinación de objetivos, alternativas y restricciones.
2.
Análisis de riesgo: riesgo: análisis de alternativas e identificación/resolución de riesgos.
3.
Ingeniería: Ingeniería: desarrollo del producto del "siguiente nivel",
4.
Evaluación del cliente: cliente: Valorización de los resultados de la ingeniería.
Fig. 2.3.: Modelo Espiral
23
Análisis y Diseño de Sistemas
Durante la primera vuelta alrededor de la espiral se definen los objetivos, las alternativas y las restricciones, y se analizan e identifican los riesgos. Si el análisis de riesgo indica que hay una incertidumbre en los requisitos, se puede usar la creación de prototipos en el cuadrante de ingeniería para dar asistencia tanto al encargado de desarrollo como al cliente. El cliente evalúa el trabajo de ingeniería (cuadrante de evaluación de cliente) y sugiere modificaciones. Sobre la base de los comentarios del cliente se produce la siguiente fase de planificación y de análisis de riesgo. En cada bucle alrededor de la espiral, la culminación del análisis de riesgo resulta en una decisión de "seguir o no seguir". Con cada iteración alrededor de la espiral (comenzando en el centro y siguiendo hacia el exterior), se construyen sucesivas versiones del software, cada vez más completa y, al final, al propio sistema operacional. El paradigma del modelo en espiral para la ingeniería de software es actualmente el enfoque más realista para el desarrollo de software y de sistemas a gran escala. Utiliza un enfoque evolutivo para la ingeniería de software, permitiendo al desarrollador y al cliente entender y reaccionar a los riesgos en cada nivel evolutivo. Utiliza la creación de prototipos como un mecanismo de reducción de riesgo, pero, lo que es más importante permite a quien lo desarrolla aplicar el enfoque de creación de prototipos en cualquier etapa de la evolución de prototipos.
2.6.3.
Modelo Prototipo.
Este modelo se describe de la siguiente manera: Una alternativa de enfoque para la definición de los requerimientos consiste en capturar un conjunto inicial de necesidades e implementarlas rápidamente con la intención declarada de expandirlas y refinarlas iterativamente al ir aumentando la compresión que del sistema tienen los usuarios y quien lo desarrolla. La definición del sistema se realiza el descubrimiento evolutivo y gradual y no atrevas de la previsión omnisciente... Este tipo de enfoque se llama "de prototipos". También se le conoce como modelado del sistema o desarrollo heurístico. Ofrece una alternativa atractiva y practicable a los métodos de especificación para tratar mejor la incertidumbre, la ambigüedad y la volubilidad de los proyectos reales. Dentro del enfoque de prototipos se pretende que el modelo sea operante, es decir, una colección de programas de computadora que simulan algunas o todas las funciones que el usuario desea. Para lograr lo anterior se utilizan las siguientes herramientas de software: •
Un diccionario de datos integrado
•
Un generador de pantallas
•
Un generador de reportes no guiado por procedimientos
•
Un lenguaje de programación de cuarta generación
•
Un lenguaje de consultas no guiado por procedimientos
•
Medios poderosos de administración de base de datos
El modelo de prototipos se muestra en la figura 2.4 Comienza con una actividad de sondeo; de esto sigue una determinación de sí el proyecto es un buen candidato para un enfoque de prototipos. Los buenos candidatos son aquellos que tienen las siguientes características: •
El usuario no puede o no está dispuesto a examinar modelos abstractos en papel, tales como diagramas de flujo de datos.
•
El usuario no puede o no está dispuesto a articular sus requerimientos de ninguna forma y sólo se pueden determinar sus requerimientos mediante un proceso de tanteo, o ensayo y error.
24
Análisis y Diseño de Sistemas
•
Se tiene la intención de que el sistema sea en línea y con operación total por la pantalla, en contraposición con los sistemas de edición, actualización y reportes operados por lote.
•
El sistema no requiere la especificación de grandes cantidades de detalles algorítmicos, ni de muchas especificaciones de procesos para describir los algoritmos con los cuales se obtienen resultados.
Fig.2.4.: Modelo Prototipo Este modelo concluye con una fase de diseño. Con el cual se tiene la intención de que se modelen los requerimientos del usuario.
2.6.4.
Metodología ASML (A System Modeling Language)
ASML es una metodología de desarrollo estructurado de sistemas que cubre todo el ciclo de vida de desarrollo. Esta metodología integra las principales ideas del Análisis Estructurado y el Diseño Estructurado en un marco conceptual único y consistente. Si bien la definición original de la metodología puede reconocerse en los libros de Ward y MacMenamim, le cabe una mejor definición al ser interpretada como: la conjunción del Análisis Estructurado Moderno y el Diseño Estructurado, con extensiones para el modelado de sistemas de tiempo real. Estructura de la Metodología ASML es una metodología que integra todas las ideas involucradas en el análisis y diseño estructurado. Conjuga las técnicas y herramientas de modelado usadas en el Análisis EstructuradoModerno y en el Diseño Estructurado dentro de una organización que destaca los diferentes modelos necesarios para: obtener una buena comprensión del problema, y diseñar una solución de buena calidad (mantenible, adaptable, etc.). Separa el modelado de un sistema en una jerarquía de modelos necesarios para comprender diferentes propiedades del mismo. Dicha jerarquía de modelos se presenta en la Fig. 2.5.
25
Análisis y Diseño de Sistemas
Fig. 2.5.: Jerarquía de Modelos
El Modelo del Sistema está dividido en dos modelos generales: •
El Modelo Esencial : Representa la etapa de Análisis Estructurado . Construcción de un modelo libre de detalles tecnológicos.
•
El Modelo de Implementación : Representa Modelo Esencial con una tecnología dada.
1.
la etapa de Diseño Estructurado. Instanciación de un
El Modelo Esencial
Puede ser considerado como la aplicación de la metodología de Análisis Estructurado Moderno de Yourdon. La idea fundamental con la que el modelo esencial es concebido es la de Tecnología Perfecta en la cual no hay restricciones de cantidad de memoria, tamaño del disco o velocidad del procesador. Dos modelos componen el modelo esencial: •
El Modelo del Ambiente : Declaración de los objetivos. Creación de un Diagrama de Contexto y de una Lista de Eventos, describe los estímulos que recibe el sistema y las respuestas generadas por los estímulos. Definición del Diccionario de Datos inicial. Tabla de Estímulo-Respuesta.
•
El Modelo de Comportamiento : Creación de un DFD, y un ERD por cada uno de los eventos de la Lista de Eventos . Los DFD's por eventos se unen en un único DFD (el Modelo Funcional ) y los DER's por eventos se unen en un único ERD (el Modelo de Datos ). Se acostumbra, también, modelar el comportamiento externo del sistema con DTE, árboles de pantallas o menúes, etc. La creación simultánea del modelo de datos, modelo funcional y modelo de interfaz o comportamiento externo, ayuda en la validación y completitud del modelo esencial (descubriendo, por ejemplo, eventos no considerados). 26
Análisis y Diseño de Sistemas
Todos los criterios de modelado y, principalmente de validación, descriptos en la metodología de Análisis Estructurado Moderno pueden (y deben) ser aplicados en esta etapa para obtener un modelo esencial de calidad y que sea consistente.
2.
El Modelo de Implementación
A partir de esta etapa, el modelo esencial es instanciado en una tecnología dada. Se debe considerar ahora, las imperfecciones de la tecnología y determinar: la cantidad de procesadores necesarios, las cualidades de estos procesadores, el tamaño de disco necesario de acuerdo al volumen de la información a ser almacenada, etc. Luego se diseña la solución sobre la base de esas restricciones tecnológicas. La creación del modelo de implementación se fundamenta en la creación de tres modelos, uno de ellos en forma independiente (el modelo del usuario o de la interfaz hombre-máquina) y los otros dos en forma encadenada en un proceso incremental de refinamiento e incorporación de detalles: •
El Modelo del Usuario : La interfaz hombre-máquina es modelada en todos sus detalles, estilo (árboles de menús, lenguajes de comandos, manipulación directa, etc.), lay-out y formato de pantallas, formato de informes y listados, diseño de pantallas para el ingreso de datos y presentación de resultados, estilo de mensajes de error, secuencialidad, etc. La creación de este modelo es independiente del resto de los modelos que conforman el de implementación, y puede ser desarrollado en paralelo. Las interfaces deben ser diseñadas para cada uno de los procesadores (del modelo de procesadores) y para cada una de las tareas (del modelo de tareas). Es el punto de inflexión entre la etapa de análisis y la etapa de diseño. El modelo de implementación del usuario especifica un conjunto de restricciones que el usuario deseará imponer al grupo de desarrollo y condicionarán al diseñador. Define la interfaz hombre-máquina que es modelada en todos sus detalles, estilo ( árboles de menúes, lenguajes de comandos, manipulación directa, etc.), lay-out y formato de pantallas, formato de informes y listados, diseño de pantallas para el ingreso de datos y presentación de resultados, estilo de mensajes de error, secuencialidad, etc. La creación de este modelo es independiente del resto de los modelos que conforman el de implementación, y puede ser desarrollado en paralelo. Las interfaces deben ser diseñadas para cada uno de los procesadores (del modelo de procesadores) y para cada una de l as tareas (del modelo de tareas). Los aspectos más importantes que se especifican en el modelo de implementación del usuario son: o
o
distribución del modelo esencial entre personas y máquinas: el usuario puede tomar diferentes actitudes frente a este punto, pero lo que debe tenerse presente es que siempre es el usuario el que finalmente tiene la responsabilidad de fijar la frontera de automatización. El usuario puede fijar entre las siguientes alternativas
Delimitación de la frontera de automatización:
Al usuario no le interesa donde está la frontera de automatización, dejando librado al diseñador la decisión de establecerla.
El usuario escoge un sistema totalmente totalm ente automatizado
El usuario escoge un sistema totalmente totalm ente manual
Detalle de la interacción humano-máquina : especifica todos los aspectos del diseño de la
interfaz entre el sistema y el entorno. Los aspectos mas importantes a considerar en este punto son:
Elección de dispositivos de E/S 27
Análisis y Diseño de Sistemas
Formato de las entradas que fluyen desde los terminadores hasta el sistema
Formato de las salidas que fluyen fl uyen desde el sistema hacia los terminadores
o
o
o
Secuencia y tiempos de entradas y salidas en un sistema en línea, navegaciones de pantalla Métodos de codificación a utilizar para el ingreso de datos
Actividades de apoyo manual que se podrían requerir :
actividades ‘no esenciales’ que deben agregarse al sistema por no disponerse de una tecnología perfecta e ideal. Pueden representarse como burbujas adicionales en el modelo esencial. Los casos típicos son:
Controles de posibles fallas humanas/técnicas (ingreso de datos al sistema, realización de cálculos, dispositivos de almacenamiento, salida de datos del sistema)
Operación del sistema en producción
Restricciones operativas que el usuario desea imponer al sistema :
son restricciones que afectarán la configuración de hw, sistema operativo, telecomunicaciones, lenguaje de programación. Los aspectos típicos son:
Volumen de los datos
Tiempo de respuesta en sistemas On-line
Restricciones políticas sobre modalidades de implantación
Restricciones ambientales
Restricciones de seguridad y confiabilidad (mtbf, mttr)
Restricciones de seguridad (controles de acceso al sistema)
Agregado de procesos de arranque y apagado del sistema.
•
El Modelo de Distribución : Describe todas las decisiones relativas a la arquitectura de hardware (modelo de procesadores) y a la estructuración general de la arquitectura de software (modelo de tareas). Se incorporan, en los modelos creados hasta este punto algunas Distorsiones destinadas a optimizar el uso de esa tecnología. El criterio fundamental es: Minimizar todo lo posible las distorsiones agregadas.
•
El Modelo de Procesadores : Asigna el modelo esencial a distintos procesadores y determina la arquitectura de comunicación entre ellos. Implica la asignación de procesos y almacenes a los procesadores. El modelo comportamental (modelo de datos, modelo funcional y modelo de comportamiento externo o de interfaz) es subdividido por procesadores. Se aplican criterios cualitativos (por ejemplo: necesidad de monitores de alta resolución gráfica) y cuantitativos (por ejemplo: velocidad del procesador, volumen de i nformación nformación almacenada, etc.) para seleccionar los procesadores, sistemas operativos, software y hardware de red, etc. Las distorsiones agregadas corresponden a la partición del DFD, ERD, DTE en procesadores, refinamiento de procesos y entidades o depósitos de datos (para asociar parte en un procesador y parte en otro) y a la incorporación de procesos para el control de la comunicación entre procesadores (siempre que la tecnología no solucione el problema de manera transparente).
28
Análisis y Diseño de Sistemas
Según la cantidad de procesadores procesadores utilizados y las formas de comunicación entre ellos se tienen distintas configuraciones. configuraciones. Tipos de configuración configuración típicas: o
Centralizada (host based)
o
Descentralizada
o
Mixta
o
Distribuida
o
Cliente/Servidor Centralizada: Asigna el modelo esencial completo a un único procesador central.
Descentralizada: Descentralizada: Se asignan partes del modelo esencial a diferentes procesadores procesadores los cuales trabajan en forma independiente. independiente. En el caso de almacenes que deban ser compartidos por procesos asignados a diferentes procesadores, procesadores, los mismos deberán duplicarse, y mantenerse copias actualizadas en cada procesador. Mixta: Puede darse una combinación de los casos anteriores. Es común la existencia de un sistema central que consolida toda la información de la organización y que en diferentes unidades operativas que no este conectadas a dicho procesador central existan sistemas satélites que implementan algunos procesos con almacenes con datos locales. Distribuida: Se asignan partes del modelo esencial a diferentes procesadores los cuales están comunicados de alguna forma y sobre los que corre un sistema operativo distribuido. En este caso el usuario ve al conjunto de procesadores procesadores como un único recurso computacional. Cliente/Servidor: Cliente/Servidor: Se distribuyen partes del proceso en diferentes procesadores. procesadores. El esquema más genérico de distribución cliente-servidor distribuye el modelo del sistema en tres niveles: presentación, lógica del negocio, y acceso a base de datos. Los dos esquemas cliente-servidor más utilizados en la actualidad son: C/S 2 niveles: Servidor de B.D. / Aplicación-Presentación en Estación de Trabajo C/S 3 niveles: Servidor de B.D. / Servidor de Aplicación / Presentación en Est.Trab.
Tipos de configuración de comunicación entre procesadores: o
Conexión directa entre procesadores procesadores (canal / r ed local / otros)
o
Enlace de telecomunicaciones telecomunicaciones entre procesadores procesadores
o
Enlace indirecto: los datos son transferidos de un procesador a otro vía algún medio de almacenamiento (cinta, cd, diskette, etc.)
Factores que influyen en la configuración de procesadores: 29
Análisis y Diseño de Sistemas o
Costo
o
Eficiencia
o
Seguridad (procesadores y datos en lugares seguros)
o
•
Confiabilidad (separar los procesos en varios procesadores, procesos redundantes) redundantes) - Restricciones Restricciones políticas y operacionales. operacionales.
El Modelo de Tareas : Los modelos resultantes de la creación del modelo de procesadores son estudiados por separado (un procesador por vez), para determinar tareas diferentes (que serán programas diferentes de manera tal que se pueden ejecutar concurrentemente o no). La distorsión agregada en esta etapa representa la subdivisión del modelo funcional de un procesador (el DFD) en distintos DFD's (uno por tarea), agrupando procesos batch, interactivos o de tiempo real, partes del DFD aisladas del resto (comunicación solamente a través de depósitos de datos), etc. Además, es probable que sea necesario agregar procesos de control de concurrencia y sincronización para el acceso a recursos compartidos (como por ejemplo los depósitos de datos). Dentro de cada procesador definido en el modelo anterior, deben asignarse procesos a diferentes tareas o particiones. En muchos sistemas operativos modernos, el manejo de tareas es transparente al desarrollador. Las tareas pueden categorizarse típicamente en Interactivas, Batch, y en Tiempo Real. Para la mayoría de los sistemas administrativos es importante determinar que partes del modelo esencial se asignaran a tareas interactivas y cuales a tareas batch. La comunicación entre tareas normalmente es provista vía el sistema operativo.
•
El Modelo de Programas : La estructura del programa que implementa cada una de las tareas resultantes de las etapas de modelado de procesadores y tareas, es diseñada mediante la aplicación de las técnicas y estrategias descriptas por el Diseño Estructurado (por ejemplo: Análisis de Transformaciones y Transacciones) y mejorada con la aplicación de criterios de calidad (por ejemplo: Cohesión, Acoplamiento, etc.).
30
Análisis y Diseño de Sistemas
Fig. 2.6.: Secuencia de Creación de Modelos
2.7.
Métodos de desarrollo de Software. Los métodos de desarrollo de software pueden dividirse en dos grupos: función/dato y orientados a objetos .
Orientado a Función/Dato. Aquellos métodos en los cuales las funciones y/o los datos son tratados como entidades independientes. Estos sistemas resultan difíciles de mantener. El mayor problema es que las funciones generalmente dependen de la estructura de los datos. A menudo diferentes tipos de datos tienen distintos formatos y se necesita verificar el tipo del dato (con sentencias If-Then o CASE), produciendo programas difíciles de leer y modificar. Si se desea hacer alguna modificación en la estructura de los datos se debe modificar en todos los lugares donde es utilizado. Otro problema es que una persona no piensa naturalmente en términos de una estructura. La especificación de requerimientos se hace en lenguaje común, se especifica la funcionalidad que debe tener el sistema y no en cómo se deben estructurar los datos.
Orientado a Objetos: Objetos : Son aquellos métodos en los cuales datos y funciones están altamente relacionados. El énfasis está centrado en la abstracción de datos. Se piensa en forma natural, los objetos son mapeados a entidades del mundo real. Los programas son fácilmente mantenibles y extensibles por medio de la construcción de subclases.
31
Análisis y Diseño de Sistemas
3.
Definición del Proyecto de Sistemas.
3.1.
Razones para iniciar proyectos de Sistemas de Información
La siguiente tabla muestra las causas por las cuales las organizaciones toman la decisión estratégica de bordar proyectos sobre sistemas de información en función de los parámetros mejorables de ésta.
Capacidad. •
Mayor velocidad de procesamiento
•
Incremento en el volumen
•
Recuperación más rápida de la información
Control. •
Mayor exactitud
•
Mejora de la consistencia
Comunicación. •
Mejoras en la comunicación
•
Integración de áreas de la empresa
Costos. •
Monitorización de costos
•
Reducción de costos
Ventajas competitivas. •
Atraer clientes
•
Dejar fuera a la competencia
•
Mejores acuerdos con los proveedores
•
Desarrollo de nuevos productos
Por todo ello es importante conocer como se deben iniciar este tipo de proyectos, así como las distintas formas de adquirir la información necesaria para su posterior realización.
32
Análisis y Diseño de Sistemas
3.2.
Inicio de proyectos
3.2.1.
Proceso de solicitud de proyecto
La solicitud de proyecto, aunque no existe un formato único y depende de la Organización, debe contener la información mínima, a fin de poder ser estudiada por el comité. Esta información a contener es:
3.2.2.
•
¿Cuál es el problema?
•
Detalles del problema
•
Importancia del problema
•
¿Cuál es la solución aportada por el usuario?
•
¿En qué medida será de ayuda un sistema de información?
•
¿Qué otras personas conocen el problema y se puede contactar?
Fuentes de solicitud de Proyectos Existen cuatro fuentes primarias de solicitudes de proyectos. •
Los ejecutivos
•
Los jefes de departamento
•
Los analistas de sistema y,
•
Entes externos a la Organización.
Los jefes de departamento buscan mejorar la eficiencia del trabajo o reducir costes en su departamento, implantando para ello un sistema informatizado, sin considerar la interacción con otros departamentos. Los directivos plantean proyectos globales a toda la Organización, normalmente multidepartamentales con un periodo de desarrollo más amplio, y normalmente asociado a políticas de empresa. Los analistas de sistemas buscan áreas donde desarrollar proyectos, normalmente para la mejora de un departamento. El hecho de no partir la propuesta de proyecto por el jefe del departamento, obedece a un mejor conocimiento de la tecnología y las posibilidades de los equipos por parte del analista de sistemas. Las solicitudes de nuevos proyectos pueden partir de grupos externos, siendo estos proyectos tan importantes o mas como los originados dentro de la Organización.
3.3.
Planificación de un proyecto de sistemas.
3.3.1.
¿Que es un proyecto de Sistema o Software?
Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimación, estimar es echar un vistazo al futuro y aceptamos resignados cierto grado de incertidumbre.
33
Análisis y Diseño de Sistemas
Al estimar tomamos en cuenta no solo del procedimiento técnico a utilizar en el proyecto, sino que se toma en cuenta los recursos, costos y planificación. El tamaño del proyecto es otro factor importante que puede afectar la precisión de las estimaciones. A medida que el tamaño aumenta, crece rápidamente la interdependencia entre varios elementos del Software. La disponibilidad de información histórica es otro elemento que determina el riesgo de la estimación.
3.3.2.
Objetivos de la Planificación del Proyecto.
Es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal. Estas estimaciones se hacen dentro de un marco de tiempo limitado al comienzo de un proyecto de software, y deberían actualizarse regularmente medida que progresa el proyecto. El Objetivo de la planificación se logra mediante un proceso de descubrimiento de la información que lleve a estimaciones razonables.
3.3.3.
Ámbito del Software. Es la primera actividad de llevada a cabo durante la planificación del proyecto de Software.
En esta etapa se deben evaluar la función y el rendimiento que se asignaron al Software durante la Ingeniería del Sistema para establecer un ámbito de proyecto que no sea ambiguo, e incomprensible para directivos y técnicos Describe la función, el rendimiento, las restricciones, las interfaces y la fiabilidad, se evalúan las funciones del ámbito y en algunos casos se refinan para dar mas detalles antes del comienzo de la estimación. El ámbito se define como un prerrequisito para la estimación y existen algunos elementos que se debe tomar en cuenta como es: la obtención de la información necesaria para el software. Para esto el analista y el cliente se reúnen sobre las expectativas del proyecto y se ponen de acuerdo en los puntos de interés para su desarrollo. 3.3.4.
Recursos:
La segunda tarea de la planificación del desarrollo de Software es la estimación de los recursos requeridos para acometer el esfuerzo de desarrollo de Software, esto simula a una pirámide donde las Herramientas (hardware y Software), son la base proporciona la infraestructura de soporte al esfuerzo de desarrollo, en segundo nivel de la pirámide se encuentran los Componentes reutilizables. Y en la parte mas alta de la pirámide se encuentra el recurso primario, las personas (el recurso humano). Cada recurso queda especificado mediante cuatro características: •
Descripción del Recurso
•
Informes de disponibilidad
•
Fecha cronológica en la que se requiere el recurso
•
Tiempo durante el que será aplicado el recurso
34
Análisis y Diseño de Sistemas
3.3.4.1. Recursos Humanos. La Cantidad de personas requeridas para el desarrollo de un proyecto de software solo puede ser determinado después de hacer una estimación estimación del esfuerzo de desarrollo (por ejemplo personas mes o personas años), y seleccionar la posición dentro de la organización y la especialidad que desempeñara cada profesional.
3.3.4.2. Recursos o componentes de software reutilizables. Cualquier estudio sobre recursos de software estaría incompleto sin estudiar la reutilización, esto es la creación y la reutilización de bloques de construcción de Software.
3.3.4.3. Recursos de entorno. El entorno es donde se apoya el proyecto de Software, llamado a menudo entorno de Ingeniería de Software, incorpora Hardware y Software. El Hardware proporciona una plataforma con las herramientas (Software) requeridas para producir los productos que son el resultado de la buena practica de la Ingeniería del Software, un planificador de proyectos debe determinar la ventana temporal requerida para el Hardware y el Software, y verificar que estos recursos estén disponibles.
3.3.5.
Estimación de costos del Proyecto de Software.
En el principio el costo del Software constituía un pequeño porcentaje del costo total de los sistemas basados en Computadoras. Hoy en día el Software es el elemento más caro de la mayoría de los sistemas informáticos. Un gran error en la estimación del costo puede ser lo que marque la diferencia entre beneficios y perdidas, la estimación del costo y del esfuerzo del software nunca será una ciencia exacta, son demasiadas las variables: humanas, técnicas, de entorno, políticas, que pueden afectar el costo final del software y el esfuerzo aplicado para desarrollarlo. Para realizar estimaciones seguras de costos y esfuerzos tienen varias opciones posibles: • Deje la estimación para más adelante (obviamente podemos realizar una estimación al cien por ciento fiable después de haber terminado el proyecto. •
Base las estimaciones en proyectos similares ya terminados.
•
Utilice técnicas de descomposición relativamente sencillas para generar las estimaciones de costos y esfuerzo del proyecto. •
Desarrolle un modelo empírico para él cálculo de costos y esfuerzos del Software.
Desde el punto de vista ideal, se deben aplicar conjuntamente las técnicas indicadas usando cada una de ellas como comprobación de las otras. Antes de hacer una estimación, el planificador del proyecto debe comprender el ámbito del software a construir y generar una estimación de su tamaño.
35
Análisis y Diseño de Sistemas
3.3.5.1. Estudio de Factibilidad. Muchas veces cuando se emprende el desarrollo de un proyecto de Sistemas los recursos y el tiempo no son realistas para su materialización sin tener pérdidas económicas y frustración profesional. La viabilidad y el análisis de riesgos están relacionados de muchas maneras, si el riesgo del proyecto es alto, la viabilidad de producir software de calidad se reduce, sin embargo se deben tomar en cuenta cuatro áreas principales de interés: •
Factibilidad Operacional
•
Factibilidad Técnica
•
Factibilidad Legal
•
Factibilidad Financiera y Económica
El estudio de factibilidad lo lleva a cabo un equipo de personas (una o dos) que están familiarizados con técnicas de sistemas de información, normalmente es gente experta en los procesos de Análisis y Diseño de Sistemas. Hay tres aspectos relacionados: Factibilidad Operacional Las preguntas formuladas para este apartado serán: •
¿Trabajará el sistema cuando esté terminado e instalado?
•
¿Existen barreras importantes para la implantación?
•
¿Existe apoyo por parte de los usuarios y la administración?
•
¿Los métodos que actualmente se emplean en la Organización son aceptados por los usuarios?
•
¿Han participado los usuarios en la planeación y desarrollo del proyecto?
Factibilidad Técnica Los aspectos técnicos a considerar, son: •
¿Existe o se puede adquirir la tecnología precisa para realizar el proyecto?
•
¿El equipo propuesto tiene la capacidad técnica para soportar todos los datos del sistema?
•
¿Puede crecer con facilidad el sistema?
•
¿Existen garantías técnicas de exactitud, confiabilidad, facilidad de acceso y seguridad de los datos?
•
Se implementarán funciones de auditoria en el futuro sistema.
Factibilidad Legal Los aspectos legales a tener en cuenta, son: •
¿El sistema es afectado por leyes del medio ambiente o normativas internas? 36
Análisis y Diseño de Sistemas
•
¿La construcción de todo sistema esta determinado por políticas predefinidas?
•
¿El software de construcción posee el licenciamiento para tal efecto?
•
¿Quiénes participan en el desarrollo, conocen las características de la propiedad del producto de software?
Factibilidad Financiera y Económica Los aspectos financieros y económicos a considerar, son: •
El costo de llevar a cabo la investigación completo de sistemas
•
El costo del hardware y software para la aplicación que se está considerando
•
Beneficios en la forma de reducción de costos o de menores errores costosos
•
El costo, si el proyecto no se lleva a cabo
3.3.5.2. Análisis Económico. El análisis económico o análisis costo-beneficio proporciona a la gerencia una visión de los costos y riesgos asociados con alternativas de inversión. Para los sistemas de información automatizados que requieren de la adquisición de equipo de cómputo, es necesario evaluar la conveniencia económica de adquirirlos ya que cumplen con las características que definen a una decisión de inversión: •
Involucra sumas importantes de dinero
•
Se comprometen erogaciones futuras de fondos.
•
Los resultados continúan sobre un período largo de tiempo
•
Usualmente la decisión es irreversible.
•
Depende de pronósticos.
En este tipo de decisiones, se involucran dos tipos fundamentales de costos: los necesarios para implantar o echar a andar el proyecto, y aquellos que se erogarán durante la vida del mismo y que deberán ser comparados con los beneficios esperados del proyecto. A los primeros se les conoce como costos de desarrollo o inversión inicial y a los segundos, como costos de operación. Para evaluar un proyecto de inversión, se deben comparar los costos con los beneficios asociados a los mismos. A continuación se muestran algunos ejemplos de costos y beneficios que pueden presentarse en la adquisición de equipo de cómputo: Costos de desarrollo: • • • • •
Personal: Equipo: Software: Materiales: Otros:
analistas, programadores, operadores, administrativos costo, instalación, pruebas, conversión costo, instalación, mantenimiento publicaciones (documentación), formas, papelería, discos, tinta capacitación, Luz, renta, etc. 37
Análisis y Diseño de Sistemas
Costos de operación: • • • • •
Personal: Hardware: Software: Materiales: Otros:
operador, capturista, soporte técnico mantenimiento mantenimiento papel, formas, discos auditoria, renta
Beneficios: • • • • •
Reducción en costos Reducción de errores Mayor velocidad Mayor flexibilidad Mejora en la planeación y en el control
Las decisiones de inversión se pueden clasificar de acuerdo a la relación que puede presentarse entre proyectos en: 1. Independientes. Cuando la decisión de llevarlos a cabo no afecta a otros proyectos. 2. Mutuamente excluyentes. Cuando la aceptación del proyecto excluye a otro proyecto en estudio (existe restricción de capital). 3. Complementarios. Cuando la aceptación de un proyecto incluye la aceptación de otro que lo complementa.
El objetivo primordial de la evaluación de proyectos es la determinación de la alternativa de inversión más adecuada en función de la maximización de utilidades, y para alcanzarlo, es recomendable desarrollar previamente las siguientes tres fases. 1. Estimar la inversión neta o inicial representada por la integración de los costos de desarrollo del proyecto. 2. Estimar los flujos de efectivo generados durante la vida del proyecto y asociados a éste (beneficios menos costos de operación). 3. Evaluar la conveniencia del proyecto de acuerdo con la comparación de la inversión neta y los flujos de efectivo a través del uso de los métodos de evaluación existentes para ello.
3.3.6.
Inversión Neta o Inicial. Para el cálculo de la inversión inicial, se pueden considerar los siguientes conceptos con la adquisición del
activo: 1. Precio del nuevo activo 2. Costo de instalación 3. Otros gastos o ingresos en que si incurran como puede ser la venta del bien antiguo (reemplazo), gastos de entrenamiento, etc. 4. El beneficio o pérdida fiscal que se genera por la venta de activos antiguos (reemplazo) 38
Análisis y Diseño de Sistemas
3.3.7.
Métodos de Evaluación de Proyectos.
Una vez conocidas la inversión neta o inicial y los flujos de efectivo que se esperan genere el proyecto, será necesario compararlos y determinar si el proyecto conviene o se debe rechazar. Para fines de estas notas, se consideran los métodos más usuales con sus principales inconvenientes y características: Payback, Valor Actual Neto (VAN) y Tasa interna de Rendimiento (TIR). Payback o Período de Recuperación. Este método calcula el número de años necesarios para recuperar la inversión inicial, su interés radica solamente en el tiempo necesario para recuperarla, por tanto su criterio de decisión ante alternativas mutuamente excluyentes será elegir el proyecto que recupere la inversión inicial en el menor tiempo. Para calcular el payback, cuando los flujos de efectivo son iguales: Payback = Inversión inicial / Flujo de efectivo anual
Ejemplo: se tiene un proyecto con inversión inicial de $ 20.000 que se espera produzca rendimientos anuales de $ 4.000 (flujos de efectivos). ¿Cuál sería su período de recuperación o payback? Payback = 20.000 / 4.000 = 5 años Cuando los flujos netos de efectivo no son iguales, el payback se calcula acumulándolos hasta que la suma sea igual al desembolso inicial. Ejemplo: se tiene una propuesta de inversión que requiere de una salida inicial de $ 10,000 los rendimientos esperados para la misma son los siguientes: Año 1 2 3 4 5
Flujo de Efectivo $ 2.000 $ 4.000 $ 3.000 $ 3.000 $ 1.000
Si se acumulan los flujos de efectivo del año 1, 2 y 3, se tendría 2000+4000+3000 = 9000 por lo tanto para recuperar la salida inicial, es necesario considerar $ 1000 a recuperar en el año 4. Para calcular el período de tiempo proporcional del año que corresponde a la cantidad de $1000, se puede hacer uso de la regla de tres en la cual puede variar el uso de la unidad de tiempo (semestre, trimestre, cuatrimestre, meses o días). En este caso se hará uso de meses y el planteamiento es: si $ 3000 corresponden a 12 meses, ¿a cuántos meses corresponden $ 1000? 3000 12 1000 x (1000 * 12) / 3000 = 4 meses Esto quiere decir que el período de recuperación o payback del proyecto es de 3 años y cuatro meses. Otra manera de calcular el residual del año, es en base a la proporción de los $ 1000 que hacen falta a considerar del año 4, esto es, 1000/3000=0.33 o 1/3 del año que representan los 4 meses. Las principales ventajas y desventajas del payback son las siguientes: Ventajas •
Es simple 39
Análisis y Diseño de Sistemas
Desventajas •
No considera el valor del dinero en el tiempo.
•
No considera flujos de efectivo después del payback
Valor Actual Neto (VAN) El método de valor presente neto, considera el valor del dinero en el tiempo y resulta de comparar el valor presente de los beneficios de un proyecto menos el valor de la inversión inicial. Cuando el valor presente neto es positivo, el proyecto es viable ya que cubre la inversión y genera beneficios adicionales. Cuando el valor presente neto es negativo, el proyecto debe rechazarse ya que los beneficios esperados no cubren la inversión inicial. Para seleccionar entre proyectos mutuamente excluyentes el criterio es elegir el de mayor valor presente neto. Entonces, el criterio de decisión es el siguiente: Si VAN > 0 el proyecto se acepta (es positivo) Si VAN < 0 el proyecto se rechaza (es negativo) Este método, elimina la desventaja de los dos anteriores en relación con el valor del dinero en el tiempo, pero su cálculo requiere de tiempo y comprensión de este concepto además de una tasa de descuento para realizar los cálculos. La fórmula que permite calcularlo es la siguiente:
n R j − I 0 VAN = ∑ j j =1 (1 + i) )
donde: R j = flujos de efectivo (beneficios – costos, del período j) t = períodos de tiempo que van desde 1 hasta n i = tasa de rendimiento esperada I0 = inversión inicial
Para ejemplificar el valor del dinero en el tiempo, considérese que se tiene efectivo por $ 400 y se invierte en el banco a una tasa del 10% anual, al final del primer año el efectivo se habrá incrementado en $40 que representa el rendimiento anual que se ofrece al inversionista por depositar su dinero en la institución bancaria. Si esta nueva suma de $ 440 se deja por otro año más, entonces al final del segundo año se obtendrá un rendimiento de $ 44 que conjuntamente con los $ 440 darán un total de $484.
40
Análisis y Diseño de Sistemas
Lo anterior significa que si una persona quisiera recuperar dentro de dos años la cantidad de $ 484, necesita tener en el presente $ 400 e invertirlos a una tasa de interés compuesto del 10%. Para facilitar el cálculo del valor presente, existen tablas en los libros financieros o en los libros de matemáticas financieras que presentan el resultado de aplicar la fórmula anterior como un factor para una tasa y un período de tiempo específico. Ejemplo: se tienen dos proyectos de inversión el A y el B: PROYECTO A Año Flujo neto Factor 10% 1 500 0,9091 2 400 0,8264 3 300 0,7513 4 100 0,6830 Suma del valor actual de los flujos Inversión Inicial Valor Actual Neto (VAN)
Valor presente de los flujos 90,91 165,28 225,39 273,2 + 1078,80 1000 + 78,80
PROYECTO B Año Flujo neto Factor 10% 1 100 0,9091 2 200 0,8264 3 300 0,7513 4 400 0,6830 5 500 0,6209 6 600 0,5645 Suma del valor actual de los flujos Inversión Inicial Valor Actual Neto (VAN)
Valor presente de los flujos 90,91 165,28 225,39 273,2 310,45 338,70 + 1403,93 1000 + 403,93
Si los proyectos son independientes, ambos son factibles de realizarse desde el punto de vista económico porque su valor presente neto es positivo (78,80 y 403,93). En el caso de que los proyectos fueran mutuamente excluyentes, el proyecto B será el que se deberá seleccionar ya que el valor presente neto de este proyecto es superior al valor presente neto del proyecto A.
En resumen, las principales ventajas y desventajas del método son las siguientes: Ventajas •
Considera el valor del dinero en el tiempo.
•
Considera todos los flujos de efectivo.
•
Considera la contribución esperada en términos absolutos. 41
Análisis y Diseño de Sistemas
Desventajas •
Dificultad de cálculo
•
Requiere de una tasa de interés para realizar el cálculo.
Ejercicio: La compañía Margar tiene en estudio la adquisición de un sistema de cómputo que le servirá para controlar su línea de productos. El costo de instalación del sistema es de $700.000 en el año 0 y de $1.000.000 en el año 1 por mantenimiento. Se esperan ahorros en mano de obra y materiales de $250,000 en el año 2, $300,000 en el año 3, $350,000 en el año 4 y $400,000 cada año posterior hasta el año 10 que es el tiempo de vida estimado para el sistema. a) ¿Cuál es el período de recuperación del proyecto? b) ¿Cuál es la tasa promedio de retorno del proyecto? c) Si la tasa de rendimiento requerida es de 15%, ¿Cuál es el valor actual neto del proyecto? ¿Es aceptable? b) ¿Cuál sería la situación con el VAN si la tasa requerida fuera del 10%?
Tasa interna de rendimiento (TIR) La tasa interna de rendimiento (TIR) es un método que considera el valor del dinero en el tiempo y determina la tasa de rendimiento en la cual el valor presente neto de un proyecto es igual a cero. La fórmula que permite representar al método es la siguiente:
n R j − I 0 = 0 TIR = ∑ j j =1 (1 + i ) ) donde: R j = flujos de efectivo (beneficios – costos, del período j) t = períodos de tiempo que van desde 1 hasta n i = tasa de rendimiento esperada I0 = inversión inicial
Cuando la TIR es mayor al costo de capital requerido para el proyecto, debe aceptarse. Cuando TIR es menor al costo de capital, el proyecto debe rechazarse ya que los beneficios esperados no cubren la inversión inicial. Para seleccionar entre proyectos mutuamente excluyentes el criterio es elegir el de mayor TIR. El cálculo de la TIR es similar a la de valor presente neto, únicamente que en este caso se recomienda seguir los siguientes pasos: 1. Se determina una tasa en la que el valor presente neto sea positivo 42
Análisis y Diseño de Sistemas
2. Se determina una tasa en la que el valor presente neto sea negativo 3. Se interpola para calcular la tasa en la que el valor presente neto sea cero El motivo para efectuar estos pasos, se puede observar gráficamente relacionando el valor presente neto de un proyecto con diferentes tasas de interés:
Como puede observarse, a medida que las tasas requeridas de interés aumentan, el valor presente neto disminuye hasta volverse negativo. Por lo tanto cuando VAN es igual a cero, se encuentra la TIR del proyecto. (Usar Excel). En resumen las principales ventajas del método son: Ventajas •
Considera el valor del dinero en el tiempo
•
Considera todos los flujos de efectivo
•
No requiere de una tasa de descuento
Desventajas •
3.4.
Muy difícil de calcular
Planificación de las actividades.
En la planificación de un proyecto, tanto las tareas como los recursos disponibles son igualmente importantes, a menos que se disponga de manera ilimitada de éstos, tanto en número como en funcionalidad y valor, cosa que no suele suceder en el mundo real. Un buen punto de partida para la planificación y control de actividades de un proyecto, es dividirlo, desde el punto de vista administrativo, en las actividades del ciclo de vida clásico de desarrollo de sistemas de información. En cuanto a las tareas en que se divide el proyecto, es importante considerar la relación entre ellas: •
Tareas Independientes: posibilidad de realizarse en paralelo con otras tareas (no estás condicionadas)
•
Tareas Dependientes: condicionadas a otras. 43
Análisis y Diseño de Sistemas
•
Secuenciales: deben guardar un orden de ejecución. Dependen de un o varias anteriores.
•
Solapadas: en principio, independientes, pero se consideran así cuando no se pueden iniciar simultáneamente. Se trata de una independencia relativa
La secuencia de tareas y, por lo tanto de trabajo, viene condicionado por tres tipos de restricciones: lógicas, estratégicas y de recursos. Estimación de Tiempos. Una vez identificadas las tareas, hay que asignarles un tiempo de ejecución. En general, resulta práctico planificar en base a días (jornadas laborales completas) y convertirlo a horas cuando se precise esta medida de tiempo. No resulta práctico planificar con menos detalle que días de trabajo, en todo caso, convendrá agrupar tareas para considerar, al menos, un día en la planificación. Técnicas Gráficas para Itinerarios y Control. El plan de trabajo debe ser elaborado y expresado mediante técnicas que, además de suponer una ayuda en la planificación misma, aseguren su coherencia y la comprensión rápida y eficaz por parte de quienes deban conocerlo y controlarlo. Existen dos técnicas de definición de itinerarios, las cuales se pueden considerar clásicas, que son la base de la mayoría de los mecanismos de definición de planes de trabajo y control: la técnica PERT y los gráficos GANTT.
3.4.1.
PERT (Proyect Evaluation and Review Technique)
Técnica de evaluación y revisión de programas. La gráfica PERT, tiene gran valor cuando se planifica y diseña el sistema. Cuando se termina la gráfica de relaciones, se puede determinar la ruta crítica. La gráfica se basa en círculos que representan acontecimientos y líneas que muestran actividades (puede haber ficticias con tiempos ceros). También muestra la interdependencia de las tareas y ayuda a responder: ¿Qué actividades deben preceder o se deben completar antes del inicio de una actividad específica? ¿Qué otras actividades se pueden llevar a cabo en tanto una actividad específica se encuentra en proceso? ¿Qué actividades no se pueden iniciar hasta después de terminar una actividad específica? Para desarrollar la red PERT primero se deben determinar las tareas y los tiempos relacionados con cada actividad. A continuación, se debe identificar la secuencia de realización de las actividades. Esto es: ¿Qué actividades se pueden realizar al mismo tiempo?, ¿Cuáles deben preceder a otras? y ¿cuáles deben ir después de otras? Ejemplo: A Alejandro Limón se le ha asignado la tarea de preparar el reporte anual de la compañía. Alejandro ha identificado 7 actividades, sus antecedentes y el tiempo necesario para realizarlas. Actividad A. Tener preparados los estados financieros B. Escribir los artículos de los estados financieros C. Auditar los estados financieros D. Organizar el reporte anual E. Obtener la aprobación del presidente F. Imprimir el reporte G. Distribuir el reporte
Antecedente ----A C, B C, B D F, E
Tiempo semanas 4 6 3 2 3 5 8
44
Análisis y Diseño de Sistemas
A continuación se muestra el diagrama PERT y CPM para que Alejandro cumpla con su función de una mejor manera.
En el ejercicio, la ruta crítica es el camino formado por las actividades A, C, D, F y G ya que requieren de mayor tiempo, para lograr el objetivo del proyecto.
3.4.2.
Cronogramas, Diagramas de Tiempo o Gráficas de Gantt.
Es una tabla de doble entrada que asocia tiempo y actividades y muestra en la intersección de las líneas con las columnas, la duración de cada actividad. De todas las técnicas de planificación, la más conocida y utilizada es, sin duda, el diagrama de GANTT, que recibe el nombre de su inventor.
45
Análisis y Diseño de Sistemas
Esta representación básica admite variaciones sin cambiar su estructura, tal como representar, con otro tipo de línea, fases o conjunto de tareas y luego detallar las tareas o subtareas, que quedarán dentro de los márgenes de la fila de conjunto. Como puede verse, la carta Gantt presenta en gran medida el mismo tipo de información que el diagrama Pert; su principal diferencia es el hecho de que muestra gráficamente la duración de una actividad, mientras el diagrama Pert no lo hace. Dado que es una representación un tanto más tabular del proyecto, a menudo puede usarse para representar una gran cantidad de información en una forma relativamente compacta.
46
Análisis y Diseño de Sistemas
3.5.
Análisis Económico y Técnico.
El análisis económico incluye lo que llamamos, el análisis de costos – beneficios, significa una valoración de la inversión económica comparado con los beneficios que se obtendrán en la comercialización y utilidad del producto o sistema. En el Análisis Técnico, el Analista evalúa los principios técnicos del Sistema y al mismo tiempo recoge información adicional sobre el rendimiento, fiabilidad, características de mantenimiento y productividad. Los resultados obtenidos del análisis técnico son la base para determinar sobre si continuar o abandonar el proyecto, si hay riesgos de que no funcione, no tenga el rendimiento deseado, o si las piezas no encajan perfectamente unas con otras.
3.6.
Manejo de proceso de selección y revisión de proyectos
Se generan muchas solicitudes para el desarrollo de sistemas de las que las Organizaciones pueden emprender, obliga a un proceso de selección y priorización. Uno de los métodos más comunes para revisar y seleccionar proyectos para su desarrollo es por medio de un comité. Podemos hablar de varios tipos de comité: Comité Directivo Formado por ejecutivos, jefes de departamento y analista de sistemas. Normalmente corresponde con el personal con mayor responsabilidad, autoridad y con pocos miembros especialistas en sistemas. Reciben y evalúan las propuestas. Para la toma de decisión en firme necesitan mayor información que la contenida en la propuesta, por lo que deciden realizar un estudio preliminar. Comité de Sistemas de Información El comité formado por profesionales del departamento de sistemas de información. Este comité aprueba o rechaza proyectos y fija las propiedades y también indica qué proyectos son más importantes, dándoles atención inmediata. Esta composición del comité se puede utilizar para servicios rutinarios o mantenimiento de aplicaciones existentes. Comité de Grupos de Usuarios En algunas organizaciones la responsabilidad de la toma de decisiones con respecto a los usuarios se deja en manos de éstos. Algunos departamentos contratan sus propios analistas y diseñadores. Pero puede ocurrir que varios departamentos pequeños que trabajan de forma independiente para alcanzar la misma meta pueden estar, de manera inconsciente, desperdiciando recursos y perdiendo la oportunidad para coordinar la planificación de un sistema de información, compartido e integrado que podría beneficiar a toda la empresa. Aprobación de la solicitud No todos los proyectos solicitados son factibles. Algunas organizaciones reciben tantas solicitudes de sus empleados que solo es posible atender unas cuantas. Sin embargo, aquellos casos que son deseables deseables y factibles factibles deben incorporarse en los planes de desarrollo de la organización, para ser atendidos lo más rápido posible, según los recursos de la organización. Dentro de los beneficios que el sistema podría brindar tenemos: •
Obtención de información no disponible actualmente
•
Elaboración más oportuna de la información 47
Análisis y Diseño de Sistemas
•
Mejoras en las operaciones de la organización
•
Posibilidades de efectuar cálculos o estimaciones que actualmente no es posible
•
Reducción de costo
•
Obtención de una posición competitiva dentro del mercado
•
Mejoras en la toma de decisiones.
•
Mejoras en la imagen, atención, seguridad, etc.
48
Análisis y Diseño de Sistemas
4.-
Análisis, Determinación y Especificación de Requerimientos
4.1.-
Análisis de Requerimientos
La tarea de análisis de los requerimientos es un proceso de descubrimiento y refinamiento de la información. El contexto del programa establecido previamente es refinado en detalle. Tópicos: •
función y comportamiento de los programas
•
interfaz con diferentes partes del sistema
•
técnicas de revisión
Actores del proceso: Cliente (s), Analista, Equipo de desarrollo
Tareas del análisis: 1. Reconocimiento del problema se realiza mediante entrevistas con el cliente para reconocer elementos básicos del sistema a desarrollar 2. Evaluación del problema y síntesis de la solución se refiere a la evaluación de flujo y estructura de la información, refinamiento en detalle de todas las funciones del programa, y finalmente elaboración de una o más alternativas de solución del problema. 3. Especificación es un documento que se elabora para ser revisado y aprobado para el cliente 4. Revisión son los criterios de validación del programa terminado
Analista de sistemas, diseñador jefe de proyecto, programador/analista etc., deben tener •
Habilidad para comprender los aspectos abstractos, reorganizarlos en divisiones lógicas y sintetizar "soluciones" basadas en cada división
•
Habilidad de cristalizar hechos importantes de fuentes conflictivas o confusas
•
Habilidad para comprender entornos de usuario/cliente
•
Habilidad para relacionar elementos hardware y/o software a entornos de usuario/cliente
•
Habilidad para comunicarse en forma escrita y verbal
•
Habilidad para evitar que "los árboles no dejan ver el bosque"
49
Análisis y Diseño de Sistemas
Áreas de problemas: Ya que análisis de requerimientos es una actividad intensiva de comunicación, siempre existe ruido (mala interpretación, omisión). Conforme crece el tamaño del problema, crece también la complejidad de la tarea de análisis. Cada nuevo elemento puede tener efecto sobre otros elementos. Problemas: •
pobre comunicación, que hace difícil la adquisición de la información
•
técnicas y herramientas inadecuadas que producen especificaciones inadecuadas e imprecisas
•
tendencia a acortar el análisis de requerimientos, conduciendo a un análisis inestable
•
un fallo en considerar alternativas antes de especificar el software
La tarea de análisis de requisitos es un proceso de descubrimiento, refinamiento, modelado y especificación. Se refina en detalle en detalle el ámbito del software, inicialmente establecida por el ingeniero de sistemas y refinada durante la planificación temporal del proyecto. Se crean los modelos de los requisitos de datos, flujo de información y del comportamiento operativo. Se analizan las soluciones operativas y se asignan a diferentes componentes del software. Tanto el desarrollador como el cliente tienen un papel activo en el análisis y especificación de los requisitos. El cliente intenta reformular su concepto a veces confuso de función del software y rendimiento en detalles concretos. El desarrollador actúa como un interrogador, como consultor y como la persona que resuelve el problema. El análisis y la especificación de los requisitos puede parecer una tarea relativamente sencilla, pero las apariencias engañan. El contenido de comunicación es muy denso. Abundan ocasiones para las malas interpretaciones o falta de la información. Es muy probable que haya ambigüedad. El dilema al que se enfrenta el ingeniero de software puede entenderse muy bien repitiendo la famosa frase de un cliente anónimo “Sé que cree que entendió lo que piensa que dije, pero no estoy seguro de que se dé cuenta de que lo que escuchó no es lo que yo quise decir”. El análisis de requisitos permite al ingeniero de sistemas especificar la función y el rendimiento, indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software. La primera reunión entre el analista y el cliente tiene que ser planificada cuidadosamente: se sugiere que se empiece por preguntar por cuestiones de contexto libre. Es decir, un conjunto de preguntas que llevarán a un entendimiento básico de problema, que solución busca, la naturaleza de la solución que se desea y la efectividad del primer encuentro. Estas primeras preguntas enfocan en el cliente, los objetivos generales y los beneficios esperados. Por ejemplo, el analista podría preguntar: •
¿Quién esta detrás de la solicitud de este trabajo?
•
¿Quién utilizará la solución?
•
¿Cuál será el beneficio económico del éxito de una solución?
•
¿Hay alguna otra alternativa para la solución que necesita?
El segundo conjunto de preguntas permite al analista obtener un mejor entendimiento de problema y al cliente comentar sobre sus opiniones sobre la solución. •
¿Cómo caracterizaría un buen resultado generado por una solución?
•
¿A qué tipo de problemas va dirigida la solución?
•
¿Puede mostrarme (o describirme) el entorno en que se utilizará la solución?
•
¿Hay aspectos o restricciones especiales del rendimiento que afecten a la manera de enfocar la solución? 50
Análisis y Diseño de Sistemas
Y el último conjunto de preguntas esta enfocado en la eficacia de la reunión: •
¿Es Usted la persona adecuada para responder a estas preguntas? ¿Sus respuestas son “oficiales”?
•
¿Son adecuadas las preguntas para el problema que tiene Usted?
•
¿Estoy preguntando demasiado?
•
¿Hay alguien más que pueda proporcionar información adicional?
•
¿Hay algo más que debería preguntarle?
Estas preguntas (y otras) ayudarán a romper el hielo e iniciar la comunicación tan importante para el éxito del análisis. Después de esta entrevista inicial se procede a tener entrevistas regulares con diferentes personas dentro de la organización para obtener la información más fidedigna sobre la organización, resolviendo los posibles conflictos de información, preparando cada una de estas reuniones y haciendo especificación las cuales deben ser autorizados por el cliente antes de pasar a la fase de diseño.
4.2.
Determinación de requerimientos
Determinar requerimientos consiste en estudiar un sistema para conocer como trabaja y donde es necesario efectuar mejoras. Un requerimiento es una característica que debe incluirse en el nuevo sistema. Esta puede ser la inclusión de determinada forma para capturar o procesar datos, producir información, controlar una actividad de la empresa o brindar soporte a los directivos. Los analistas de sistemas no trabajan como directivos o empleados de los departamentos de usuarios, no tiene los mismos conocimientos, hechos y detalles que los usuarios y directivos de estas áreas. Por lo tanto el primer paso del analista es comprender la situación. El primer paso del analista es comprender la situación actual.
4.2.1.
Actividades de la determinación de Requerimientos •
Anticipación de Requerimientos Prever las características del sistema con base en la experiencia previa. Esto puede llevar al analista a investigar áreas y aspectos que de otra forma no serían tomados en cuenta. La experiencia permite anticipar requerimientos para el nuevo sistema.
•
Investigación de Requerimientos Estudio y documentación del sistema actual utilizando para ello técnicas para hallar hechos, análisis de flujos de datos y análisis de decisión. Es la actividad más importante. 51
Análisis y Diseño de Sistemas
•
Especificación de Requerimientos Análisis de los datos que describen el sistema para determinar qué tan bueno es su rendimiento, qué requerimientos deben satisfacer y las estrategias para alcanzarlos.
4.3.
Investigación de Requerimientos. Los analistas estructuran su investigación en base a 4 preguntas: 1. ¿Cuál es el proceso básico de la empresa? 2. ¿Qué datos utiliza o produce este proceso? 3. ¿Qué frecuencia y volumen del proceso existe? 4. ¿Qué controles utiliza para su realización?
4.3.1. ¿Cuál es el el proceso básico de la empresa? Las siguientes preguntas se utilizan para adquirir la comprensión necesaria:
4.3.2.
•
¿Cuál es la finalidad de esta actividad en la empresa?
•
¿Qué pasos se siguen para llevarla a cabo?
•
¿Donde se realizan estos pasos?
•
¿Quienes los realizan?
•
¿Cuánto tiempo tardan en efectuarlos?
•
¿Con cuanta frecuencia lo hacen?
•
¿Quienes emplean la información resultante?
¿Qué datos utiliza o produce este proceso? Este paso consiste en detectar qué datos se utilizan para llevar a cabo cada actividad.
4.3.3.
¿Qué frecuencia y volumen de proceso existe?
Los analistas deben investigar con cuanta frecuencia se repite una actividad. Esto cambia mucho dependiendo de la actividad ya que por ejemplo el pago de la nómina se repite mensualmente o semanalmente pero el pago de impuestos es anualmente. La manera más fácil de obtener esta información es identificar el objetivo de la actividad, es decir, cuál es la causa de la actividad. El volumen de los procesos puede aumentar el tiempo de realización de las actividades, es decir la cantidad total de pasos que puede constar una actividad puede generar problemas aún ocurriendo con poca frecuencia. 52
Análisis y Diseño de Sistemas
4.3.4.
¿Qué controles utiliza para su realización? La falta o debilidad de los controles es un descubrimiento importante en cualquier investigación del sistema. El analista debe examinar los métodos de control preguntando: •
¿Quién se encarga de comparar lo realizado con los estándares?
•
¿Cómo se detectan los errores?
•
¿Cómo se corrigen los errores?
Respuestas concisas a estas preguntas proporcionan un conocimiento amplio de una actividad en particular y muestra también su objetivo. Pero analista no se detiene ahí, todavía no existe información para comprender en en su totalidad la actividad; más bien lo que se tiene son los antecedentes que permiten a los analistas formular preguntas más detalladas. Durante esta, debemos identificar muy claramente los siguientes elementos: •
procesos
•
flujos de datos entre procesos
•
datos de cada flujo de datos
•
almacenes de datos
•
datos de los almacenes de datos.
Para ello el cuestionario que se aplica debe requerir la siguiente información: •
nombre de la entidad
•
nombre los campos
•
descripción
•
fuente y sensibilidad (= seguridad)
•
valor o importancia de los datos
•
relaciones de los campos y entidades
•
Criterio de retención y almacenamiento.
53
Análisis y Diseño de Sistemas
4.3.5.
Preguntas clásicas para una determinación de requerimientos: Preguntas generales: •
¿Cuántos empleados laboran para la organización en el área(s) que se pretende desarrollar el sistema?; o sea, ¿cuántos tienen relación directa con el proyecto que se está investigando?
•
¿Cuáles son las personas claves en el sistema? ¿Por qué son importantes?
•
¿Existen obstáculos o influencias de tipo político que afectan la eficiencia del sistema?
•
¿Existen manuales de procedimientos, políticas o lineamientos de desempeño documentados oficial o no oficialmente? Si los hay, ¿Se cumplen en forma cabal en el 100% de las ocasiones?, es decir, ¿se respetan dichos procedimientos?
•
¿Existen métodos para evadir el sistema?, ¿Por qué se presentan?
•
¿Qué áreas necesitan un control específico?
•
¿Qué criterios se emplean para medir y evaluar el desempeño?
Por otra parte: •
¿Existen actividades que considere podrían mejorarse?, ¿De qué manera?
•
¿Tiene alguna idea de actividades que podrían implementarse para mejorar el rendimiento del sistema en general?
Determinación de procesos: •
¿Cuáles son las principales actividades que se realizan en la organización y que tienen relación con el proceso que se está modelando?
Descripción de cada proceso identificado •
¿Qué es lo que da inicio a la actividad?
•
¿Cuál es el objetivo de la misma?
•
¿Cuánto tiempo se tarda en realizarla?
•
¿Qué retrasos ocurren o pueden ocurrir?
•
¿Qué métodos se emplean para medir y evaluar el desempeño de esta actividad?
•
¿Se toman precauciones específicas de seguridad para la protección contra alguna actividad impropia que se pudiera presentar?
•
¿Qué tan frecuente es el ciclo con el que se desarrolla dicha actividad?
•
De acuerdo al ciclo con el que se presenta la actividad, ¿Cuál es el volumen de información que aquí se procesa?
•
¿Qué pasos, sub-procesos, o funciones constituyen la actividad? (describir la actividad paso a paso)
•
¿Existe algún tipo de control desarrollado en el proceso en cuestión? 54
Análisis y Diseño de Sistemas
Determinación de datos (flujos y contenido de los flujos) - hacer la pregunta por cada proceso o actividad identificada •
¿De dónde proviene la información que se utiliza en esta actividad? ( fuentes)
•
¿Cuáles son específicamente los datos que recibe esta actividad? ( detalles de flujos )
•
¿De qué manera ingresan a este proceso? ( flujos)
•
¿Qué tablas de referencia y diagramas u otros datos intervienen en la actividad? ( documentación involucrada)
•
¿Qué información se genera en esta actividad? ( producto de la actividad )
El resultado identificado anteriormente producto de los datos que se procesan ¿Hacia qué o quién van dirigidos?–persona o entidad- ( destinos) •
¿Con qué finalidad la utilizan?
•
¿Cuáles datos se conservan o almacenan en este proceso? Y ¿en qué forma quedan almacenados?
•
¿Existe información que se genera pero que no es utilizada nunca por nadie? ( partes extrañas )
Para cada dato identificado: •
¿Qué formato posee cada dato que interviene en esta actividad?
•
¿Para qué es usado?
•
¿Se interpone algún tipo de seguridad para la verificación de la veracidad del dato en mención?
•
¿Qué tan importante es dicho dato?
•
¿Por cuánto tiempo es importante mantener el dato en el sistema?
Por otra parte si el sistema que se está investigando es para el soporte de decisiones se deben, además de las anteriores, formular otras preguntas para determinar los requerimientos de las decisiones, un esbozo de las mismas bien podría ser: •
¿Qué información se usa para tomar la decisión?
•
¿Cuál es la fuente de esa información? ¿Qué sistemas transnacionales producen los datos utilizados en el proceso de decisión? ¿Qué otros datos son necesarios y no es posible obtener del procesamiento de transacciones? ¿Qué datos se originan en fuentes externas a la organización?
•
¿Cómo se deben procesar los datos para producir la información necesaria?
•
¿Cómo debe presentarse la información?
Una vez que se tenga recopilado el conjunto de hechos que se generan con relación al sistema que estamos modelando, es posible dar una especificación de requerimientos, mediante como se dijo un análisis de los datos obtenidos durante la recopilación de hechos. Es después de esto entonces, que se puede ya dar un conjunto de requerimientos que nos servirán para modelar el sistema mediante un DFD y del que surge el diagrama E-R
55
Análisis y Diseño de Sistemas
4.3.1.
Método de trabajo para la recopilación de información
La recopilación de información, especialmente en un sistema grande y complejo, puede ser una tarea ardua. La información se debe reunir siguiendo un camino organizado para asegurar que no hay redundancias y que se recogen todos los detalles del sistema. Para ello se debe consultar a todos los usuarios para asegurarse de que todo problema del sistema, necesidad de usuario y objetivo está identificado. La búsqueda se debe hacer de tal forma que se eviten los trabajos repetitivos y que un mismo usuario no sea interrogado por diferentes analistas pidiendo la misma información Una de las actividades más importantes para los participantes en desarrollo de sistemas de información automatizados es la obtención de información que permita comprender el esquema de trabajo en donde se encuentra el sistema, por lo que, es necesario identificar dónde y cómo es posible obtenerla. El dónde, se refiere a los lugares en los cuales se encuentra disponible y que denominaré fuentes que pueden ser internas o externas al organismo y, el medio, son los instrumentos a través de los cuales es posible recopilarla. Las fuentes de información se pueden clasificar en internas y externas, las primeras, se encuentran disponibles dentro de la organización y las segundas, se refieren a las fuentes de información que pueden ser localizadas fuera de la misma. Fuentes de información internas Información verdaderamente útil en el desarrollo de sistemas de información automatizados, se encuentra en las siguientes fuentes: Sistema Actual. El sistema actual es la fuente más importante de información para los involucrados en el desarrollo de los sistemas de información automatizados. A pesar del costo y tiempo requeridos para obtener información acerca de su funcionamiento, presenta las siguientes ventajas: 1. Conocerlo, permite al analista definir si el sistema es correcto, si solamente requiere de pequeñas modificaciones, si requiere de importantes cambios o bien, si es necesario sustituirlo totalmente. 2. Al adentrarse en el funcionamiento del sistema actual el analista puede generar ideas para el diseño. 3. Se conocen a profundidad, los recursos humanos, materiales y de equipo con los cuales es posible implementar el nuevo sistema. Además de la formación intelectual del elemento humano (Know how)). 4. En la fase de implementación facilita las pruebas ya que el analista sabe cómo eran las cosas. 5. Permite comparar el nuevo sistema con el anterior, establecer sus similitudes y de con conocimiento, evitar la reacción negativa al cambio. Personas. El recurso humano relacionado directamente con el sistema es el más capacitado para opinar sobre las fallas o beneficios de los procedimientos y por tanto, el que puede ofrecer posiblemente las mejores opiniones sobre las mejoras necesarias al sistema actual. Por otra parte, el elemento humano involucrado indirectamente con el sistema actual puede aportar consideraciones importantes sobre el ambiente que rodea al sistema. Otros sistemas. Los sistemas dentro de la organización que puedan relacionarse con el nuevo sistema, proporcionan información sobre las características de los estándares de diseño que el sistema deberá adoptar, así también pueden aportar información valiosa en la fase de análisis para conocer las políticas institucionales respecto a hardware, software y recursos humanos.
56
Análisis y Diseño de Sistemas
Documentos y archivos. En todas las organizaciones, existen por escrito elementos que pueden permitir al analista establecer el diseño del nuevo sistema en un marco acorde con el funcionamiento de la organización. Estos elementos pueden ser reglamentaciones, políticas, estructura organizacional, procedimientos, descripción de funciones, etc. todos ellos generalmente se encuentran en forma de manuales o reglamentos, los cuales es conveniente solicitar para su análisis desde la fase inicial del desarrollo de sistemas. Los archivos integran documentalmente toda la información que se maneja en un área de trabajo. El analista de sistemas, debe recurrir a los archivos para obtener información sobre el desarrollo normal del trabajo del área en estudio, conociendo los formatos usados, verificando su llenado, analizando sus problemas, etc.
Fuentes de información externas. Otros sistemas similares al que se piensa desarrollar, los proveedores, los clientes, los distribuidores, los cursos o los libros, pueden ser fuentes de información valiosa para el diseño del sistema considerando que son algunos de los involucrados en las operaciones de la organización y por tanto los que cuentan con información valiosa para ser considerada. Otros Sistemas. Puede tenerse conocimiento de sistemas similares al que se encuentra en estudio, estos sistemas pueden proporcionar información sobre factores importantes a considerar tanto en el análisis análisis como en el diseño diseño del sistema. Aunque no debe perderse de vista que los sistemas se diseñan de acuerdo con las condiciones propias de cada organización. Proveedores, clientes y distribuidores. Tanto proveedores como distribuidores y clientes son personas relacionadas con los procesos que se realizan en la organización, además de que en el caso de clientes y distribuidores son los que reciben el servicio final de la organización, por tanto, pueden emitir opiniones interesantes y que sirvan de apoyo al analista sobre fallas o sugerencias de mejoras que podría contemplar el nuevo sistema. Libros e instructivos. Los libros en los cuales algunos estudiosos de la materia presentan sugerencias sobre determinados sistemas o sugerencias en base a su experiencia, pueden aportar información valiosa para desarrollar mejor la tarea del analista. Adicionalmente, todas las máquinas al adquirirse, proporcionan instructivos sobre su uso los cuales son otra fuente de información con la cual se puede conocer con facilidad el equipo o software actualmente en uso así como sus principales características. Cursos o Seminarios. Cuando el analista de sistemas acude a cursos o seminarios sobre el tema, puede contar con información valiosa que le permita desarrollar su trabajo de manera estructurada y por tanto con mayor facilidad.
4.3.2.
Medios para la recopilación de Información.
Hasta aquí, se han considerado las fuentes de información más relevantes para el analista de sistemas. Sin embargo, es necesario señalar los medios a través de los cuales la información puede ser recopilada de entre estas fuentes, los cuales pueden se describen en las siguientes líneas.
57
Análisis y Diseño de Sistemas
1.
Revisión de Documentos.
Uno de los medios más importantes de recolección de datos, es la revisión tanto de manuales, como de formas, procedimientos y en general de cualquier documento que contenga información relevante para el desarrollo del sistema. La revisión de documentos provee de información sobre errores que se cometan en los procesos normales de trabajo y sobre las tareas que no se terminen por lentitud en el desempeño del trabajo. Los documentos pueden ser revisados en su contenido cuantitativa y cualitativamente, algunos ejemplos de los primeros son: informes financieros, informes de desempeño; la revisión cualitativa puede hacerse a memorandos, avisos y manuales que ofrecen información sobre la ideología de la institución. En esencia este medio permite obtener información acerca de lo que es en contraposición a lo que debería ser. Formularios Los formularios son transportes de datos y existen en todas las formas y tamaños. Se usan para muy diversos propósitos, por ej.: pedidos de provisiones para un restaurante, saldo de una cuenta bancaria, informe de fabricación de ciertos artículos, solicitudes de inscripción, actas de exámenes, etc. Se debe obtener una copia de cada formulario usado en el sistema, ya sea que se origine dentro o fuera de la organización. El mejor modo de ver cómo se usa un formulario, es obtener una copia del formulario vacío y otro lleno. De cada formulario se debe conocer: •
¿Cuál es el objetivo del formulario?
•
¿Quién lo llena?
•
¿Dónde es enviado? ó ¿De dónde viene?
•
¿Quién usa el formulario?
•
¿Qué autoridad lleva?
Muestreo Esta técnica consta de reunir sólo un conjunto conjunto representativo de los datos. Por ejemplo, en lugar de observar a 75 empleados llenando pedidos en una hora, tome una muestra de 3 o 4 de ellos. O en casos de salidas impresas de mucho volumen, tal como facturas a clientes, podría reunir una muestra al azar de algunas de ellas. Es apropiada cuando hay un gran volumen de datos. Puede ser muy costoso controlar todos los datos, pero la misma información puede obtenerse usando muestreo. Saber cuánto y qué dato seleccionar es un trabajo para especialistas que usan técnicas estadísticas.
2.
Entrevista.
La entrevista es un medio de obtener información de las personas conocedoras a través de preguntas que propone el entrevistador, dicho de otra manera, es un intercambio de información cara a cara, con un propósito específico. En el desarrollo de sistemas, la entrevista es el medio más significativo y productivo del que disponen los participantes en la recolección de información, además, tiene la ventaja de permitir que el analista entre en contacto desde el principio con las personas involucradas en el uso del sistema y establezca relaciones de simpatía con ellas, lo cual es benéfico para el desarrollo del estudio.
58
Análisis y Diseño de Sistemas
Como todo trabajo, el entrevistador debe planificar la entrevista antes de realizarla y contemplar al menos los siguientes puntos: 1. Análisis de antecedentes 2. Determinación del objetivo de la entrevista 3. Selección de entrevistados 4. Preparación del entrevistado 5. Selección y tipo de preguntas: Las entrevistas pueden efectuarse estructuradamente o no. se refiere a que previo a la realización de la entrevista, el entrevistador prepare la lista de preguntas que se van a proponer. Entrevista estructurada
Entrevista no estructurada se refiere a que la entrevista se efectúe de manera libre, en forma de plática durante la cual el entrevistador permitirá que espontáneamente surja el tema de su interés. Las ventajas y desventajas que presentan cada una de éstas alternativas son:
Entrevista No Estructurada.
Ventajas •
El entrevistador tiene mayor flexibilidad al realizar las preguntas.
•
Puede utilizarse negativamente el tiempo, tanto de quien responde como del entrevistador.
•
El entrevistador puede explotar áreas que surgen espontáneamente durante la entrevista.
Desventajas •
Los entrevistadores pueden introducir sesgos en las preguntas o al informar de los resultados.
•
Puede producir información sobre áreas que se minimizaron o en las que no se pensó que fueran importantes
•
El análisis e interpretación se dificulta y requiere de tiempo.
•
En general se necesita de más tiempo para su desarrollo.
Entrevista Estructurada.
Ventajas. •
Asegura la elaboración uniforme de las preguntas para todos los que van a responder.
•
Alto costo de preparación
•
Fácil de administrar y evaluar. Los que responden pueden no aceptar un alto nivel en la estructura y el carácter mecánico de las preguntas.
•
Evaluación más objetiva tanto de quienes responden como de las respuestas a las preguntas. 59
Análisis y Diseño de Sistemas
Desventajas •
Un alto nivel en la estructura puede no ser adecuado para todas las situaciones.
•
Se necesita un limitado entrenamiento del entrevistador.
•
El alto nivel de la estructura reduce responder en forma espontánea, así como la habilidad del entrevistador para continuar con comentarios hacia el entrevistado.
•
Resulta en entrevistas más cortas en tiempo.
Cuando la entrevista es estructurada, es conveniente ocuparse del tipo de preguntas a usar las cuales dependiendo de la forma en que se espera una respuesta pueden ser: abiertas, cerradas o mixtas. En las primeras, la respuesta se expresa libremente (son útiles para explorar el problema), en las segundas, la respuesta se presenta en forma opcional de entre una serie de alternativas propuestas y por último el tercer tipo es una combinación de las dos anteriores. A continuación se describen algunos factores a considerar Antes, Durante y Después de realizar una entrevista:
Antes de La Entrevista. 1. Organizar y preparar la entrevista considerando : 1.1. La posición que ocupa en la organización el futuro entrevistado 1.2. Las actividades básicas y responsabilidades del futuro entrevistado 1.3. Preparar las preguntas que van a plantearse y los documentos de apoyo necesarios. 2. Confirmar la cita 3. Conseguir que alguien lo introduzca. 4. Llegar temprano. 5. Vestirse adecuadamente
Durante la Entrevista. 1. Al efectuar la entrevista tomar en cuenta los siguientes pasos : 1.1. Comenzar por presentarse y señalar la naturaleza del proyecto sobre el cual se está trabajando, sus propósitos y sus objetivos. 1.2. Explicar la función del analista y lo que se espera del entrevistado. 2. En relación al comportamiento del entrevistador durante el desarrollo de la entrevista se recomienda: 2.1. Ser un buen escucha. Escuchar atentamente y no anticiparse a las respuestas. Dejar hablar al entrevistado.
60
Análisis y Diseño de Sistemas
2.2. No 2.2. No probar reacciones. 2.3. No 2.3. No creer que sabe más que el entrevistado porque el experto es él. 2.4. Evitar terminología técnica, como por ejemplo hablar de cerebros electrónicos, sistemas operativos, UNIX, LINUX, memoria RAM, campos de la base, SQL, compilar, etc. 2.5. Conservar el control de la entrevista evitando divagaciones y comentarios al margen de las preguntas. 2.6. Evitar externar opiniones o críticas cuando se encuentren fallas o deficiencias. 2.7. No 2.7. No juzgar los hechos. 2.8. Evitar dar sugerencias. 2.9. No 2.9. No tomar decisiones. 2.10. No entrar en polémica con el entrevistado. 2.11. Seguir las reglas de cortesía y de trato amable como: ser puntual, cortés, calmado, paciente, profesional, mostrar interés fijando la vista en el entrevistado, preguntar cuando no se entienda algo, ser amigable (pero no demasiado). 2.12. No despreciar el trabajo del entrevistado ni humillarlo presentándole formas complejas y desconocidas para él o cuestionarios con tecnicismos. 2.13. Si el entrevistado externa fatiga o inquietud, dar por terminada la entrevista aunque no de manera cortante. 3. Al final de la entrevista resumir para confirmar la información con el entrevistado y verificar que se han considerado todos los temas preparados. 4. Expresar al entrevistado agradecimiento por la ayuda proporcionada, concertar una nueva cita o bien, dejar la puerta abierta de ser necesario. 5. Ofrecer al entrevistado el resumen de la entrevista.
Después de la Entrevista. 1. Escribir lo recopilado, analizarlo y obtener conclusiones 2. Verificar si hay confusiones. 3. Reportar los resultados y enviar una copia al entrevistado solicitando su confirmación, correcciones o adiciones. 4. De ser necesario solicitar nuevamente cita. 5. Archivar los resultados de la entrevista para referencias posteriores.
61
Análisis y Diseño de Sistemas
3.
Cuestionario.
El cuestionario es una técnica que permite recoger opiniones, posturas, conductas y características de personas o situaciones a través de un conjunto de preguntas formalizadas en un documento. Las preguntas pueden ser abiertas, cerradas o mixtas (ver entrevista). En el desarrollo de sistemas, el uso del cuestionario es limitado a aquellos casos en los que la entrevista no puede ser utilizada debido a la distancia física o bien, cuando el grupo del cual se obtendrá la información es numeroso (grupo de vendedores) o como posible medio de verificación de la información obtenida por otros medios. En la elaboración de un cuestionario, es necesario definir: 1. Qué datos se desean conocer (Objetivo) y quiénes son las personas más calificadas para proporcionarlos. 2. Seleccionar el tipo de preguntas más adecuadas: abiertas, cerradas o mixtas. 3. Desarrollar un conjunto de preguntas (considerando la forma de análisis de las respuestas (tabulación manual o electrónica)). 4. Revisar el cuestionario para encontrar fallas o defectos como pueden ser : 4.1. Interrogantes innecesarias 4.2. Preguntas que puedan malinterpretarse 4.3. Preguntas que no se puedan responder 4.4. Preguntas que llevan a determinada respuesta 4.5. Preguntas mal establecidas que lleven a varias respuestas 4.6. Falta de opciones en preguntas cerradas 4.7. Desorden en la secuencia de preguntas 4.8. Falta de espacio para responder 4.9. Tendencia central, indulgencia y efecto de halo al usar escalas 5. Probar el cuestionario 6. Analizar las respuestas del grupo de prueba y realizar correcciones 7. Realizar cambios finales de edición y de presentación. 8. Aplicar el cuestionario considerando : 8.1. Distribuir el cuestionario de ser posible con los nombres de cada persona (solamente si la información no implica compromisos). 8.2. Distribuir el cuestionario con una explicación del propósito del mismo, así como del uso que se dará a las respuestas y si es necesario especificar el carácter confidencial de las respuestas. 8.3. Agradecer la sinceridad de las respuestas remarcado la importancia de las mismas. 8.4. Considerar de ser necesario instructivo para el llenado del cuestionario.
62
Análisis y Diseño de Sistemas
8.5. Establecer de forma amable el tiempo límite para la devolución del cuestionario. 9. Codificar y capturar la información. 10. Analizar la información recopilada
4. Observación. La observación es una técnica que permite obtener información en forma directa a través del sentido de la vista. Permite al observador determinar qué se está haciendo, cómo se está haciendo, quién lo hace, cuándo se realiza, cuánto tiempo ocupa en realizarse, dónde se hace y por qué se hace. La observación, brinda información al observador acerca de las diferencias entre lo que debería suceder de acuerdo con los procedimientos normales de operación, controles establecidos, requisición de formas y período de tiempo para la realización de alguna tarea en particular y lo que realmente ocurre como puede ser: retraso al hacer el trabajo, etapas de procedimientos omitidas, trabajo extra innecesario, documentos mal requisitados, información manejada de memoria, información sin archivar, etc. Existen varios métodos de llevar a cabo la observación. Se puede observar alguna persona o actividad sin que el observado se dé cuenta y sin que el observador realice ninguna interacción con el observado, también se puede observar sin intervenir el observador pero con pleno conocimiento por parte del observado y por último, se puede observar y a la vez estar en contacto con la persona observada. Para obtener mejores resultados del proceso de observación, es conveniente considerar los siguientes lineamientos: 1. Determinar lo que se va a observar 2. Estimar el tiempo necesario de observación 3. Obtener autorización para efectuar la observación (por parte del jefe) 4. En su caso, explicar a las personas que van a ser observadas lo que se va a llevar a cabo y las razones para hacerlo. 5. Desarrollar la observación considerando : 5.1. Familiarizarse con los componentes físicos del área en observación 5.2. Mientras se observa, tomar el tiempo en forma periódica 5.3. Anotar lo que se observa de manera específica evitando generalidades y descripciones vagas (ser objetivo). 5.4. Si se está en contacto con las personas observadas, evitar hacer comentarios de cualquier tipo. 5.5. Observar las reglas de educación y seguridad en su caso. 6. Documentar y organizar formalmente las notas de la observación. 7. Es conveniente, revisar al final de la observación, los resultados y conclusiones de la misma tanto con las personas observadas como con sus superiores inmediatos.
63
Análisis y Diseño de Sistemas
Como un comentario general, a las personas no les gusta ser observadas por lo cual tienden comportarse de manera distinta a la que normalmente lo hacen, por ello, se recomienda que la observación se utilice conjuntamente con algún otro medio de recopilación de datos como puede ser la entrevista (con la finalidad de prepararla o bien, de estructurarla). La observación es costosa ya que requiere de tiempo y experiencia por parte del observador. En realidad la observación es más efectiva cuando se realiza en niveles operativos ya que en éstos niveles las actividades que se realizan son de tipo repetitivo y generalmente no involucran el proceso de decisión el cual es a veces es más fácil de entender a través de otros medios como por ejemplo el de la entrevista. A continuación se presenta un conjunto de comportamientos que el observador debe tener en cuenta en la observación de la conducta del tomador de decisiones. • • • • • • • • • • • • • • • •
4.4.
Instruye a sus subordinados Instruye a sus colegas Instruye a sus superiores Consulta a sus subordinados Consulta a sus colegas Consulta a sus superiores Reprende a sus subordinados Reprende a sus colegas Reprende a sus superiores Abre la correspondencia Contesta el teléfono Realiza llamadas Lee información externa Lee información interna Procesa su propia información Le pide a otros que procesen su propia información
Especificación de Requerimientos. Es un proceso de representación que esta basado en los siguientes principios: •
Separar funcionalidad de implementación: la especificación es una descripción de lo que se desea, en vez de cómo se implementa.
•
Se necesita un lenguaje de especificación de sistemas orientado al proceso, que es un modelo de comportamiento deseado en términos de respuestas funcionales a distintos estímulos de entorno.
•
Una especificación debe abarcar el sistema del cual el software es una componente. Solo dentro del contexto del sistema completo y de la interacción entre las partes puede ser definido el comportamiento de una componente específica.
•
Una especificación debe abarcar el entorno en el que el sistema opera.
•
Una especificación de sistema debe ser un modelo cognitivo, que es la descripción del sistema tal como es.
•
Una especificación debe ser operacional, en el sentido de ser lo suficientemente completa y formal como para poder evaluar diferentes alternativas de implementación.
64
Análisis y Diseño de Sistemas
4.4.1.
•
Una especificación del sistema debe ser tolerante con la incompletitud y complementable.
•
Una especificación debe ser localizada y débilmente acoplada frente a las posibles modificaciones a ésta.
•
El formato de representación y el contenido deben ser adecuados al problema
•
Debe añadirse la información contenida dentro de una definición, en capas de información para representar el nivel de detalle adecuado para comprenderla
•
Debe restringirse el número de formas notariales y estás deben ser consistentes en su uso.
•
Las representaciones deben ser revisables.
Herramientas para documentar procedimientos y decisiones. Se presentan 3 herramientas para documentar procedimientos: 1. Árboles de decisión 2. Tablas de decisión 3. Español estructurado Antes de explicar estas herramientas hay que comentar lo que son las condiciones y las acciones. Condiciones.
Son los posibles estados de una entidad. Las condiciones cambian y por eso los analistas les llaman variables de decisión. Una factura puede ser descrita por las condiciones siguientes: autorizada o no autorizada, importe correcto o importe no correcto, con firma o sin firma. El analista debe identificar las condiciones que pueden presentarse en cualquier situación, pero solo se incluyen en el estudio aquellas que sean relevantes. Acciones. Cuando se conocen las condiciones, entonces se debe determinar qué hacer cuando se producen. Las acciones son procedimientos que puede elegir una persona cuando se encuentra con las condiciones.
4.4.1.1. Árboles de Decisión. Características de los árboles de decisión. El árbol de decisión es un diagrama que representan en forma secuencial condiciones y acciones; muestra qué condiciones se consideran en primer lugar, en segundo lugar y así sucesivamente. Este método permite mostrar la relación que existe entre cada condición y el grupo de acciones permisibles asociado con ella. La raíz del árbol, aparece en la parte izquierda del diagrama y esté es el punto donde comienza la secuencia de decisión. La rama a seguir depende de las condiciones existentes y de la decisión que debe tomarse. Al avanzar de izquierda a derecha por una rama particular, se entiende una serie de toma de decisiones. Después de cada punto de decisión, se encuentra el siguiente conjunto de decisiones a considerar. De tal forma que los nodos del árbol representan condiciones y señalan la necesidad de tomar una determinación relacionada con la existencia de alguna de estas, antes de seleccionar la siguiente trayectoria. La parte que se encuentra en la parte derecha del árbol indican las acciones que deben realizarse, las que su vez dependen de la secuencia de condiciones que les preceden. 65
Análisis y Diseño de Sistemas
Uso de árboles decisiones. El desarrollo de árboles de decisión beneficiado analista en dos formas. Primero que todo, la necesidad de describir condiciones y acciones llevan a los analistas a identificar de manera formal las decisiones que actualmente deben tomarse. De esta forma, es difícil para ellos pasar por alto cualquier etapa del proceso de decisión, sin importar que este dependa de variables cuantitativas o cualitativas. Los árboles también obligan a los analistas a considerar la consecuencia de las decisiones. Se ha demostrado que los árboles de decisión son eficaces cuando es necesario describir problemas con más de una dimensión o condición. También son útiles para identificar los requerimientos de datos críticos que rodean al proceso de decisión, es decir, los árboles indican los conjuntos de datos que la gerencia requiere para formular decisiones o tomar acciones. El analista debe identificar y elaborar una lista de todos los datos utilizados en el proceso de decisión, aunque el árbol de decisión no muestra todo los datos. Si los árboles de decisión se construyen después de completar el análisis de flujo de datos, entonces es posible que los datos críticos se encuentren definidos en el el diccionario de datos (el cual describe los datos utilizados por el sistema y donde se emplean). Si únicamente se usan árboles de decisiones, entonces el analista debe tener la certeza de identificar con precisión cada dato necesario para tomar la decisión. Los árboles de decisión no siempre son la mejor herramienta para el análisis de decisiones. El árbol de decisiones de un sistema complejo con muchas secuencias de pasos y combinaciones de condiciones puede tener un tamaño considerable. El gran número de ramas que pertenecen a varias trayectorias constituye más un problema que una ayuda para el análisis. En estos casos los analistas corren el riesgo de no determinar qué políticas o estrategias de la empresa son la guía para la toma de decisiones específicas. Cuando aparecen estos problemas, entonces es momento de considerar las tablas de decisión. Sirven para organizar la información recopilada con respecto a la toma de decisiones y no haya malas interpretaciones. Condición
Acción
Condición
Acción
Condición Condición Raíz
Condición
Condición
Acción
Acción
Fig. 4.1: Árbol de Decisión
4.4.1.2. Tablas de Decisión.
La tabla de decisión es una matriz de renglones y columnas que indican condiciones y acciones. Las reglas de decisiones, incluidas en una tabla de decisión establecen el procedimiento a seguir cuando existen ciertas condiciones. Este método se emplea desde mediados de la década de los 50, cuando fue desarrollado por General Electric para el análisis de funciones de la empresa como control de inventarios, análisis de ventas, análisis de créditos y control de transporte y rutas.
66
Análisis y Diseño de Sistemas
Características de las tablas de decisión. Las tablas están integradas por cuatro secciones: identificación de condiciones, entradas de condiciones, identificación de acciones y entrada de acciones. La identificación de condiciones señala aquellas que son relevantes. La entrada de condiciones indican qué valor, así es que lo hay, se debe asociar para una determinada condición. La identificación de acciones enlista el conjunto de todos los pasos que se deben seguía cuando se presenta cierta condición. La entrada de acciones muestra las acciones específicas específicas del conjunto que deben emprenderse cuando ciertas condiciones o combinaciones de estas son verdaderas. Las columnas de lado derecho de la tabla enlazan condiciones y acciones, forman reglas de decisión que establecen las condiciones que debe satisfacerse para emprender un determinado conjunto de acciones. El orden de la secuencia se omite, cosa que no sucede con los árboles de decisión. La regla de decisión incorpora todas las condiciones que deben ser ciertas y no sólo una a la vez.
Ejemplo: Pago de los servicios médicos La atención sanitaria en un hospital es de carácter obligatorio, sin preocupar la financiación de la asistencia. Si el paciente dispone de seguridad social, su asistencia estará exenta de pago, sino es así pero dispone de un seguro médico sólo hará frente al pago de la consulta. Sólo en el caso de no disponer el paciente ni de seguridad social, ni de seguro médico pagará todos los servicios.
1 2 1 2 3
Condiciones El paciente tiene seguro médico El paciente tiene seguro social Acciones Pagar la consulta Exento de pago Pagar todos los servicios
Reglas de Decisión SI SI NO NO SI NO SI NO X X
X X
Fig. 4.2: Pago de los servicios médicos
¿Cómo construir tablas de decisión? 1. Identificar las condiciones en la decisión. 2. Identificar las acciones. 3. Estudiar las posibles combinaciones de condiciones. Si N condiciones 2 N Combinaciones. 4. Llenar la tabla con las reglas de decisión. 5. Marcar las entradas correspondientes con una X. 6. Examinar la tabla para detectar reglas redundantes.
Pensemos en una tabla de decisión con el siguiente formato:
67
Análisis y Diseño de Sistemas
C1 C2 C3 A1 A2
Condiciones Suficiente efectivo Crédito bueno Desea "hacerse a un lado" Acciones Seleccionar el artículo a comprar No seleccionar ningún artículo
R1 SI SI SI
R2 SI SI NO
X
X
Reglas de Decisión R3 R4 R5 R6 SI SI NO NO NO NO SI SI SI NO SI NO X
X
R7 NO NO SI
R8 NO NO NO
X
X
X X
Fig. 4.3: Tabla de decisión con contradicciones Verificación de tablas de decisión Después de construir una tabla debe comprobarse: 1. Que sea completa: es decir que no se haya omitido ningún posible estado de las condiciones. 2. Que no tenga redundancias ni contradicciones: Redundancia: Es cuando aparece repetido el mismo estado de condición con el mismo tratamiento, es decir, dos reglas de decisión son idénticas salvo para una condición y las acciones para las dos reglas son idénticas. R1 y R2. Contradicción: Es cuando aparece repetido el mismo estado de condición con distinto tratamiento. R5 y R7. 3. Que no haya condiciones indiferentes: cuando toda una fila en la entrada de condiciones tiene guiones.
Una vez eliminadas las redundancias y contradicciones
C1 C2 C3 A1 A2
Condiciones Suficiente efectivo Crédito bueno Desea "hacerse a un lado" Acciones Seleccionar el artículo a comprar No seleccionar ningún artículo
R1 SI SI -
Reglas de Decisión R2 R3 R4 R5 SI NO NO SI NO NO NO SI SI SI NO
X
X
X
R6 SI NO NO
X X
X
Fig. 4.4: Tabla de decisión filtrada
4.4.1.3. Español Estructurado. Consiste en expresar los procesos en español con restricciones, es decir, formar sentencias en español. También se le conoce como lenguaje de diseño de programas. El fin de esta herramienta es crear un equilibrio entre la precisión de un lenguaje formal de programación y la informalidad del lenguaje español. Una sentencia en lenguaje español puede consistir en una ecuación algebraica como X = (Y * Z) / (Q + 14) pero también podemos utilizar los verbos siguientes: 68
Análisis y Diseño de Sistemas
Leer, Escribir, Buscar, Sumar, Restar, Multiplicar, Dividir, Borrar, Asignar, Reemplazar, Clasificar.
Ejemplo: Obtener la cantidad total del dinero de facturas recibidas en un fichero de facturas, para el día de hoy. Abrir (factura) Leer (r, factura) total = 0 Mientras (NO(fin(factura))) y (fecha = "hoy") Hacer Leer (r, factura) Escribir (r. importe-factura, r. nombre-cliente) total = total + r. importe-factura Fin-Mientras Escribir (total) Cerrar (factura)
Veamos las distintas sentencias en lenguaje español.
1. Operadores Aritmético:
+ - * / Div() Mod() Raiz() Cuadrado()
Relacional:
= <> > < >= <=
Lógicos:
Y O NO
Asignación:
=
2. Sentencias de Lectura y Escritura Lectura desde dispositivo de entrada cualquiera:
Leer( )
Escritura a dispositivo de salida cualquiera:
Mostrar( ) o Escribir( )
3. Sentencias de Selección Si-Entonces-Sino. Es usada para describir alternativas y puede tomar las 2 formas siguientes: Si (condición) Entonces sentencia (1) Fin-Si Si (condición) Entonces sentencia (1) Sino 69
Análisis y Diseño de Sistemas
sentencia (2) Fin-Si En Caso de. Es usada para describir alternativas basadas en múltiples decisiones. Toma el formato siguiente En caso de variable = valor 1 sentencia (1) … variable = valor n sentencia (n) etoc sentencia (n+1) Fin-en-caso 4. Sentencias de Repetición Mientras-Hacer. Es usada para describir una sentencia que repetirá las acciones hasta que la condición evaluada sea falsa. Mientras (condición) Hacer sentencia Fin-Mientras Repetir-Hasta. Es usada para describir una sentencia que repetirá las acciones hasta que la condición evaluada sea verdadera. Repetir sentencia Hasta condición Para-Hacer. Es usada para describir una sentencia que repetirá las acciones una cantidad de veces determinada por los valores de inicio y término. Para variable = valor-inicio hasta hasta valor-final hacer hacer Sentencia Fin-Para
5. Sentencias de Archivos Apertura de archivo:
Abrir (archivo-lógico)
Cerrado de archivo:
Cerrar (archivo-lógico)
Lectura de registro:
Leer (registro-lógico, archivo-lógico)
Almacenado de registro:
Escribir (registro-lógico, archivo-lógico)
Asignación de valor a un campo de registro:
registro-logico.campo = valor
70
Análisis y Diseño de Sistemas
4.5.
Otras Técnicas en el desarrollo de Sistemas
4.5.1.
Gráficas Administrativas
La graficación, es una técnica que representa a través de figuras en forma esquemática y simplificada, algunos de los aspectos de una empresa, o una actividad de la misma. De todas las herramientas y técnicas que se utilizan en el desarrollo de los sistemas de información automatizados, la graficación es la que se identifica más estrechamente con este trabajo, ya que es útil no solo en la recopilación de información sino también en el análisis, diseño, implementación (comunicación) y en la documentación. Sin considerar que son todas las que existen, las gráficas administrativas en este trabajo se clasificarán en: 1. Organigramas 2. Diagramas de Distribución 3. Diagramas de Flujo 4. Diagramas de flujo de datos y; 5. Otras gráficas.
4.5.1.1. Organigramas. Los organigramas son la expresión gráfica de los niveles de autoridad y responsabilidad de las unidades que conforman una organización o a una parte de ella (estructura). Los organigramas, consisten fundamentalmente de un cierto número de casillas que representan puestos, personas, o unidades administrativas colocadas jerárquicamente y relacionadas mediante líneas. Dependiendo de la forma en que se presentan gráficamente se conocen cuatro tipos: verticales, horizontales, circulares o mixtos. Verticales, cuando las líneas de autoridad parten de arriba hacia abajo; horizontales, cuando las líneas de autoridad parten de izquierda a derecha; circulares, cuando las líneas de autoridad parten del centro hacia la periferia y mixtos, cuando se hace cualquier combinación de las anteriores presentaciones. En la Fig. 4.5., se muestra un ejemplo de cada uno de ellos. Para elaborar un organigrama es conveniente seguir ciertas reglas para su presentación: •
Utilizar nomenclatura jerárquica uniforme es decir, a cada nivel de la estructura debe de corresponder igual denominación (todos directores o jefes o supervisores o bien, todos puestos o funciones).
•
Las funciones parecidas o relacionadas deben de agruparse juntas.
•
No usar diferentes tamaños o formas de las figuras geométricas para representar la importancia de las unidades administrativas ya que el nivel dentro de la jerarquía es el que la determina.
•
Algunas veces, no es recomendable incluir en un solo organigrama todos los niveles de la organización ya que la presentación puede ser confusa, motivo por el cual se recomienda que el organigrama se muestre una presentación general y posteriormente cada una de las áreas administrativas más importantes por separado, y de esta manera simplificar el entendimiento del mismo.
•
No mezclar estructura con flujos de información dentro de ella, ya que el organigrama sólo debe de mostrar unidades administrativas y relaciones de estructura y no las relaciones de información entre las unidades.
•
Identificar claramente el organigrama. Esto es, la empresa a la que corresponde y el nombre de la unidad que representa.
71
Análisis y Diseño de Sistemas
•
Establecer el momento de la elaboración y el autor del diseño ya que las estructuras cambian con el tiempo y es conveniente conocer quién lo elaboró para posibles aclaraciones.
Fig. 4.5: Tipos de Organigramas
72
Análisis y Diseño de Sistemas
4.5.1.2. Diagramas de Distribución. Los diagramas de distribución física o arquitectónicos, son gráficas que representan el conocimiento del entorno físico en el que se desarrolla una actividad por lo cual, aportan información respecto al espacio y recursos disponibles. Estas gráficas, son útiles para analizar la ubicación física de los sistemas electrónicos y del equipo periférico que los acompañen, también, pueden usarse para determinar los flujos de movimientos efectuados por las personas para llevar a cabo un determinado procedimiento.
4.5.1.3. Diagramas de Flujos o Flujogramas. Técnica que facilita la descripción del trabajo administrativo especialmente en lo que se refiere a sistemas y procedimientos y tienen como objetivo, facilitar la comprensión de los mismos. Muestran gráficamente y con diversos grados de detalle la secuencia y el curso de las operaciones, las personas, los materiales, los datos o las formas de que se compone un procedimiento o parte de él. 73
Análisis y Diseño de Sistemas
Clasificación Existen símbolos especiales para elaborar los diagramas, los cuales, se pueden clasificar en: 1. Abstractos. 1.1. ASME (American Society of Mechanical Engineers). Esta simbología, es recomendada para el flujo de materiales y es mas utilizada por los ingenieros. 1.2. ANSI (American National Standard Institute). Se recomienda para representar flujos de información, datos, formas y son los más utilizados por las personas en el área de la administración. 2. Figurativos. 2.1. Fotografías 2.2. Dibujos 2.3. Caricaturas Por la forma de presentación y contenido, los diagramas pueden ser: •
Verticales: cuando el seguimiento del flujo se presenta de arriba hacia abajo.
•
Horizontales: cuando el seguimiento del flujo se muestra de izquierda a derecha
•
Panorámicos: cuando presentan una visión completa del sistema.
•
Analíticos: cuando describen algún procedimiento del sistema o alguna parte en especial del mismo.
A continuación se muestra un ejemplo de la simbología ANSI y la comparación de simbología abstracta y figurativa en un procedimiento de salida de documentos de correspondencia.
74
Análisis y Diseño de Sistemas
Ventajas y Desventajas. Las ventajas asociadas a los diagramas de flujo, se refieren a: •
Son concisos y por tanto mas fáciles de entender de una mirada que una descripción narrativa. Sin embargo para fines de documentación es conveniente acompañarlos de dicha narración para complementar su entendimiento.
•
Presentan una visión gráfica y por tanto objetiva del flujo.
•
Expresan claramente la secuencia y la lógica de modo que facilitan la corrección.
•
Muestran si se han cubierto todas las posibilidades.
•
Facilitan la comunicación entre el elemento humano.
Sin embargo, sus principales desventajas son: •
Es necesario definir el significado de los símbolos usados porque pueden causar confusión.
•
Su elaboración, requiere de tiempo.
•
Cuando se llevan al detalle, pueden ser difíciles de entender.
•
La información dentro de cada símbolo es muy generalizada.
•
Para diseñarlo, se deben de contemplar ciertos convencionalismos como son: 75
Análisis y Diseño de Sistemas o
Se recomienda que los diagramas vayan de arriba hacia abajo y de izquierda a derecha.
o
Evitar hasta donde sea posible, el cruce de líneas.
o
o
o
Si un diagrama no es claramente comprensible para quien lo contempla, debe de simplificarse o dividirse en dos o más partes. La simbología utilizada, debe de contribuir a su comprensión y no a dificultarla. Es recomendable que cuando los diagramas sirvan para documentación, lleven una descripción.
o
Deben de evitarse los símbolos especiales.
o
Es conveniente previa a la elaboración del diagrama, elaborar el algoritmo correspondiente.
o
o
o
Cuando el diagrama ocupe más de una página, cada una de éstas se numerará en secuencia y se debe dejar espacio suficiente para el título el cual debe ser breve y claro. El diagrama debe de ser legible y para fines de presentación, deberá estar limpio y contar con el tamaño adecuado para que todos los asistentes a su presentación, puedan leerlos. El diagrama debe ser identificado con el título del diagrama, fecha de elaboración y responsable de su elaboración.
Un problema que se presenta en el diseño de diagramas de flujo, es la identificación de lo que se va a representar ya que en los procedimientos administrativos, se involucran no solamente actividades sino también por ejemplo, formas o materiales, en mi opinión, el tratar de incluir en los diagramas, la secuencia lógica de otros elementos además de las actividades, solamente produce confusiones en quienes los leen, por tanto, es muy importante definir claramente el proceso o procedimiento que se necesita diagramar y lo que el diagrama va a representar en la secuencia lógica del mismo. En este sentido, los diagramas pueden seguir:
76
Análisis y Diseño de Sistemas
1. Formas. En algunas ocasiones se acostumbra combinar la descripción de un procedimiento con la distribución de formas, lo cual la mayoría de las veces complica el entendimiento en lugar de facilitarlo. Si la distribución de formas es importante en una organización, es recomendable considerarla en un procedimiento por separado, o bien, una propuesta para hacerlo se muestra en la siguiente figura.
2. Materiales. La forma que probablemente sea la más conveniente para representar la secuencia de materiales es a través del uso de dibujos.
77
Análisis y Diseño de Sistemas
3. Personas. Representar la secuencia de actividades que debe realizar una persona se ejemplifica mediante el siguiente diagrama.
4. Lógica. Aunque los diagramas no son un lenguaje de programación, en realidad en algunos casos, ayudan en la descripción de la secuencia de la lógica que debe de seguir un programa.
78
Análisis y Diseño de Sistemas
5. Datos. Los diagramas de flujo de datos han sido utilizados como herramientas del modelo desarrollado por Edward Yourdon como metodología para el desarrollo de sistemas de información. Por la importancia de estos diagramas para el analista de sistemas, serán considerados en un punto por separado (DFD, Diagramas de Flujos de Datos).
79
Análisis y Diseño de Sistemas
5.
Análisis Estructurado.
5.1.
Concepto
Cuando los analistas comienzan a trabajar sobre un proyecto de sistemas de información, tienen que profundizar en un área de la Organización, de la cual tienen poco conocimiento. Del trabajo del analista se espera que se produzca una mejora en el sistema. Así que el analista debe ser capaz de: •
Aprender los detalles y procedimientos del sistema en uso.
•
Prever necesidades futuras de la Organización, en función del crecimiento, cambios futuros en el sector, introducción de nuevas tecnologías etc.
•
Documentar detalles del sistema actual para su comprensión y discusión por otros profesionales de la organización.
•
Evaluar la efectividad y eficiencia del sistema actual y sus procedimientos.
•
Recomendar modificaciones del sistema actual, o proponer un nuevo sistema completo, justificándolo en cada caso.
•
Documentar las características del nuevo sistema con un nivel de detalle que permita comprender a otros sus componentes.
•
Fomentar la participación de gerentes y empleados en todo el proceso.
A todas estas tareas, se les une la de cumplir los plazos establecidos. De modo que una de las claves del éxito será la de estructurar el proceso para el desarrollo del nuevo sistema.
5.1.1.
Análisis estructurado ¿Para qué?
Por la propia naturaleza los sistemas de información, éstos no están bien estructurados, no siguen leyes como las ciencias, dependen de muchas circunstancias para su funcionamiento (personas, influencias políticas de la organización, restricciones, etc.). El analista debe luchar contra estas circunstancias y determinar los requerimientos de los sistemas de información. Ante esta realidad, surgen preguntas como: ¿Deben dos analistas desarrollar una lista idéntica de requerimientos cuando estudian de forma independiente la misma situación? ¿Para una situación dada, tenemos un único diseño correcto posible? La respuesta es que dos analistas que examinan de forma independiente una situación, sin herramientas y técnicas preestablecidas, recopilan información diferente que describa el sistema y por lo tanto en determinación de requerimientos diferentes. Esto obliga a normalizar, a estructurar el análisis de sistemas de información. Podemos definir análisis estructurado como: El método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. El análisis estructurado permite al analista conocer un proceso (actividad) en una forma lógica y manejable al mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente.
80
Análisis y Diseño de Sistemas
Por otra parte una de las claves del éxito de un buen análisis será el que exista una buena comunicación entre usuarios y analistas, esto obliga a disponer de un lenguaje común, sencillo y fiable de modo que permita minimizar costes y errores, y maximizar calidad.
5.1.2.
¿Qué debemos estructurar?
El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta para una situación dada. A partir de aquí se determinan los requerimientos que serán la base de un sistema nuevo o modificado. La palabra estructura significa: 1. El método intenta estructurar el proceso de determinación de los requerimientos comenzando con la documentación del sistema existente. 2. El proceso intenta incluir todos los detalles relevantes que describen al sistema en uso. 3. Fácil verificar cuando se han omitido datos relevantes. 4. La identificación de los requerimientos será similar entre varios analistas e incluirá las mejores soluciones y estrategias para las oportunidades de desarrollo de sistemas. 5. Los documentos de trabajo generados para documentar los sistemas existentes y propuestos son dispositivos de comunicación eficientes.
5.1.3.
Componentes del análisis estructurado. El análisis estructurado hace uso de los siguientes componentes: 1. Símbolos gráficos. Iconos y convenciones para identificar y describir los componentes de un sistema junto con las relaciones entre esos componentes. 2. Diccionario de datos. Descripción de todos los datos utilizados en el sistema. 3. Descripciones de procesos y procedimientos. Declaraciones formales que emplean técnicas y lenguajes que permiten a los analistas describir actividades importantes que forman parte del sistema. 4. Reglas. Estándares para describir y documentar el sistema en forma correcta y completa.
El método de análisis estructurado es sinónimo de análisis de flujo de datos que es una herramienta para documentar el sistema existente o actual y determinar los requerimientos de información de forma estructurada.
5.2.
¿Qué es análisis de flujo de datos?
Los analistas desean conocer las respuestas a cuatro preguntas: ¿Qué procesos integran el sistema? ¿Qué datos emplea cada proceso? ¿Qué datos son almacenados? ¿Qué datos entran y salen del sistema? Como vemos el elemento fundamental en una Organización (sistema de información), van a ser los datos. Los datos son las guías de las actividades de la Organización, inician eventos, son procesados para dar información útil al personal, etc. 81
Análisis y Diseño de Sistemas
Seguir el flujo de datos por todos los procesos de la organización, además de ser la finalidad del análisis de flujo de datos, proporciona a los analistas información de cómo se alcanzan los objetivos en la Organización. El análisis de flujo de datos estudia el empleo de los datos en cada actividad. Se basa en los diagramas de flujo de datos que muestra de forma gráfica la relación entre procesos y datos, y en los diccionarios de datos que describen de manera formal los datos del sistema y los sitios donde son utilizados.
5.2.1.
La estrategia de los flujos de datos
El análisis puede pensarse de tal manera que se estudien actividades del sistema desde el punto de vista de los datos, donde se originan, cómo se utilizan o cambian, hacia dónde van. Los componentes de la estrategia de flujo de datos abarcan tanto la determinación de los requerimientos como el diseño de sistemas. Una notación bien establecida facilita la documentación del sistema actual y su análisis por todos los participantes en el proceso de determinación de requerimientos.
5.2.2.
Ventajas del análisis de flujo de datos.
Los analistas deben trabajar con los usuarios para hacerles comprender el funcionamiento del sistema actual y el sistema futuro, para ello se hace aconsejable utilizar un lenguaje común, sencillo y fiable, estas son las características de los diagramas de flujo de datos. Los usuarios pueden hacer sugerencias para modificar los diagramas con la finalidad de describir las actividades con mayor exactitud, y permitirá evitar los errores desde el inicio pudiendo prevenir una posible falla del sistema.
5.2.3.
Herramientas para el análisis de flujo de datos
Las herramientas tienen el objetivo de ayudar a entender las características del sistema. Por lo tanto no deben de ser un fin, sino un medio para el estudio del sistema. Las herramientas utilizadas en el análisis de flujo de datos son: 1.
Diagrama de flujo de datos.
2.
Diccionario de datos.
3.
Diagrama entidad-relación.
4.
Miniespecificaciones o Especificación de Procesos.
82
Análisis y Diseño de Sistemas
5.3.
Diagramas de Flujo de Datos
5.3.1.
Concepto
Los diagramas de flujos de datos (DFD), es una técnica de modelado, que nos muestra un sistema como una red de procesos conectados entre ellos por flujos y almacenamientos de datos.
Es un modelo que proporciona el punto de vista funcional de un sistema. 5.3.2.
¿Por qué análisis de flujo de datos?
Los analistas deben trabajar con los usuarios para hacerles comprender el funcionamiento del sistema actual y el sistema futuro, para ello se hace aconsejable utilizar un lenguaje común, sencillo y fiable, estas son las características de los diagramas de flujo de datos. Los usuarios pueden hacer sugerencias para modificar los diagramas con la finalidad de describir las actividades con mayor exactitud, y permitirá evitar los errores desde el inicio pudiendo prevenir una posible falla del sistema. 5.3.3.
Notación de los Diagrama Flujo de Datos
Los métodos para el análisis de flujo de datos fueron desarrollados y promovidos por dos organizaciones al mismo tiempo, Yourdon Inc (compañía de consultoría) y Mc Donnell-Douglas (Gane and Sarson). En nuestro libro la notación utilizada será la de Yourdon. Los DFD’s se pueden dibujar con sólo cuatro elementos gráficos sencillos, que son: •
Procesos: El primer componente del DFD. El proceso muestra una parte del sistema que transforma entradas en salidas, suelen ser personas, procedimientos o dispositivos que utilizan o transforman datos. El proceso se representa gráficamente como un círculo. Los sinónimos comunes son burbuja, función o transformación.
Fig. 5.1.: Proceso •
Flujo de datos: Se representa gráficamente por medio de una flecha que entra o sale de un proceso. El flujo se usa para describir el movimiento de bloques de información de una parte del sistema a otra. Por ello, los flujos representan datos en movimiento, mientras que los almacenes representan datos en reposo. En algún modelo puede representar movimiento de material. Los flujos muestran la dirección; según si los datos se está moviendo hacia adentro o hacia afuera de un proceso (o ambas cosas).
Fig. 5.2.: Flujo de Datos Podemos hablar de varios tipos de flujos de datos, segun dirección/sentido de los datos, respecto al proceso:
83
Análisis y Diseño de Sistemas 1. Entrada.
Número telefónico
Validar Número Telefónico
Fig. 5.3.: Flujo de Entrada
2. Salida.
Generar Itinerario Conductor
Itinerario Conductor
Fig. 5.4.: Flujo de Salida
3. Divergente y Convergente.
Cuando una misma información se envía a procesos diferentes, o cuando una información compleja se descompone en varios datos mas sencillos cada uno de los cuales va a un proceso diferente (divergente). Varios paquetes de datos se juntan para formar parte de paquetes de datos más complejos (convergente).
Fig. 5.5.: Flujo Divergente A partir del contenido de los flujos podemos encontrar: 1. Dato Individual
Se refiere a que el flujo representa a sólo un dato, indivisible
84
Análisis y Diseño de Sistemas 2.
Grupo de Datos
En este caso el grupo corresponde a un conjunto de varios datos individuales, que por necvesidad del sistema no pueden separarse. 3. Paquete de Datos
El caso del paquete, se refiere a un grupo de grupos, esto es, un conjunto repetitivo de un grupo en particular.
•
Almacén de datos: El almacén se utiliza para modelar una colección de datos en reposo. Se representa por dos líneas paralelas. Es tentador asociar a los almacenes los archivos o bases de datos, es así como a menudo se implantan en un sistema informático, pero un almacén también puede consistir en datos almacenados en cualquier soporte que contenga datos (archivos de papel, tarjetas, etc.).
Fig. 5.6.: Almacenamiento
•
Entidad Externa (Terminador): El siguiente componente del DFD es un terminador; representado gráficamente como un rectángulo representan fuentes (origen) o destinos externos de datos que pueden ser: personas, programas, organizaciones u otras entidades que interactúan con el sistema pero se encuentran fuera de su frontera. En algunos casos, un terminador puede ser otro sistema con el cual se comunica éste.
Fig. 5.7.: Entidad Externa
Existen tres cosas importantes que debemos recordar acerca de las Entidades Externas: •
Son externos al sistema que se está modelando; los flujos que conectan los terminadores a diversos procesos (o almacenes) en el sistema representan la interfaz entre él y el mundo externo.
•
El analista de sistemas no puede modificar los contenidos, la organización ni los procedimientos internos asociados en posibilidades de cambiar los contenidos de un terminador o la manera en que trabaja. El terminador con lo que representa está fuera del dominio.
•
Las relaciones existentes entre los terminadores no se muestran en el modelo DFD. Si existen relaciones entre los terminadores y si es esencial para el analista modelarlos para poder documentar los requerimientos y si es esencial para el analista modelarlos para poder documentar los requerimientos del sistema, entonces, por definición, los terminadores son en realidad parte del sistema y debieran modelarse como procesos.
Deberemos respondernos una serie de preguntas como ¿cómo se piden los datos?, ¿en qué secuencia se reciben los datos?, ¿en qué secuencia se generan?, no deben ser respuesta de los DFD’s, estas respuestas forman parte del procedimiento. 85
Análisis y Diseño de Sistemas
Cada componente en un diagrama de flujo de datos tiene una etiqueta con un nombre descriptivo. Los nombres de los procesos también reciben un número para poder identificarlo.
Los diagramas de flujo de datos se concentran en el movimiento de datos a través del sistema, no en los dispositivos o el equipo. Se identifican y describen los datos que fluyen por todo el sistema, explicando porque los datos entran o salen y cual es el procesamiento que se realiza con ellos (guardan y recuperan de almacenamiento de datos).
5.3.4.
Directrices para la construcción de DFD’s
Hay una serie de reglas que son necesarias para poder construir los DFD’s correctamente. La finalidad de estas reglas es ayudar a confeccionar DFD’s correctos, y permitir dibujar un DFD agradable a la vista y por tanto que tenga mas probabilidades de que sea estudiado por el usuario con el objetivo de ayudarle a su comprensión.
Las reglas a seguir para la construcción de un DFD son: 1. Elegir los nombres representativos para los procesos, flujos de datos, almacenamientos y entidades externas de forma que describa lo más precisamente posible al objeto que representa. Procesos: en el caso de los procesos debemos identificar las funciones que el sistema está llevando a cabo, es decir el nombre del proceso describirá lo que se hace: Función: Verbo + objeto. El verbo no debe estar conjugado (terminaciones ar, er e ir) Verbo significativo (Validar, Registrar, etc.). Evitar palabras de uso exclusivo por parte de usuario. Evitar terminología informática (Proceso, Función, Rutina, Procedimiento, etc.).
Flujos: los flujos deben identificar la información y/o los datos que fluyen a través del sistema. Se deben evitar el uso de las palabras “información y dato”. El nombre es una unidad, por lo tanto, si el nombre esta compuesto por más de una palabra, deberá unirlas por un guión bajo (“_”).
Almacenes: Los almacenes deben nombrarse con nombre que representen la información y/o datos que estos contienen. Evitar el uso de palabras como Archivo, Almacén, etc.
Entidades: su nombre debe ser el que se utiliza tanto interna como externamente al sistema, y no debe crear un nombre nuevo o particular de ella, sino que usar el nombre universal de la entidad.
86
Análisis y Diseño de Sistemas
2.
Numerar los procesos para identificarlos de forma rápida y unívoca.
Los números no indican secuencia. El modelo de DFD es una red de procesos asincrónicos que se intercomunican, lo cual es, una representación precisa de la manera en la realidad muchos sistemas operan. El hecho que exista procesos no pueda realizar su función por falta de algún dato de otro proceso no implica correspondiente con la numeración. Son la base para crear la jerarquía de diagramas cuando se introduzcan los diagramas de flujo por niveles.
3.
Evitar DFD excesivamente complejos y recargados, es decir, con muchos elementos gráficos juntos.
El propósito de un DFD es modelar de forma precisa las funciones que se deben llevar a cabo un sistema y las interacciones entre ellas. Pero otro propósito del DFD, de igual importancia, es que sea leído y comprendido, no sólo por el analista que construyo el modelo, sin por los usuarios que sean los expertos en la materia de aplicación. Esto significa que el diagrama debe ser fácilmente entendido, fácilmente asimilado y placentero a la vista. Existe una excepción, un DFD conocido como diagrama de contexto, que representa el sistema entero como un solo proceso y destaca las interfaces entre el sistema y los terminadores externos.
4.
Consolidar flujos para ganar en legibilidad.
5.
Re-dibujar el DFD tantas veces como sea necesario, con el objetivo de: •
Conseguir un DFD técnicamente correcto.
•
Aceptado por el usuario
•
Estar lo suficientemente bien dibujado como para que no sea embarazoso mostrarlo a la dirección de la organización.
6. Asegurarse que el DFD es consistente. Existen reglas para asegurar la consistencia del DFD con otros modelos de sistemas; el diagrama de entidadrelación, diagrama transición de estados, diccionario de datos, y la especificación de procesos. Las principales reglas de consistencia son: •
Evite sumideros infinitos, procesos que tienen entradas pero no salidas. ‡ Evite burbujas de generación espontánea, procesos que tienen salidas sin tener entradas. Situación normalmente incorrecta.
•
Cuidado con flujos y procesos no etiquetados, ya que puede esconder errores importantes.
•
Tener cuidado con los almacenes de “sólo lectura” o “sólo escritura”, ya que todo almacenamiento debe tener un flujo entrante y uno saliente, es decir, la información se almacena se consume.
•
Las entidades externas no pueden acceder directamente a ningún almacenamiento. Siempre debe mediar un proceso que haga de intermediario y extraiga o inserte la información pertinente.
87
Análisis y Diseño de Sistemas
Sumidero de información
Fuente de información
Fig. 5.8.: Sumidero y Fuente de Información
5.3.5.
Niveles de un DFD
Cuando nos enfrentemos ante un modelo real, nos enfrentaremos ante un DFD grande y complejo. Deberemos evitar diagramas complejos y poco legibles, de acuerdo, pero ¿cómo? Si el sistema es intrínsecamente complejo y tiene decenas de funciones que se constituyen de decenas de funciones menores. La respuesta es organizar el DFD global en una serie de niveles de modo que cada uno proporcione sucesivamente más detalles sobre una porción del nivel anterior. Esto es De modo que se construirá una jerarquía de diagramas, en donde cada nivel inferior es una expansión de un proceso del nivel superior.
5.3.6.
Construcción de los niveles del DFD
Como podemos ver lo que se pretende es descomponer un todo en piezas con el objetivo de reducir la complejidad. Pero debemos responder una serie de preguntas:
1.
¿Cómo saber cuántos niveles debe haber en un DFD?
No hay ninguna regla para decidir cuantos niveles ha de tener un DFD. Pero dado que un DFD es aconsejable que no tenga más de media docena de burbujas y almacenes relacionados, si nos aparece un nivel que contenga un número muy superior deberemos insertar un nuevo nivel a los que hubiere. Hay que procurar que haya equilibrio en la distribución de todos los elementos gráficos entre todos los niveles del DFD.
2.
¿Deberemos de dividir todas las partes del sistema con el mismo nivel de detalle?
La respuesta será que no. Algunas partes del sistema pueden ser más complejas que otras y pueden requerir uno o más niveles de partición. En el caso que nos encontremos con desigualdades respecto a la división de un proceso respecto a otros, deberemos nivelar el DFD para lograr un equilibrio.
88
Análisis y Diseño de Sistemas
3.
¿Cómo nos aseguraremos que los niveles del DFD son consistentes entre sí?
Esta cuestión es importante, ya que normalmente existe un desarrollo entre distintas personas en un proyecto real, así como una división del trabajo. Para asegurarse que cada figura es consistente con su figura de más alto nivel se sigue una regla sencilla: “los flujos entrantes y salientes de una burbuja en un nivel dado deben corresponder con los que entran y salen de toda la figura en su desagregación”, a esto se le llama “balanceo de malla”.
4.
¿Dónde deben aparecer los almacenes?
La regla es la siguiente: “mostrar un almacén en el nivel más alto donde primeramente sirve de interfaz entre dos o más burbujas; luego mostrarlo de nuevo en cada diagrama de nivel inferior que describa más a fondo dichas burbujas de interface”. Por lo tanto los almacenes locales, que utilizan sólo las burbujas en una figura de menor nivel, no se mostrarán en niveles superiores, dado que se incluyen de manera implícita en un proceso del nivel inmediato superior.
5.
¿Cómo se realiza de hecho la partición de los DFD en niveles?
La situación que nos imaginamos como ideal es la de comenzar con el diagrama de contexto y luego desarrollar cada figura para trabajar de forma progresiva hasta los niveles de bajo nivel. Sin embargo éste planteamiento nos dará problemas, de modo que el enfoque más aconsejable es identificar los acontecimientos externos a los cuales debe responder el sistema y crear un primer DFD borrador. Veremos como esta primera aproximación del DFD puede suponer un punto de partida hacia arriba o hacia abajo.
6.
¿Cuál será el último nivel de desagregación?
Para decidir cuál es el último nivel no debemos seguir profundizando mientras halla procesos que puedan ser descompuestos en subprocesos, ni entrar en descripciones de tal detalle sobre los procesos que estemos desarrollando su algoritmo. Es decir, los últimos niveles del DFD no deben convertirse en un organigrama del algoritmo de cada proceso.
5.3.7.
Explosión de un proceso
A medida que vayamos conociendo más las actividades de un proceso, podemos representarlas con otro DFD. Para ello seguiremos las siguientes normas: •
Se debe explosionar un solo proceso cada vez.
•
Se representa una caja de proceso grande para ver con más detalle su funcionamiento.
•
Todos los procesos a que da lugar la explosión del proceso n, se van numerando como n.1, n.2, n.3, n.4, etc.
•
Todos los flujos de datos que llegaban al proceso n tienen que llegar al conjunto n.1, n.2, n.3, etc.
•
Todos los flujos de datos que salían del proceso n tienen que salir del conjunto n.1, n.2, n.3, etc.
89
Análisis y Diseño de Sistemas
•
Al estudiar en más detalle el funcionamiento del proceso n, y tener en cuenta el tratamiento de errores y excepciones es posible que surjan nuevos flujos de datos del conjunto de procesos explosionados con el exterior. Si estos flujos son fruto del tratamiento de errores y excepciones se marcan con una X para para resaltar el hecho de que no tienen que aparecer en el DFD original (donde se definió el proceso n). Si hay otros flujos adicionales con el exterior se tendrían que reflejar en el DFD original.
•
Todas las entidades externas han de estar fuera del marco de la explosión.
Fig. 5.9.: Explosión de un Proceso
5.3.8.
Tipos de diagramas de flujo de datos Los diagramas de flujo de datos son de dos tipos: 1.
Diagramas físicos de flujo de datos.
Proporcionan un panorama del sistema en uso, muestra las tareas que se llevan a cabo y como se hacen. Las características físicas incluyen: •
Nombre de personas
•
Nombre o formatos de documentos
•
Nombres de departamentos
•
Archivo de maestro y de transacciones 90
Análisis y Diseño de Sistemas
•
Equipo y dispositivos utilizados
•
Ubicaciones
El empleo de estos diagramas es aconsejable por tres razones:
2.
•
Para los analistas de sistema es más fácil describir la interacción entre los componentes físicos que comprender las políticas empleadas. De modo que identifican las personas, lo que hacen, los documentos que inician las actividades y el equipo para su procesamiento.
•
Los diagramas físicos de flujos de datos son de utilidad para comunicarse con los usuarios. Estos relacionan con facilidad alas personas, las ubicaciones y los documentos ya que trabajan todos los días con estas entidades (Los diagramas lógicos van a resultar abstractos para los usuarios).
•
Los diagramas físicos proporcionan un camino para validar o verificar el punto de vista del usuario sobre la forma en que opera el sistema en uso.
Diagramas lógicos de flujo de datos.
Proporcionan un panorama del sistema independiente de la implantación, que se centra en el flujo de datos entre los procesos sin considerar los dispositivos específicos y la localización de almacenes de datos o personas en el sistema. Los diagramas físicos de flujos de datos, no son un fin en si mismos, sino son un medio para describir la implantación del sistema existente. El diagrama lógico es una visión retrospectiva de la implantación actual y proporciona la base para examinar la combinación de procesos, flujo de datos, almacenes de datos, entradas y salidas, sin importarnos los dispositivos físicos, personas o aspectos de control que caracterizan la implantación. Así que el diagrama lógico se obtiene del diagrama físico al llevar a cabo lo siguiente: •
Señalar los datos necesarios en este momento para un proceso, no documentos que los contienen.
•
Indicar los flujos entre los procedimientos y no entre personas, oficinas o localidades.
•
Eliminar herramientas y dispositivos.
•
Eliminar información de control.
•
Consolidar los almacenes de datos redundantes.
•
Eliminar los procesos innecesarios (los que no cambian los datos, independientes de los dispositivos donde ocurren, los que representan un proceso único dentro del sistema).
Cuando se inicia el estudio de sistemas en un área de la Organización, el analista necesita obtener una visión del sistema. Primero los elementos físicos: personas, documentos, listados. No es difícil recordar lugares o personas importantes (“Este trabajo lo realiza Pérez”, “La autorización del pago de facturas se realiza en el departamento de contabilidad”, etc.), los diagramas físicos representan estos elementos. Una vez superada esta primera fase de conocimiento del sistema actual, es necesario descifrar los aspectos más importantes de cada actividad. Los diagramas lógicos nos permiten describir los datos, procesos y eventos de forma abstracta, ya que el analista debe conocer el trabajo que debe realizarse más que las personas que en la actualidad lo realizan. Los analistas generalmente comienzan por la construcción de un modelo físico por que los componentes físicos se pueden identificar realmente durante el análisis y después lo convierten a un modelo lógico 91
Análisis y Diseño de Sistemas
Durante la conversión, primero se pasan todos los procesos que hacen referencia a actividades físicas. El resto de los procesos físicos se expanden después dentro de sus funciones lógicas. Para ello se toma cada proceso físico, se busca qué es lo que hace y se reemplaza por un DFD de funciones lógicas expandido que represente las actividades de un objeto físico. Después se examina este último DFD, y cualquier función común o similar se combina para formar un proceso de nivel más alto que se convierte el DFD superior.
5.3.8.1. Deducción del diagrama lógico Los diagramas físicos de flujo de datos son un medio para alcanzar un fin, no un fin en sí mismos. Se elaboran para describir la implantación del sistema existente, con el objetivo de tener la comprensión correcta de la implantación real del sistema existente. El panorama lógico es una visión retrospectiva de la implantación actual y proporciona la base para examinar la combinación de procesos, flujo de datos, almacenes de datos, entradas y salidas sin tomar en cuenta dispositivos físicos, personas o aspectos de control que caracterizan la implantación.
5.3.8.2. Reglas generales para el el dibujo de diagramas lógicos de flujo de datos datos Las reglas a tener en cuenta, para el dibujo de los diagramas lógicos de flujo de datos: 1. Cualquier flujo de datos que abandone un proceso debe estar basado en los datos que entran al proceso. 2. Todos los flujos de datos reciben un nombre, el nombre refleja los datos que fluyen entre procesos, almacenes de datos, fuentes o destinos. 3. Sólo deben entrar al proceso los datos necesarios para llevarlo a cabo. 4. Un proceso no debe saber nada de ningún otro en el sistema, es decir debe ser independiente, la única dependencia que debe existir es aquella que esté basada en sus propios datos de entrada y salida. 5. Los procesos siempre están en continua ejecución, no se inician, ni tampoco se detienen. 6. La salida de los procesos puede tomar una de las siguientes formas: •
Flujo de datos con información añadida por el proceso (por ej. anotación en la factura).
•
Una respuesta o cambio en la forma de los datos (por ej. cambio en la forma de expresar los datos).
•
Un cambio de condición (por ej. de no autorizado a autorizado).
•
Un cambio de contenido (por ej. integración o separación de la información contenida en uno o mas flujos entrantes de datos).
•
Cambios en la organización (por ej. separación física o reacomodo de datos).
92
Análisis y Diseño de Sistemas
5.3.8.3. Expansión de los procesos para mayor detalle detalle Dado que la información contenida en el diagrama de contexto, es inadecuada para explicar en su totalidad los requerimientos del sistema, es deseable describir el panorama lógico del procesamiento de facturas por pagar con mayor detalle. Para identificar los procesos utilizamos los números 1.0, 2.0 y 3.0. Podemos hacer referencia por su número (1.0) o por su nombre (Autorización de facturas). Los diagramas de flujo de datos no tienen utilidad si se dibujan en forma inapropiada o ser manejados sin cuidado. Aunque no hay leyes que establezcan el número de niveles, el número de procesos por niveles, la norma común es definir cada nivel inferior en términos de tres a siete de procesos por cada proceso de nivel superior. La utilización de más de siete procesos hace que el diagrama sea difícil de manejar y dibujar. Lo importante es entender que los diagramas de flujo de datos lógicos son una herramienta de ayuda para ayudar la comprensión del sistema de la Organización. De modo que un diagrama deja de ser útil cuando no es comprensible. Por lo tanto, debe primar el sentido común, y no determinar normas estrictas para su construcción.
5.3.8.4. Mantenimiento de la consistencia entre procesos Si comprobamos el diagrama de contexto, y el diagrama de primer nivel, el primer proceso tiene los mismos flujos de entrada, así como los flujos de salida, esto se debe a que la explosión es consistente; los flujos de entradas o salidas del proceso de nivel superior están presentes en el diagrama de nivel inferior, y apareciendo nuevos flujos, almacenes. Esto es precisamente uno de los puntos importantes de la expansión hacia niveles inferiores: encontrar más detalles relacionados con los procesos internos.
5.3.8.5. Convenciones de de nivelación significativas Nivelación es un término que se refiere al manejo de archivos locales (los empleados dentro de un proceso). Los detalles relacionados con un solo proceso en un determinado nivel deben permanecer dentro del proceso. Los almacenes y flujos de datos que son relevantes únicamente para el interior del proceso, son ocultados hasta que el proceso se extiende con mayor detalle. Si nos fijamos en el diagrama de contexto, aparece un almacenamiento de datos (datos del vendedor). Este almacén se crea fuera del sistema de facturas por pagar. Por otro lado los almacenes de datos de facturas por pagar, órdenes de compra y cuentas por pagar están contenidos dentro del proceso, y aparecen en el próximo nivel cuando se expansione el proceso. La convención de nivelación señala que estos almacenes son internos al proceso, no entradas para él.
5.3.8.6. Añadir los controles sólo en en los diagramas de bajo nivel Hasta el momento los diagramas de flujos de datos desarrollados no incluyen información sobre controles. No se hace referencia sobre como manejar errores o excepciones, por ejemplo como procesar facturas incorrectas. Aunque esta información no es importante para identificar todos los flujos de datos, deben aparecer en segundo o tercer nivel deben aparecer el manejo de errores y excepciones del proceso. Los errores más comunes cometidos al incluir los controles físicos en los diagramas lógicos de flujo de datos. Por ejemplo: El copiado de números para documentos (copia 1, copia 2, copia para contabilidad), de instrucciones (encontrar el registro, revisar el registro), o días para el inicio de actividades (hacerlo el lunes) no tienen nada que ver con los aspectos lógicos y de datos de determinación de requerimientos.
93
Análisis y Diseño de Sistemas
5.3.8.7. Asignar etiquetas significativas Todos los flujos de datos deben tener un nombre que refleje con exactitud su contenido. Los nombres dados a los flujos de datos deben reflejar los datos de interés para los analistas, no los documentos o el lugar donde residen. Por ejemplo, una factura contiene varios elementos diferentes de información. Los analistas están interesados en aquellos que son importantes para un proceso en particular. Estos pueden ser el número de la factura y la fecha de expedición, o la firma de autorización de la factura. Lo importante no es la hoja de papel. Los datos que fluyen hacia los procesos experimentan cambios. Por consiguiente, el flujo de datos de salida tiene un nombre diferente al de entrada.
5.3.8.8. Asignar nombre a los procesos Se deben asignar nombre a todos los procesos que les digan a los usuarios algo específico con respecto a la naturaleza de las actividades del proceso. Los nombres Control de Inventarios, Compras y Ventas, es mejor utilizar Ajustar cantidad, preparar orden de compra o corregir pedido de ventas. Consideraciones para dar nombre de los procesos: 1. Seleccionar nombres que indiquen la acción que se lleva a cabo. Lo mas apropiado es escoger un verbo y un objeto que reciba la acción del verbo. 2. Asegurar que el nombre describa completamente el proceso. (Si un proceso edita y valida los datos de una factura, no se puede dar el nombre de Edición de facturas). 3. Seleccionar nombres para los procesos que expliquen el enlace entre los flujos de entrada y salida. 4.
Evitar nombres vagos como proceso, revisión, reunir u organizar.
5. Utilizar los nombres de los procesos de bajo nivel ya que estos son más específicos y descriptivos que los asociados con los procesos de alto nivel. 6. Asignar nombres a los procesos que sean únicos para la actividad que ellos describen. También hemos hablado de numerar los procesos con los números 1, 2, 3, 4 y 5. Los procesos generados con la expansión de cada uno de ellos sen los niveles inferiores se les asigna un decimal para indicar que son descripciones detalladas de un proceso de nivel superior.
5.3.8.9. Evaluación y verificación del diagrama de flujo de datos Es fundamental verificar con cuidado todos los diagramas de flujo para determinar si son correctos. La presencia de lo que parece ser un error señale una deficiencia en el sistema. Debemos hacernos una serie de preguntas, que nos sirvan de ayuda para evaluar los diagramas de flujo de datos: 1. ¿Existen en el diagrama de flujo de datos componentes que no tienen nombre (flujo de datos, procesos, almacenamientos, entradas o salidas)? 2. ¿Existen almacenes de datos que son entradas y a los que nunca se hace referencia? 3. ¿Existen procesos que no reciben entradas? 4. ¿Existen procesos que no generan salida? 5. ¿Existen procesos que tienen varias finalidades? 6. ¿Existen almacenes de datos a los que no se referencien? 94
Análisis y Diseño de Sistemas
7. ¿Existen demasiados atributos en el almacén de datos (más que los detalles necesarios)? 8. ¿El flujo de datos que llega a un proceso es demasiado extenso para la salida
5.4.
Dfd’s para sistemas en Tiempo Real.
Los flujos vistos hasta ahora, son simplemente los conductos a lo largo de los cuales viajan los paquetes de datos entre procesos y almacenes. Podemos considerar las burbujas de los DFD como procesadores de datos. Hay una clase de sistemas, los de tiempo real, en los que necesitamos modelar flujos de control (es decir señales o interrupciones). Y se requiere una manera de mostrar procesos de control (esto es, burbujas cuya única labor es coordinar y sincronizar las actividades de otras burbujas del DFD). Un flujo de control puede imaginarse como un conducto que porta una señal binaria (esto es, está encendido o está apagado). A diferencia de otros flujos que se discuten en este capítulo, el flujo de control no porta datos con valores. El flujo de control se manda de un proceso a otro (o de algún terminador externo a un proceso) como una forma de decir que se inicie el proceso. Un proceso de control puede considerarse como una burbuja ejecutiva, cuya función es coordinar las actividades de otras burbujas en el diagrama; sus entradas y salidas consisten sólo en flujos de control. Los flujos de control salientes del proceso de control se utilizan para despertar a otras burbujas; los flujos de control entrantes generalmente indican que una de las burbujas ha terminado su labor o que se ha presentado alguna situación extraordinaria, de la cual necesita informarse a la burbuja de control. Por lo común sólo hay un proceso de control de estos en un DFD dado.
95
Análisis y Diseño de Sistemas
5.5.
Diccionario de Datos
El diccionario de datos es una lista organizada de todos los datos pertenecientes al sistema, con una serie de definiciones precisas y rigurosas para que tanto el analista como el usuario comprendan entradas, salidas, elementos de los almacenamientos y cálculos intermedios. En el diccionario de datos incluimos almacenes de datos, flujos de datos, estructuras de datos, elementos de datos y en algunos casos el modelo E-R. El diccionario de datos (DD) define los datos en cuanto que: 1. Describe el significado de los flujos de datos y los almacenes que muestran los DFD’s. 2. Describe la composición de la estructura de datos que se mueven a los largo de los flujos. 3. Describe la composición de la estructura de datos en los almacenes. 4. Describe los detalles de las relaciones entre almacenes que aparecen en un diagrama entidad-relación. Los analistas utilizan los diccionarios de datos por cuatro razones: 1. Para manejar los detalles en sistemas grandes ya que es imposible de recordar todo lo referente a un sistema. 1. Para comunicar un significado común para todos los elementos del sistema. Esto es muy importante cuando trabajan varios analistas y no pueden reunirse todos los días para comunicarse. 2. Para documentar las características del sistema. 3. Localizar errores en el sistema.
5.5.1.
Contenido de un Diccionario de Datos El DD contiene los siguientes elementos: 1. Definiciones lógicas de datos: •
Elemento de Dato (Atributos de la Entidad).
•
Estructura de Dato.
•
Flujos de Datos.
•
Almacenes de datos.
2. Definiciones lógicas de procesos. 3. Definiciones lógicas de entidades externas.
5.5.2.
Sintaxis del Diccionario de Datos
Se debe establecer una sintaxis estandarizada que nos permitirá expresar dichos significados, para el caso de los diccionarios, se utiliza: 96
Análisis y Diseño de Sistemas
5.5.3.
=
Está compuesto por
+
Y
()
Opcional, puede o no puede estar presente
[]
Selección entre varias alternativas
{}
Iteración, repetir lo mismo varias veces
**
Comentario
@
Clave principal de un almacenamiento
|
Separador de alternativas en selección Ejemplo:
Notación del Diccionario de datos
1. Descripción de los flujos de datos: Representamos los flujos de datos siempre y cuando el flujo no sea un único atributo (dato elemental). Está formado por una o mas estructuras previamente definidas. Del flujo nos interesa: Nombre, Alias, Contenido, Fuente, Destino y Definición
2. Descripción de Datos elementales :
Datos elementales, son datos, que dentro del contexto del usuario, no tiene sentido descomponerlo. Es importante especificar: Valores permitidos, y unidad de medida. Cada uno está identificado con: Nombre, Alias, Tipo, Largo, Valor por defecto y Validación
3. Descripción de los almacenamientos de datos: Representamos los almacenamientos de datos. De ellos se documenta: Nombre, Clave Primaria, Contenido, Procesos que lo ocupan, y Definición
4. Descripción de los procesos: Representamos los procesos del sistema. Se documenta: Nombre, Descripción, Flujos de Entrada, Flujos de Salida, Almacenes y Descripción (narrativa o seudo-código)
5. Descripción de las entidades externas: Representamos las entidades externas del sistema. Se documenta: Nombre, Definición, A quien representa y Flujos de datos relacionados (E/S).
97
Análisis y Diseño de Sistemas
5.6.
Diagrama Entidad-Relación
El modelo E-R (entidad-relación) fue propuesto por Edward Chen en 1976 para la definición del esquema conceptual de una BD. Posteriormente se ha ido enriqueciendo con nuevos mecanismos de abstracción y representación de la realidad. Es el más ampliamente utilizado de los llamados semánticos. Se basa en la utilización de conceptos tales como entidad (objeto), atributo y relación entre objetos. Se dispone de un formalismo gráfico para realizar estas representaciones, pero no de un lenguaje de manipulación de datos. La principal ventaja, que seguramente ha forzado su difusión, es que es traducible casi automáticamente a un esquema de BD bajo Modelo Relacional, con cierta pérdida de expresividad en el proceso, pero garantizando que las tablas que resultan están directamente en Tercera Forma Normal (3FN). Pasaremos ahora a describir cual es el lenguaje de representación de entidades, atributos, y relaciones entre entidades. Hacer notar, sin embargo, que se muestra una mínima parte de este lenguaje, la necesaria para comprender el significado de los diagramas E-R más simples. El Diagrama de entidad-relación (DER), es una técnica de modelado que nos muestra los datos relevantes del sistema, así como las relaciones entre estos datos a un alto nivel de abstracción.
5.6.1.
¿Para qué definir un modelo orientado a datos? Es necesario definir un modelo orientado a datos por:
5.6.2.
•
El sistema puede ser tan complicado que sea conveniente estudiar sus estructuras de datos independientemente del proceso que se llevará a cabo. .
•
El modelo de datos es esencial para comunicarse con el administrador de datos, que es el responsable de gestionar, controlar los datos esenciales para administrar el negocio, asegurar el correcto y eficiente funcionamiento de las Bases de Datos del sistema.
•
El modelo de datos define las relaciones entre los almacenamientos de los DFD’s.
Componentes Los tres componentes principales de un DER son: •
entidades
•
atributos
•
relaciones entre entidades
5.6.2.1. Representación de Entidades. Una entidad se representará mediante un rectángulo nominado. Representa un conjunto de objetos (materiales o inmateriales) del mundo real: empleados, artículos, clientes, planificaciones, estándares cumpliendo las siguientes características: •
Cada uno de sus miembros individuales (instancias), pueden ser identificados unívocamente. Existe alguna manera de diferenciar dos instancias individuales de la entidad. 98
Análisis y Diseño de Sistemas
•
Cada entidad juega una función dentro del sistema. El sistema no funciona sin acceder a sus miembros instancias.
•
Cada entidad puede ser descrito por uno o más datos elementales (atributos). Los atributos se aplican a cada instancia de la entidad.
Para poner nombre a la entidad, normalmente se utiliza la forma singular. Hay que tener en cuenta la relación entre los almacenes del DFD y las entidades del DER. Si existe una entidad artículo en un DER, debe haber un almacén de datos artículos en el DFD asociado.
5.6.2.2. Representación de Atributos. Un atributo se verá en un E-R como una elipse unida a una entidad mediante un arco. En función de los distintos tipos de atributos que nos podemos encontrar, variará el tipo de representación: •
atributo identificador: son aquellos que identifican las ocurrencias de la entidad. Se representan mediante el subrayado del nombre del atributo.
•
atributo descriptor: atributo no identificador. Si atendemos a su posible estructura:
•
atributo simple o escalar.
•
atributo compuesto o estructurado: el nombre del atributo compuesto es la etiqueta de un arco que se subdividirá en tantos atributos simples como forme la estructura.
•
atributo multivaluado: se indica mediante la etiqueta n sobre el arco.
5.6.2.3. Representación de Relaciones. Las relaciones entre entidades se representan mediante un polígono de tantos lados como entidades se asocian, salvo en el caso de las binarias (relaciones que asocian dos entidades o una consigo misma) que utilizan un rombo, unido a las entidades mediante arcos. Este polígono irá etiquetado con el nombre de la relación. Asimismo, se pueden etiquetar los arcos para realzar el papel que juega dicho objeto dentro de la relación. Las entidades están ligadas unas a otras por relaciones. Cada instancia de la relación representa una asociación entre 0 ó más ocurrencias de una entidad y 0 ó más ocurrencias de otra entidad Las relaciones que pueden ser calculadas o derivadas a partir de otros datos, no se representan. Nos podemos encontrar múltiples relaciones entres dos o más entidades, y debemos interpretarlo como una unidad. La relación se debe estudiar desde la perspectiva de cada uno de las entidades participantes. Es el conjunto de todas aquellas perspectivas que describen completamente la relación.
99
Análisis y Diseño de Sistemas
5.6.3.
Reglas para la construcción de DER’S
1.
Construcción del modelo inicial. El DER inicial se construye basándose en el propio conocimiento del sistema, y con las entrevistas iniciales con el usuario. No se debe esperar que este modelo inicial sea el definitivo.
2.
Refinamiento del modelo inicial. El primer refinamiento que se debe hacer es definir los datos elementales ligados a cada entidad. Si se ha hecho el DFD, seguramente estará definido, en el DD, el almacén de datos asociado. Al hacer este refinamiento nos podemos encontrar ante la necesidad de añadir nuevas entidades o eliminarlos.
3.
Añadir entidades al modelo inicial •
Datos elementales que no pueden aplicarse a todas las instancias de un entidad: Ejemplo: Entidad Empleado. Atributos: nombre, edad, número de embarazos… Solución: Crear un conjunto de entidades-subtipo, Empleado-Masculino, EmpleadoFemenino.
•
Datos elementales aplicables a todas las instancias de dos entidades diferentes: Ejemplo: Entidad Cliente-Caja, Cliente-Crédito. Atributos comunes: nombre, dirección. Solución: Crear una entidad-supertipo Cliente.
•
Datos elementales que describen relaciones entre entidades-tipo. Ejemplo: Relación Compra y los datos fecha de compra, y descuento. Solución: Crear un entidad asociativo Compra.
•
Eliminar grupos de datos repetitivos dentro de una entidad. Ejemplo: Entidad Empleado, y cada uno puede tener hijos. Solución: Crear un entidad hijo y la relación es Padre de. Eliminar entidad del modelo inicial.
•
Entidades de las cuales solo hay una instancia, y solo tienen identificador. Ejemplo: Entidad Cónyuge, del cual solo nos interesa el nombre. Solución: Eliminar la entidad Cónyuge y la relación Esta Casado con y guardamos el nombre cónyuge con el atributo de empleado. 100
Análisis y Diseño de Sistemas
•
Relaciones calculadas o derivadas. Ejemplo: Relación Renueva, que se puede calcular a partir de diversos datos de Conductor (fecha nacimiento, apellidos....). Solución: Eliminar la relación RENUEVA.
5.6.4.
Preguntas a resolver Una vez vistas las herramientas y técnicas nos planteamos ¿Que se construye primero, el DFD o el DER? Normalmente, se desarrollan los dos a la vez. ¿Es necesario construir los modelos, DFD y DER? Depende del sistema.
La mayoría de sistemas de gestión actuales son lo suficientemente complejos en cuanto a funciones y datos que hacen aconsejable, la realización de los dos modelos.
101
Análisis y Diseño de Sistemas
5.7.
Miniespecificaciones o Especificación de Procesos.
Hemos visto que para describir la lógica de un proceso, se pueden utilizar varias alternativas como son: narrativa, árboles de decisión, tablas de decisión y español estructurado (o seudo-código).
Cuando utilizamos narrativa podemos encontrarnos con •
frases oscuras (no solo, pero no obstante, sin embargo....)
•
rangos con huecos indefinidos (“hasta 20 unidades sin descuento, mas de 20 u. al 50 %”)
•
Frases con y/o (“los clientes que nos compran mas de 1millón al año y tienen una buena historia de pagos o que han tenido tratos con nosotros por mas de 20 años deberán recibir trato preferencial”).
•
Adjetivos indefinidos (“buena historia de pagos”, “trato preferencial”). Estas razones obligan a pensar en otras alternativas:
Los árboles de decisión, decisión, pueden resultar una técnica no válida en situaciones complejas con gran número de condiciones e implicaciones ya que no asegura que se hayan considerado todas. Se debe utilizar cuando el número de acciones sea pequeño y no sean posibles todas las combinaciones.
Las Tablas de decisión, decisión, son mas precisas dado que permiten reflejar todas las combinaciones posibles. Pero son más difíciles de entender para el usuario. Deben simplificarse una vez construidas, y se convertirán en árboles de decisión. Se debe utilizar, siempre que se dude que el árbol muestre toda la lógica.
Por lo Tanto se opta, en esta fase, por la utilización del español estructurado, el cual provee una similitud tal con el lenguaje de programación, que la conversión es mucho más rápida. Además, la lectura por parte del usuario, se hace más fácil y, por ende, más entendible.
102
Análisis y Diseño de Sistemas
6.
Diseño.
El diseño podría definirse como "el proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, un proceso o un sistema con suficiente detalle como para permitir su realización física". El objetivo del diseño es producir un modelo o representación que se va a construir posteriormente. El proceso de diseño combina la institución y los criterios basados en la experiencia en la construcción de las entidades similares; un conjunto de principios y/o heurísticas que guían la evolución del modelo, un conjunto de criterios que permiten juzgar la calidad y un proceso de iteración (repetición) que lleva como fin ultimo a una representación definitiva del diseño. Diseño de un sistema computacional es una actividad de la transformación de la declaración de lo que se necesita a un plan de implementación de ese requerimiento en un dispositivo electrónico. (Random House College Dictionary)
6.1.
Diseño e Ingeniería de software
Diseño de software. Cambia continuamente medida que evolucionan nuevos métodos, mejores análisis esta en una fase relativamente temprana en el desarrollo carece de profundidad, flexibilidad y naturaleza cuantitativa de otras disciplinas de la ingeniería, sin embargo existen métodos, criterios y notación para hacer un diseño exitoso
Ingeniería de Software El término Ingeniería de Software surge a final de los años 60 dentro de una conferencia dedicada a “la crisis del software”. El objetivo de la Ingeniería de Software es producir productos de software. Productos software: sistemas software junto la documentación que describe como instalar y usar el sistema. Los productos software caen en dos categorías: •
Productos genéricos: Desarrollados por una organización para un mercado abierto.
•
Productos a medida: Encargados por un cliente.
Ingeniería del Software: “Conjunto de métodos, herramientas y procedimientos para producir software de gran calidad” [R. Pressman] Los métodos describen cómo construir técnicamente el software. Las herramientas dan soporte automático o semiautomático a los métodos. Los procedimientos relacionan formalmente los métodos y las herramientas. La calidad del software es una noción que puede ser descrita mediante una serie de factores. Los factores pueden ser: Externos. Observables por los usuarios del producto. •
Correctitud: Capacidad de los productos software de ejecutar exactamente sus tareas tal cómo están definidas en su especificación de requerimientos.
•
Robustez: Capacidad de un sistema software para funcionar en situaciones anormales. 103
Análisis y Diseño de Sistemas
•
Modificabilidad: Facilidad de un producto para adaptarse al cambio de especificaciones.
•
Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas aplicaciones.
•
Compatibilidad: Facilidad de los productos software para combinarse unos con otros.
•
Eficiencia: Buen uso de los recursos Software y Hardware disponibles.
•
Portabilidad: Facilidad para adaptarse a otros entornos software o hardware.
•
Verificabilidad: Facilidad para preparar procedimientos de aceptación, en particular datos de prueba, para detectar fallos durante las fases de validación y operación.
•
Integridad: Capacidad de un sistema para proteger sus documentos (programas, datos) contra accesos y modificaciones no autorizados.
•
Facilidad de uso: Capacidad de aprender a manejar un sistema software, operar con el, preparar datos de entrada, interpretar resultados, etc.
Internos. Observables por profesionales de la computación.
6.2.
•
Modularidad: Independencia funcional de los componentes del programa.
•
Legibilidad: Facilidad de lectura e interpretación del código del programa
Diseño
Es el núcleo técnico del proceso de ingeniería de software y se aplica independientemente del paradigma del desarrollo usado.
Fig. 6.1.: Relación entre el modelo de análisis y el modelo de diseño.
104
Análisis y Diseño de Sistemas
1.
Diseño de datos.
Transforma el modelo de dominio de la información creado durante el análisis en las estructuras de datos necesarias para implementar el software. 2.
Diseño de la Interfaz.
Describe como se comunica el software consigo mismo, con los sistemas que operan con él y con los operadores que los emplean. 3.
Diseño Procedimental.
Transforma elementos estructurales de la arquitectura del programa en una descripción procedimental de los componentes del software. 4.
Diseño Arquitectónico. Define la relación entre los principales elementos estructurales del programa.
La importancia del diseño del software reside en la calidad. El diseño es la única manera de traducir los requisitos del cliente un sistema o producto de software.
6.2.1.
Proceso del diseño
Diseño es un proceso iterativo que, parte desde las especificaciones básicas y son refinadas hasta que estos describan el sistema completo con todo detalle. Características: •
El diseño debe implementar todos los requisitos contenidos en el modelo de análisis y debe acomodar todos los requerimientos implícitos que desea el cliente
•
El diseño debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el software.
•
El diseño debería proporcionar una completa idea de lo que es el software, enfocando los dominios de datos, funcional y de comportamiento desde la perspectiva de la implementación.
El diseño debería: •
Ser una organización jerárquica que, haga un uso inteligente del control entre los componentes del software
•
Ser modular, es decir, se debería hacer una partición lógica del software en elementos que realicen funciones y subfunciones específicas.
•
Contener abstracciones de datos y procedimientos
•
Producir módulos (subrutinas y procedimientos, por ej.) que presenten características funcionales independientes
•
Conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior
•
Ser producido usando un método que pudiera repetirse según la información obtenida durante el 105
Análisis y Diseño de Sistemas
análisis de los requerimientos de software. Los métodos de diseño comparten los siguientes elementos: •
Un mecanismo para la transformación de un modelo de análisis en una representación del diseño
•
Una notación para representar los componentes funcionales y sus interfaces
•
Heurísticas para el refinamiento y la partición
•
Consejos para valorar la calidad
Principios del diseño •
Diseño de software es un proceso y un modelo a la vez. El proceso de diseño es un conjunto de pasos que permiten al diseñador describir todos los aspectos del software a construir.
•
Principios para el diseño del "buen" software:
•
El proceso de diseño no debería ponerse "orejeras"
•
El diseño no debe inventar nada que ya esté inventado
•
El diseño debería minimizar la distancia intelectual entre el sw y el problema tal y como existe en el mundo real
•
El diseño debería estructurarse para admitir cambios
•
El diseño debería estructurarse para degradarse poco a poco, incluso cuando se enfrenta a datos, sucesos o condiciones operativos aberrantes
•
El diseño no es escribir código y escribir código no es diseñar
•
Se debería valorar la calidad del diseño mientras se crea, no después de terminarlo
•
Se debería revisar el diseño para minimizar los errores conceptuales (semánticos)
Cuando se aplican apropiadamente los principios señalados, el ingeniero de software crea un diseño que muestre factores de calidad externos e internos. Los factores de calidad externos son aquellos que puede observar el usuario (por ej. velocidad, fiabilidad, correctitud y utilidad), y los factores internos son aspectos técnicos importantes para el desarrollo. Conceptos de diseño Todos los conceptos de diseño ayudan al ingeniero a responder a las siguientes preguntas: •
¿Qué criterios pueden emplearse para la partición del software en componentes individuales?
•
¿Cómo se extraen la función o la estructura de datos de una representación conceptual del software?
•
¿Hay criterios uniformes que definen la calidad técnica de un diseño de software?
“El principio de la sabiduría de un ingeniero de software es reconocer la diferencia entre conseguir que funciona el programa, y hacerlo bien.”
106
Análisis y Diseño de Sistemas
6.2.2.
Principios utilizados por el Diseño
6.2.2.1. Abstracción Cuando consideramos una solución modular para cualquier problema, se pueden plantear muchos niveles de abstracción. Al nivel superior de abstracción se establece una solución en términos amplios usando un lenguaje del entorno del problema. A niveles más bajos, se toma una orientación más procedimental. Se conjuga la terminología orientada al problema con la terminología orientada a la implementación en un esfuerzo para plantear la solución. Finalmente, en el nivel más bajo de la abstracción, la solución se establece de la manera que pueda implementarse directamente. Cada fase de desarrollo de software es un refinamiento en el nivel de abstracción de la solución computacional. A medida que nos movemos a través de diferentes niveles de abstracción, trabajamos para crear abstracciones procedimentales, de los datos y de control. Una abstracción procedimental es una secuencia dada de instrucciones que tiene una función específica y limitada. Una abstracción de datos es una colección determinada de datos que describen un objeto de datos. Una abstracción de control implica un mecanismo de control del programa sin especificar detalles internos.
6.2.2.2. Refinamiento El refinamiento paso a paso es una estrategia de diseño descendente. La arquitectura de un programa se desarrolla refinando sucesivamente niveles de detalle procedimental. Se desarrolla una jerarquía descomponiendo un enunciado macroscópico de función (una abstracción procedimental) al estilo paso a paso hasta que llegue a los enunciados del lenguaje de programación. En cada paso del refinamiento, se descomponen una o varias instrucciones del programa en cuestión de instrucciones más detalladas. Esta descomposición sucesiva o refinamiento de especificaciones termina cuando todas las instrucciones se expresan en términos de cualquier lenguaje de programación... A medida que se refinan las tareas, también hay que refinar los datos, descomponerlos, estructurarlos, y es natural refinar las especificaciones de los datos junto con las especificaciones del programa. La abstracción y el refinamiento son conceptos complementarios. La abstracción permite a un diseñador especificar procedimientos, datos, y aun así, suprimir detalles de bajo nivel a medida que progresa el diseño.
¿Qué es un módulo? Un módulo se define como un conjunto de sentencias de programa con cuatro atributos básicos: 1. Entradas/Salidas: Datos que recibe cuando lo invocan y datos que devuelve al módulo que lo llamo. 2. Función: Qué hace con las entradas para producir las salidas. 3. Mecánica: La lógica mediante la cual lleva a cabo su función. 4. Datos internos: Zona de datos a los que únicamente puede referirse él. Además posee otros atributos adicionales cómo: 1. Un nombre, por el cual puede ser referenciado como un todo. 2. Puede invocar o ser invocado por otros módulos. La definición de módulo anterior es independiente del lenguaje en el cual se vaya a realizar posteriormente la codificación. 107
Análisis y Diseño de Sistemas
6.2.2.3. Modularidad La arquitectura de software conlleva modularidad, es decir, el software se divide en componentes identificables y tratables por separado, denominados módulos, que están integrados para satisfacer los requisitos del programa. “Modularidad es el atributo de software que permite que un programa ser manejable intelectualmente”. Un software monolítico (por ej. Un programa grande compuesto por un solo modulo) no puede ser entendido fácilmente por un lector. El número de caminos de control, ámbito de referencia, número de variables y la complejidad global hacen su comprensión casi imposible. Esto lleva a la conclusión: “divide y vencerás”. Es más fácil resolver un problema, cuando se rompe en piezas manejables. Por otro lado, es posible concluir que si subdividimos el software indefinidamente, ¡el esfuerzo sería mínimo! Desgraciadamente, intervienen otras fuerzas, que hace esta conclusión falsa. A medida que crece el número de módulos, el esfuerzo asociado con la integración de estos también crece. Finalmente, es importante resaltar, que un sistema puede diseñarse modularmente, aunque su implementación deba ser monolítica. Hay situaciones en las cuales es inaceptable la introducción de una relativamente pequeña sobrecarga de velocidad y memoria (carga de subrutinas y procedimientos). Aunque el programa fuente no parezca modular, se mantiene su filosofía y el programa proporcionará beneficios de un sistema modular.
6.2.2.4. Ocultamiento de la información Este principio sugiere que los módulos se caractericen por decisiones del diseño que cada uno se oculte de los demás. Se deberían especificar y diseñar los módulos para que la información (procedimiento y los datos) contenida dentro de un módulo sea inaccesible a otros módulos que no necesiten esta información. La ocultación implica que se puede conseguir una modularidad eficaz definiendo un conjunto de módulos independientes que se comunican entre sí sólo la información necesaria para conseguir la función de software. La abstracción ayuda a los a definir las entidades procedimentales (o de información) que componen el software. La ocultación refuerza las restricciones de acceso tanto al detalle procedimental dentro del módulo como a cualquier estructura local de datos empleada por el módulo.
108
Análisis y Diseño de Sistemas
6.3.
Diseño de Datos (Diseño de la Base de Datos).
El propósito de esta actividad es conformar el diseño físico de la base de datos documentado en un formato apropiado a la naturaleza de este tipo de diseño. Para lograrlo se precisa tanto de la información lógica que proporciona el diccionario de datos y el diagrama de entidad relación, ambos componentes de la especificación de requerimientos como de la información que entrega el documento de restricciones físicas que emana del personal de operaciones normalmente responsable, en las unidades de informática, del centro de procesamiento, de las redes, de la seguridad del hardware y de los datos del computador, así como de la ejecución de los programas, el manejo de los discos y otros asuntos que bien pueden tener radical importancia para la tarea de diseñar la base de datos. El diseño de Bases de Datos es el proceso por el que se determina la organización de una Base de Datos. El diseño de una Base de Datos se realiza generalmente en tres fases: La primera fase es el diseño conceptual. La segunda fase se refiere al diseño lógico. Y la última fase es la que estudiaremos en particular, es el Diseño Físico.
6.3.1.
Diseño Físico de la Base de Datos
El punto de partida del Diseño Físico de la Base de Datos es el modelo de datos de lógica global y la documentación que describe el modelo de la metodología del diseño de la Base de Datos lógica. Los modelos lógicos y las relaciones derivadas fueros validadas usando la técnica de normalización, y contra las transacciones que ellos deben soportar para los usuarios. La fase del diseño de la Base de Datos lógica fue concluida por la fusión de los modelos de datos locales (que representa el criterio de cada usuario de la empresa) junto a la creación de un modelo de datos global (que representa todos los criterios del usuario de la empresa). En la tercera y final fase de la metodología del diseño de la Base de Datos, el diseñador debe decidir como trasladar el diseño de la Base de Datos lógica (que es, las entidades, atributos, relaciones y fuerzas) a un diseño de la Base de Datos física que puede ser implementada usando la tarjeta DBMS. Como muchas partes de Diseño Físico de la Base de Datos son altamente dependientes de la tarjeta DBMS, debe haber más de una forma de implementar alguna parte dada de la Base de Datos. Consecuentemente, el diseñador debe ser completamente consciente de la funcionalidad de la tarjeta DBMS, y debe comprender las ventajas y desventajas de cada alternativa para una implementación particular. El diseñador también debe ser capaz de seleccionar una estrategia conveniente de almacenamiento que tenga en cuenta el uso. En este tema demostramos como convertir las relaciones derivadas del modelo de datos lógico global en una implementación de la Base de Datos específica. Proporcionamos los principios para cambiar estructuras de almacenamiento por relaciones de base, decidiendo cuando crear índices, y cuando desnormalizar el modelo de datos lógico e introducir desempleo. Más adelante, mostramos los detalles de implementación física para aclarar la discusión. Antes presentamos la metodología para diseños de la Base de Datos física, brevemente repasamos los procesos del diseño.
6.3.2.
Comparación del del Diseño Físico de de la Base Base de de Datos y el el Diseño Lógico.
En la presentación de la metodología del diseño de la Base de Datos, dividimos el proceso del diseño en tres fases principales:
109
Análisis y Diseño de Sistemas
1) Diseño de la Base de Datos Conceptual. 2) Diseño de la Base de Datos Lógica. 3) Diseño de la Base de Datos Física. La fase anterior al Diseño Físico, fue el diseño de la Base de Datos Lógica, es en gran parte independiente de los detalles de implementación, tal como el funcionamiento específico de la tarjeta DBMS, y la aplicación de los programas, pero es dependiente en el modelo de datos de la tarjeta. El rendimiento de este proceso es un modelo y documentación de datos lógico y global que describe este modelo, así como el diccionario de datos y el esquema relacional. A la vez, estos representan las fuentes de información para el proceso del Diseño Físico, y proporcionan al diseñador la Base de Datos física, con un vehículo para hacer los empleos desconectados que son tan importantes para un diseño de la Base de Datos eficiente. Mientras el diseño de Base de Datos lógico se interesa del “qué”, el diseño de la Base de Datos Física se interesa por el “cómo”. Esto requiere diferentes destrezas que son a menudo fundadas en personas diferentes. En particular, el diseño de la Base de Datos física debe conocer como funciona el sistema huésped del ordenador del DBMS, y debe darse completa cuenta del funcionamiento de la tarjeta DBMS. Mientras el funcionamiento proporcionado por sistemas corrientes muy variados, el Diseño Físico debe estar hecho a medida a un sistema específico DBMS. Sin embargo, el Diseño Físico de la Base de Datos no es una actividad aislada, hay a menudo Feed-Back entre el Diseño Físico, lógico y de aplicación. Por ejemplo, las decisiones tomadas durante el Diseño Físico para mejorar el funcionamiento, podría afectar a la estructura del esquema lógico.
Diseño Físico de la Base de Datos. Es el proceso de producción de una descripción, de una implementación, de un almacenamiento secundario de la Base de Datos, describe el almacenamiento de estructuras y métodos de acceso usados para conseguir el acceso eficiente a los datos. El Diseño Físico de la Base de Datos es la última etapa del proceso de diseño, en el cual, teniendo presentes los requisitos de los procesos, características del SGBD o DBMS, del SO y el hardware, se pretenden los siguientes objetivos: •
Disminuir los tiempos de respuesta.
•
Minimizar espacio de almacenamiento.
•
Evitar las reorganizaciones.
•
Proporcionar la máxima seguridad.
•
Optimizar el consumo de recursos.
En definitiva lo que se pretende alcanzar es el cumplimiento de los objetivos de sistema y conseguir optimizar el ratio coste/beneficio. La poca flexibilidad de los sistemas comerciales obliga a llevar a cabo la reestructuración de las relaciones para conseguir tiempos de respuesta aceptables. Por tanto, se deberá proceder de forma iterativa desde el diseño lógico al Diseño Físico, y viceversa para poder conseguir el ratio anteriormente citado. Así mismo, no existe un modelo formal para el Diseño Físico (como por ejemplo, el modelo relacional para el diseño lógico), el Diseño Físico resulta muy dependiente del producto comercial concreto hasta el momento.
110
Análisis y Diseño de Sistemas
El Diseño Físico consta de entradas y salidas. En las entradas se podría destacar además de los objetivos del Diseño Físico; los recursos máquina (soporte físico), recursos lógicos (sistemas operativos), esquema lógico y la información sobre las aplicaciones (tiempos de respuesta y seguridad). A partir de las entradas, en la salida obtendremos; normas de seguridad, estructura interna, y especificaciones para el ajuste. El problema del Diseño Físico para el administrador de la Base de Datos consiste en proveer un conjunto eficiente de estructuras de acceso de modo que el optimizador pueda tomar las mejores decisiones. Entre los instrumentos más importantes del Diseño Físico se encuentra la selección de los índices secundarios, que es uno de los problemas en la instrumentación física de una Base de Datos. Una vez diseñadas las aplicaciones se conocerá cuales son las consultas más frecuentes y prioritarias a la Base de Datos, por lo que será conveniente crear un índice secundario que ayude a localizar las filas seleccionadas en dichas consultas y reducir los accesos a disco. Existen otros elementos importantes en el Diseño Físico, aunque no todos los sistemas comerciales disponen de ellos, y si existen el diseñador tiene la posibilidad de actuar sobre ellos ajustándolos a cada caso concreto, algunos de ellos se muestran a continuación, aunque más adelante los podremos ver con más detalle: •
Registros físicos.
•
Punteros.
•
Direccionamiento calculado (Hashing)
•
Agrupamientos (cluster)
•
Bloqueo y comprensión de datos.
•
Asignación de espacios de almacenamientos como memorias intermedias (buffers).
•
Asignación de conjuntos de datos a particiones y a dispositivos físicos.
En general los fabricantes muestran tres estrategias de Diseño Físico: 1) El SGBD impone una estructura interna, dejándole al diseñador muy poca flexibilidad, lo que suele aumentar la independencia física/lógica, pero disminuye la eficacia. 2) El administrador diseña la estructura interna, esto supone una importante carga para el administrador y puede influir de forma negativa en la independencia, aunque puede mejorar la eficacia. 3) El SGBD proporciona una estructura interna opcional que el diseñador puede cambiar a fin de optimizar el rendimiento de la Base de Datos. Esta estrategia tiene unas ventajas: •
· La Base de Datos puede comenzar a funcionar de inmediato.
•
· La eficacia va aumentando al irse efectuando los ajustes sucesivos.
•
· La independencia se mantiene.
El Diseño Físico de la Base de Datos implica el diseño de las relaciones de la Base y se integra fuertemente usando el funcionamiento disponible de la tarjeta DBMS.
111
Análisis y Diseño de Sistemas
Traducción del modelo de datos lógico global para tarjetas DBMS; implica seleccionar las estructuras de almacenamiento y los métodos de acceso para las relaciones base. Típicamente, el DBMS, implica un número de alternativas para construir un almacén de datos, con la excepción del PC DBMS, el cual tiende a ajustar el almacenamiento construido. Desde el punto de vista de los usuarios, la representación del almacenamiento interno para las relaciones debería ser transparente – el usuario debería poder acceder a las relaciones y tuplas sin tener que especificar donde o como las tablas están almacenadas. Esto requiere que el DBMS proporcione datos físicos independientes para que los usuarios no se vean afectados por cambios de la estructura física de la Base de Datos, como se discutió anteriormente. El trazado entre el modelo de datos lógico y el modelo de datos físico está definido en el esquema interno. El diseñador debe proporcionar los detalles del Diseño Físico para ambos, el DBMS y el sistema operativo. Para el DBMS, el diseñador debe especificar las estructuras de fichero que son usados para representar cada relación; Para el sistema operativo, el diseñador debe especificar los detalles tales como la localización y protección de cada fichero. El paso 2 también considera enervante (es decir, debilitar las fuerzas físicas) la fuerza de normalización impuesta sobre el modelo lógico de datos para proporcionar todo el funcionamiento del sistema. Este es un paso que solo se acometerá si fuera necesario, porque los problemas inherentes implican la introducción del desempleo, mientras mantengan su consistencia. El diseño de las Bases Relacionales para la tarjeta DBMS; implica el diseño de medidas de seguridad para proteger los datos desde un acceso inautorizado. Esto implica decidir como cada modelo lógico global de datos debería estar implementado, y los controles de acceso que son requeridos en las relaciones de base. La fuerza de la empresa para diseñar la tarjeta DBMS; es un proceso continuo de monitorización del sistema operacional para identificar y resolver cualquier problema del funcionamiento resultante del diseño, e implementación de nuevos o cambiantes requerimientos. 6.3.3.
La Metodología del Diseño Físico de la Base de Datos Datos para la Base de Datos Relacional.
Esta sección nos proporciona una guía paso a paso para introducir el Diseño Físico de la Base de Datos para la Base de Datos relacional. Por tanto, en esta metodología, demostramos la asociación cerrada entre el Diseño Físico de la Base de Datos y la implementación para describir como los diseños alternativos pueden implementarse usando varias tarjetas DBMS. La primera actividad del Diseño Físico de la Base de Datos implica la traducción de las relaciones derivadas del modelo de datos lógico global dentro de una forma que puede implementarse en la tarjeta relacionada DBMS. La primera parte de este proceso supone cotejar (es decir, confrontar una cosa con otra), la información recogida durante el modelado y documentación de los datos lógicos en el diccionario de datos. La segunda parte de este proceso usa esta información para producir el diseño de la base relacional. Este proceso requiere un conocimiento profundo de las funciones ofrecidas por la tarjeta DBMS. Por ejemplo, el diseñador necesitará conocer: •
Si el sistema soporta la definición de clave primaria, clave secundaria y clave externa.
•
Si el sistema soporta la definición de datos requeridos (que es, si el sistema permite atributos definidos como NO NULOS).
•
Si el sistema soporta la definición de dominios.
•
Si el sistema soporta la definición de la fuerza de la empresa.
•
Como crear una base relacional.
112
Análisis y Diseño de Sistemas
6.3.4.
Diseño de las Bases Relacionales para la Tarjeta DBMS.
Para comenzar el proceso del Diseño Físico, primero necesitamos cotejar y asimilar la información sobre relaciones producidas durante el modelado de datos lógicos. La información puede ser obtenida desde el diccionario de datos y la definición de las relaciones definidas usando el DataBase Design Language (DBDL). Por cada relación identificada en el modelo de datos lógico global, nosotros vamos a definir los siguientes pasos: •
El nombre de la relación.
•
Una lista de los atributos simples que soporta.
•
La clave primaria y, cuando sea apropiado, las claves alternativas (AK), y las claves externas (FK).
•
Integrar la fuerza de alguna clave externa identificada.
Desde el diccionario de datos, también tenemos para cada atributo: •
Los dominios, la consistencia de un tipo de dato, longitud, y alguna fuerza en el dominio.
•
Una opción para dejar de evaluar los atributos.
•
Si el atributo puede tener nulidad.
•
Si el atributo es derivado y, como sería computado.
113
Análisis y Diseño de Sistemas
6.4.
Diseño de Interfaz.
6.4.1.
Diseño Efectivo de Salidas. Objetivos en el diseño de salidas
La salida es la información que reciben los usuarios del sistema de información. Las salidas pueden tomar distintas formas: los reportes impresos tradicionales y salidas en formatos, tales como pantallas en monitor, microfichas y salidas de audio. Los usuarios confían en las salidas para la realización de sus tareas; y con frecuencia, juzgan el mérito del sistema exclusivamente por sus salidas. Con el fin de crear una salida de utilidad, el analista de sistemas trabaja estrechamente con el usuario, mediante un proceso interactivo, hasta que el resultado llega a ser satisfactorio. Los objetivos que persigue el analista de sistemas al diseñar una salida son seis: 1. Diseñar una salida para satisfacer el objetivo planteado Toda salida debe contar con un propósito explícito. No es suficiente que se presente a los usuarios un reporte o una pantalla, solo porque tecnológicamente es posible hacerlo. Durante la fase del análisis de determinación de los requerimientos de información, el analista de sistemas identifica los propósitos a satisfacer; y con base en tales propósitos se diseña la salida. 2. Diseñar una salida que se adapte al usuario Es difícil personalizar la salida con un gran sistema de información que atiende a numerosos usuarios con diferentes propósitos. Con base en entrevistas, observaciones, consideraciones de costo y, tal vez, prototipos, será posible diseñar salidas que se ajusten a la mayoría, si no a todas las necesidades de los usuarios y sus preferencias. 3. Proveer la cantidad adecuada de información Parte de la tarea del diseño de la salida es decidir que cantidad de información es correcta para los usuarios, pronto se dará cuenta que es una tarea muy difícil, ya que los requerimientos de información cambian de manera continua. Por ejemplo más que acomodar en una sola pantalla las ventas de todo el año, se podría proporcionar en doce pantallas, la venta de cada uno de los meses, y de manera suplementaria, un resumen en una pantalla separada. 4. Asegurar que la salida esté disponible donde se necesita ¿Quién debe recibir la salida? El incremento de las salidas en línea (on-line), desplegadas en pantalla y que son accesibles de manera individual, han resuelto parte del problema de la distribución, pero una distribución apropiada todavía es un importante objetivo para el analista de sistemas. Para ser útil y aprovechada, la salida debe presentarse al usuario adecuado. No importa qué tan bien se diseñen los reportes, si éstos no los ven los tomadores de decisiones pertinentes; carecerán de valor. 5. Proporcionar oportunamente la salida ¿En qué momento debe generarse la salida? Una queja común de los usuarios es que no reciben de manera oportuna la información para la toma de decisiones, uno de los objetivos que debe perseguir el analista es la puntualidad en la distribución de la salida. Muchos informes se requieren por día, por mes, por año y habrá otros por excepción. Una presentación a tiempo puede llegar a ser decisiva para la operación de la empresa. 6. Elegir el método correcto de salida La salida puede tomar diferentes formas, incluyendo los reportes impresos en papel, la información presente en pantalla, sonidos de audio y digitalizados que simulan la voz humana y las microfichas. La elección del método correcto para cada tipo de usuario es otro de los objetivos en el diseño de la salida. El analista debe evaluar las ventajas involucradas al elegir un método de salida. Los costos difieren, así como la flexibilidad, vida media, distribución, almacenamiento y posibilidades de acceso y transporte, y, finalmente, el impacto global hacia el usuario. La elección del método de salida no es trivial, ni es una conclusión predeterminada.
114
Análisis y Diseño de Sistemas
6.4.1.1. Relación del contenido de la salida con el método de salida Es posible concebir la salida como cualquier cosa que sale de la organización, a la cual se le llamaría “salida externa” o que permanece dentro de la organización, la cual sería una “salida interna”. La salida externa nos es familiar por su uso para los recibos de servicios, publicidad, cheques, informes anuales y miles de otras comunicaciones que las organizaciones tienen con sus clientes, vendedores, proveedores, industria y competidores. Algunas de estas salidas, tales como los recibos de servicios, se diseñan por el analista de sistemas para cumplir con dos funciones, como lo haría un documento que requiere ir a varias partes y regresar. En otras palabras, la salida de una de las etapas de un proceso se vuelve la entrada de otro, cuando el cliente regresa aquella parte del documento. Las salidas externas difieren de las salidas internas no sólo por él mecanismo de distribución, sino además, por su diseño y apariencia. Muchos documentos externos, si se desea que se utilicen correctamente, deben incluir instrucciones para el receptor. Además, muchas salidas externas se imprimen en formas que contienen el emblema de la compañía y los colores corporativos. Dentro de las salidas internas tenemos varios informes para la toma de decisiones. Estos se distribuyen a todo lo largo de la organización, desde un breve resumen, hasta un informe altamente detallado. Un ejemplo de un resumen es el reporte que consolida las ventas totales del mes. Un reporte detallado pudiera ser el de las ventas semanales por vendedor. Otros tipos de informes internos incluyen los informes históricos que se manejan como reportes por excepción y que se emiten sólo en el momento de la excepción (una desviación de lo esperado). Por ejemplo una lista de todos los empleados sin faltas en el año.
6.4.1.2. La elección de la tecnología de salida Para producir diferentes tipos de salidas, se requiere el uso de diferentes tecnologías. Para salidas impresas de computador, las opciones con que contamos son las impresoras de impacto y no impacto. Para las salidas por pantalla, tenemos como opciones monitores independientes o integrados o pantallas de cristal líquido. Las salidas de audio pueden amplificarse a través de parlantes o escucharse a través de una pequeña bocina del microcomputador. Las microfichas son salidas creadas por equipos de cámaras especiales y filmadas en microfichas y microfilms. En cierta manera, la salida de audio podría considerarse como exactamente lo opuesto a la salida impresa; esta es temporal, mientras que la palabra es permanente. En general es para beneficio de un solo usuario, mientras que la salida impresa comúnmente cuenta con una amplia distribución. La salida de audio por ejemplo sirve para atender pedidos de números de catálogo con llamadas libres de cobro, (0800), las 24 horas del día. Al utilizar un teléfono digital, los clientes marcan el número y en respuesta a las instrucciones que reciben por el audio, los clientes seleccionan el artículo numerado, la cantidad, el precio y refieren el número de su tarjeta de crédito. Esto implica para los almacenes la captura de ventas que de otra forma se perderían, ya sea porque la contratación de empleados pudiera ser muy cara para justificar una atención por 24 horas.
6.4.1.3. Consideraciones al elegir la tecnología de salida Existen varios elementos a considerar en su elección. Aunque la tecnología cambia con rapidez, hay principios útiles que permanecen prácticamente constantes en relación a los avances tecnológicos. Estos elementos son: 1. ¿Quién usará la salida? Por ejemplo cuando los gerentes de distrito se encuentran alejados de sus oficinas por grandes períodos, necesitan de salidas impresas que puedan llevar consigo, conforme visiten a los gerentes de su región. De manera alternativa, las salidas por pantallas son excelentes para funciones tales como el despacho de transporte, donde el despachador se encuentra cerca de su escritorio la mayor parte del tiempo. 115
Análisis y Diseño de Sistemas
También, aplican diferentes estándares, dependiendo si el receptor de la salida es interno o externo a la organización. Los receptores de salidas externas (clientes, proveedores) requerirán de salidas diferentes que los usuarios internos de la empresa. Con frecuencia, los clientes carecen de acceso a las salidas electrónicas, ya que simplemente no cuentan con el equipo requerido. En este caso, usted debe proporcionar una salida impresa. El conocer quién será el usuario de la salida, nos permite determinar el requisito de calidad de la salida. Podemos considerar adecuado para usuarios internos numerosos, los impresos estándares en papel de computador, una salida en letra de calidad se requerirá para una correspondencia comercial, con un público externo. 2. ¿Cuántas personas necesitan la salida? La elección de la tecnología de salida también queda influenciada por el número de usuarios que la usarán. Si numerosas personas requieren de la salida, probablemente se justificarían las copias impresas. Si sólo un usuario requiere de la salida, una salida por pantalla, en microfichas, o aún, una salida de audio puede ser lo más apropiado. Si numerosos usuarios de la empresa necesitan salidas diferentes a tiempos diferentes, por períodos cortos y la requieren con rapidez, entonces una alternativa será el uso de terminales conectadas en línea y con acceso directo a la base de datos. 3. ¿En dónde se necesita la salida? Otro factor que influye en la elección de la tecnología de salida es el destino físico de ella. Aquella información que permanecerá cercana a su punto de origen, que será utilizada por muy pocos usuarios dentro de la empresa y que pudiera almacenarse y consultarse con frecuencia, con seguridad puede ser impresa. Una abundante información que deba transmitirse a los usuarios a grandes distancias en operaciones satélites, puede mejor distribuirse de manera electrónica y el receptor decidirá si lo imprime, lo presenta en pantalla o lo almacena. 4. ¿Cuál es el propósito de la salida? Otro factor a considerar para elegir la tecnología es la función de la salida. Si la salida tiene el propósito de atraer accionistas a la organización, y que éstos tengan a su disposición las finanzas corporativas, entonces, lo más adecuado sería presentar un reporte anual con excelente diseño. Si el propósito de la salida es actualizar cada 15 minutos los coeficientes del mercado de valores y el material se encuentra altamente codificado y es variable, entonces, lo mas adecuado sería hacer uso de las pantallas de vídeo o aun del audio. 5. ¿Con qué frecuencia se requiere la salida? Entre más frecuente se accesa una salida, más importante será el disponer con terminales conectadas en línea al sistema. En las salidas de acceso poco frecuente, que requieran unos cuantos usuarios, las microfichas son apropiadas, como microfichas o microfilm. Aquellas salidas que se consultan con frecuencia son candidatas adecuadas para incorporarse a sistemas en línea, con presentaciones en pantallas. La adopción de este tipo de tecnología permite que el usuario tenga un fácil acceso y disminuye a la vez el riesgo del desgaste físico que deteriora la frecuente manipulación de las salidas impresas. 6. ¿Bajo qué regulaciones particulares se produce la salida? Ciertas salidas están sujetas a la regulación del gobierno que impone el uso de determinadas tecnologías. Por ejemplo las declaraciones juradas del SII o las boletas y facturas electrónicas. 7. ¿Cuáles son los costos iniciales y posteriores del mantenimiento y los suministros? Los costos iniciales de adquirir o arrendar un equipo deben considerarse como otro elemento que entra en la elección de la tecnología de salida. La mayoría de los vendedores le ayudarán a estimar los costos iniciales de compra o alquiler de un computador, incluyendo el costo de impresoras y terminales de vídeo. Sin embargo, muchos vendedores no proporcionarán información acerca del costo para mantener operando una impresora (papel, cintas, reparaciones y 116
Análisis y Diseño de Sistemas
mantenimiento). De tal forma que es responsabilidad del analista, investigar el costo de operación de las diferentes tecnologías de salida. 8. ¿Cuáles son los requisitos ambientales para las tecnologías de salida? Como se habrá observado anteriormente, las impresoras requieren de un ambiente seco y fresco para operar adecuadamente. Los monitores requieren de espacio y cableado para conectarse a la base de datos que se accesa. La salida de audio requiere de un sitio relativamente silencioso, que permita que el usuario comprenda los sonidos digitalizados. Además el volumen de la salida de audio debe ser lo suficientemente alto como para escucharse, no debería ser audible para los otros empleados (o clientes) que no lo utilizan. En el otro extremo ciertas tecnologías son apreciadas por su discreción. Las bibliotecas que enfatizan el silencio en el área de trabajo, hacen extensivo el uso de monitores de vídeo. Estos son mucho más silenciosos que la operación de impresoras y, más aún que el uso de cardex consultados físicamente por el usuario.
6.4.1.4. Reconocer la manera en que el sesgo sesgo de la salida afecta afecta al usuario De tres maneras se puede crear un error no intencionado en la presentación de las salidas: •
La manera de ordenar la información
Se introduce sesgo en la salida cuando el analista elige la manera de ordenar la información de un reporte. Formas comunes de ordenamiento incluyen el cronológico, el alfabético y el de costos. •
La manera de establecer los límites de aceptación
Una segunda fuente importante de error en la salida es la definición preliminar de límites para valores particulares que serán reportados. El analista de sistemas podría sin intención, establecer un límite demasiado bajo o demasiado alto, rangos estrechos de las salidas por excepción o rangos amplios para estas salidas. •
La elección de gráficas
El tamaño de la gráfica debe ser proporcional, de tal forma que el usuario no confunda la importancia de las variables presentadas. La elección del color de la gráfica es de suma importancia, de tal forma que no se distorsionen sus conclusiones. El tipo elegido de gráfica para la salida también es una fuente de sesgo potencial. Una gráfica de torta es inadecuada si los porcentajes del conjunto no es lo más relevante. Las gráficas de barras y de columnas pueden exagerar las diferencias entre las variables. Los analistas de sistemas cuentan con ciertas estrategias específicas para evitar el sesgo en la salida que diseñen: 1- Reconocer la fuente del sesgo 2- Diseño interactivo de la salida que considere a los usuarios 3- Trabajar con los usuarios, de tal forma que conozcan del sesgo de la salida 4- Creación de una salida flexible que permita al usuario modificar los límites, los rangos y el ordenamiento. 5- Proponer a los usuarios diferentes salidas para conducir “pruebas realistas” sobre la salida del sistema. Prototipos. En síntesis el analista de sistemas debe solicitar la retroalimentación activa del usuario, respecto a la salida. El proceso de diseño requerirá de varias interacciones, antes de que el usuario sienta que es de utilidad la salida. Otro
117
Análisis y Diseño de Sistemas
aspecto importante es diseñar una salida en la que los usuarios sean capaces de modificar los límites y los rangos establecidos para el usuario. 6.4.1.5. Diseño de la salida impresa Al hacer uso de la información obtenida durante la fase de determinación de los requisitos de información y una vez decidido, el uso de la salida impresa, el analista de sistemas se encuentra en condiciones de iniciar el diseño físico de la salida. La fuente de información básica es el diccionario de datos. Convenciones en el diseño de reportes Información constante: Es la información que permanece sin cambios cada vez que se imprime el reporte. Para indicar la información constante, el analista la anota en la forma con un carácter por espacio. El título del reporte y los encabezados de todas las columnas se consideran como información constante. Información variable: Es la información que varía cada vez que el reporte se imprime.
Para determinar el ancho del reporte, reporte , determine para cada uno de los campos el máximo de: 1) los requerimientos de longitud del campo de los datos elementales, conforme éstos aparezcan en el diccionario de datos, y 2) el renglón más largo que propone como encabezado de columna. Luego, 3) agregue los espacios que pretendan dar una separación en ambos lados. Finalmente, sume estos estimados del campo para obtener el ancho estimado. Calidad del papel, tipo y tamaño La salida puede imprimirse en innumerables tipos de papel, la restricción preponderante por lo general es el costo. El tipo de papel que tiene un tratamiento especial, ya sea preimpreso, entintado a color, con varias copias o con formas que no requieren papel carbón, será más costoso que el simple papel de computador. La calidad del papel también difiere por el contenido de algodón. Mientras más algodón contenga, tendrá una mejor calidad, durabilidad y mayor precio. Pero un negocio quizás querrá que su correspondencia particular se imprima en papel bond que contenga algodón, mediante el uso de una impresora de calidad, todo ello con el fin de dar una imagen de mayor distinción. Salidas en formas especiales Las formas preimpresas tienen numerosos propósitos; entre ellos tenemos el envío a los clientes de documentos de ida y vuelta. A través de uso de colores y de diseños corporativos las formas preimpresas pueden llevar el logotipo de la corporación. El uso de formas innovadoras, colores y distribuciones motivan de manera dramática la atención del usuario hacia el reporte particular. Consideraciones de diseño •
Atributos funcionales:
Los atributos funcionales de un reporte impreso incluyen el encabezado o título del reporte, el número de la página, la fecha de preparación, los rótulos de las columnas, el agrupamiento de los datos relacionados y el uso de elementos de pausa. Cada uno de ellos cumple con un propósito específico para el usuario. 118
Análisis y Diseño de Sistemas
El encabezado o título del reporte dirige al usuario de manera inmediata al tema de su lectura. El título debe ser descriptivo y conciso. Es redundante incluir la palabra reporte en el título. Cada página debe numerarse de tal forma que el usuario cuente fácilmente con un punto de referencia cuando discuta la salida con otros o vuelva a localizar datos importantes. También si las páginas de las salidas se encuentran separadas, su paginación es invaluable para reconstruir el documento. En cada impresión incluya la fecha de la preparación del reporte. Los encabezados de las columnas sirven para orientar al usuario sobre el contenido del reporte. Cada elemento debe contar con un encabezado. Los encabezados deben ser breves y descriptivos. Utilice cortes de control (los cuales son separaciones entre los datos cuando aparece un total) para auxiliar la lectura. Separe con líneas adicionales el resto de los datos. Por ejemplo, si 200 tiendas de venta de indumentaria deportiva se agruparan por zona geográfica, el reporte puede contar con cortes al final de cada una de las zonas. •
Atributos estilísticos/estéticos
Los reportes impresos están organizados de tal forma como los apreciarían nuestros ojos. Dentro de este contexto, esto significa que el reporte debe leerse de arriba hacia abajo y de izquierda a derecha. Los datos relacionados deben agruparse, como se mencionó con anterioridad. El uso de cortes de control también cubre una función importante; pero su ubicación en la página también le confiere una característica estética. Dé atención a los cortes de control, a las totales y a otra información relevante, encerrándolos en cuadros mediante el uso de caracteres especiales, tales como asteriscos o espacios adicionales. Esto permite agilizar la búsqueda de información decisiva y evita la larga impresión de columnas continuas de información. Las salidas de reportes impresos requieren de amplios márgenes a la derecha y a la izquierda, así como, en los bordes superior e inferior. Esto permite atraer la atención del usuario al material que se centra en la página facilitando la lectura. No debe subestimarse la relevancia de la distribución, la legibilidad y la facilidad de uso, ya que la salida se crea para ser utilizada. Pasos para la preparación de la hoja de distribución de la salida A continuación se presenta una guía, paso a paso, para la preparación de la hoja de distribución de la salida: 4) Determine las necesidades del reporte. 5) Identifique a los usuarios. 6) Determine la información que se va a incluir. 7) Cuente el número de espacios necesarios y decida la dimensión global del reporte. 8) Titule el reporte 9) Numere las páginas del reporte 10)Incluya 10) Incluya la fecha de preparación del reporte 11)Rotule 11) Rotule cada columna de datos de manera adecuada 12)Defina 12) Defina la línea de detalles para los datos variables, indicando si cada espacio se utilizará para un carácter alfabético, especial o numérico. 13)Indique 13) Indique la posición de las totales (cortes de control). 119
Análisis y Diseño de Sistemas
14)Revise 14) Revise el boceto (o prototipo) de los reportes con los usuarios y programadores para evaluar su factibilidad, utilidad, legibilidad, compresión y apariencia estética. Estructura jerárquica de una salida impresa La estructura jerárquica de una salida, nos permite analizar la composición de la misma y las ocurrencias de los datos dentro de la salida. Tiene como objetivo indicar el número de veces que aparece un subconjunto de datos en el conjunto al que pertenece. Es posible colocar los signos de exclusión, inclusión o exclusión exclusiva, cuando los subconjuntos pertenecientes al mismo nivel aparezcan 0 o 1 vez en el conjunto al que pertenecen.
6.4.2.
Diseño de Pantalla.
Observe que las salidas por pantalla, difieren de diversas maneras de las salidas impresas. Estas son efímeras, es decir, una imagen en monitor no es “permanente”, de la misma manera como lo sería una impresión; pueden estar dirigidas en forma más específica hacia el usuario: tienen un formato con mayor flexibilidad, no son portables; y en ocasiones, las salidas por pantalla permiten modificaciones mediante una interacción directa. Además, los usuarios deben saber qué teclas presionar si desean consultar pantallas adicionales, cómo concluir la presentación y si es posible, cómo interactuar con lo desplegado en la pantalla. El acceso a las presentaciones por pantalla puede controlarse a través del uso de un código confidencial (password), mientras que la distribución de las salidas impresas se controla de manera distinta.
6.4.2.1. Lineamientos para el diseño de pantallas Existen cuatro lineamientos que facilitan el diseño de las pantallas. Para resumir, estos son: 1) Mantenga una pantalla sencilla. 2) Mantenga una presentación consistente en la pantalla. 3) Facilite el movimiento del usuario entre pantallas. 4) Cree una pantalla atractiva. Las dimensiones típicas de una pantalla son de 80 columnas por 24 renglones. Las diferencias en el diseño de pantallas radican en la necesidad de indicar los cambios de la pantalla, los movimientos entre pantallas y la conclusión de la presentación de la salida. Cuando la pantalla se encuentra en la fase de diseño preliminar, antes de que hayan sido asignados los espacios en la forma, es muy conveniente mostrar a los usuarios un boceto de la pantalla y recibir su retroalimentación acerca de las modificaciones o mejoras que desearían. Este es un proceso interactivo que continúa hasta que el usuario se encuentra satisfecho por lo que le proporciona la salida y la claridad del formato. Así como en la salida impresa, las pantallas de calidad no pueden crearse de manera aislada. Los analistas de sistemas necesitan retroalimentación de los usuarios para diseñar pantallas de gran valía. Una vez aprobada por los usuarios, el diseño de la pantalla puede plasmarse en la hoja de diseño de pantallas. La presentación orienta al usuario a través del encabezado. En la parte inferior de la pantalla se tienen instrucciones. El usuario cuenta con varias alternativas, que incluyen: continuar con la pantalla actual, concluir la presentación, obtener ayuda o contar con más detalle. Las pantallas de salida dentro de una aplicación deben presentar de manera consistente la información de pantalla a pantalla. 120
Análisis y Diseño de Sistemas
6.4.2.2. Objetivos del diseño de entradas Un buen diseño de los formatos y las pantallas de entrada debe satisfacer los objetivos de eficacia, precisión, facilidad de uso, consistencia, sencillez y atracción. La eficacia significa que las formas y las pantallas de entrada satisfagan propósitos específicos del sistema de información de la administración, mientras que la precisión se refiere a un diseño tal que asegure una realización satisfactoria. La facilidad de uso implica que tanto las formas como las pantallas serán explícitas y no requerirán de tiempo adicional para descifrarse. La consistencia, en este caso, significa que las formas y las pantallas ordenen los datos de manera similar de una aplicación a otra, mientras que la sencillez se refiere a mantener en un mínimo los elementos indispensables que centren la atención del usuario. La atracción implica que el usuario disfrutará del uso o tránsito a través de las formas y las pantallas cuyos diseños les sean más atractivos.
6.4.2.3. Buen diseño de los formularios de entrada de datos Los formularios de entrada de datos son instrumentos importantes para el desempeño adecuado del trabajo. Por definición, son documentos duplicados o preimpresos que requieren ser llenados por las personas, en respuesta a un procedimiento estandarizado. Los mismos hacen surgir y capturan la información que los miembros de la organización requieren y con frecuencia se alimentan al computador. Existen cuatro lineamientos importantes para el diseño de los formularios de entrada: 1.
Diseñe formas fáciles de llenar
Para reducir el error, agilizar su llenado y facilitar la captura de datos, es esencial que las formas sean fáciles de llenar. El costo de las formas es mínimo si se compara con el costo del tiempo que ocupa el empleado en el llenado y en la alimentación de los datos en el computador. Es importante tener en cuenta el Flujo de la forma: El diseño de una forma con un flujo adecuado minimiza el tiempo invertido y el esfuerzo realizado por los empleados en el llenado. Las formas deben seguir un flujo de izquierda a derecha y de arriba hacia abajo. Es importante también respetar las siete secciones de una forma: Una segunda técnica que facilita el llenado correcto de las formas consiste en la agrupación lógica de la información. Las siete secciones principales que le confieren solidez a una forma son: a) b) c) d) e) f) g)
Encabezado Identificación y acceso Instrucciones Cuerpo del formulario Firma y verificación Totales Comentarios
De manera ideal, estas secciones deberían aparecer en una sola página ordenada. Obsérvese que las siete secciones cubren la información básica requerida en la mayoría de los formularios. La parte superior del formulario recibe tres secciones: el encabezado, las secciones de identificación y acceso y la sección de instrucciones. La sección del encabezado por lo general incluye el nombre y la dirección de la empresa que origina la forma. La sección de identificación y de acceso contiene claves que sirven para archivar el informe y obtener, en un momento dado, acceso a él. Esto es importante cuando una organización requiere conservar un documento por un determinado número de años. La sección de instrucciones nos dice cómo debería llenarse la forma y a donde dirigirla cuando se complete. La parte central de la forma es su cuerpo, el cual utiliza aproximadamente la mitad de la forma. Esta parte requiere del mayor detalle y desarrollo de la persona que la llena. 121
Análisis y Diseño de Sistemas
La parte inferior de la forma se integra con tres secciones: firmas y verificación, total y comentarios. Otro aspecto a tener en cuenta es el rotulado: Los rótulos le indican a las personas qué anotar en un espacio en blanco, en un renglón o en un recuadro. Se dispone de varias alternativas para rotular. Los rótulos de línea pueden encontrarse a la izquierda de áreas en blanco y en el mismo renglón, o bien pueden imprimirse debajo de la línea donde se registrará el dato. La ventaja de ubicar rótulos debajo de las líneas es que se dispone de más espacio en tal línea para el dato. Otra forma de rotular es proporcionar un recuadro para los datos, en lugar de la línea. Los rótulos pueden ubicarse dentro, fuera o debajo del recuadro. Los recuadros auxilian a la gente a introducir los datos en el sitio correcto y también facilitan la lectura del receptor de la forma. Cualquiera que sea el estilo que elija para rotular, es importante emplearlo de manera consistente. Por ejemplo, llenar una forma que contiene rótulos tanto encima como debajo de las líneas se presta a confusión. Los cuadros de selección son más convenientes cuando el número de alternativas de respuesta se encuentra necesariamente restringido. Las tablas son muy convenientes dentro del cuerpo de un formulario cuando se requiere detalles. Cuando un empleado se apega al formato de una forma que cuenta con un arreglo tabular, crea una tabla que será de fácil compresión para la siguiente persona que reciba la forma y a la vez permite mantener una organización coherente de los datos. Puede utilizarse una combinación de rótulos y cuadros. Es posible que pudiera necesitarse de diferentes estilos de rotulado. 2.
Asegúrese que las formas cumplan con el propósito para el cual fueron diseñadas.
3.
Diseñe formas que aseguren un llenado preciso.
4.
Mantenga las formas atractivas.
Las formas estéticas motivan a la gente y hacen que se les dé importancia. Esto significará que cuando la gente llene las formas, se sentirá más satisfecha y además llenará la forma en toda su extensión. Las formas no deben parecer amontonadas, sino más bien, deben dar una apariencia de organización y lógica, aún después de llenarse. Se logra lo anterior, al proporcionar suficiente espacio para alojar respuestas mecanográficas o manuscritas. El uso de diferentes tipos de letra dentro de la misma forma puede mejorar su imagen. Puede motivarse el interés en la forma al separar categorías y subcategorías con líneas de diferente grosor. Los tipos de letra y las líneas de diferentes grosores son elementos útiles de diseño para atraer la atención y hacer que la gente se sienta segura de que llena una forma correctamente.
6.4.2.4. El buen diseño de pantallas Mucho de lo que ya hemos dicho acerca del buen diseño de formularios de entrada puede transferirse al diseño de pantallas. Sin embargo, entre ambos casos existen diferencias, una de ellas y muy importante es la presencia constante de un cursor (un bloque iluminado u otro señalador) en la pantalla, que orienta al usuario sobre la posición actual de acceso. Conforme se introducen los datos en la pantalla, el cursor se irá desplazando un carácter hacia delante de la dirección de la captura. Existen cuatro lineamientos para el diseño de pantallas. Ellos son: 1.
Mantenga la pantalla sencilla La pantalla debe mostrar solo lo que es necesario para la acción particular que se lleva a cabo. 122
Análisis y Diseño de Sistemas
a)
Las tres secciones de la pantalla.
La parte superior de la pantalla contiene la sección del encabezado, parte de la cual se encuentra programada para indicar al usuario en donde se encuentra dentro de la aplicación o paquete. El resto del encabezado puede incluir otros elementos, tales como el nombre del archivo que el usuario ha creado. También debe proporcionarse al usuario la definición de los campos indicando la dimensión previsible del dato para cada campo de la pantalla. La tercera sección de la pantalla se denomina sección de “Comentarios e Instrucciones”. Esta sección puede contener un menú conciso de órdenes que recuerde al usuario las funciones básicas del sistema, tales como el cambio de pantalla, o funciones tales como la grabación de archivos o la conclusión de la sesión de captura. La inclusión de tales funciones básicas permite que los usuarios sin experiencia se sientan más seguros de su habilidad para operar el computador sin llegar a ocasionar errores fatales. b)
Uso de ventanas.
Otra manera de mantener la sencillez de la pantalla es emplear unas cuantas instrucciones básicas que al ser llamadas sobrepongan ventanas, que cubran parcial o totalmente la pantalla activa con nueva información. De esta manera, el usuario comienza la interacción con el sistema, con una pantalla sencilla y de buen diseño, y controlando la complejidad del sistema a través del uso de ventanas múltiples. Al contar con tal ventana se facilita el acceso rápido y correcto, ya que el usuario no necesita recordar aquellos códigos de poco uso o dejar la pantalla para consultar una lista impresa, antes de completar la entrada de los datos. Además, el sistema desarrollado puede programarse para aceptar solo a los códigos de clasificación listados en la pantalla y de manera automática, presentar la ventana si el código tecleado es incorrecto. Esto evita los errores que pudieran ocurrir si cualquier código de clasificación fuera aceptado por el sistema. Al usar otra orden o al presionar otra tecla ya antes definida, el operador limpia las ventanas informativas y regresa a la pantalla original. 2.
Conservar consistencia en la pantalla.
El segundo lineamiento para un buen diseño de pantalla es el mantenimiento de una imagen consistente. Si el trabajo de los usuarios se basa en formas en papel, las pantallas deben apegarse a lo que se muestra en el papel. La consistencia de la pantalla también se mantiene, si la información se localiza en la misma área cada vez que se accesa una nueva pantalla. 3.
Facilidad de movimiento.
El tercer lineamiento para un buen diseño de pantalla es la facilidad de desplazarse con sencillez entre una pantalla y otra. a)
Desplazamiento
Básicamente consiste en tener el control de las teclas de desplazamiento que provee el teclado y hacer que se comporten de forma natural, flecha a izquierda desplaza el cursor hacia la izquierda y así sucesivamente. b)
Solicitud de mayor detalle
Otra de las técnicas básicas de movimiento entre pantallas, permite que los usuarios se desplacen con rapidez a otras pantallas, mediante la colocación del cursor junto a un comando 123
Análisis y Diseño de Sistemas
específico. Por ejemplo, colocar el cursor sobre el nombre del empleado que haya elegido y presionar la tecla correspondiente a un comando preestablecido. Este comando lo llevará a una nueva pantalla, la cual corresponde al registro detallado del empleado elegido. c)
Diálogo en pantalla
El uso de diálogos entre el usuario y el computador facilita cierta clase de movimientos entre las pantallas. 4.
Diseño de una pantalla atractiva
Las pantallas deben atraer al usuario y mantener su atención. Esto se logra con el uso de espacios abiertos que rodeen los campos de captura de datos, de tal forma que la pantalla no se vea sobrecargada. Nunca se debe saturar una forma, así como nunca se debe saturar una pantalla. Siempre será mejor utilizar pantallas múltiples, que amontonar todo en una sola. Existen múltiples recursos para lograr esto, algunos de ellos son: a) b) c)
El vídeo inverso y los cursores que destellan El uso de diferentes tipos de letras El uso de imágenes en el diseño de pantallas
Utilice imágenes típicas que los usuarios puedan interpretar fácilmente. Las imágenes para una aplicación particular deben limitarse a no más de veinte formas reconocibles, de esta forma el vocabulario de imágenes no se saturará y puede desarrollarse un buen esquema de codificación. Utilice de manera consistente las imágenes que a todo lo largo de la aplicación deban aparecer juntas. Esto asegura continuidad y comprensión. En general las imágenes son útiles si conllevan un significado. d)
El uso de color en el diseño de la pantalla: Las mejores combinaciones son:
negro sobre amarillo
verde sobre blanco
azul sobre blanco
blanco sobre azul
amarillo sobre negro
El color debe considerarse como una manera importante de contrastar; resaltar datos y campos de importancia; apuntar errores y permitir codificaciones especiales para las entradas.
124
Análisis y Diseño de Sistemas
6.5.
Diseño Procedimental
El diseño procedimental transforma los elementos estructurales en una descripción procedimental del software. El diseño procedimental se realiza después de que se ha establecido la estructura del programa y de los datos. Define los algoritmos de procesamiento necesarios. Permite definir un módulo sin entrar en excesivos detalles. La interfaz del módulo contiene los parámetros de entrada y de salida, mientras la función del módulo describe las tareas que este lleva a cabo. Se permite el uso de tablas, fórmulas, lenguaje natural, etc. Permite variar el grado de formalismo en la definición del módulo, generalmente, dando bastante libertad a los programadores. Su inclusión como comentario en el código final facilita el mantenimiento. Esta documentación permite a los usuarios, analistas, diseñadores y programadores ver el sistema, su software y los procedimientos, sin necesidad de una interacción directa. Cierta documentación proporciona un panorama del sistema, otra contiene los procedimientos que detalla lo que debe realizarse para operar el software y una distinta detalla el código de programa utilizado. No existe una sola técnica sencilla y estandarizada para la documentación. Dentro del análisis de sistemas se usan técnicas de documentación para la especificación de procesos, pero los requerimientos que estas especificaciones deben satisfacer son diferentes a las del diseño. Una buena técnica de especificación de proceso debe: •
expresarse de una manera que pueda verificar tanto el analista como el usuario
•
poder ser comunicada efectivamente al amplio publico que este involucrado (usuarios, auditores, personal de control de calidad, entre otros)
•
no imponer decisiones de diseño e implantación
Debido a estos factores, las técnicas más utilizadas en esta fase son: lenguaje estructurado o seudocódigo, árboles de decisión y tablas de decisión. Pero además de utilizar una forma procedural, se debe adicionar una forma gráfica que permita delimitar los distintos objetos de programa que participan en la función del módulo, propiamente tal. Esta forma se denomina “Diagrama de Bloques”, la cual permite a través de dibujos simples los elementos participantes en un proceso determinado. Los elementos gráficos son: Proceso o Módulo
nombre
Dispositivo de Entrada
Pantalla
nombre
Archivo de Datos
nombre
Base de Datos
nombre
nombre
nombre
125
Análisis y Diseño de Sistemas
Informe o Listado (Impresión)
nombre
Dispositivo de Respaldo
nombre
Dirección de la Información
Documentos de Entrada
Otra manera de especificar un módulo es a través de un lenguaje de manipulación de datos, el cual es ofrecido por la gran mayoría de los administradores de bases de datos (DBMS), denominado SQL (Secuential Query Language).
6.6.
Diseño Arquitectónico.
El Diseño Arquitectónico o estructural define las relaciones entre los principales elementos estructurales del programa. El objetivo principal del diseño estructural es desarrollar una estructura de programa modular y representar las relaciones de control entre los m ódulos. Concluido el diseño se genera el código fuente y para integrar y validar el software, se llevan a cabo pruebas del software.
126
Análisis y Diseño de Sistemas
7.
Programación
Cuando termina la etapa de diseño, normalmente comienza la etapa de programación y prueba. La fase de programación o implantación de un proyecto involucra la escritura de instrucciones en un lenguaje de programación para implantar lo que el analista ha especificado y el diseñador ha organizado en módulos. Durante esta fase el analista tiene un papel importante. En el caso extremo, una vez terminada su labor de especificación del sistema pasa algún tiempo con el equipo de diseño durante las primeras etapas del diseño, pero luego deberá comenzar con otro proyecto. Sin embargo, existen razones por las cuales el analista debe permanecer involucrado en el proyecto al comenzar la actividad de programación: •
Por ser líder del proyecto debe estar involucrado en el mismo hasta la prueba final, la aceptación y entrega al usuario final. Además debe verificar que el código es de alta calidad y que las pruebas a los programas se efectuaron de manera adecuada.
•
El analista forma parte del grupo que escribe casos de prueba que se usaran para probar los programas. Es probable que se adhieran en esta actividad uno o más usuarios por ser los más aptos para pensar en casos excepcionales y pocos usuales de prueba. El desarrollo de pruebas puede empezar tan pronto como se termina la especificación. Dado a que por lo pronto solo conoce el contenido lógico de las entradas y salidas, debe esperar a que el modelo de implantación del usuario quede terminado para conocer el formato físico de los mismos y poder conocer las restricciones operacionales (tiempo de respuesta, volúmenes, etc.) que se necesitan probar.
•
El analista, por estar involucrado desde el principio en el proyecto, es el candidato ideal para estar involucrado en el desarrollo de manuales para el usuario, preparación de los usuarios o en la planeación de la instalación del nuevo sistema y conversión de datos desde el otro sistema. En la mayor parte de los casos, esto puede llevarse a cabo de manera paralela con la programación y prueba del nuevo sistema.
•
En el caso de que la especificación no se comprenda, pueda estar incompleta, ser inconsistente o contradictoria es necesario que el programador consulte periódicamente para revisar y aclarar las especificaciones. Otra variante puede ser la solicitud de cambio de especificación por ser demasiado difícil de implantar.
•
Puede que los usuarios cambien los requerimientos, incluso cuando los programadores están implantando lo que decían querer.
Así como el análisis estructurado involucra una progresión continua de modelado de alto nivel (el diagrama de flujo de datos de nivel superior) a aspectos de modelado de bajo nivel (especificaciones de procesos y diccionario de datos) y el proceso de diseño involucra modelos de diseño que van desde diagramas de estructura de alto nivel hasta formas de bajo nivel como el pseudocódigo y diagrama de flujo, la programación debe seguir este mismo patrón. Se escriben módulos ejecutivos de alto nivel. Luego se desarrollaran los módulos de bajo nivel que llevan a cabo cálculos detallados, validan datos de entrada, etc. Las cuestiones que se deben tomar en cuenta en programación, independientemente del lenguaje utilizado son: - Productividad : consiste en escribir mas software, mas rápidamente. Por lo tanto, a la hora de elegir un lenguaje, se debe adoptar uno que promueva la productividad. Exceptuando algunos casos raros, la productividad se considera actualmente más importante que la eficiencia.
127
Análisis y Diseño de Sistemas
7.1.
Elementos de Aseguramiento de la Calidad
Eficiencia: este aspecto sigue siendo muy importante en sistemas de tiempo real y aquellos que procesan grandes volúmenes de información. Para aplicaciones de estos tipos resulta importante minimizar la cantidad de tiempo de CPU requerido por el programa. También puede ser importante minimizar la utilización de memoria, al igual que la de otros recursos como el disco. Esta meta usualmente entra en conflicto con otras. Una mayor eficiencia en un programa puede hacer que sea menos mantenible y menos portable, que tenga mayor número de errores y reduzca la productividad de la persona que escribe el programa. Corrección:
es importante que el lenguaje revise cuidadosamente todo el código y detecte inconsistencias, referencias ilegales, exija la declaración de variables, entre otros controles. Esto es indispensable principalmente en aplicaciones donde un error puede ser critico. Portabilidad : aspecto importante que permite correr la aplicación en distintos tipos de computadoras. Sin embargo no existe un lenguaje universalmente portátil; siempre hay forma de que el programador aproveche las características especiales de una computadora o un sistema operativo específicos. Por ello, si la portabilidad es un factor importante, además de tener en cuenta el lenguaje se debe analizar el tipo de programación. Mantenibilidad : por durar mucho tiempo los sistemas, el software debe mantenerse.
7.2.
Niveles de la organización que construye el sistema
La construcción de sistema mediante una organización constituida por niveles es una forma de aprovechar más eficientemente los recursos humanos aprovechando sus experiencias y permitiendo una actualización constante en las nuevas tecnologías. Consiste en dejar que la gente con mayor experiencia (analistas/diseñadores) realice las tareas de mayor nivel y dejar la de menor nivel a los más novatos (programadores). Esto permite que la programación no se vuelva en una tarea mecánica consistiendo es la simple traducción de las especificaciones. De esta manera la gente mayor experimentada hará no solo las tareas de análisis de alto nivel sino también las de diseño de alto nivel e incluso escribir código de alto nivel. Por otro lado, los novatos estarían involucrados en el proyecto desde el principio (tan pronto como se terminen las tareas de análisis de alto nivel) y participarían en el trabajo de escribir especificaciones de procesos y módulos, en desarrollar entradas para el diccionario de datos y escribir código para los módulos de nivel inferior. Esto permite que los novatos hagan tareas creativas y codifiquen sus propias especificaciones e involucrándolos en el proceso de análisis desde las etapas tempranas de su carrera. Simultáneamente obligara a los más maduros estar en contacto con la tecnología al hacer tareas de diseño y programación.
128
Análisis y Diseño de Sistemas
8.
Prueba.
La prueba, como su nombre lo indica, involucra ejercitar el sistema para asegurar que produzca las salidas apropiadas y exhiba el comportamiento adecuado para una gama amplia de entradas. Pruebas son un factor crítico para determinar la calidad del software, entonces el objetivo de una prueba es descubrir algún error. Un caso de prueba es bueno cuando su ejecución conlleva una probabilidad elevada de encontrar un error. El éxito de la prueba se mide en función de la capacidad capacidad de detectar un error que estaba oculto. ocult o. El diseño de casos de prueba para la verificación del software puede significar un esfuerzo considerable (cerca del 40% del tiempo total de desarrollo). Existen fundamentalmente dos enfoques: •
Prueba de la caja blanca
•
Prueba de la caja negra
Combinar ambos enfoques permite lograr mayor fiabilidad.
8.1.
Pruebas de caja blanca
La prueba de la caja blanca usa la estructura de control del diseño procedural para derivar los casos de prueba. La idea es confeccionar casos de prueba que garanticen que se verifican todos los caminos llamados independientes. Verificaciones para cada camino independiente: •
Probar sus dos facetas desde el punto de vista lógico, es decir, verdadera y falsa.
•
Ejecutar todos los bucles en sus límites operacionales
•
Ejercitar las estructuras internas de datos.
Consideraciones: • Los errores lógicos y las suposiciones incorrectas son inversamente proporcionales a la probabilidad de que se ejecute un camino del programa. •
A menudo creemos que un camino lógico tiene pocas posibilidades de ejecutarse cuando, de hecho, se puede ejecutar de forma regular.
8.1.1.
•
Los errores tipográficos son aleatorios.
•
Tal como apuntó Beizer, “los errores se esconden en los rincones y se aglomeran en los límites”.
Prueba del camino básico La prueba del camino básico es una técnica de prueba de la caja blanca propuesta por Tom McCabe.
La idea es derivar casos de prueba a partir de un conjunto dado de caminos independientes por los cuales puede circular el flujo de control. Camino independiente es aquel que introduce por lo menos una sentencia de procesamiento (o condición) que no estaba considerada en el conjunto de caminos independientes calculados hasta ese momento. Para 129
Análisis y Diseño de Sistemas
obtener el conjunto un conjunto de caminos independientes se construirá el Grafo de Flujo asociado y se calculará su Complejidad Ciclomática. Cada nodo del grafo corresponde a una o más sentencias de código fuente. Cada nodo que contiene una condición se denomina nodo predicado. Cualquier representación del diseño procedural se puede traducir a un grafo de flujo. Si se diseñan casos de prueba que cubran los caminos básicos, se garantiza la ejecución de cada sentencia al menos una vez y la prueba de cada condición sus dos posibilidades (verdadera y falsa).
8.1.2.
Pruebas de estructura de control
La técnica de prueba del camino básico del punto anterior es una de las muchas existentes para las pruebas de la estructura de control. Aunque sea alta la efectividad de la prueba del camino básico, no nos asegura completamente la corrección del software. Veremos a continuación otras variantes de la prueba de la estructura de control. Estas variantes amplían el abanico de pruebas mejorando la fiabilidad de las pruebas de caja blanca.
8.1.3.
Prueba de Condiciones
La prueba de condiciones es un método de diseño de casos de prueba que ejercita las condiciones lógicas contenidas en el módulo de un programa. Los tipos de errores que pueden aparecer en una condición son los siguientes:
8.1.4.
•
Existe un error en un operador lógico (que sobra, falta o no es el que corresponde).
•
Existe un error en un paréntesis lógico (cambiando el significado de los operadores involucrados).
•
Existe un error en un operador relacional (operadores de comparación de igualdad, menor o igual, etc.).
•
Existe un error en una expresión aritmética.
Prueba de Bucles Pruebas para Bucles simples. (N es el número máximo de iteraciones permitidos por el bucle) •
Pasar por alto totalmente el bucle
•
Pasar una sola vez por el bucle
•
Pasar dos veces por el bucle
•
Hacer m pasos por el bucle con m < n
•
Hacer n-1, n y n + 1 pasos por el bucle
Pruebas para Bucles anidados •
Comenzar en el bucle más interior estableciendo los demás bucles en sus valores mínimos. 130
Análisis y Diseño de Sistemas
•
Realizar las pruebas de bucle simple para el más interior manteniendo los demás en sus valores mínimos.
•
Avanzar hacia fuera confeccionando pruebas para el siguiente bucle manteniendo todos los externos en los valores mínimos y los demás bucles anidados en sus valores típicos.
•
Continuar el proceso hasta haber comprobado todos los bucles.
Pruebas para Bucles concatenados Siempre que los bucles concatenados sean independientes se puede aplicar lo relativo a bucles simples/anidados. En caso de ser dependientes se evaluarán como bucles anidados. Pruebas para Bucles no estructurados Siempre que se usen los mecanismos que aporta la programación estructurada, este tipo de bucles no estarán presentes.
8.2.
Pruebas de caja negra
Los métodos de la caja negra se enfocan los requisitos funcionales del software. La prueba de la caja negra intenta encontrar errores de los siguientes tipos:
8.2.1.
•
Funciones incorrectas o inexistentes.
•
Errores relativos a las interfaces.
•
Errores en estructuras de datos o en accesos a bases de datos externas.
•
Errores debido al rendimiento.
•
Errores de inicialización o terminación.
Partición Equivalente
La partición equivalente es un método que divide el campo de entrada de un programa en clases de datos a partir de los cuales se pueden derivar casos de prueba. La partición equivalente se enfoca pues a definir casos de prueba para descubrir clases de errores. Se define una condición de entrada (valor numérico específico, rango de valores, conjunto de valores relacionados o condición lógica). Las clases de equivalencia se pueden definir de acuerdo a las siguientes directrices: •
Si una condición de entrada especifica un rango, se define una clase de equivalencia válida y dos no válidas.
•
Si la condición de entrada es un valor específico, se define una clase de equivalencia válida y dos no válidas.
•
Si la condición de entrada especifica un miembro de un conjunto, se define una clase de equivalencia válida y otra no válida.
•
Si la condición de entrada es lógica, se define una clase válida y otra no válida. 131
Análisis y Diseño de Sistemas
8.2.2.
Análisis de Valores Límite
La técnica de Análisis de Valores Límites selecciona casos de prueba que ejerciten los valores límite dada la tendencia de la aglomeración de errores en los extremos. Complementa la de la partición equivalente. En lugar de realizar la prueba con cualquier elemento de la partición equivalente, se escogen los valores en los bordes de la clase. Se derivan tanto casos de prueba a partir de las condiciones de entrada como con las de salida. Directrices: •
Si una condición de entrada especifica un rango delimitado por los valores a y b, se deben diseñar casos de prueba para los valores a y b y para los valores justo por debajo y justo por encima de ambos. • Si la condición de entrada especifica un número de valores, se deben desarrollar casos de prueba que ejerciten los valores máximo y mínimo además de los valores justo encima y debajo de aquéllos. • Aplicar las directrices anteriores a las condiciones de salida. Componer casos de prueba que produzcan salidas en sus valores máximo y mínimo. • Si las estructuras de datos definidas internamente tienen límites prefijados (por ej., un array de 10 entradas), se debe asegurar diseñar un caso de prueba que ejercite la estructura de datos en sus límites.
8.2.3.
Conclusiones
La aplicación de casos de pruebas apropiados es esencial para la validación y verificación del sistema construido. • Las pruebas normalmente deberían ocupar cerca del 40% del tiempo total de desarrollo de una aplicación. Aún así, no puede asegurarse un 100% de fiabilidad para el sistema. • En sistemas donde la fiabilidad y corrección del software es un aspecto crítico las pruebas deben ser más exhaustivas. En estos casos pueden aplicarse también pruebas de comparación. • Las herramientas que reducen los tiempos de prueba son muy valiosas. Se pueden distinguir varias categorías de herramientas de prueba: analizadores estáticos, auditores de código, generadores de archivos de prueba, generadores de datos de prueba y controladores de prueba.
8.3.
Proceso de Prueba
La evaluación debe ser de todos los elementos del sistema; ya sean programas de aplicación recién escritos o sus modificaciones, así como los nuevos manuales de procedimientos, el nuevo hardware o interfaces del sistema. No es suficiente una prueba aleatoria de prueba y error. La evaluación se debe llevar a cabo a lo largo del desarrollo del sistema para identificar aquellos problemas desconocidos, no para demostrar la perfección de los programas, de los manuales o del equipo. Es probable que el proceso de prueba del sistema tome tanto como la mitad del tiempo programado para su desarrollo, dependiendo de que tan cuidadosamente se hayan hecho las actividades iniciales de análisis, diseño y programación. En el caso de un buen trabajo en dichas etapas, la prueba será para verificar que no haya errores. Si, por otro lado, se hizo un trabajo imperfecto entonces la prueba se vuelve iterativa: la primera tanda de pruebas muestra la presencia de errores, y las posteriores verifican si los programas corregidos funcionan correctamente.
132
Análisis y Diseño de Sistemas
En muchos casos, el analista forma parte del grupo que escribe casos de prueba que se usaran para probar los programas. Es probable que trabaje de manera cercana a los usuarios para desarrollar un conjunto eficaz y de gran alcance de casos de prueba. El desarrollo de pruebas puede llevarse en paralelo con las actividades de implantación del diseño y la programación, para que, cuando los programadores terminen de escribir sus programas y de realizar sus propias pruebas locales, el equipo del analista/usuario este listo con sus propias casos de prueba. La evaluación se realiza a diferentes niveles y a varios intervalos, aun antes de que el sistema entre en operación, de todos los programas en cuanto a su diseño con datos de prueba y verificar si los módulos se enlazan entre sí tal como fue planeado. También debe probarse el sistema como una unidad, evaluando las interfaces entre los subsistemas, la operación adecuada de la salida, la utilidad y comprensión de la documentación del sistema y de la salida. Los programadores, analistas, operadores y usuarios juegan diferentes papeles en los diferentes aspectos de la evaluación del software. La evaluación del hardware comúnmente se proporciona como servicio de los vendedores de equipo, quienes harán sus propias pruebas, cuando se instale el equipo.
8.3.1.
Estrategias de prueba
Las dos estrategias de prueba más comunes se conocen como prueba ascendente y descendente. El enfoque ascendente empieza por probar los módulos individuales pequeños separadamente; esto se conoce como prueba de unidades, de módulos o de programas. Luego los módulos se combinan para formar unidades cada vez más grandes que se probaran en masa; esto se conoce como prueba de subsistema. Finalmente, todos los componentes del sistema se combinan para probarse; esto se conoce como prueba de sistema y suele estar seguido de las pruebas de aceptación donde se permite al usuario usar sus propios casos de prueba para verificar que el sistema este trabajando de manera correcta. El enfoque de prueba descendente empieza con el esqueleto del sistema; es decir que se supone que se han desarrollado los módulos ejecutivos de alto nivel del sistema, pero que los de bajo nivel existen solo como módulos vacíos. Dado a que muchas de las funciones detalladas no se han implementado, las pruebas iniciales son muy limitadas; el propósito es solamente comenzar a ejercitar las interfaces entre los subsistemas principales. Las pruebas siguientes abarcan y tratan aspectos cada vez mas detallados del sistema. Enfoque que en la actualidad es preferible. Tanto en el enfoque ascendente como descendente deben llevarse a cabo las siguientes pruebas, considerando que en el descendente el detalle se ira incrementando a medida que el desarrollo avance:
8.3.1.1. Prueba del programa programa con datos datos de prueba. Una buena parte de la responsabilidad de evaluación recae en el autor original de cada programa. El analista sólo sirve como orientador o coordinador para asegurar que se implanten las técnicas de evaluación adecuadas y será poco probable que de manera personal participe en este nivel de evaluación. En esta etapa, el programador debe realizar una prueba de escritorio, siguiendo en el papel paso a paso el programa para verificar si las rutinas trabajan como se planeó. Luego desarrolla datos de prueba válidos como no válidos para ver si las rutinas básicas funcionan y también generar errores. Si la salida de la rutina principal es satisfactoria, pueden agregarse datos de prueba para probar otras rutinas. Los datos de prueba deben examinar los valores mínimos y máximos posibles, así como todas las variaciones en formato y en los códigos. La salida debe verificarse cuidadosamente y no suponer que sea correcta. A todo lo largo del proceso, el analista debe verificar la salida, posibles errores orientando al programador para que realice cualquier modificación. 133
Análisis y Diseño de Sistemas
8.3.1.2. Prueba del enlace con datos de de prueba. Las evaluaciones de enlace verifican que los programas sean interdependientes y funcionen integralmente tal como fue planeado. Para la prueba de enlace se utiliza una pequeña cantidad de datos de prueba, generalmente desarrollados por el analista de sistemas para examinar las especificaciones del sistema, así como del programa. El examen de todas las combinaciones puede implicar varios pasos a través del sistema. Puede ser muy difícil darle un seguimiento a un problema, si se intenta evaluar todo de un solo paso. El analista crea datos de prueba para cubrir todo un espectro de situaciones de proceso durante esta prueba. Primero prueba los datos típicos para ver si el sistema puede manejar transacciones normales; aquellas que cubran el mayor volumen de trabajo si el sistema trabajara con transacciones normales. Luego agrega variaciones, incluyendo datos inválidos para asegurar que el sistema detecta los errores de manera adecuada. Prueba del sistema completo con datos de prueba: en esta etapa se encuentran activamente involucrados los operadores y usuarios finales. Se utiliza un paquete de datos de prueba credo por el analista con el propósito de evaluar los objetivos del sistema. Factores a considerar: •
Verificar que los operadores cuentan con una documentación adecuada en los manuales de procedimientos para asegurar una operación correcta y eficiente
•
Verificar si los manuales de procedimientos son suficientemente claros como para comunicar la manera de preparar los datos de entrada
•
asegurarse de que el sistema soportará el flujo de carga o debe modificarse
•
determinar si la salida es correcta; esto es, que todos los usuarios comprendan en forma general como llegará a ser la salida
Se debe programar un tiempo adecuado para la evaluación del sistema. Comúnmente se suele obviar cuando la instalación del sistema se encuentra fuera de programa, contra una fecha límite. La evaluación del sistema incluye la confirmación de todos los estándares de calidad para el desempeño del sistema, tal y como fueron establecidos cuando se definieron las especificaciones iniciales del sistema. Cada uno de los involucrados deberá una vez más, estar de acuerdo con la forma de determinar si el sistema realiza los que supuestamente debería de hacer. Esto incluye la magnitud del error, los tiempos de proceso, la facilidad de uso, el ordenamiento adecuado de las transacciones, tiempos de paro aceptables, la comprensión de los manuales de procedimientos, etc.
8.3.1.3. Prueba del sistema completo con datos reales. Es de gran utilidad que el sistema interactúe con datos reales, los cuales han sido procesados con éxito por el sistema existente. Esto permite una comparación precisa con lo que es una salida procesada correctamente, y una buena idea de cómo deben manejarse los datos reales. Como ocurre con los datos de prueba, sólo deben utilizarse una pequeña cantidad de datos reales en este tipo de evaluaciones del sistema. No es suficiente entrevistar al usuario acerca de cómo interaccionarán con el sistema; este es un importante periodo para evaluar la manera en que los usuarios finales y operadores interactúan con el sistema. Elementos a observar: facilidad de aprendizaje del sistema, ajuste de factores ergonómicos; las reacciones del usuario a la realimentación, incluyendo lo que ocurra cuando se presenta en pantalla un mensaje de error y lo que ocurrirá cuando el usuario se entera de que el sistema está ejecutando sus comandos. También se debe tener en cuenta la manera en que el usuario reacciona al tiempo de respuesta del sistema, así como el lenguaje de las respuestas. 134
Análisis y Diseño de Sistemas
Los manuales de procedimientos deben ser evaluados durante las consultas con datos reales. Estos manuales deben ser útiles y comprensibles, organizados de diferentes maneras para los usuarios que con distintos enfoques interaccionan con el sistema. Dentro de estas cuatro fases se realizan los siguientes tipos de prueba: 1. Prueba de funcionalidad. Asegura que el sistema realiza las funciones normales de manera correcta. Así los casos de prueba se desarrollan y alimentan el sistema; las salidas se examinan para ver si son correctas. 2. Prueba de recuperación. Asegura que el sistema puede recuperarse adecuadamente de diversos tipos de fallas. Son de vital importancia en los sistemas reales de gran procesamiento de información. Este tipo de prueba puede requerir que el equipo que realiza el proyecto simule o provoque fallas de hardware, de corriente, fallas en el sistema operativo, etc. 3. Prueba de desempeño. Asegura que el sistema puede manejar el volumen de datos y transacciones de entrada especificados en el modelo de implantación del usuario, además de asegurar que tenga el tiempo de respuesta requerido. Esto puede requerir que el equipo que realiza el proyecto simule una gran red de terminales en línea, de manera que se pueda simular la operación del sistema con una gran carga. 4. Prueba no exhaustiva. Lo ideal es generar casos de prueba para cubrir cada entrada posible y cada combinación posible de situaciones que el sistema pudiera enfrentar alguna vez. Luego se probaría de manera exhaustiva para asegurar que su comportamiento sea perfecto. Sin embargo esto es imposible, en especial en sistemas grandes. Lo que se debe crear en un conjunto de pruebas que cubran un gran porcentaje de los diferentes caminos de decisión que pueda tomar, o lo que es lo mismo, los casos deben seleccionarse cuidadosamente para pasar por tantos caminos lógicos como sea posible. Esto hace que el modelo de requerimientos del usuario y los diversos modelos de implantación sean tan correctos como se pueda. Para lograr realizar las pruebas de manera efectiva debe, el equipo de desarrollo de sistema necesita tres cosas: un plan de prueba, descripciones de prueba y procedimientos de prueba. Un plan de prueba es un documente organizado que describe las actividades de prueba, conteniendo: •
Propósito: cual es el objetivo de la prueba y que parte del sistema se esta probando.
•
Localización y horario de la prueba
•
Descripciones: de las entradas al sistema y las salidas.
•
Procedimientos: como deben prepararse y presentar los datos de prueba al sistema.
•
Como capturar los resultados de salida, como analizar los resultados.
Otros conceptos usados para aumentar el proceso estándar de prueba: •
Recorridos y revisiones: es una forma de supervisión hecha por un grupo revisor de productos técnicos (diagramas de flujo, diagramas de estructura, programas) para descubrir errores
•
Inspecciones: son similares a los recorridos pero tienen un plan más formal de puntos a examinar en el programa, la especificación o el diseño antes de que se pueda aprobar. 135
Análisis y Diseño de Sistemas
•
Pruebas de corrección: este tipo de prueba es altamente costoso porque consiste en desarrollar pruebas rigurosas de la corrección de un programa. Solo se justifica realizar en sistemas de alto riesgo o máxima seguridad.
136
Análisis y Diseño de Sistemas
9.
Implantación
9.1.
Conversión
La conversión es la tarea de traducir los archivos, formatos y bases de datos actuales del usuario al formato que el nuevo sistema requiere. Dependiendo de la cantidad de datos será el grado de dificultad de esta tarea. Al existir datos que requieren conversión, se necesita un plan de conversión que debe desarrollarse al terminarse el modelo de implantación, el cual debe cubrir los siguientes puntos:
9.2.
•
Si el usuario ya tiene datos existentes asociados con un sistema existente, probablemente querrá usarlos hasta el último momento posible antes de pasarse al nuevo sistema. Por ello es difícil considerar los datos existentes como estáticos.
•
Pudiera haber un volumen tan grande de datos existentes que sea impráctico considerar convertirlo todo a la vez. Los archivos y registros podrían tener que convertirse en forma incremental. Esto requiere de una planeación y coordinación cuidadosa.
•
La conversión debe llevarse a cabo de una manera automatizada; esto sólo se puede hacer si los archivos y datos actuales existen en algún formato automatizado. De ser así, debiera ser fácil escribir un programa para traducir los archivos actuales al formato requerido por el sistema nuevo. Sin embargo, es difícil esta forma de conversión, sobre todo si los archivos existentes se encuentran en distintas computadoras, en distintos formatos, etc.
•
Los datos existentes pueden contener errores. Por ello, parte del proceso de conversión es la detección y corrección de errores, que puede volver el proceso aún más difícil y retardar el proceso.
•
Además de convertir archivos existentes, puede ser necesario convertir programas y procedimientos existentes.
Capacitación
La capacitación es la tarea final del equipo de desarrollo del sistema. Consiste en la preparación de los usuarios, del personal de operaciones, los programadores de mantenimiento y varios niveles de administración. Se debe realizar un plan de capacitación es cual debe estar lista al mismo tiempo (si es que no antes) de que el sistema empiece a operar. Este plan debe contemplar los siguientes aspectos: •
Sería conveniente que a los manuales del usuario y guías de referencia se sumen clases y seminarios en vivo, además de charlas de orientación para administradores y personas que necesiten estar al tanto del sistema aunque no interactúen con él a diario. Para lo cual se cuenta con una serie de medios didácticos modernos: VHS o DVD, enseñanza por computadora, e incluso versiones de simulacro del sistema real para que el usuario pueda ingresar transacciones e interactuar con él. La capacitación podría consistir en opciones de ayuda altamente elaboradas integradas al sistema mismo.
•
Lo recomendable es que personal integrante del equipo de desarrollo del sistema participe en el proceso por ser los mejores expertos sobre todo como funciona el sistema, aunque no siempre son los mejores maestros.
•
La capacitación debe hacerse en un tiempo relativamente corto, y, próxima al uso del nuevo sistema. Se deberá negociar con ellos un programa de actividades de capacitación.
137
Análisis y Diseño de Sistemas
9.3.
Instalación
La instalación es la actualización física del sistema de información existente en uno nuevo modificado. Se requiere hacer lo siguiente: •
Preparar la sede de la computadora. Esto requiere construir o rentar un local de cómputo con la corriente, espacio, iluminación y control ambiental adecuados.
•
Preparación de la sede del usuario, sobre todo cuando el sistema es en línea y se requiere terminales e impresoras en el área de trabajo del usuario.
•
La instalación del hardware, cuando el sistema requiere su propia computadora, usualmente la efectúa el proveedor cuando esta tarea es compleja.
•
La instalación de software en las computadoras adecuadas y prepararlas para su operación.
En el caso de sistemas grandes y distribuidos, pudiera haber una sede de computadoras central y docenas e incluso cientos de sedes de usuarios. En tal caso puede ser necesario instalar el sistema por etapas, con la visita de equipos de instalación especialmente capacitados a cada sede de usuarios de acuerdo a un programa preestablecido. La instalación no será inmediata, se hará gradualmente durante un período de tiempo. Existen cinco enfoques de conversión de sistemas: 1. Conversión Total. Significa que para una fecha específica el sistema anterior se retira y el nuevo se pone en uso. Este tipo funciona mejor cuando pueden tolerarse ciertos retrasos en los procesos. La ventaja es que no hay posibilidad de que los usuarios sigan utilizando el viejo sistema. Sin embargo es un enfoque riesgoso porque si se producen errores los retrasos serán significativos por no haber una forma alternativa de procesamiento; el impacto en los usuarios será alto por ser el cambio brusco; no hay forma de realizar comparaciones de los nuevos resultados con los anteriores. 2. Conversión Paralela. Este se refiere al uso del sistema anterior y del nuevo al mismo tiempo. Sólo es óptimo cuando se reemplaza un sistema manual. Durante un periodo se observan los resultados y una vez se son iguales se pone en uso el nuevo y se descarta el sistema viejo. El costo de operar dos sistemas simultáneamente es alto y puede resultar agotador para los usuarios. La comparación puede ser difícil, a menos que el sistema viejo sea manual. Los usuarios continuarán interesados en le sistema anterior por estar mas familiarizados con mismo. 3. Conversión Gradual. Intenta combinar las ventajas de los dos métodos anteriores. El número de transacciones se incrementa en forma gradual conforme el sistema se va implantado. Permite que los usuarios se familiaricen en forma gradual con el nuevo sistema y la posibilidad de recuperarse de los errores, sin grandes tiempos muertos. Este enfoque puede requerir demasiado tiempo para la implantación del nuevo sistema. 4. Conversión por Prototipos Modulares. Considera la construcción de un prototipo modular operativo para el cambio gradual. Conforme se modifica cada módulo y se acepta, se pone en operación. Este permite una prueba completa antes de utilizarse. Los usuarios se familiarizan con los módulos conforme éstos se vuelven operativos.
138
Análisis y Diseño de Sistemas
5. Conversión Distribuida. Este contempla muchas instalaciones del mismo sistema. La conversión se realiza en un solo sitio. Una vez concluida con éxito, se realiza otra conversión en los otros sitios. Permite detectar problemas y evitarlos en otros sitios. Sin embargo, cada sitio tendrá sus propias peculiaridades.
139
Análisis y Diseño de Sistemas
10.
Mantención
Una analista al crear un sistema debe tener la visión de realizar un diseño comprensible y duradero que sirva para las necesidades actuales y las proyectadas durante varios años. Parte de su experiencia debe encaminarse a pronosticar cuáles necesidades llegarán a aparecer e incorporar cierta flexibilidad y adaptabilidad en el sistema. Cuánto mejor sea el diseño del sistema, más fácil será darle mantenimiento y se requerirá menos dinero de la empresa para su mantenimiento. La reducción de los costos de mantenimiento es una preocupación importante de las empresas, ya que el mantenimiento del software, por sí sólo, puede devorar hasta el 50 % del presupuesto total de procesamiento de datos. En el mantenimiento se reflejarán costos excesivos de manera directa sobre el diseñador del sistema. Aproximadamente el 70% de los errores de software se han atribuido a un diseño inadecuado. Desde una perspectiva de sistemas, tiene sentido detectar y corregir los errores de diseño en el software, en su fase inicial, cuando aún es menos costoso dejar que los errores permanezcan sin identificarse hasta realizar el mantenimiento. El mantenimiento se realiza para mejorar un software existente, más que para responder a una crisis o falla de sistema. Conforme cambian los requerimientos de los usuarios, el software y la documentación también deberían cambiar, como parte del trabajo de mantenimiento. Además los programas podrían volverse a codificar para mejorar su eficiencia sobre el programa original. Más de la mitad del mantenimiento se orienta a tales tareas de perfeccionamiento. El mantenimiento también se realiza para actualizar el software en respuesta a los cambios de la organización. El mantenimiento de emergencia y adaptativo cubre menos de la mitad del mantenimiento total del sistema. Parte de las tareas del analista es asegurar que existan canales y procedimientos adecuados para permitir una retroalimentación acerca de las necesidades de mantenimiento. Los usuarios y operadores deben ser capaces de comunicar de manera sencilla los problemas y sugerencias a quienes les dan mantenimiento al sistema. Será de utilidad que el analista establezca un esquema de clasificación para jerarquizar la importancia del mantenimiento requerido. Las peticiones clasificadas permitirán a los programadores del mantenimiento comprender cómo los usuarios por sí mismos, consideran la importancia de sus peticiones. Estas peticiones pueden tomarse en cuenta junto con otros factores a la hora de programar el mantenimiento. Una vez instalado el sistema y puesto en operación, los analistas dejan el proyecto. Algunos programadores se quedan para el mantenimiento. Pero la mayoría de los analistas, diseñadores y programadores se transfieren a otros nuevos proyectos. Pero el trabajo realizado debe mantenerse durante loa 5, 10 o 20 años de vida operacional del sistema, tanto los programas como las especificaciones. A la hora de realizar modificaciones, a menudo resulta más fácil una corrección, mejoría o cambio “rápido y sucio” al sistema existente, que empezar a cambiar el documento de los requerimientos y luego propagar dicho cambio al documento de diseño y la implantación del mismo. Esto ocurre sobre todo cuando se necesita el cambio para arreglar un problema inmediato y urgente. La documentación es lo último que se quiere hacer, y muchas veces no se hace. Los sistemas de información tienden a ser complejos desde el principio, y se vuelven cada vez más complejos al pasar los años de mantenimiento. Sin un buen mantenimiento, cualquier sistema puede convertirse en un misterio. La única solución es mantener documentación precisa y actualizada por la duración del sistema mismo.
10.1.
Auditoria
La auditoria es otra forma de asegurar la calidad de la información que contiene el sistema. Con una definición amplia, la auditoria involucra a un experto que no se encuentra involucrado en la puesta en operación y el uso del sistema, para examinar la información, con el fin de examinar su relevancia. Si se encontrara o no información relevante, 140
Análisis y Diseño de Sistemas
tal hallazgo deberá comunicarse a otros con el propósito de mejorar la relevancia de la información que les proporciona el sistema. Para los sistemas de información existen dos tipos: la interna y externa. La necesidad de ambas para el sistema que se diseña dependerá del tipo de sistema. Para las auditorias internas operan personal de la misma organización propietaria del sistema, mientras que para las externas se contrata personal externo. Los auditores internos estudian los controles utilizados por el sistema para asegurar que éste realiza lo que supuestamente debe de hacer, así como la operación de los controles de seguridad. Los informes no reportan a los responsables del sistema que auditan. Los externos se contratan cuando los sistemas influyen en los estados financieros del negocio y se debe asegurar la confiabilidad de estos informes. También intervienen cuando algo fuera de lo ordinario ocurre involucrando a los empleados de la compañía.
141