23
Ciclo de vida. Elementos fundamentales. Características.. Uso y aplicación. 1- Que es el analisis estructurado de Sistemas (AES), para que sirve, caracteristicas. NOTA: DESGLOSAR EL SIGUIENTE CONTENIDO. QUE ES LA REINGENIERIA Lo primero que debemos hacer es definir la reingeniería. La reingeniería constituye una recreación y reconfiguración de las actividades y procesos de la empresa, lo cual implica volver a crear y configurar de manera radical él o los sistemas de la compañía a los efectos de lograr incrementos significativos, y en un corto período de tiempo, en materia de rentabilidad, productividad, tiempo de respuesta, y calidad, lo cual implica la obtención de ventajas competitivas. Analizando dicha definición encontramos en primer lugar los términos de recreación y reconfiguración, pues la reingeniería debe antes de todo conceptualizarse filosóficamente como una rotura o cambio de los paradigmas vigentes en la empresa. Es por ello que la recreación implica lisa y llanamente el volver a crear los procesos a la luz de las nuevas ideas, técnicas, metodologías y descubrimientos científicos. El término configurar significa disponer de las partes que componen un cuerpo y le dan su peculiar figura, por lo tanto la reconfiguración es volver a disponer de las partes de una nueva y peculiar forma. El hecho de que dichos cambios sean de carácter radical se debe a que se tiende a borrar del mapa los viejos conceptos reemplazándolos por nuevas y revolucionarias ideas.

Ciclo de Vida

Embed Size (px)

DESCRIPTION

Descripciñon del ciclo de vida

Citation preview

Ciclo de vida. Elementos fundamentales. Características.. Uso y aplicación.

1- Que es el analisis estructurado de Sistemas (AES), para que sirve, caracteristicas.

NOTA: DESGLOSAR EL SIGUIENTE CONTENIDO.

QUE ES LA REINGENIERIA

Lo primero que debemos hacer es definir la reingeniería. La reingeniería constituye una recreación y reconfiguración de las actividades y procesos de la empresa, lo cual implica volver a crear y configurar de manera radical él o los sistemas de la compañía a los efectos de lograr incrementos significativos, y en un corto período de tiempo, en materia de rentabilidad, productividad, tiempo de respuesta, y calidad, lo cual implica la obtención de ventajas competitivas.

Analizando dicha definición encontramos en primer lugar los términos de recreación y reconfiguración, pues la reingeniería debe antes de todo conceptualizarse filosóficamente como una rotura o cambio de los paradigmas vigentes en la empresa. Es por ello que la recreación implica lisa y llanamente el volver a crear los procesos a la luz de las nuevas ideas, técnicas, metodologías y descubrimientos científicos. El término configurar significa disponer de las partes que componen un cuerpo y le dan su peculiar figura, por lo tanto la reconfiguración es volver a disponer de las partes de una nueva y peculiar forma. El hecho de que dichos cambios sean de carácter radical se debe a que se tiende a borrar del mapa los viejos conceptos reemplazándolos por nuevas y revolucionarias ideas.

En cuanto a los procesos, los mismos se definen como una sucesión de acciones continuas y regulares, que ocurren o se llevan a cabo de una forma definida, y que llevan al cumplimiento de algún resultado. Posteriormente tenemos en la definición el concepto de sistema, el cual se define como un conjunto de elementos o componentes interrelacionados e interactuantes entre sí que conforman un todo unificado. Se hace hincapié en los sistemas debido a la necesidad imperiosa de reenfocar la gestión de las empresas como un sistema con partes íntimamente interrelacionadas en contraposición al tradicional y vetusto enfoque funcional.

EXISTEN FACTORES NECESARIOS PARA QUE UNA REINGENIERÍA SEA EFECTIVA. ESTOS SON:

orientación hacia el proceso

Ambición Rompimiento de reglas Creatividad en el uso de la tecnología.

