martes, 8 de diciembre de 2015

Metodologías estructuradas orientadas a datos jerárquicos

En este caso la estructura de los datos es jerárquica y la estructura de control del programa que se
deriva del estudio de los datos también es jerárquica. Esto significa que hay una relación de jerarquía
entre los datos y pueden ser representados mediante árboles. Por ejemplo, como puede verse en la
figura, una estructura de datos jerárquica sería la representación del árbol genealógico de una familia.
En esta metodología, el procedimiento a seguir consiste en definir primero
las estructuras de los datos de entrada y salida (análisis de los datos),
mezclarlas todas en una estructura jerárquica de programa y después
ordenar detalladamente la lógica procedimental del programa (análisis de
los procesos) para que se ajuste a esta estructura jerárquica. Por tanto, en
esta metodología se crea en primer lugar el diccionario de datos y luego se
estudian las actualizaciones y modificaciones que deben realizarse a esos
datos para obtener las salidas definiendo de esta manera los procesos.
Como ejemplos de este tipo de metodologías tenemos las propuestas por Jackson (1975), Cameron
(1989), Warnier (1974) y Warnier/Orr (1981).
Metodologías estructuradas orientadas a datos


Dentro del modelo básico Entrada-Proceso-Salida, estas metodologías se centran en el estudio de los
datos a la entrada y de los resultados a la salida. Para ello definen cómo son esos datos, los agrupan
en estructuras de datos, y posteriormente describen los procesos.
La razón para hacer esto está en la creencia de que los datos son más estables que los procesos en
las empresas y sus sistemas, por lo que si identifico con éxito la estructura y naturaleza de estos datos
podré desarrollar posteriormente, a partir de esa estructura de datos, un modelo de procesos más estable
que si lo hago al contrario. En realidad, esto no siempre es cierto, sino que depende de cada
organización o empresa.
Metodologías estructuradas orientadas a procesos


Estas metodologías orientadas a procesos estudian cómo son transformados los flujos de datos por los
procesos, desde la entrada hasta la salida. Por tanto, hacen más hincapié en los procesos que en los
datos.
¿Cómo vamos a analizar estos flujos de información?
Siempre recurrimos a representaciones gráficas porque son las más útiles y fáciles de interpretar.
Estas representaciones gráficas son acompañadas por documentos de texto desarrollando lo que se
denomina especificación estructurada.
La especificación estructurada incluye estas técnicas:
Diagramas de Flujo de Datos (DFD): son una
representación gráfica que representa los procesos que
debe llevar a cabo el sistema informático y los datos que
hay a la entrada y salida de cada proceso. Utilizando el
concepto de abstracción, los procesos se van
describiendo al principio como procesos amplios y
complejos, para ir posteriormente descomponiéndolos
en procesos más simples. Este proceso se irá
repitiendo para realizar un refinamiento progresivo del
sistema. En la imagen podemos ver una herramienta
informática de ayuda para desarrollar DFD. En concreto se trata de la modelización de un almacén,
en la que aparece un proceso de gestión de compras y unas entidades de proveedores y almacén.
Entidad
Externa
Proceso
Proceso Proceso
Proceso
Proceso
Entidad
Externa
• Diccionario de Datos (DD): son las descripciones de todos los datos del sistema y de los elementos
que aparecen en el DFD.
• Especificaciones de procesos: es la descripción detallada de los procesos, es decir, explican cómo
se obtienen las salidas a partir de las entradas.
Para la realización de estas técnicas dispondremos de una serie de herramientas informáticas de ayuda
que permitan facilitar la realización de los DFD y automatizar parte del proceso. En la imagen anterior
tenemos un DFD con procesos, entidades y un almacén de datos.
􀂄 Fases de la especificación estructurada.
Pero, ¿cuáles son las fases de esta metodología?, ¿qué tareas y procedimientos asociados deben
realizarse? Vamos a verlo a continuación:
1. Fase de planificación inicial.
2. Fase de análisis:
• Descripción del modelo físico actual: se trata de describir el sistema actual del cliente que
podrá estar informatizado o no. Para ello, se realizan una serie de DFD que describen los
sistemas actuales.
• Elaboración del modelo lógico actual: a partir del modelo anterior, se realiza un nuevo
modelo que no dependa de elementos físicos, por ejemplo la organización actual de la
empresa o las ubicaciones en una u otra planta del edificio. Para ello, se realizan también
DFD.
METODOLOGIAS ESTRUCTURADAS


