Procesamiento de Causas en el Ministerio Público

Indice del Capítulo

9.1 Etapas de la Metodología
9.2 Etapa de Planificación
9.3 Etapa de Especificación o Revisión del Diseño Lógico
9.4 Etapa de Especificación de Diseño Físico
9.5 Etapa de construcción
9.6 Etapa de Pruebas
9.7 Etapa de Documentación

9.7.1 Tipos de Manuales y Temas

9.8 Etapa de Capacitación
9.9 Implantación y Puesta en Marcha



9-. Metodología y plan de trabajo para el desarrollo del software

    Posterior a la etapa de especificación de requerimientos para el Sistema de Apoyo a los Fiscales, viene la tarea de la construcción del software: Esta construcción estuvo a cargo de la empresa que se adjudicó la licitación: Orden S.A.
    La metodología y plan de trabajo para el desarrollo del software facilitada por Orden S.A. fue una Metodología Estándar de desarrollo de software con la cual se enfrentan los proyectos de desarrollo bajo la arquitectura Cliente/Servidor, de dos y tres niveles, como es la naturaleza del presente proyecto.

    La metodología propuesta se compone de:

    - Un método, que es el tradicionalmente conocido como Prototipo,
    - Técnicas que indican cómo desarrollar el método,
    - Herramientas que apoyan el desarrollo del método,
    - Y normas que regulan el desarrollo del método.

    El método escogido es una adaptación del Prototipo. La idea principal, desde el punto de vista de la adaptación, es que las fases no son rígidas ni necesariamente secuenciales.
    Es importante considerar que al término de cada etapa debe existir una actividad de revisión y validación de la misma, para detectar cualquier posible error.


9.1 Etapas de la Metodología

En la siguiente figura se muestran las etapas de la metodología para el desarrollo del software:

Las etapas de la metodología son:

- Planificación
- Especificación del Diseño Lógico
- Especificación Diseño Físico
- Construcción
- Desarrollo de Prototipos
- Test de Prototipos
- Programa Sistema Seal
- Plan de Pruebas
- Test Individual
- Test Integrado
- Test de Correcciones
- Documentación
- Documentación Técnica
- Documentación Usuario
- Capacitación Usuario
- Controles de Seguridad
- Implantación y Puesta en Marcha


9.2 Etapa de Planificación

En esta etapa se establecen las bases para iniciar el desarrollo. Como mínimo se deben contemplar los siguientes elementos:

 

9.3 Etapa de Especificación o Revisión del Diseño Lógico

El objetivo de esta etapa es obtener un entendimiento conceptual del problema a resolver. En caso que este cumpla totalmente con los requerimientos, bastará con formalizarlo en un documento denominado "Diseño Lógico Formal", en caso que se considere algún cambio al Diseño propuesto, se discutirá con la contraparte del Ministerio Público, incluyéndolo luego en dicho documento.
En resumen, el objetivo de esta etapa es determinar, en una primera fase, los requerimientos del sistema y representarlos formalmente.

Los elementos a considerar son:

Análisis de Requisitos:

El análisis adecuado de los requerimientos de un sistema de información, es la primera etapa del desarrollo de software y por ende la etapa fundamental que merece toda la atención necesaria para lograr un correcto levantamiento de los requerimientos del sistema. En este proyecto, por tratarse de un sistema procesal penal, originado de una profunda reforma, se presentará una gran cantidad de definiciones, por lo cual se propone el establecimiento de una metodología clara que asegure la extracción de todos los aspectos relevantes que debe considerar el sistema, permitiendo con ello establecer las bases del diseño conceptual y lógico del mismo.
Para efectuar el análisis de los requerimientos en el marco del nuevo proceso penal, se estima necesaria la participación de los siguientes profesionales:

Abogado Asesor: profesional(es) con amplios conocimientos en la Reforma Procesal Penal.

Abogado Analista: profesional con amplia experiencia en el análisis y diseño de sistemas computacionales para el Sistema Judicial.

Analistas Expertos: profesionales con extensa y comprobada experiencia en análisis de requerimientos, modelamiento y diseño de soluciones de sistemas.

Arquitecto de la Solución: profesional con amplios conocimientos técnicos en el uso y aplicación de herramientas de análisis y diseño de la arquitectura tecnológica del sistema.

Equipo Multifuncional del Ministerio Público: profesionales de informática, Jueces y/o ministros, abogados y otros que determine el Ministerio Público.