LAS CARACTERÍSTICAS COMUNES DESPUÉS DE REALIZAR UNA REINGENIERÍA SON:

Varios trabajos se comprimen en uno solo

Se comprimen verticalmente los procesos Los pasos del proceso siguen un orden natural Existen procesos en múltiples versiones Se realiza el trabajo donde tiene sentido Se reducen chequeos y controles Se da la administración por casos Opera de forma centralizada y descentralizada

Las características comunes en todo el proceso de reingeniería son:

Unificación de tareas. Participación de los trabajadores en la toma de decisiones. Cambio del orden secuencial por el natural en los procesos. Realización de diferentes versiones de un mismo producto. Reducción de las comprobaciones y controles (se flexibiliza la estructura

organizativa). El responsable de proceso es el único punto de contacto. Operaciones híbridas centralizadas/descentralizadas.

Otra caracteristicas

Enfocada a procesos: No a departamentos o áreas, trabajos, personas o estructuras. Los viejos principios de la administración que fragmentaban el trabajo en varias unidades ya no funcionan, ahora hay nuevos principios. Se define un proceso como una colección de actividades que reciben una o más entradas y generan una salida que es de valor para el cliente.

Debe ser Rápida: En general debe ser rápida porque se esperan resultados en tiempos cortos.

Visión Holística: Observa todos los procesos desde una perspectiva integral. Ve el todo y no las partes. Tiene una perspectiva global.

Multiespecialista (generalista): La reingeniería es anti-especialización. La especialidad tiene virtudes pero su defecto es la pérdida de flexibilidad. En reingeniería lo que más requieres es flexibilidad.

Se apoya en el principio de la incertidumbre (Teoría del Caos): En reingeniería todo es "pulso y vista". Pura intuición pero no ciega. Parte del supuesto de que el determinismo no existe y por lo tanto no existe

nada establecido ni predeterminado. Hay que aprender a administrar o manejar la incertidumbre. Hay que tener una tolerancia a la vaguedad, ya que no hay guías ni precisión. Es construir un puente al vacio sin conocer la otra orilla.

Destrucción creativa: Lo anterior ya no funciona y por lo tanto hay que destruirlo, pero de una manera creativa, construyendo los nuevos procesos. Se basa en el principio de que en un espacio sólo cabe un edificio, para construir lo nuevo tiene que hacerse sobre las ruinas o cenizas de lo viejo. Tienes que destruir tu empresa ó tu viejo "yo" ó tu organización para hacer una nueva de cero, pero esta destrucción tiene que hacerse de manera sistemática en base a los principios de la transformación organizacional.

Libre sin plan preestablecido: El modelo es que no hay modelo. Cada quien tiene que hacer su propio proyecto de reingeniería. En el momento que rompas con lo anterior te quedas en el aire, por eso debes tener una tolerancia a la ambigüedad hasta que recompongas los procesos.

Renovadora: Cambia de mentalidad o de enfoque. Metanoia.No debemos pensar en tareas aisladas, sino en procesos integrados. Si sigues viendo el mundo como era antes. Si piensas que no hay nada nuevo bajo el sol y que no debes cambiar tus actitudes, tus comportamientos, tu forma de trabajar o si no estás dispuesto a enfrentar la incertidumbre o la vaguedad, entonces la reingeniería no es para ti. El día que cambies de mentalidad, el día que tengas un cambio cultural, una Metanoia, ese día podrás hacer reingeniería.

La reingeniería no trata de componer algo, la reingeniería significa que se comienza de nuevo desde cero. Lo único que debe importar es cómo se quiere organizar el trabajo en el presente dadas las demandas de los mercados y el poder de la tecnología de la actualidad se debe hacer énfasis en que no debe importar cómo se ha hecho el negocio en el pasado.