En la unidad anterior vimos el ciclo de vida del software y sus diferentes modelos de desarrollo de
software asociados. El ciclo de vida del software indica qué es lo que hay que obtener a lo largo del
proceso de desarrollo del proyecto pero no muestra cómo hacerlo. Por tanto, surge la pregunta, ¿cómo
se obtienen los distintos productos parciales o finales del ciclo de vida del software?
Para responder a esta pregunta, la ingeniería del software ha realizado distintas aproximaciones a lo
largo del tiempo, definiendo lo que se ha denominado como metodologías de desarrollo del software.
Aunque no hay una definición única para la metodología de desarrollo, podemos consensuar que las
metodologías de desarrollo de software son un conjunto de
procedimientos, técnicas, herramientas y soporte documental para el
desarrollo de productos software.

lunes, 7 de diciembre de 2015

METODOLOGÍAS ORIENTADA A PROCESOS
Estas metodologías orientadas a procesos estudian cómo son transformados los flujos de datos por los procesos, desde la entrada hasta la salida. Por tanto, hacen más hincapié en los procesos que en los
datos.
¿Cómo vamos a analizar estos flujos de información?
Siempre recurrimos a representaciones gráficas porque son las más útiles y fáciles de interpretar.
Estas representaciones gráficas son acompañadas por documentos de texto desarrollando lo que se
denomina especificación estructurada.
METODOLOGÍAS ESTRUCTURADAS
En definitiva la metodología de desarrollo lo que pretende es resolver un problema o necesidad, y para
ello parte de la petición del cliente y con sucesivas fases obtiene una solución informática.
Ya vimos que en las metodologías estructuradas se realiza una aproximación a la resolución del
problema descendente. Es decir, se pasa de una visión más general del problema con un nivel de
abstracción alto (cercano a las personas), a un nivel de abstracción más bajo (cercano a la máquina).
Para ello, estas metodologías proponen la creación de modelos que representen los procesos o
acciones a realizar, los flujos de información y las estructuras de datos necesarias para almacenar la
información.
El modelo general que representa a un sistema informático consta de
Entrada-Proceso-Salida. Los datos se introducen en el sistema, el cual los
procesa para obtener unos resultados a la salida. Las metodologías
estructuradas utilizan este esquema para realizar su enfoque del desarrollo
del software.

METODOLOGÍAS ESTRUCTURADAS

El desarrollo del software ha evolucionado desde la programación artesanal hasta la ingeniería del
software. En paralelo han ido evolucionando las metodologías de desarrollo. Esta evolución podríamos
concretarla en una serie de grandes revoluciones:
Estado inicial.
En esta etapa inicial de desarrollo del software los desarrolladores
estaban más centrados en la codificación del código que en
comprender las necesidades de los usuarios.
Los resultados son imprevisibles, no se conocen los plazos de realización y además el resultado
depende de las personas concretas que desarrollen el sistema ya que no hay unas pautas
comunes de desarrollo
      • Es difícil controlar y revisar el desarrollo del producto, ya que no existen mecanismos de control
         ni fases establecidas. Por tanto, es difícil detectar errores.
      • Los cambios en el equipo de desarrollo influyen en todo el proceso y en el mantenimiento de los
        productos terminados. Si cambian las personas a mitad de proceso de desarrollo al no haber una
       documentación estandarizada es difícil continuar el trabajo. Y cuando el producto está finalizado        y hay que actualizarlo, es muy difícil por el mismo motivo, la falta de documentación completa y
       estándar.
productos terminados. Si cambian las personas a mitad de proceso de desarrollo al no haber una
documentación estandarizada es difícil continuar el trabajo. Y cuando el producto está finalizado y
hay que actualizarlo, es muy difícil por el mismo motivo, la falta de documentación completa y
estándar.
􀂄 Diseño estructurado.
Para resolver los problemas del desarrollo tradicional que hemos indicado, surgieron distintas propuestas
de desarrollo de software que vamos a englobar en lo que se denomina desarrollo estructurado. Nació
a finales de los sesenta y se utilizó en las empresas de desarrollo de software a partir de la mitad de los
setenta. El desarrollo estructurado incluye una serie de técnicas y conceptos
que siguen métodos de ingeniería.
        􀂄• Programación estructurada que permite hacer programas más
           entendibles y fáciles de modificar.
         Tradición
          Método
          Estructurado
        • Diseño estructurado que posibilita la división de los programas en
          módulos y se introduce el concepto de abstracción.
        • Análisis estructurado o descendente, que se centra en el estudio de las especificaciones y
        requisitos que debe cumplir el programa para satisfacer las demandas del cliente.