Una vez conformado el grupo de trabajo, se planifica un conjunto de reuniones de carácter técnico cuyo objetivo es estudiar, analizar y definir en detalle las funciones de cada módulo del sistema, visto éste como un sistema integrado. El resultado de este trabajo será un modelo de datos generalizado que permita sentar las bases del diseño y la implementación de las funciones por módulo. Superada esta etapa, se está en condiciones de abordar el desarrollo de los módulos por separado y en forma simultánea con más de un equipo de trabajo realizando tareas de análisis, diseño y programación de los distintos módulos que son objeto de la presente licitación.
Lo anteriormente expuesto significa que los distintos módulos requeridos por el Ministerio Público se desarrollarán en forma paralela logrando con esto la optimización en la asignación de los recursos del proyecto, y la obtención de un tiempo global de ejecución del proyecto de acuerdo a lo propuesto.

En esta etapa podemos mencionar los siguientes resultados:

Para el análisis de procesos de trabajo, habitualmente se utilizan dos técnicas combinadas: Diagramas de Flujo de Datos (DFD) y Matrices de Responsabilidad (MDR). Los DFD se utilizan sólo para identificar los procesos principales, sin intentar llegar al detalle con ellos, y las MDR se utilizan para identificar los procesos elementales. En el caso de este trabajo en particular se utilizó la definición de procesos de trabajo entregada por el Ministerio Público con una técnica de modelamiento conocida como "Rediseño de procesos de negocios mediante el uso de patrones" y el apoyo en los detalles a través de "Diagramas de pistas".


9.4 Etapa de Especificación de Diseño Físico

Una vez conocido el problema, se identifican los distintos procesos computacionales y se define una arquitectura (basada en los requisitos y arquitectura tecnológica) y una implementación. La especificación, está muy relacionada con el software básico específico que se utiliza en la construcción que en este caso corresponde a las herramientas de desarrollo propuestas en la plataforma tecnológica.

Los elementos a considerar son:

En esta etapa podemos mencionar:

- Descripción de Módulos

Un módulo es una agrupación arbitraria de procesos elementales. El concepto de módulo se utiliza con el objeto de particionar el problema. Lo aconsejable, en cualquier caso, es que la agrupación sea realizada con algún criterio de relación.
En esta etapa se definen los distintos módulos del sistema, describiendo su funcionalidad general, los procesos elementales que implementa, e indicando si es un módulo Cliente o Servidor.
La presentación se realiza sobre la base de una tabla, Ordenada por su primera columna, como la siguiente:

Nombre del Módulo

C/S

Abreviación
(3 caracteres)

Descripción

Procesos Elementales

- Diccionario de Tipos y Datos

El diccionario de datos se compone de dos elementos: el Diccionario de Tipos de Datos y el Diccionario de Datos. Estos diccionarios definen la representación física de los datos.
El Diccionario de Tipos de Datos es la base de todas las definiciones. Se especifican Restricciones, Valores por Defecto y los Tipos de Datos.
Los Tipos de Datos se especifican en una tabla, Ordenada por la primera columna, que contiene lo siguiente:

Nombre

Descripción

Tipo

Largo

Restricción

V. Defecto

Nombre: El nombre del tipo de dato, con un máximo de 30 caracteres. Debe tener como prefijo Typ_.
Descripción:
La descripción.
Tipo: Corresponde a un tipo básico y elemental. Pueden ser: Integer, Real, Money, String, Module, Flag, Date, Timestamp.
Largo: (Largo total, Número de Decimales, Signo) o (Largo mínimo, Largo máximo). No aplicable a Flag, Date y Timestamp.
Restricción: Nombre de la Restricción (Cns).
V. Defecto: Nombre del valor por Defecto (Dfl).

El Diccionario de Datos se presenta como una tabla, Ordenada por la primera columna, que contiene lo siguiente:

Nombre

Descripción

Tipo de Dato

Nombre: El nombre del dato, con un máximo de 30 caracteres. Debe tener como prefijo fld_
Descripción:
La descripción.
Tipo de Dato:
Corresponde a un tipo definido en el Diccionario de Tipos de Datos.

Especificación de Formularios

Una de las actividades donde mayor tiempo se invierte, es en la "Pintura" de pantallas (forms). Por esto se ha ideado una forma en que el diseñador especifica un form en términos de los objetos que contiene, pero dibuja lo menos posible. Durante este proceso, se va introduciendo la lógica de la interfaz y se deducen, además los servicios que se necesitan.
La especificación de formularios se realiza por cada Módulo de tipo Cliente.
El producto contempla en primer lugar un diagrama jerárquico que indica todos los forms, y el flujo de llamadas que hay entre ellos.