por esto para analizar los procesos no se deben hacer preguntas como las siguientes: ¿Cómo hacer el proceso más rápido? ¿Cómo lo podemos hacer mejor? o ¿Cómo hacerlo a un costo más bajo? En cambio la reingeniería debe cuestionarse ¿porqué se hace lo que se está haciendo? Para poder contestar esto se debe tener claro que todo proceso relevante debe llevar un valor agregado para el cliente, esto puede ser de calidad, precio justo, proveer excelente servicio, etc., es decir que nunca se debe realizar un proceso solo por satisfacer alguna demanda interna de la organización de la empresa.

¿QUÉ ES REINGENIERÍA DEL SOFTWARE?

Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”

Cuando una aplicación lleva siendo usada años, es fácil que esta aplicación se vuelva inestable como fruto de las múltiples correcciones, adaptaciones o mejoras que han podido surgir a lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un cambio se producen efectos colaterales inesperados y hasta de gravedad, por lo que se hace necesario, si se prevé que la aplicación seguirá siendo de utilidad, aplicar reingeniería a la misma.

Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:

Pueden reducir los riegos evolutivos de una organización. Puede ayudar a las organizaciones a recuperar sus inversiones en

software. Puede hacer el software más fácilmente modificable Amplía las capacidades de las herramientas CASE Es un catalizador para la automatización del mantenimiento del software Puede actuar como catalizador para la aplicación de técnicas de

inteligencia artificial para resolver problemas de reingeniería

La reingeniería del software involucra diferentes actividades como son:

análisis de inventarios reestructuración de documentos ingeniería inversa reestructuración de programas y datos ingeniería directa

con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.

REINGENIERÍA DE LA INGENIERÍA DEL SOFTWARE

La reingeniería debe ser entendida como un proceso mediante el cual se mejora un software existente haciendo uso de técnicas de ingeniería inversa yreestructuración de código.  Para llevar a cabo la reingeniería del Software se puede realizar a través del modelo Cíclico. En algunas ocasiones, estas actividades se producen de forma secuencial y lineal, pero esto no siempre es así. Por ejemplo, puede ser que la ingeniería inversa (la comprensión del funcionamiento interno de un programa) tenga que producirse antes de que pueda comenzar la reestructuración de documentos.

La Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”

Cuando una aplicación lleva siendo usada años, es fácil que esta aplicación se vuelva inestable como fruto de las múltiples correcciones, adaptaciones o mejoras que han podido surgir a lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un cambio se producen efectos colaterales inesperados y hasta de gravedad, por lo que se hace necesario, si se prevé que la aplicación seguirá siendo de utilidad, aplicar reingeniería a la misma.

Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:

Pueden reducir los riegos evolutivos de una organización. Puede ayudar a las organizaciones a recuperar sus inversiones en

software. Puede hacer el software más fácilmente modificable Amplía las capacidades de las herramientas CASE Es un catalizador para la automatización del mantenimiento del software Puede actuar como catalizador para la aplicación de técnicas de

inteligencia artificial para resolver problemas de reingeniería

PASOS DE LA REINGENIERIA DEL SOFTWARE

Análisis de Inventario.-  Todas las organizaciones de software deberían tener un inventario de todas sus aplicaciones. El inventario tal vez no sea más que un modelo en una hoja de cálculo que contenga información que proporcione una descripción detallada (tamaño, edad, importancia para el negocio) de las aplicaciones activas.  Es importante señalar que el inventario deberá visitarse con regularidad, el estado de las aplicaciones puede cambiar en función del tiempo y, como resultado, cambiarán las prioridades para la reingeniería.

Restructuración de código.- Algunos sistemas heredados tienen una arquitectura de programa relativamente sólida, pero los módulos individuales han sido codificados de una forma que hace difícil comprenderlos, comprobarlos y mantenerlos. En estos casos, se puede reestructurar el código ubicado dentro de los módulos sospechosos.  Para llevar a cabo esta actividad, se analiza el código fuente mediante una herramienta de reestructuración, se indican las violaciones de las estructuras de programación estructurada, y entonces se reestructura el código (esto se puede hacer automáticamente). El código reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.

