6. DESARROLLO
  El administrador de un proyecto informático debe buscar la máxima automatización de las tareas que realizarán cada uno de los profesionales involucrados en un proyecto informático. Es importante destacar que lo que buscamos no es solamente que en todo proyecto informático se esté dispuesto a automatizar tareas requeridas por los usuarios; sino también la de automatizar las propias tareas del proyecto.

CARACTERÍSTICAS EN TODA METODOLOGÍA DE PROCESAMIENTO DE DATOS

A continuación presentamos una lista de atributos, que se consideran mínima en todo procesamiento de datos:

  • Automatización: Como venimos diciendo, se debe buscar la máxima automatización posible de todas las tareas desarrolladas por los profesionales involucrados en un proyecto informático. Se debe evitar la programación manual; pues ésta es lenta y propensa a errores, por lo tanto es ineficaz e ineficiente.
  • Velocidad: Tal lo visto en el primer capítulo (ver 1. Proyecto informático, tareas y recursos) otro de los problemas principales, en el desarrollo de todo proyecto informático, es el tiempo que involucra al mismo. Persiga altos niveles de productividad, aplicando técnicas y metodologías que le permitan alcanzar resultados rápidamente.
  • Cambiabilidad. Cuando vimos las causas que dan inicio a un proyecto informático (ver 1.2. inicio de un proyecto informático), describimos que existirán cambios en el contexto o en los procedimientos requeridos por los usuarios o bien pueden producirse cambios en la tecnología; que implicarán cambios en los programas y en los sistemas. Es por eso que se deben aplicar técnicas y metodologías que permitan realizar dichos cambios, sin que esto involucre un incremento significativo tanto de los costos y como en el tiempo de implementación de estos cambios.
  • Verificación de condición correcta. Confeccione y utilice herramientas de análisis, como el diccionario de datos (ver 4.3 el diccionario de datos), las tablas de decisión (ver 4.6. tablas de decisión ), la diagramación lógica (ver 4.5. flujogramas), la lista de eventos ( ver 4.2.1. lista de eventos); para poder detectar automáticamente todos los errores de sintaxis y de semántica interna. Si existen ambigüedades, contradicciones, incongruencias, la calidad del sistema se verá afectada, con todo lo que ello implica. Los errores provocan ineficiencia ineficacia y baja productividad
  • Técnicas que faciliten la comunicación con los usuarios finales. Los usuarios deben desarrollar el conocimiento necesario para verificar cada etapa de evolución del proyecto. El usuario es quien más sabe del sistema involucrado en el proyecto. Además los usuarios deben estar en condiciones de utilizar sus propios lenguajes de consulta de actualización y de generadores de información; como: el Standard Query Languaje (SQL) , el Query - By - Example (QBE), el Query - by - Diagram (QBD) o el Grafphics Language for Database, entre otros. Por lo tanto se deben adoptar lenguajes que permitan que la gerencia extraiga nueva información de las bases de datos, con la máxima prontitud posible.
  • Diseño estable de base de datos. La base de datos es el elemento principal de toda automatización de tareas. Tal cual lo visto en el tópico de la modelización de datos almacenados (ver 4.4. el modelo RDM) cuide las técnicas y los métodos para la construcción de las tablas.
  • Modularidad. Los sistemas deben dividirse en módulos fácilmente identificables (ver 4.7. módulos de un sistema). Debe ser factible efectuar cambios en forma local dentro del módulo. Todo efecto de cambio exterior al módulo debe ser rigurosamente rastreable.
  • Control de operabilidad mutua. Se necesita una técnica formal y rigurosa, para tener la seguridad de que el sistema y los módulos desarrollados separadamente operan correctamente en conjunto (ver 4.7. el árbol de un sistema).
  • Dialectos alternativos. Se debe disponer de herramientas de ingeniería de software(ver. 5 herramientas CASE) para conceptualizar, dibujar y diseñar sistemas, conectados en forma automática con la representación básica. Estas herramientas deben funcionar en forma integrada, evitando puentes manuales que introducen errores. Deben utilizar, en la media posible, sintaxis y gráficos comunes.

Una propuesta interesante de destacar es la que propone Lucas H.C. Jr.. con el diseño creativo de sistemas, este modelo tiene básicamente tres componentes:

  1. diseño controlado por el usuario
  2. atención especial a las interacciones con el usuario
  3. evaluación de la calidad de los sistemas según el criterio del usuario

El diseño controlado por el usuario significa que el usuario está a cargo del esfuerzo de diseñar

Esto crea un compromiso del usuario con el sistema aumentando la posibilidad de ser utilizado

El usuario participa activamente durante el diseño y por lo tanto está mejor preparado para usar el sistema, en razón de su familiaridad con él.

El usuario está a cargo del diseño lógico o conceptual del sistema incluyendo las salidas, las entradas y la lógica del procesamiento. El usuario en escribe ni controla programas estos pueden ser desarrollados con lenguajes de 4 generación y ser controlados con herramientas CASE.