Posteriormente se realiza una descripción de cada form, utilizando una tabla que contiene lo siguiente:

Objeto Gráfico Nombre Prompt. Descripción Servicio

Objeto Gráfico: Puede ser: TextBox, ComboBox, Button, Grid.
Nombre: Nombre del Objeto gráfico. Si el objeto es TextBox o ComboBox, el nombre debe ser un dato definido en el Diccionario de Datos (Fld). Si el objeto es Button, debe tener el prefijo b_.
Prompt:
El texto de identificación que debe aparecer en la pantalla. (Por defecto aparece la descripción del Fld.)
Descripción:
Descripción si procede. En los objetos tipo Button es imprescindible.
Servicio: Nombre del servicio asociado.

Opcionalmente puede acompañarse con un dibujo.

- Especificación de Servicios

Los servicios son la interfaz entre el Cliente y el Servidor. Es importante notar que lo único que conocen los Clientes son datos (del Diccionario de Datos) y servicios.
Opcionalmente, y a modo de resumen, se construye una tabla donde se clasifican los servicios basándose en las cuatro operaciones:

Abreviación Módulo Servicios Creación (Insert) Servicios Eliminación (Delete) Servicios Actualización (Update) Servicios Consulta (Retrive)

El detalle de los servicios se especifica sobre la base de una tabla que contiene lo siguiente:

Abreviación Módulo

Nombre Servicio

Parámetros

Clase
(I, O, IO, OC)

Descripción

Módulo : Abreviación del nombre del módulo al cual pertenecen los servicios.
Nombre Servicio: Debe comenzar con el prefijo Srv_ (30 caracteres).
Parámetros : Deben comenzar con el prefijo Fld_. Hay que notar que estos nombres darán origen (en la mayoría de los casos) a las columnas de las tablas en el Modelo de Datos: Es un dato definido en el Diccionario de Datos.
Clase : Los servicios operan basándose en parámetros, y también son capaces de entregar como salida un conjunto de "Filas". La clase indica si es un parámetro de entrada (I), un parámetro de salida (O), un parámetro de entrada/salida (IO), o una columna del conjunto de filas (OC).
Descripción: Qué hace el servicio.

- Especificación del Modelo de Datos

La especificación del modelo de datos puede hacerse completa o separada por módulos.
Este producto es un diagrama del modelo de datos, según el modelo de especificación Entity-Relation, normalizado hasta la tercera forma normal, seguido de una descripción de las tablas, columnas e índices.
La descripción de las tablas, columnas e índices, ya es una representación física y se realiza en base a las siguientes matrices:

Tablas

Tabla

Descripción

Prefijo (abreviación 3 caracteres)

Columnas

Tabla

Dato (Fld) (Columna)

Comentarios

Índices

Tabla

Indice

Descripción

Prim

Dup

Columnas

Tabla : El nombre de la tabla. (30 caracteres).
Columna : Dato (Fld) definido en el Diccionario de Datos.
Índice : Nombre del Índice. Debe comenzar con el prefijo Ix.
Prim : Indica (X) si es un índice primario.
Dup : Indica (X) si es con duplicados. (Incompatible con Prim).
Columnas : Nombres de los atributos que componen el índice.


Relaciones

Relación

Descripción

Tabla 1

Columnas Tabla 1

Tabla 2

Columnas Tabla 2

Integridad Referencial

Relación : El nombre de la Relación. (30 caracteres).
Integridad Ref. : Restrict o nada.
Columnas : Indica las columnas por las cuales se establece la relación.


9.5 Etapa de construcción

En esta etapa, podemos distinguir varias subetapas que permiten obtener el resultado esperado, y que corresponde al sistema construido, tanto en su parte Cliente, como en su parte Servidor.

Las subetapas a considerar son:

- Etapa de Desarrollo de Prototipo

El objetivo de desarrollar un prototipo del sistema en estudio, es lograr un conocimiento de los elementos esenciales del sistema real en forma más rápida, lo que permite tener una herramienta que facilita tanto a los usuarios como a los "Desarrolladores" evaluar y/o criticar el comportamiento que este tendrá. Con la base de este conocimiento es posible llegar a construir un mejor sistema, los requerimientos al sistema real van surgiendo después de continuas revisiones al modelo de prototipo.
Esta etapa, incluye además las fases de Prueba del Prototipo, y el Test de Prototipo, para lo cual el Ministerio Público contará con el prototipo instalado en las estaciones de trabajo que indique. El Ministerio Público contará con un número de días definidos en el contrato para realizar esta etapa de revisión y observaciones, y poder luego informar su aprobación y/o posibles puntos a considerar en las siguientes etapas.