Restructuración de datos.- Un programa que posea una estructura de datos débil será difícil de adaptar y de mejorar. De hecho, para muchas aplicaciones, la arquitectura de datos tiene más que ver con la viabilidad

a largo plazo del programa que el propio código fuente.  A diferencia de la reestructuración de código, que se produce en un nivel relativamente bajo de abstracción, la estructuración de datos es una actividad de reingeniería a gran escala. En la mayoría de los casos, la reestructuración de datos comienza por una actividad de ingeniería inversa. La arquitectura de datos actual se analiza minuciosamente y se definen los modelos de datos necesarios. Se identifican los objetos de datos y atributos y, a continuación, se revisan las estructuras de datos a efectos de calidad.

Ingeniería directa.- En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, reestructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software. Después de un espacio de tiempo corto, es probable que llegue a aparecer este “motor”, pero los fabricantes de CASE han presentado herramientas que proporcionan un subconjunto limitado de estas capacidades y que se enfrentan con dominios de aplicaciones específicas. Lo que es más importante, estas herramientas de reingeniería cada vez son más sofisticadas.

La Ingeniería directa, que se denomina también renovación o reclamación, no solamente recupera la información de diseño de un software ya existente, sino que, además, utiliza esta información en un esfuerzo por mejorar su calidad global. En la mayoría de los casos, el software procedente de una reingeniería vuelve a implementar la funcionalidad del sistema existente, y añade además nuevas funciones y/o mejora el rendimiento global.

REINGENIERÍA DEL SOFTWARE:

Este escenario resulta sumamente conocido: Una aplicación ha dado servicio y ha cubierto las necesidades del negocio de una compañía durante diez o quince años. A lo largo de este tiempo, ha sido corregida, adaptada y mejorada muchas veces. Las personas se dedicaban a esta tarea con la mejor de sus intenciones, pero las prácticas de ingeniería del software buenas siempre se echaban a un lado (por la urgencia de otros problemas). Ahora la aplicación se ha vuelto inestable. Sigue funcionando, pero cada vez que intenta efectuar un cambio se producen efectos colaterales graves e inesperados.

¿Que se puede hacer?

La imposibilidad de mantener el software no es un problema nuevo. De hecho, el gran interés por la reingeniería del software ha sido generado por un «iceberg» de mantenimiento de software que lleva creciendo desde hace más de treinta años.

Mantenimiento del software:

Hace casi treinta años, el mantenimiento del software se caracterizaba por ser como un «iceberg». Esperábamos que lo que era inmediatamente visible

fuera de verdad lo que había, pero sabíamos que una enorme masa de posibles problemas y costes yacía por debajo de la superficie. A principios de los años 70, el iceberg de mantenimiento era lo suficientemente grande como para hundir un portaaviones. En la actualidad podría hundir toda la Armada.

El mantenimiento del software existente puede dar cuenta de más del 60 por 100 de las inversiones efectuadas por una organización de desarrollo, y ese porcentaje sigue ascendiendo a medida que se produce más software. Los lectores que tengan menos conocimientos en estos temas podrían preguntarse por qué se necesita tanto mantenimiento, y por qué se invierte tanto esfuerzo. Gran parte del software del que dependemos en la actualidad tiene por término medio entre diez y quince años de antigüedad. Aun cuando estos programas se crearon empleando las mejores técnicas de diseño y codificación conocidas en su época (y la mayoría no lo fueron), se crearon cuando el tamaño de los programas y el espacio de almacenamiento eran las preocupaciones principales. A continuación, se trasladaron a las nuevas plataformas, se ajustaron para adecuarlos a cambios de máquina y de sistemas operativos y se mejoraron para satisfacer nuevas necesidades del usuario; y todo esto se hizo sin tener en cuenta la arquitectura global.El resultado son unas estructuras muy mal diseñadas, una mala codificación, una lógica inadecuada, y una escasa documentación de los sistemas de software que ahora nos piden que mantengamos en marcha .