El usuario creativo se basa en el control del diseño por parte del usuario, atención especial a las interacciones de éste con el sistema y evaluación de su calidad de acuerdo con el criterio del mismo usuario.

6.1. METODOLOGÍA PARA EL DESARROLLO DE SISTEMAS

A lo largo de este texto, buscamos mostrar que toda actividad debe estar basada en una metodología y en principio, cualquier metodología es mejor que ninguna; Cualquier centro de desarrollo puede montar su metodología, aunque esta alternativa implica disponer del tiempo necesario para el desarrollo de la nueva metodología; por lo tanto, lo más práctico es seguir los métodos que ya han demostrado su validez y son de aplicación universal; sepa utilizar el conocimiento científico, que involucra tanto esfuerzo y sacrificio.

Todas las metodologías; MERISE, YOURDON Y SSADM (structured Sydtem Analysis Design Method ) y tantas otras, consideran el hecho informático dividido en fases, cuyo conjunto forma el ciclo de vida de un sistema informático.

Todas tienen en común la idea de descomposición del hecho informático en cuatro grandes grupos

  • Análisis

definición del problema

estudio de la situación actual

requisitos a considerar

estudio de factibilidad

  • Diseño lógico

análisis funcional

definición de datos y procesos

modelización

  • Diseño físico

creación de ficheros y tablas

elaboración de programas

  • Implementación y control

Formación del usuario

implantación del sistema

explotación del sistema

Mantenimiento

Esta metodología la podrá encontrar en un amplio universo bibliográfico, nosotros nos concentraremos, como lo describimos en la introducción de la obra en las metodologías simplificadas.

6.2. METODOLOGÍA ESTRUCTURADA SIMPLIFICADA.

Todo proceso de desenvolvimiento de software usando metodología Estructurada simplificada está basado en la identificación de los eventos a los que el sistema debe responder.

La secuencia metodológica es al siguiente:

  • Definir la lista de eventos

Desarrollar una lista de requerimientos en lenguaje natural según lo descripto en el punto 4.2.1.

  • Producir un diagrama de contexto

Modelizar la relación del sistema con el contexto, determinando cuales son las áreas de la empresa que participarán del sistema como fuentes de información (ver 4.2.2. El diagrama de flujo de datos, objetivos).

  • Definir el modelo comportamental

Utilizamos el DFD como herramienta modeladora de la transformación de las entradas en salidas (ver 4.2.2. el diagrama de flujo de datos).

  • Definir el modelo de datos

Modelizar la relación de los repositorios de datos con la técnica del Modelo Relacional de Datos. -RDM (ver 4.4. Modelización de datos almacenados).

  • Crear el modelo de implementación del usuario

Definir los módulos del sistema. En esta etapa son decididos los procesos a ser automatizados; se somete a la evaluación del usuario cada proceso del modelo comportamental (ver 4.7. módulos del sistema).

  • Definir los requisitos de implementación

Mientras son definidos los procesos a ser informatizados, se debe discutir y documentar los requisitos de implementación de esos procesos y del sistema de software como un todo: Desempeño, restricciones de costos, restricciones operacionales, consideraciones sobre seguridad y auditoría, tecnología a ser empleada, modificaciones en procedimientos manuales y en otros sistemas informatizadas ya existentes.

Para cada proceso a ser automatizado, será creado un diagrama de estructura. Las funciones de los diagramas son derivadas de los flujos de datos que entran y que salen de los proceso, y de las transformaciones que generan los datos de salida a partir de los datos de entrada.

  • Integrar los diagramas de Estructura.

Los diagramas de estructura deben ser integrados en programas, el agrupamiento de funciones puede ser hecho por proximidad temporal de utilización, rutinas On-Line, mensual, anual, etc., o por cualquier otro tipo de afinidad, como por ejemplo, en el caso de sistemas distribuido, el agrupamiento es hecho conforme al procesador en que serán ejecutadas las funciones. La estructura del software es completada, incorporándose a él módulos de apoyo operacional, como: módulos de implementación de backups, módulos de control, módulos para la creación y restauración de índices, módulos para alteración de parámetros de operaciones, etc. estos módulos serán incorporados al Diagrama de estructura, donde el acceso a ellos fuese mas conveniente

  • Proyectar la interfaz con el usuario

La parte mas importante y mas compleja de la interfaz con el usuario será desarrollada a partir de los flujos de datos de entrada y de salida de los procesos a ser automatizados. Una única interfaz puede ser generada para atender varios flujos simultáneamente. Las interfaces necesarias a los módulos que implementan menús de selección y a los módulos de apoyo operacional complementaran el proyecto de la interfaz con el usuario.

  • Proyectar la base de datos física

Definir las características físicas de cada dato, como el tipo el dominio; la organización de cada archivo, como la definición de las llaves principales, índices, etc. (ver 3. Base de datos, 3.1.2. llave primaria, 3.1.3 índices de acceso).

  • Especificar los módulos.

La especificación de los módulos, a través de pseudo código flujogramas u otros (ver.4.5. Flujogramas).