- Etapa de Programación del Sistema Real

En esta etapa, a cada uno de los procesos definidos en la etapa de revisión de diseño lógico y diseño físico, se le realiza su codificación en términos del Cliente y Servidor.
Para esta etapa se consideran los siguientes hitos que corresponden a los pasos a seguir, pero no definen un proceso necesariamente secuencial, ya que algunas de ellas deben ser construidas en forma paralela para lograr el objetivo de comunicación deseado entre el programa Cliente, y el programa Servidor.

Se debe considerar:

Debemos mencionar la programación de la base de datos como uno de los hitos más importantes del desarrollo, es en el servidor, y en particular en la programación de la base de datos donde se concentra la inteligencia del sistema a desarrollar.

En resumen esta etapa incluye:

- La especificación de tipos, campos, tablas, módulos, valores por defecto, reglas de validación y otros en el repositorio de la herramienta de desarrollo propuesta para el desarrollo.
- La generación de procedimientos que permiten cargar las tablas, triggers, y procedimientos de apoyo a la Base de Datos generada.
- La programación de los servicios a construir y la prueba de cada uno de ellos en forma individual.

En esta fase, nuevamente la herramienta de productividad juega un papel fundamental en mejorar los tiempos y la productividad de los desarrolladores, ya que al tener las especificaciones claramente definidas en el repositorio de la herramienta, es posible generar parte del código del Form necesario para la interfaz cliente, dejando al programador el complemento de esta programación, y la preocupación de entregar una interfaz amigable al usuario.
Además, esta etapa contempla el enlace con los servicios ya programados en el servidor de datos, y la generación de su correcto llamado utilizando los parámetros de entrada y salida necesarios.


9.6 Etapa de Pruebas

Un punto importante y clave para el éxito de un proyecto, además de su término en forma adecuada y en los plazos indicados, lo constituye la calidad del sistema entregado, la cual se garantiza en cada una de las etapas del desarrollo. Se cuenta con un grupo independiente al grupo de desarrollo, que tiene por objeto velar por el cumplimiento de las normas, metodología, y planes establecidos.
La prueba es un conjunto de actividades que se pueden planificar por adelantado y llevar a cabo sistemáticamente.
Para efectos de elaborar una prueba, deben necesariamente distinguirse las etapas mediante las cuales se desarrollará, para lo cual distinguiremos las siguientes:

- Prueba Unidad
- Prueba de Integración
- Prueba de Correcciones

PRUEBAS DE UNIDAD:

En esta etapa la prueba está orientada a la verificación, la cual se refiere al conjunto de actividades que aseguran que el software implementa correctamente una función específica y/o aquella para la cual fue diseñada.
En este caso se deben probar en forma independiente cada uno de los Módulos constituyentes del Sistema.
Lo anterior significa que una vez desarrollada la parte Cliente y la parte Servidor, es necesario efectuar un test individual por pantalla, por módulo y por subsistema de la integridad de la operación de ambos (Cliente/Servidor), para ello se realizan pruebas al mínimo nivel en primera instancia (llamado a un servicio en particular), las que van aumentando su nivel a medida que las primeras van pasando el test individual (pantallas, módulos, etc.).

PRUEBAS DE INTEGRACIÓN:

En esta etapa la prueba está orientada a la validación de la integridad del software, la cual se refiere al conjunto de actividades que aseguran que el software construido se ajusta a los requerimientos y que los módulos interactúan entre sí correctamente. Esta etapa finaliza las pruebas, tras concluir con la convicción que el Software y/o Sistema alcanza la funcionalidad y rendimiento esperados, es decir, el resultado de esta etapa será la aprobación del sistema por parte del Ministerio Público, en lo que respecta a programación.

PRUEBA DE CORRECCIONES:

Esta es una etapa que existirá al final de cada una de las etapas anteriores, y el objetivo que se persigue en ella es la revisión a las correcciones de los errores detectados.
La definición y ejecución del Plan de Prueba que se ha determinado para los sistemas objetos de esta propuesta, se detalla en el punto "Definición y Ejecución del Plan de Pruebas", de este mismo capítulo.