Un modelo de procesos de reingeniería del software:

La reingeniería requiere tiempo; conlleva un coste de dinero enorme y absorbe recursos que de otro modo podrían emplearse en preocupaciones más inmediatas. Por todas estas razones, la reingeniería no se lleva a cabo en unos pocos meses, ni siquiera en unos pocos años. La reingeniería de sistemas de información es una actividad que absorberá recursos de las tecnologías de la información durante muchos años. Esta es la razón por la cual toda organización necesita una estrategia pragmática para la reingeniería del software.

El paradigma de la reingeniería mostrado en la figura es un modelo cíclico. Esto significa que cada una de las actividades presentadas como parte del paradigma pueden repetirse en otras ocasiones. Para un ciclo en particular, el proceso puede terminar después de cualquiera de estas actividades.

Análisis de inventario. Todas las organizaciones de software deberán disponer de un inventario de todas sus aplicaciones. El inventario puede que no sea más que unahoja de cálculo con la información que proporciona una descripción detallada (por ejemplo: tamaño, edad, importancia para el negocio) de todas las aplicaciones activas.

Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería.

Es importante destacar que el inventario deberá revisarse con regularidad. El estado de las aplicaciones (por ejemplo, la importancia con respecto al negocio) puede cambiar en función del tiempo y, como resultado, cambiarán también las prioridades para la reingeniería.

Reestructuración de documentos. Una documentación escasa es la marca de muchos sistemas heredados.

Ingeniería inversa: Es el proceso de construir especificaciones de un mayor nivel de abstracción partiendo del código fuente de un sistema software o cualquier otro producto (se puede utilizar como punto de partida cualquier otro elemento de diseño, etc.).Estas especificaciones pueden volver ser utilizadas para construir una nueva implementación del sistema utilizando, por ejemplo, técnicas de ingeniería directa.

Ventajas de la Ingeniería Inversa:

Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye. Generar diferentes alternativas: del punto de partida del proceso, principalmente código fuente, se generan representaciones gráficas lo que facilita su comprensión. Recuperar y/o actualizar la información perdida (cambios que no se documentaron en su momento).

Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalías puede ser detectados por la ingeniería inversa.

Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar componentes de posible reutilización de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.

La finalidad de la ingeniería inversa es la de desentrañar los misterios y secretos de los sistemas en uso a partir del código. Para ello, se emplean una serie de herramientas que extraen información de los datos, procedimientos y arquitectura del sistema existente.

TIPOS DE INGENIERIA INVERSA.

Ingeniería inversa de datos: Se aplica sobre algún código de bases datos (aplicación, código SQL, etc) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relación.

Ingeniería inversa de lógica o de proceso: Cuando la ingeniería inversa se aplica sobre código de un programa para averiguar su lógica o sobre cualquier documento de diseño para obtener documentos de análisis o de requisitos.

Ingeniería inversa de interfaces de usuario: Se aplica con objeto de mantener la lógica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construcción de la misma, con objeto de tomarlas como punto de partida en procesos de ingeniería directa que permitan modificar dicha interfaz.

Conceptos generales Cuando los analistas comienzan a trabajar sobre un proyecto de sistemas de información, a menudo tienen que profundizar en un área de la organizacióncon la que

tienen poca familiaridad. A pesar de esto, futuros usuarios - de esa área. Cualquier

nuevo sistema o conjunto de recomendaciones para cambiosen el sistema existente, ya sea éste manual o automatizado, debe conducir hacia una mejora. Para alcanzar este resultado, se espera que los analistas desistemas hagan lo siguiente: aprendan los detalles y procedimientos del sistema en uso. Obtengan una idea de las demandas futuras de la organización como resultado del crecimiento, del aumento de la competencia en el mercado, de loscambios en las necesidades de los consumidores, de la evolución de las estructuras financieras, de la introducción de la nueva tecnología y cambiosen las políticas del gobierno entre otros. Documentar detalles del sistema actual para su revisión y discusión por otros. Evaluar la eficiencia y efectividad del sistema actual y sus procedimientos, tomando en cuenta el impacto sobre las demandas anticipadas para elfuturo. Fomentar la participación de gerentes y empleados en todo el proceso, tanto para aprovechar su experiencia y conocimiento del sistema actual, comopara conocer sus ideas, sentimientos y opiniones relacionadas con los requerimientos de un nuevo sistema o de los cambios para la cual.¿ Qué es el análisis estructurado? El análisis estructurado es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemasnuevos o para efectuar modificaciones a los ya existentes. Cuando los analistas de sistemas abordan una situación poco familiar, siempre existe unapregunta sobre donde comenzar el análisis. Una situación dinámica siempre puede ser vista como abrumadora debido a que muchas de las actividades sellevan a cabo constantemente, como señalo MARY HELEN es su seminario. El análisis estructurado permite el analista conocer un sistema o proceso(actividad) en una forma lógica y manejable el mismo tiempo que proporciona la base para asegurar que no se omite ningún detalle pertinente.Sisgnificado de estructurado¿qué es lo que desea estructurar? ¿ que significa estructurar? El objetivo que persigue el análisis estructurado es organizar las tareas asociada con ladeterminación de requerimientos para obtener la comprensión completa y exacta de una situación dada. A partir de aquí determina los requerimientos queserán la base de un sistema nuevo o modificado.En el análisis estructurado la palabra estructura significa qué: 1) el método intenta estructurar el proceso de determinación de los requerimientoscomenzando con la documentación del sistema existente; 2) el proceso está organizado de tal forma que intenta incluir todos los detalles relevante quedescribe al sistema en uso; 3) es fácil verificar cuando se han omitido detalles relevantes; 4) la identificación de los requerimientos será similar entrevarios analistas e incluirá las mejora soluciones y

estrategias para las oportunidades para de desarrollo de sistemas; y 5) los documentos de trabajogenerados para documentar los sistemas existente o propuesto son dispositivos de comunicación eficientes.Componentes del análisis estructuradoEl análisis estructurado hace uso de los siguientes componentes.1. símbolos gráficos2. diccionario de datos3. descripciones de procesos y procedimientos4. reglasQue es el análisis de flujo de datos? Los analistas desean conocer las respuestas a cuatro preguntas especificas:Que procesos integran el sistema??que datos emplea cada proceso??qué datos son almacenado??que datos ingresan y abandonan el sistema?De lo anterior es claro que se da gran importancia al análisis de los datos.Los datos son la guía de las actividades de la empresa. Ellos pueden iniciar eventos (por ejemplo, los datos sobre nuevos pedidos) y ser procesados paradar información útil al personal que desea saber qué también se han manejado los eventos (al medir la calidad y tasa de trabajo, rentabilidad, etc.). elanálisis de sistemas conoce el papel central que tienen los datos de la empresa en las organizaciones. Seguir el flujo de datos por todos los procesos de laempresa, que es la finalidad del análisis de flujo de datos, les dice mucho a los analistas sobre como se alcanza los objetivos de la organización. En eltranscurso del manejo de transacciones y terminación de tareas los datos entran, son procesados, almacenados, recuperados, analizados, utilizados,cambiados y presentados como salidas. El análisis de flujo de datos estudia el empleo de los datos en cada actividad. Documento a los hallazgos condiagramas de flujo de datos que muestran en forma gráfica la relación entre procesos y datos, en los diccionarios de datos que describe de manera formallos datos del sistema y los sitios donde son utilizados.CARACTERISTICAS DE LA ESTRATEGIA DE FLUJOS DE DATOSEl análisis de flujo de datos examina el empleo de los datos para llevar a cabo procesos específicos de la empresa dentro del ámbito de una investigaciónde sistemas. El análisis puede pensarse de tal manera que se estudia actividades del sistema desde el punto de vista de los datos: donde se originan, comose utilizan o cambian, hacia donde van, incluyendo las paradas a los largo del camino que siguen desde sus origen hasta sus destino.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 bienestablecida facilita la documentación del sistemas actual y su análisis por todos los participantes en el proceso de determinación de requerimientos.Herramientas de la estrategia de flujo de datos La estrategia de flujo de datos muestra el empleo de estos en forma gráfica. Las herramientas utilizadas al seguir esta estrategia muestran todas lascaracterísticas esenciales del sistema y la forma en que se ajustan entre sí. Puede ser difícil comprender en su totalidad un proceso de la empresa si seemplea para ello una descripción verbal; Las herramientas para el flujo de datos ayuda a mostrar los componentes esenciales de un sistema junto con susinteracciones.El análisis de flujo de datos utiliza la sguie. Herramientas.1. 