9.7 Etapa de Documentación

      Se entregará al Ministerio Público la documentación detallada, que a continuación se especifica, en papel y en medio magnético, generada con el procesador de texto MS-Word para Windows.

9.7.1 Tipos de Manuales y Temas

      - Manual de Diseño Lógico
      - Manual de Diseño Físico
      Diccionario de datos
      Referencias cruzadas

      - Manual del Usuario

      Introducción: se describe el objetivo general de la aplicación y generalidades de protocolo de ingreso, organización del manual y mapeo de las teclas a utilizar.
      Descripción General del Software: se describen la funcionalidad y capacidades de la aplicación y de los módulos involucrados en ella.
      Medio Ambiente: se describen las entidades involucradas en la aplicación, módulos que interactúen con la aplicación, flujo de información entre ellos, diagrama de contexto, etc.
      Modelo Conceptual: se describe el diagrama que representa la aplicación, destacando las funciones que posee y las entidades o aplicaciones relacionadas.
      Estándares de Operación: se señalan los elementos comunes en la operación de la aplicación, como teclas de función, manejo de errores y mensajes.
      Operación del Software: se describen los mecanismos de operación de cada una de las funciones que provee la aplicación. Se especifican los objetivos de cada una de las funciones, presentando su pantalla asociada, los procesos relacionados y formularios y/o listados.
      Secuencia de Ejecución de Funciones: se describen las secuencias normales de ejecución (funciones diarias, semanales, mensuales, etc.), así como las especiales o esporádicas, con su correspondiente grado de importancia dentro del sistema (discriminando entre críticas y no críticas).
      Mensajes de Error: se indica cada uno de los mensajes de error utilizados por el sistema en la validación de datos u otros.

      Cabe destacar que el Manual de Usuario será incluido en sus mismos términos como ayuda en línea de la aplicación cliente.

      - Manual de Administración y Operación

      Introducción: se especifican las tareas computacionales básicas que se deben realizar para poner el software en producción y mantenerlo.
      Requerimientos de Instalación: se describen los requerimientos de hardware y de software necesarios para poder instalar la aplicación (espacio en disco, memoria, tipo y número de terminales, diskettes, versión sistema operativo, herramientas de software de base de datos, de comunicaciones etc.).
      Instalación del Software de Aplicación: se describen los procesos computacionales previos a la ejecución normal del software (set up inicial, conversiones, creación de archivos, poblamiento inicial).
      Procedimientos de Producción: se describen los procedimientos necesarios para la explotación de la aplicación. Los procedimientos computacionales incluyen los archivos, programas y mensajes de consola respectivos, chequeo de hardware Local y comunicaciones, representados por medio de diagramas.
      Procedimiento de Respaldo y Recuperación de Información: se describen los procedimientos necesarios para el respaldo y recuperación de información.
      Mantención de Usuarios: se describen los mecanismos por medio de los cuales se incorporan usuarios al sistema, el manejo de privilegios y demás aspectos relacionados

      Programas Fuentes

      Como parte de la documentación del proyecto el Consorcio, hará entrega al Ministerio Público de los programas fuentes del software de aplicación objeto de esta licitación.

      Documentación del Plan de Pruebas

      Como parte del plan de prueba ejecutado a las piezas de software de aplicación, se llevará un registro de las pruebas realizadas y los resultados de éstas (análisis) tanto para las pruebas unitarias como para las pruebas integradas y de corrección. Dicha documentación será entregada al Ministerio Público.

      Documentación del Plan de Capacitación

      Documentación del Plan de Implantación


9.8 Etapa de Capacitación

      La etapa de capacitación está orientada a los usuarios del sistema. Además, se orienta una parte de esta capacitación al o los administradores del sistema.
      El objetivo final del plan de capacitación es preparar a los distintos usuarios, en el uso y manejo de cada una de las funcionalidades inherentes y necesarias para desarrollar sus labores con el apoyo computacional.
      En el punto "Control de Calidad y Prueba" se describen las características de las diferentes actividades relacionadas con la definición y ejecución del Plan de Capacitación que se propone para el desarrollo del proyecto del Ministerio Público.


9.9 Implantación y Puesta en Marcha

El proceso de implantación, desde el punto de vista de la metodología de desarrollo propuesta, considera las siguientes actividades:

- Organización del equipo de trabajo del proceso de Implantación
- Verificación de Datos básicos para la explotación
- Capacitación
- Instalación y Configuración de Sistema
- Inicio de Operación
- Soporte de puesta en marcha