Diagrama de flujo de datosUna herramienta gráfica se emplea para describir y analizar el movimiento de datos a través de un sistema, ya sea que este fuera manual o automatizado,incluyendo procesos, lugares para almacenar datos y retrasos en el sistema. Estos diagramas reciben el nombre de diagramas lógicos de flujo de datos2. Diccionario de datosel diccionario contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenidosy organización. También identifica los procesos donde se emplea los datos y los sitios de donde se necesitan el acceso inmediato a la información. Sirvecomo puerto de partida para identificar los requerimientos de las bases de datos durante el diseño del sistema.3. Diagrama de estructura de datosEste diagrama es una descripción de la relación entre entidades (personas, lugares, eventos y objetos) de un sistema y el conjunto de informaciónrelacionada con la entidad. No considera el almacenamiento físico de los datos.4. gráfica de estructuraHerramienta de diseño que muestra con símbolos la relación entre los módulos de procesamiento y el software de la computadora describe la jerarquía delos módulos componentes y los datos que serán transmitidos entre ellos. Incluye el análisis de las transformaciones entrada - salida y el análisis detransacción.DESARROLLO DE DIARAMAS DE FLUJO DE DATOSPara que de utilidad y proporcionan información los diagramas de flujo de datos deben dibujarse en forma adecuada. Esta sección muestra comodibujarlos: donde comenzar, como añadir detalles a las descripciones, cuando incorporar la información sobre el control y como mantener la consistenciaal asignar los nombre s de los objetos incluidos en los diagramas. La presentación señala también errores comunes que deben evitarse.Diagramas físicos de flujo de datos Los diagramas de flujo de datos son de dos tipos: Diagramas físicos de datosProporciona un panorama del sistema en uso, que es dependiente de la implantación, que muestra qué tareas se llevan a cabo y cómo. Las característicasfísicas incluyen:Nombres de personasNombre de números de formatos y documentosNombres de departamentosArchivos maestros y de transaccionesEquipo y dispositivos utilizados

Diccionario de datos

Contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño.

Razones para su utilización:

1- Para manejar los detalles en sistemas muy grandes, ya que tienen enormes cantidades de datos, aun en los sistemas mas chicos hay gran cantidad de datos.

Los sistemas al sufrir cambios continuos, es muy difícil manejar todos los detalles. Por eso se registra la información, ya sea sobre hoja de papel o usando procesadores de texto. Los analistas mas organizados usan el diccionario de datos automatizados diseñados específicamente para el análisis y diseño de software.

2- Para asignarle un solo significado a cada uno de los elementos y actividades del sistema.

Los diccionarios de datos proporcionan asistencia para asegurar significados comunes para los elementos y actividades del sistema y registrando detalles adicionales relacionadas con el flujo de datos en el sistema, de tal manera que todo pueda localizarse con rapidez.

3- Para documentar las características del sistema, incluyendo partes o componentes así como los aspectos que los distinguen. Tambien es necesario saber bajo que circunstancias se lleva a cabo cada proceso y con que frecuencia ocurren. Produciendo una comprensión mas completa. Una vez que las características están articuladas y registradas, todos los participantes en el proyecto tendrán una fuente común de información con respecto al sistema.

4- Para facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema.

Determina si son necesarias nuevas características o si están en orden los cambios de cualquier tipo.

Se abordan las características:

* Naturaleza de las transacciones: las actividades de la empresa que se llevan a cabo mientras se emplea el sistema.

* Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta especifica.

* Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización.

* Capacidad del sistema: Habilidad del sistema para aceptar, procesar y almacenar transacciones y datos

5- Localizar errores y omisiones en el sistema, detectan dificultades, y las presentan en un informe. Aun en los manuales, se revelan errores.

Contenido de un registro del diccionario

El diccionario tiene dos tipos de descripciones para el flujo de datos del sistema, son los elementos datos y estructura de datos.

Elemento dato: son los bloques básicos para todos los demás datos del sistema, por si mismos no le dan un significado suficiente al usuario. Se agrupan para formar una estructura de datos.

Descripción: Cada entrada en el diccionario consiste de un conjunto de detalles que describen los datos utilizados o producidos por el sistema.

Cada uno esta identificado con:

Un nombre: para distinguir un dato de otro.

Descripción: indica lo que representa en el sistema.

Alias: porque un dato puede recibir varios nombres, dependiendo de quien uso este dato.

Longitud: porque es de importancia de saber la cantidad de espacio necesario para cada dato.

Valores de los datos: porque en algunos procesos solo son permitidos valores muy específicos para los datos. Si los valores de los datos están restringidos a un intervalo especifico, esto debe estar en la entrada del diccionario.

El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.

En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general.

En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.

Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.

Qué función cumple un diagrama de flujo?1.   Favorecen la comprensión del proceso al mostrarlo como un dibujo. El

cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.

2.   Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

3.   Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

4.   Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

5.   Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado en un ordenador, con un Ide como Free DFD.

Objetivo.-

Representar gráficamente las distintas etapas de un proceso y sus interacciones, para facilitar la comprensión de su funcionamiento. Es útil para analizar el proceso actual, proponer mejoras, conocer los clientes y proveedores de cada fase,representar los controles, etc.

3.-Ventajas.-

Podemos citar como ventajas que se pueden obtener con la utilización de los diagramas de flujo, las siguientes:

Ayudan a las personas que trabajan en el proceso a entender el mismo , con lo que facilitaran su incorporación a la organización e incluso, su colaboración en la búsqueda de mejoras del proceso y sus deficiencias.

Al presentarse el proceso d una manera objetiva, se permite con mayor facilidad la identificación de forma clara de las mejoras a proponer.

Permite que cada persona de la empresa se sitúe dentro del proceso, lo que conlleva a poder identificar perfectamente quien es su cliente y proveedor interno dentro del proceso y su cadena de relaciones, por lo que se mejora considerablemente la comunicación entre los departamentos y personas de la organización.

Normalmente sucede que las personas que participan en la elaboración del diagrama de flujo se suelen volver entusiastas partidarias del mismo, por lo que continuamente proponen ideas para mejorarlo.

Es obvio que los diagramas de flujo son herramientas muy valiosas para la formación y entrenamiento del nuevo personal que se incorpore a la empresa.

Lo mas reseñable es que realmente se consigue que todas las personas que están participando en el proceso lo entenderán de la misma manera, con lo que sera mas fácil lograr motivarlas a conseguir procesos mas económicos en tiempo y costes y mejorar las relaciones internas entre los cliente-proveedor del proceso.