Metodología de Desarrollo de Sistemas

Anuncio
Metodología de Desarrollo de Sistemas ALFA
α
MDS-
VERSION 1.0
Ministerio de Economía y Finanzas Públicas - Bolivia
Unidad de Tecnologías de Información - UTI
Control de Calidad y Seguridad Informática - CCSI
2009
Metodología de Desarrollo de Sistemas ALFA
MDS
-α
VERSION 1.0
Ministerio de Economía y Finanzas Públicas - Bolivia
Unidad de Tecnologías de Información - UTI
Control de Calidad y Seguridad Informática - CCSI
Copyleft 2009 – UTI – Licencia Abierta
Todo el material escrito en el presente documento se encuentra bajo licencia de
Documentación Libre GNU, por lo tanto es libre de copiar, distribuir, modificar y ajustar este
texto de manera conveniente. La licencia puede ser consultada en la dirección web
http://www.gnu.org/copyleft/copyleft.es.html y otras referencias pueden encontrarse en
http://es.wikipedia.org/wiki/Copyleft
El ingeniero de software amateur se encuentra siempre en la búsqueda de
algún método o herramienta mágica cuya aplicación prometa transformar el
desarrollo de software en algo trivial. Lo que distingue a un ingeniero de
software profesional es el convencimiento de que no existe semejante panacea.
[Grady Booch]
Metodología MDS-α
INTRODUCCIÓN
METODOLOGÍAS
Las metodologías para el desarrollo de sistemas ayudan a la construcción de software con un
importante aporte de calidad, señalando los diferentes pasos y actividades a realizar hasta lograr el
producto buscado. Tal producto tiene origen de la necesidad de los usuarios para soportar procesos
importantes de las actividades que estos últimos realizan, como ser: almacenamiento masivo de
información, seguimiento y control de los diferentes procesos automatizados, cálculos periódicos y
precisos, emisión de reportes actuales e históricos, etc.
Por lo general estas metodologías solo contemplan los términos técnicos de la creación de software,
abarcando así las etapas conocidas como análisis, diseño, implementación e implantación, desde
diferentes enfoques.
METODOLOGÍA DE DESARROLLO DE SISTEMAS ALFA (MDS-α)
La Metodología de Desarrollo de Sistemas ALFA o simplemente MDS - α, fue concebida para abarcar
temas adicionales que otras metodologías dejaron de lado, como así también para brindar una
herramienta formal de desarrollo de software en el Ministerio de Economía y Finanzas Públicas de
Bolivia, y que a partir de esta pueda transformarse en un estándar a nivel público.
Su nombre alude a la noción de que todo tiene un inicio, una necesidad que debe ser planteada
desde su esquema base y que antes de comenzar un desarrollo de software a ciegas, se debe
contemplar los pasos de origen del mismo. Es así como está conceptualizada la presente
metodología, desde la necesidad de plantear una determinada problemática con una visión de
gestión de proyectos, hasta la concepción del producto y su debido mantenimiento.
Además, en el Ministerio señalado como así también ocurre en otras entidades públicas, no existe un
criterio metodológico de desarrollo de software por sus respectivas Unidades de Sistemas, y mucho
menos hablar de la documentación de los mismos. Debido a esta última circunstancia, cuántos
sistemas no tendrán el soporte suficiente para un adecuado funcionamiento, cuántos se habrán
discontinuado, cuántos se habrán sobredimensionado, y tantas otras cosas más; provocando como
Unidad de Tecnologías de Información
1
Metodología MDS-α
consecuencia general que se ignore el aspecto tecnológico informático en la mayoría de
organizaciones tanto a nivel público como privado. Por ello nace MDS - α, para ordenar y cimentar el
aspecto técnico del desarrollo de sistemas con tópicos fuertes en la calidad de los mismos.
A diferencia de otras metodologías, se hace énfasis en el tratamiento de proyectos informáticos y su
adecuado planteamiento por parte de las diferentes Unidades o Usuarios solicitantes, este es el
insumo necesario para todo profesional informático y que a partir de esta información se pueda
hacer un buen dimensionamiento del sistema a desarrollar. Así también se puso un enfoque muy
fuerte en la etapa de análisis de los sistemas con temas tales como requerimientos, especificaciones y
arquitectura de software y sus herramientas de aplicación.
Todos los procesos del ciclo de vida de desarrollo de software están contemplados bajo tópicos de
calidad, permitiendo de esta manera sistemas eficientes, íntegros, coherentes, mantenibles, u otras
características.
Las metodologías que sirvieron de base son:
§
METRICA Versión 3
§
Me Rinde
§
MDSI (Metodología de Desarrollo de Sistemas de Información)
§
RUP (Rational Unified Process)
§
RUP Pequeño
ORGANIZACION
El capítulo 1, enfoca que los proyectos del rubro tecnológico son también proyectos de inversión y
que su criterio de evaluación estará relacionado con el de costo – beneficio. Conceptualiza las ideas
generales que se deben tener en cuenta para un planteamiento de un proyecto, en los costos que se
suscitarán y en los beneficios que se esperan de él.
El capítulo 2, se refiere a los diferentes pasos de la formulación del proyecto que debe preparar cada
unidad solicitante; logrando de esta manera consolidar la problemática que envuelve el desarrollo y
ejecución de un proyecto tecnológico. Esta documentación sirve como medio de justificación para
atender las diferentes demandas y su correspondiente necesidad de atención ante las diferentes
autoridades de la entidad; así también introduce al profesional en sistemas en el entorno en que se
Unidad de Tecnologías de Información
2
Metodología MDS-α
desenvolverá y de manera inicial lograr hacer un adecuado dimensionamiento y planificar sus
respectivos tiempos de solución. Este capítulo tiene cuatro anexos que corresponden a: formulación
del problema mediante el método del árbol causa y efecto – Anexo 1, definición de procesos y
procedimientos – Anexo 2, estimación de costos y beneficios – Anexo 3 y la creación de la matriz del
marco lógico – Anexo 4.
El capítulo 3, trata de los requerimientos de software que de acuerdo al capítulo 2 y la ingeniería de
requerimientos aplicada con los usuarios del sistema, se podrá llenar la correspondiente plantilla que
se exige en este capítulo. Adicionalmente está sección cita en el Anexo 5 un número considerable de
herramientas que se pueden utilizar en la cita técnica.
El capítulo 4, está dedicado a las especificaciones de software, las cuales se obtienen a partir del
estudio completo de los requerimientos previstos en el anterior capítulo; su finalidad es la disposición
del modelado de negocios, el diagrama de contexto, los casos de usos, el documento de
especificaciones de software y el diagrama de flujo de datos.
El capítulo 5, brinda el soporte teórico suficiente para diseñar la arquitectura del software que a estas
se tiene claramente especificado, eligiendo para ello un modelo acorde a las necesidades de diseño;
acompaña a este capítulo el Anexo 6, en la cual se cita a los patrones o estilos arquitectónicos más
usados en la actualidad.
El capítulo 6, aborda el tema del diseño y modelamiento del sistema, exigiendo para ello el diseño de
la interface de usuario, el modelo conceptual del sistema que dependiendo de que si el diseño es
estructurado u orientado a objetos el diagrama a utilizar será ó entidad-relación ó el de clases
respectivamente, el modelo lógico en base a las reglas del modelo relacional y el modelo físico de
acuerdo al diccionario de datos de cada relación establecida en el modelo anterior.
El capítulo 7, resalta la planificación que el arquitecto de software ha realizado para empezar la etapa
de implementación, la cual ésta relacionada en la traducción de los esquemas del modelo físico en
una Base de Datos, los aspectos de configuración y los de codificación de los diferentes componentes
del sistema en cuestión. Así también se incluye en esta sección las convenciones de codificación que
se utilizarán para hacer mas legibles y entendibles los códigos fuentes de los diferentes programas.
Unidad de Tecnologías de Información
3
Metodología MDS-α
El capítulo 8, está enfocado al tema de las pruebas del sistema, resaltando que no es una prueba de la
calidad del software; se resalta que debe realizarse una planificación para llevar adelante esta
actividad en base fundamentalmente a la funcionalidad, fiabilidad y rendimiento del sistema.
El capítulo 9, se refiere a los aspectos primordiales en la implantación del sistema, requiriendo para
ello la confección de un adecuado plan de implantación, la capacitación de los diferentes usuarios
como medio de réplica y transmisión conocimientos, la confección del manual de instalación y del
manual de usuario como soportes físicos de colaboración.
El capítulo 10, está dedicado al mantenimiento del sistema, cuya misión más importante es el de
gestionar las diferentes versiones del sistema, para ello se mantiene un catálogo de todos los
registros de peticiones y que de acuerdo a su tipo puede ser catalogado como mantenimiento
correctivo, evolutivo, adaptativo o perfectivo. Todo este proceso debe cumplir con una rigurosa
documentación que demuestre los diferentes hechos suscitados.
Por último el capítulo 11, se refiere al plan de aseguramiento de calidad del software el cual debe ser
diseñado antes de comenzar el desarrollo del producto, para ello debe realizarse una planificación
sistemática de cada requerimiento de calidad que se pretende ver en la aplicación informática a
implementar.
APLICACIÓN METODOLÓGICA
En esta sección definiremos 3 formas elementales de cómo aplicar la presente metodología ante
diferentes proyectos según la naturaleza de cada uno de ellos.
Aplicación Lineal
Se utiliza generalmente para proyectos pequeños en donde cada etapa fue conceptualizada de forma
cabal y en acuerdo con todos los participantes del proyecto.
Cap. 1 y 2
Cap. 10
Cap. 3
Cap. 9
Cap. 4
Cap. 11
Cap. 5
Cap. 8
Cap. 7
Cap. 6
Graf. I-1: Aplicación Lineal
Unidad de Tecnologías de Información
4
Metodología MDS-α
Aplicación Cíclica
Se utiliza generalmente para proyectos de mediana envergadura, donde el desarrollo es por
componentes separados e igualmente bajo un enfoque cabal de cada subsistema.
Cap. 1 y 2
Cap. 3
Cap. 10
Cap. 9
Cap. 4
Cap. 11
Cap. 5
Cap. 8
Cap. 7
Cap. 6
Graf. I-2: Aplicación Cíclica
Aplicación Iterativa por Fases
Su aplicación no es exclusiva para proyectos grandes; este modo se ajusta a la mayoría de los
proyectos y su dinamismo permite regular cada una de las anteriores etapas al efectuar un número
determinado de iteraciones en cada fase.
FASES
Inicio
Elaboración
Construcción
Transición
Cap. 1 y 2
Cap. 3
Cap. 4
Cap. 11
Cap. 5
Cap. 6
Cap. 7
Cap. 8
Cap. 9
Cap. 10
ITERACIONES
Iter. Inicio
Iter. E1
Iter. E2
Iter. C1
Iter. C2
Iter. C3
Iter. T1
Iter. T2
Tabla I-1: Aplicación Iterativa por Fases
Fase de Inicio: Define el alcance del proyecto.
Fase de Elaboración: Abarca el plan del proyecto, especificaciones y arquitectura base.
Fase de Construcción: Se construye el producto.
Fase de Transición: Disposición del producto a los respectivos usuarios.
Unidad de Tecnologías de Información
5
Metodología MDS-α
Iteraciones: Cada fase puede dividirse en iteraciones; cada iteración representa un ciclo de desarrollo
completo; ocasionando como resultado un entregable del producto final.
Guía Rápida de la Metodología ALFA
Para cualquier aplicación metodológica elegida, se describe cada una de las etapas de acuerdo al un
marco de trabajo en un proyecto informático.
Capítulo 1 y 2: Bases de un proyecto de desarrollo de sistemas – Preparación del proyecto de
desarrollo de sistemas.
Propósito: La unidad solicitante es la encargada del desarrollo de esta sección y coordinara su
labor en ciertos aspectos técnicos y la planificación de actividades respecto a los tiempos de
ejecución del proyecto con la Unidad de Tecnologías de Información.
§ Este capítulo trata de ubicar a la unidad solicitante y a los usuarios en general acerca de los
temas que involucra los proyectos de inversión y en particular los proyectos informáticos.
§ Medio de transmisión de la problemática que envuelve al entorno y de inducción al
profesional informático en el tema en cuestión.
§ Justificar la necesidad de implementación de una solución informática a diferentes instancias.
Resultado: La unidad solicitante debe hacer llegar esta documentación para dar inicio formal al
proyecto informático.
§ Documento que refleje la formulación o preparación del proyecto informático.
Capítulo 3: Requerimientos de software.
Propósito: Utilizando el material provisto por la unidad solicitante y aplicando técnicas de
ingeniería de requerimientos el profesional en desarrollo de software deberá captar todos los
requerimientos para el sistema en cuestión; así también abordar y describir el entorno en que se
desenvolverá.
Resultado: Documento de Visión y Alcance del Proyecto.
Unidad de Tecnologías de Información
6
Metodología MDS-α
Capítulo 4: Especificaciones de software.
Propósito: En base a la visión y alcance del proyecto, haciendo énfasis en los requerimientos
brindados en la etapa anterior, el profesional en sistemas deberá refinar estos últimos
conjuntamente con los usuarios y de esa manera contextualizar formalmente el escenario del
software a desarrollar.
Resultado: Se pide la conformación de:
§ El modelado de negocios.
§ El diagrama de contexto.
§ Los casos de uso.
§ El documento de especificaciones de software.
§ Y el diagrama de flujo de datos.
Capítulo 11: Plan de aseguramiento de la calidad.
Propósito: Una vez conocido el entorno de trabajo y el correspondiente análisis realizado en las
etapas anteriores, se puede concentrar en los diferentes atributos de calidad que deberá tener el
software a desarrollar. En esta etapa deben participar los distintos actores involucrados en el
proyecto como ser: los desarrolladores, los usuarios, el arquitecto de software, el personal de
control de calidad, etc.
Resultado: Conformar el documento de Plan de Calidad.
Capítulo 5: Arquitectura de software.
Propósito: Dadas las pautas de calidad y el correspondiente análisis del sistema, se debe
formalizar las estructuras base que cimentarán el soporte del software a desarrollar. En esta
actividad participan principalmente el arquitecto de software y los desarrolladores.
Resultado: Conformar la arquitectura de software del sistema a desarrollar.
Unidad de Tecnologías de Información
7
Metodología MDS-α
Capítulo 6: Diseño y modelamiento.
Propósito: Concretar formalmente el diseño y modelamiento del sistema en base a las
especificaciones y arquitectura de software. Esta etapa es enteramente cumplida por el
profesional en desarrollo de sistemas.
Resultado: Debe consolidarse los siguientes productos:
§ La interface de usuario.
§ El modelo conceptual.
§ El modelo lógico.
§ El modelo físico.
Capítulo 7: Implementación.
Propósito: En base al diseño del sistema, consolidar todos los objetos necesarios en un Gestor de
Base Datos (tablas, vistas, procedimientos almacenados, funciones, disparadores, tareas
programadas, etc), e implementar el código fuente de las diferentes funcionalidades que tendrá
el sistema en cuestión.
Resultado: Código fuente, ejecutables u otros del sistema requerido.
Capítulo 8: Pruebas.
Propósito: Esta actividad se la puede llevar de manera paralela al momento de realizar la
implementación (pruebas de unidad). Su fin es el de detectar errores y anomalías en general que
sean perjudiciales principalmente a la funcionalidad, fiabilidad y rendimiento del sistema.
Resultado: Conformar el Plan de Pruebas.
Capítulo 9: Implantación del sistema.
Propósito: Se trata de colocar el sistema en un ambiente de producción. Esta actividad se la
realiza luego de haber pasado claramente el plan de pruebas.
Unidad de Tecnologías de Información
8
Metodología MDS-α
Resultado: Se exige mínimamente:
§ Un plan de implantación.
§ Capacitación de los diferentes usuarios según sus roles.
§ Disponer de un manual de instalación.
§ Disponer de un manual de usuario.
Capítulo 10: Mantenimiento del sistema.
Propósito: Dar continuidad a la vida y explotación del sistema, posibilitando su adecuación a los
requerimientos iniciales como así también la creación de las nuevas funcionalidades que se
exigen como forma de adaptabilidad al dinamismo del entorno.
Resultado: Disposición de las nuevas versiones del sistema manteniendo para ello un adecuado
catálogo de registros a las diferentes peticiones de cambio.
Unidad de Tecnologías de Información
9
Metodología MDS-α
CAPITULO 1
1 BASES DE UN PROYECTO DE DESARROLLO DE SISTEMAS
El desarrollo de sistemas y de software en general no es una tarea sencilla y mucho menos un
proceso trivial. Para construirlo en forma exitosa es fundamental manejar una amplia variedad de
métodos, técnicas y herramientas; para ello es necesario tener una visión clara e integral de todo el
proceso, en donde la participación del usuario, cliente o beneficiarios es de fundamental importancia.
Las tendencias actuales ponen mayor énfasis que en el proceso de desarrollo de software los
participantes no solamente son los profesionales informáticos, sino también los distintos actores que
cubren el entorno del sistema (usuarios, analistas, programadores, depuradores, gerentes, etc.)
Como estrategia lógica de todo proyecto informático, debe presentarse a la Unidad de Tecnologías de
Información (UTI) la documentación correspondiente a la preparación y evaluación del proyecto a
llevarse a cabo, así mediante esta información se pueda dimensionar más apropiadamente el trabajo a
realizar.
Las herramientas que se utilizarán en los capítulos 2 permitirán a los distintos solicitantes de proyectos
de informática lo siguiente:
§
Presentación correcta de un proyecto de tecnologías de información
§
Presentación de alternativas de solución (si existe más de una)
§
Evaluación de la(s) alternativa(s) de solución mediante el criterio costo - eficiencia
Entonces debe prepararse un documento base, que debe ser presentado a la UTI1, con el propósito de
que esta Unidad tenga el respaldo documentario del proyecto correspondiente, revisar el mismo para su
análisis, aprobación y posibilitar su continuidad según los lineamientos tecnológicos de la entidad.
Además como se puede advertir, la preparación y evaluación indicada en las siguientes secciones, no
solamente puede ser utilizada para plantear soluciones de desarrollo de sistemas, sino su ámbito es más
general, por ejemplo se puede realizar el planteamiento de: fortalecer a diferentes unidades de la
1
UTI - Unidad de Tecnologías de Información de una entidad
Unidad de Tecnologías de Información
10
Metodología MDS-α
institución de equipos de computación, instalación de un centro de cómputo, implantación de una
Intranet, definición de nuevos servicios IP, etc.
Si la UTI es la unidad encargada de desarrollar el proyecto, presentará un dimensionamiento del mismo
de acuerdo al problema central y los requerimientos manifestados en el planteamiento de dicho
proyecto.
En relación a proyectos de tecnologías de información se mencionan algunos problemas en las áreas
estratégica, táctica y operacional.
A nivel estratégico: Uno de los activos más importantes de las organizaciones actuales es la
información y la tecnología que la soporta, por lo tanto la tecnología implementada debe apoyar la
definición estratégica de la organización con respecto a la información, administrando la misma en
función de la generación de conocimiento. Por lo general en las instituciones de nuestro país
(públicas o privadas) se aprecia la falta de definiciones estratégicas con respecto al tratamiento de la
información.
A nivel táctico: Existe un marcado descuido en el área informática respecto a temas de calidad, por
ejemplo cuando existen licitaciones la principal variable de elección es el precio, o cuando se debe
entregar un sistema su variable de peso es el tiempo, en cuestiones de aceptabilidad de una
aplicación informática su variable más preciada es una interfaz bonita, etc. Quedan de lado temas
tales como la reusabilidad del código, su mantenibilidad y peor aún cuando se define a priori la
solución informática a implementar sin siquiera haber hecho un levantamiento de requerimientos
adecuado. También es usual que no existan respaldos de la información que es estratégica para la
organización, así también se le da más importancia a la tecnología que a la propia gestión del
proyecto.
A nivel operacional: El principal problema es la inexistencia de documentación de los diferentes
sistemas informáticos (este es un problema muy generalizado en las distintas instituciones de nuestro
país). Esta situación es comparable a construir un edificio sin haber hecho previamente los planos.
Posiblemente las diferentes circunstancias del desarrollo del sistema condujo a este hecho, pero una
unidad seria en tecnologías de información debe empezar por realizar este proceso con los diferentes
sistemas que están a su cargo. Otra falencia a nivel operacional es la inexistencia de programas
fuentes, es decir que no se dispone del código madre o que el mismo no es entendible. Así también
Unidad de Tecnologías de Información
11
Metodología MDS-α
los diferentes servicios no están correctamente instalados y consecuentemente aplicaciones en
ejecución con demoras y pérdida de datos, etc.
Planificar, organizar, dirigir y controlar un proyecto de software tiene que ver con:
§
Extraer, describir, modelar y analizar requerimientos
§
Diseñar la arquitectura del software
§
Diseñar las componentes de la arquitectura del software
§
Controlar la calidad de los productos
§
Asegurar la calidad de productos y procesos
§
Integrar entre sí los elementos que componen el software y el sistema
§
Realizar actividades de soporte al proceso, tales como administrar la configuración,
desarrollar documentación del usuario, resolver problemas, etc.
pero, su planteamiento es primero, y en este aspecto abarcaremos la preparación o formulación del
proyecto informático desde su etapa base.
1.1 GENERALIDADES
1.1.1 EVOLUCION DE LOS PROYECTOS EN TECNOLOGIAS DE INFORMACION
Los proyectos en tecnologías de información fueron evolucionando paralelamente con las distintas
organizaciones a medida que se presentaron los diferentes cambios tecnológicos. Las organizaciones
evolucionaron desde estructuras mecanicistas a flexibles para hacer frente a un entorno muy
cambiante y orientado al cliente. También la informática fue acompañando estas transformaciones;
su evolución, desde sistemas fuertemente centralizados basados en mainframe, pasando
posteriormente a sistemas interactivos (terminales de usuarios), para luego tratar con la computación
personal, mismo que hace hincapié en las redes de computadoras (surgen los sistemas gerenciales,
estratégicos, etc.). Finalmente se ha llegado al punto actual con Internet, aplicaciones multimedia,
video-conferencia, realidad virtual, etc. Similarmente ocurre en el tema de las inversiones de los
diferentes proyectos en tecnologías de información:
§
Primeramente, sólo tenía importancia la evaluación costo – beneficio.
§
Se evaluaba además, si se facilitaba la obtención de los objetivos de la organización y si es
que las tecnologías de información (TI) mejoraban la calidad de tales inversiones.
Unidad de Tecnologías de Información
12
Metodología MDS-α
§
Posteriormente cobra importancia el cómo las TI2 pueden mejorar las tomas de decisiones y
aumentar la participación de mercado.
§
Finalmente, ahora se da mayor importancia a cómo las TI pueden aumentar la capacidad de la
información (Datawarehouse, Internet, Gestión del Conocimiento, etc.) e innovación.
1.1.2 FUNDAMENTOS PARA LA ADOPCION DEL CRITERIO COSTO-EFICIENCIA
Como se indico anteriormente, el criterio de inversión a lo largo de los años fue evolucionando en
distintos aspectos. En tiempos pasados, se consideraba como criterio de inversión importante la
posibilidad de aumento de capacidad de la información. Dicho aumento está referido a la generación
de conocimiento y a un grado mayor de satisfacción por el lado del cliente. Es decir, la idea es
conocer la tecnología y explotarla de tal manera que permita ofrecer mejores servicios con la
información disponible.
Criterios anteriores se evaluaban mediante el costo – beneficio. Sin embargo, existen beneficios que
son muy difíciles de cuantificar, medir y valorar, junto a ello, se presentan beneficios intangibles tales
como mejoras en la calidad de la información, efecto modernizador, redes sociales que se pueden
establecer por Internet, aprendizaje en contacto con la tecnología, etc. Se espera que conociendo las
TI y haciendo uso de ella se hagan innovaciones importantes, lo cual agrega mayor dificultad, ya que
los beneficios se obtendrían después de tener contacto con las TI. En el nombrado criterio, el análisis
se centraba sólo en los aspectos tecnológicos, lo que implica una pérdida de vista de la administración
de la información, por tanto; no se apreciaba una adecuada definición de qué información es
relevante para la organización y qué medidas se tomaban para asegurarla o respaldarla. Hay que
considerar que esto es muy importante, porque existen empresas que perdieron sus bases de datos y
como consecuencia han quebrado en un periodo de tiempo bastante corto. Las instituciones públicas
no quiebran, pero puede afectarse seriamente en su funcionamiento.
Considerando que la evaluación encuentra su sentido en el apoyo veraz para la toma de decisiones;
en esta metodología se propone el criterio de costo-eficiencia. La idea es conceptualizar factores
estratégicos que tengan que ver con la decisión de qué información se debe almacenar (para su
posterior y adecuado tratamiento).
2
TI - Tecnologías de Información
Unidad de Tecnologías de Información
13
Metodología MDS-α
El enfoque costo-eficiencia plantea que la conveniencia de la ejecución de un proyecto se determina
por la observación conjunta de dos factores:
§
El costo: involucra la implementación de la solución tecnológica informática, adquisición y
puesta en marcha del sistema hardware / software y los costos de operación asociados.
§
La eficiencia: se entiende como la relación entre bienes y servicios finales (resultados) y los
insumos requeridos para ello (esfuerzo). Así se trata de medir en qué grado el gasto de
recursos se justifica por los resultados, minimizando costos u optimizando insumos.
Estos dos elementos evaluados en forma conjunta configuran el análisis costo–eficiencia. Es
importante que éstos sean un reflejo de la estrategia que está tomando la institución con respecto a
la información.
1.1.3 CRITERIOS DE APROBACION O RECHAZO DE PROYECTOS EN TECNOLOGIAS DE INFORMACION
Un importante elemento para aprobar o rechazar un proyecto, es la evaluación costo-eficiencia. Sin
embargo, esto no es suficiente; para que un proyecto sea aprobado tiene que estar bien justificado,
ya sea con beneficios cualitativos o cuantitativos. En este sentido, será muy importante la coherencia
del proyecto con un plan informático o con líneas estratégicas planteadas en la institución, es decir
que los sistemas a implementar deben coadyuvar con los objetivos de la institución. Debe verificarse
que el cálculo de ponderadores responda a la estrategia, es así que si una unidad organizacional de la
entidad ha planteado que privilegiará la seguridad, no podría presentar el ponderador
correspondiente con un bajo porcentaje. En general, se apreciará fuertemente la coherencia que
presenta el proyecto en sí mismo.
1.2 CICLO DE PROYECTOS DE DESARROLLO DE SISTEMAS
En un proyecto informático se distinguen claramente las siguientes etapas:
§
Diseño Lógico: Los resultados típicos esperados son las respuestas a las preguntas: ¿qué
sistemas administrativos se apoyarán?, ¿qué sistemas computacionales se desarrollarán?,
¿qué flujos de información son relevantes?, ¿qué procesamiento se requiere?, ¿qué tipo de
datos se manejarán?, etc.
Unidad de Tecnologías de Información
14
Metodología MDS-α
§
Diseño Físico: Se definen los aspectos computacionales del sistema: ¿qué tipo de archivos se
necesitan?, ¿qué tipo de acceso a los diferentes archivos?, ¿qué programas?, ¿qué lenguaje o
aplicaciones?, ¿qué configuración de hardware / software?, etc.
§
Implementación: Consiste en la elaboración de los programas computacionales
anteriormente diseñados.
§
Implantación: Se realizan pruebas, alimentación de datos, marcha blanca y puesta en
producción definitiva.
§
Operación y Mantención: En esta etapa, se tiene que considerar los costos de operación y
mantención. Los costos de operación se refieren a aquellos que permiten el funcionamiento
diario del sistema y los de mantención los que permiten la actualización, la ampliación de
nuevos requerimientos, así también la reparación del mismo.
Es importante destacar, que el término mantención de sistemas informáticos, se refiere a
adecuaciones que requieran los sistemas de propiedad institucional para mantener su vigencia y
utilidad. Esta diferencia se debe a que el software tiene características distintas como producto de
ingeniería, ya que el software está sujeto a un mayor cambio en los requerimientos, así como en el
ambiente con el cual interactúa el sistema. Existen distintas alternativas de desarrollo de estas
etapas: secuencial en cascada, desarrollo incremental, desarrollo en espiral, etc. Estas alternativas se
destacan más adelante, en la presente metodología.
1.3 PROYECTOS DE INVERSION
De una u otra forma, un proyecto de desarrollo de sistemas es un proyecto de inversión. Dentro de
una institución puede o no existir un departamento de sistemas, y el llevar adelante un proyecto
informático involucra en alguna medida algún tipo de inversión, por ejemplo el recurso humano que
desarrollara el software, los usuarios que manipulan el mismo, el software base, lenguajes de
programación, bases de datos, equipamiento tecnológico, etc.
Veamos ahora las características generales de un proyecto de inversión.
1.3.1 CICLO DE VIDA DE LOS PROYECTOS
Entendemos como proyecto al diseño y ejecución de cambios en la asignación actual de recursos que
sigue un objetivo y que generan costos y beneficios, cualitativos y cuantitativos.
Unidad de Tecnologías de Información
15
Metodología MDS-α
El proceso de transformación de las ideas de inversión, pasando por el diseño y llegando hasta su
puesta en marcha, se puede dividir en los siguientes estados:
Preinversión
Inversión
Operación
Graf. 1-1: Ciclo de vida de un proyecto
En el estado de preinversión, se estima la factibilidad técnica y económica. En el estado de inversión,
se diseña y se materializa físicamente la inversión requerida por el proyecto de acuerdo a lo
especificado en la etapa anterior. En el estado de operación, se pone en marcha el proyecto y se
concretan los beneficios netos que fueron estimados previamente.
1.3.1.1 ESTADO DE PREINVERSION
En este estado se estudia la factibilidad técnico - económica mediante aproximaciones sucesivas por
etapas, siendo estas las de idea, perfil, prefactibilidad y factibilidad. La pre-evaluación de un proyecto,
en cualquiera de las etapas mencionadas tiene como objetivos:
§
Abordar en forma explícita el problema de la asignación de recursos escasos en forma óptima.
§
Recomendar al quién toma decisiones (a través de distintas metodologías), sobre la
conveniencia relativa de que una acción o un proyecto determinado se realice por sobre otras
iniciativas. (Estado de Preinversión)
§
Identificar, medir y valorizar, cuantitativa y cualitativamente, los beneficios y costos para la(s)
persona(s) o institución(es).
La selección de los mejores proyectos de inversión, aquellos que tienen mayor conveniencia relativa
(evaluación) y hacia los cuales generalmente se destinan los recursos disponibles, constituye un
proceso que sigue las siguientes etapas secuenciales:
Unidad de Tecnologías de Información
16
Metodología MDS-α
Generación y análisis de la idea de proyecto
Estudio del perfil
Estudio de prefactibilidad
Estudio de factibilidad
Graf. 1-2: Etapas de Preinversión
Cada una de ellas busca reproducir el ciclo de vida del proyecto, de manera que a medida que se
avanza en las etapas, los estudios van tomando mayor profundidad y se va reduciendo la
incertidumbre respecto a los costos y beneficios netos esperados del mismo.
La secuencia por etapas tiene por justificación evitar los elevados costos de los estudios y poder
desechar en las primeras etapas los proyectos que no son adecuados.
Los resultados esperados de cada etapa de preinversión, pasando desde la idea hasta su factibilidad,
se especifican a continuación:
Etapa de generación y análisis de la idea de proyecto
Es crucial contar con un buen diagnóstico, de modo que la generación de una idea de proyecto de
inversión surja como consecuencia clara de necesidades insatisfechas, de objetivos y/o políticas
generales de la organización, de un plan de desarrollo, etc.
Se debe establecer su magnitud, a quienes afecta y la confiabilidad de la información utilizada. Así
como también las alternativas disponibles.
Unidad de Tecnologías de Información
17
Metodología MDS-α
Del análisis surgirá la especificación precisa del bien que se desea construir o el servicio que se
pretende dar. Y servirá para adoptar la decisión de abandonar, postergar o profundizar la idea de
proyecto.
Etapa de estudio del perfil
Se estudian los antecedentes que permitan formar un juicio respecto de la conveniencia y factibilidad
técnico-económica de llevar a cabo la idea de proyecto.
El énfasis está en identificar los beneficios y costos pertinentes respecto de la situación base
(situación actual optimizada), sin incurrir en mayores costos en recursos financieros y humanos para
medirlos y valorarlos, debe incluir un análisis preliminar de los aspectos técnicos, otros diferentes
estudios y los de evaluación. Se utilizan estimaciones gruesas de los beneficios y costos,
generalmente basadas en información existente, es decir, sin incurrir en costos significativos por
concepto de levantamiento de información.
Como conclusión de esta etapa, están las decisiones alternativas de abandonar, postergar o
profundizar el proyecto pasando a la etapa de prefactibilidad.
Etapa de estudio de prefactibilidad
Se examinan a mayor detalle las alternativas viables desde el punto de vista técnico y económico que
fueron determinadas en la etapa anterior, descartando las menos atractivas. El énfasis de esta etapa
es medir los beneficios y costos identificados en la etapa de perfil. Existe un esfuerzo de inversión en
información para disminuir la incertidumbre.
Es necesario estudiar con especial atención los aspectos del entorno, la tecnología, el tamaño y la
localización del proyecto, las condiciones institucionales y legales relevantes para el proyecto.
El estudio de entorno debe identificar los beneficios en un marco de referencia general. El análisis
tecnológico incluye equipos, materias primas y procesos, que permiten determinar los costos del
proyecto. Sobre el tamaño y localización del proyecto se debe considerar la identificación y
localización de las unidades organizacionales de consumo del producto, de abastecimiento de
insumos, canales de distribución, competencia, proyecciones de crecimiento, así como el impacto en
el medio ambiente.
Unidad de Tecnologías de Información
18
Metodología MDS-α
El análisis de los aspectos administrativos permite determinar algunas componentes de costo fijo y la
organización de los recursos humanos, físicos y financieros. El análisis de los aspectos legales permite
conocer las restricciones de ese tipo que limitan al proyecto. Ejemplo: pago de impuestos, permisos
requeridos, accesibilidad de la información, puesta en ejecución, etc.
Todo lo anterior permite tener una estimación de los montos de inversión, costos de operación y de
los ingresos que generaría el proyecto durante su vida útil, esto es lo que se utiliza para la evaluación
económica y para determinar las alternativas más rentables. Conviene sensibilizar los resultados de la
evaluación en las variables más importantes.
Como resultado de la etapa se debe decidir realizar el proyecto o postergar, abandonar o profundizar
pasando a la etapa de factibilidad.
Etapa de estudio de factibilidad
La factibilidad se enfoca en el análisis detallado y preciso de la alternativa que se ha considerado más
viable en la etapa anterior. El énfasis está en medir y valorar en la forma más precisa posible sus
beneficios y costos.
Dada la cantidad de recursos destinados a esta etapa, sólo llegarán a ella los proyectos para los que
no hay duda de su rentabilidad positiva. Por ello, toma más importancia los flujos financieros y la
programación de tareas y actividades. Una vez definido y caracterizado el proyecto, debe optimizarse
en tamaño, localización, momento de inversión, etc.
Se debe coordinar la organización, puesta en marcha y operación del proyecto. Determinar el
calendario de desembolsos para la inversión, disponibilidad de equipos y sus plazos, anteproyecto de
ingeniería, selección y entrenamiento del personal, operación y mantenimiento, así también las
fuentes, condiciones y plazos de financiamiento. Esta etapa es la conclusión del proceso de
aproximaciones sucesivas en la formulación y preparación de un proyecto y constituye la base de la
decisión respecto a su ejecución.
1.4 TIPOS DE PROYECTOS INFORMATICOS
Las tipologías relevantes para proyectos informáticos son:
Unidad de Tecnologías de Información
19
Metodología MDS-α
§
Proyectos de desarrollo de aplicaciones: elaboración y puesta en marcha de programas o
sistemas computacionales.
§
Proyectos de equipamiento: adquisición por primera vez de equipos, incluyendo tanto
hardware como software básico utilitario3.
§
Proyectos de mejoramiento, ampliación o reposición: aumento de capacidad y calidad de
servicios de hardware y/o mejoramiento de software.
3
Sistemas operativos, procesadores de texto, planillas de cálculo, navegadores, antivirus, etc.
Unidad de Tecnologías de Información
20
Metodología MDS-α
CAPITULO 2
2 PREPARACION DEL PROYECTO DE DESARROLLO DE SISTEMAS
Una definición imprecisa de requerimientos de desarrollo de sistemas informáticos es lo que ha
caracterizado a la mayoría de las instituciones del estado, sencillamente se ha desplazado el concepto
para que el profesional informático investigue la naturaleza de los diferentes procesos a automatizar.
Es sorprendente, pero a veces ocurre que solo se dispone del título del sistema que se desea
desarrollar. Por esta razón se plantea este capítulo, ya que cada sistema debe mostrar su contexto
inicial para poder realizar un adecuado dimensionamiento del mismo. Además, los usuarios son los
que conocen los diferentes procesos y procedimientos a implementar.
La siguiente tabla visualiza los distintos puntos que deben ser tomados en cuenta para la formulación
de un proyecto informático de acuerdo a su dimensión.
Secciones
Proy. Pequeño
Proy. Mediano
Proy. Grande
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Tabla 2.1: Puntos necesarios para la formulación de proyectos informáticos
Unidad de Tecnologías de Información
21
Metodología MDS-α
La norma ISO/IEC 12207 4 enfatiza los diferentes procesos del ciclo de vida del software, y en la
mayoría de tales procesos son los usuarios quienes tienen una marcada y elevada participación.
La unidad solicitante debe preparar el proyecto y luego enviarlo a la UTI, bajo los marcos de
referencia que se indican más adelante. La redacción de la propuesta debe ser clara, concisa y
principalmente debe tener coherencia, de modo tal que facilite el trabajo de la persona responsable
de su evaluación. Existe la creencia equivocada de que una propuesta correctamente elaborada tiene
que ser voluminosa, pero no es cierto. Generalmente, una propuesta debería oscilar (sin incluir
anexos) entre las ocho y diez páginas si se trata de pequeños proyectos. En el caso más extenso, lo
recomendable es que el documento abarque las treinta o cuarenta páginas. Al final, se puede anexar
toda la información respaldatoria que sustente el plan (técnicas, estadísticas, gráficas, etc.).
2.1 CARATULA Y TABLA DE CONTENIDOS
La carátula del documento debe expresar la información básica y relevante sobre el proyecto, a la par
de lucir un aspecto sobrio y profesional; en este se incluye:
§
Nombre de la Unidad Organizacional / Entidad
§
Nombre del proyecto (debe permitir identificar la naturaleza del proyecto)
§
Mes y año de elaboración de la propuesta
§
Persona de contacto (nombre del funcionario, teléfono, fax, correo electrónico, dirección)
Además de enviar una copia física de la propuesta, es recomendable anexar al documento una copia
en un medio magnético (disquete, CD u otro) y enviar una copia adicional por correo electrónico. Esto
permitirá compartir con mayor facilidad el documento entre los funcionarios responsables de la
evaluación de la propuesta.
Si la extensión del documento es superior a cinco páginas, se deberá incluir una tabla de contenidos
que permita ubicar más fácilmente las diferentes secciones.
2.2 RESUMEN EJECUTIVO
El resumen ejecutivo es indudablemente una de las principales secciones de una propuesta de
proyecto. Es el punto de partida que despierta el interés de la persona responsable de su evaluación.
4
ISO/IEC 12207 Information Technology / Software Life Cycle Proccess
Unidad de Tecnologías de Información
22
Metodología MDS-α
Por tanto, es fundamental poner especial cuidado en su redacción y consistencia. Como su nombre lo
dice, un resumen ejecutivo es una síntesis de la información más relevante del proyecto. Se
recomienda que su extensión no exceda las dos páginas y su contenido debe contemplar los
siguientes puntos:
§
Identificación del problema a resolver
§
Objetivo del proyecto
§
Requerimientos base
§
Breve justificación de la solución escogida
§
Costos de inversión y operación de la solución
Sugerencia: El resumen ejecutivo debe ser redactado al final, una vez terminada la elaboración de la
propuesta. Generalmente, esta es la única parte de la propuesta que leen los evaluadores para
decidir si continúan revisándola o la dejan de lado. Por ello es importante poner especial cuidado en
su redacción.
2.3 PLAN O POLITICA INSTITUCIONAL SOBRE TECNOLOGIAS DE INFORMACION
La política institucional debe contener estrategias encaminadas a una buena gestión, tanto de la
información como de la tecnología que la soporta.
En particular, definir los casos que corresponda:
§
Dependiendo del área, deseablemente la información debe cumplir con los siguientes
atributos en distintos grados de importancia:
o
Confidencialidad: nivel de protección de la información que se necesita
o
Integridad: precisión y suficiencia de la información
o
Disponibilidad: qué usuarios dispondrán de la información
o
Confiabilidad: la información obtenida debe ser apropiada para la gestión y operación de
la institución
o
Información Externa: acceso a información requerida por otras unidades organizacionales
o instituciones externas.
§
Clasificación de la información respecto a su relevancia. La relevancia se define en función de
lo que significa la pérdida de información; de manera que se considera estratégica aquella
Unidad de Tecnologías de Información
23
Metodología MDS-α
información cuya pérdida afecta a la misión de la institución y no estratégica a aquella cuya
pérdida no afecta a la misión.
§
Procesos claves dentro de la institución, ya que las mejoras a estos procesos colaborarán
grandemente la gestión estratégica y del plan tecnológico.
§
Estrategia de capacitación.
§
Estrategia de desarrollo de software de aplicaciones: desarrollo local, desarrollo externo,
desarrollo mixto, u otras modalidades.
§
Estrategia de recursos humanos: Unidad Solicitante, Unidad de Tecnologías de Información y
sus respectivos alcances.
2.4 DEFINICION DEL PROBLEMA
Se debe especificar claramente qué problema se intenta solucionar o qué objetivo se pretende
alcanzar mediante el proyecto, esto debe abordarse en términos generales. Este punto constituye el
motivo por el que se origina el proyecto, para ello se utilizará la metodología del árbol causa – efecto5
(Ver Anexo 1).
2.5 DIAGNOSTICO DE LA SITUACION ACTUAL
2.5.1 DESCRIPCION DE LA UNIDAD ORGANIZACIONAL
Realizar una descripción acerca del área o unidad organizacional en la cual se involucre el proyecto.
Esta sección explica claramente la situación actual de la unidad o departamento conteniendo los
siguientes puntos:
§
Organigrama de la unidad o departamento, la cual indique la actual situación de la unidad
solicitante donde se ejecutara el proyecto.
§
Funciones y responsabilidades de la unidad o departamento
§
Exposición de los objetivos actuales, tanto de corto como de largo plazo que se ha planteado
la unidad o departamento. Para ello, se debe realizar una enumeración y una breve
descripción de los mismos.
5
La metodología del árbol causa - efecto es una técnica que se emplea para identificar el problema central, el
cual se intenta solucionar mediante la intervención del proyecto utilizando una relación de tipo causa-efecto.
Unidad de Tecnologías de Información
24
Metodología MDS-α
§
Definir la interacción de la unidad o departamento con su entorno mediante un esquema
simple de interrelación. Mencionar las relaciones que guardan nexo con el tema que se desea
estudiar y que puede ser importante acotarlas.
2.5.2 ACTUALIDAD TECNOLOGICA
Realizar una breve descripción de la actualidad tecnológica de la unidad o departamento, mencionar
el hardware disponible, el software base utilizado y los sistemas informáticos que automatizan ciertos
procesos de la citada unidad. Citar su utilidad en cada uno de los casos.
2.5.3 DESCRIPCION DE LOS PROCESOS Y PROCEDIMIENTOS
Identificar y describir los procesos que tienen relación con el tema en estudio, dando un nombre
simple al proceso y una breve descripción de cómo operan los mismos. Para ello puede guiarse
mediante la aplicación de formatos del Anexo 2.
2.6 DESCRIPCIÓN GENERAL DE REQUERIMIENTOS
En esta sección deben describirse los requerimientos principales de la unidad solicitante, los cuales se
espera que estén incluidos en la solución informática. Es recomendable que los requerimientos
citados tengan relación con los procesos estratégicos de la solución.
Los datos descritos en este apartado permitirán realizar un dimensionamiento inicial de lo que se
pretende automatizar, posibilitando el punto de partida al trabajo del profesional en sistemas
informáticos.
2.7 ESTIMACION DE BENEFICIOS
Identificar los diferentes beneficios que pueden obtenerse tras la ejecución del proyecto, su
exposición debe ser en forma cualitativa. Luego de la identificación de tales beneficios, tratar de
hacer su medición y valoración, para ello tomar en cuenta los puntos señalados en el Anexo 3
2.8 ESTIMACION DE COSTOS
La estimación de costos (en inversión, operación, mantención, etc.) tiene su fundamento
principalmente en la experiencia de la institución. Debe explicarse de forma precisa los valores o
cifras correspondientes a cada uno de los puntos o actividades que deberán realizarse para la
Unidad de Tecnologías de Información
25
Metodología MDS-α
ejecución del proyecto, por ejemplo pueden describirse el software, hardware y servicios
profesionales que se usarán.
Se hace notar que la estimación de costos debe afinarse después de realizar el dimensionamiento del
proyecto. En lo que respecta al tema, se debe inmiscuir la participación de personal calificado en el
tema, para nuestro caso en lo que se refiere a proyectos tecnológicos que sean viabilizados mediante
la Unidad de Tecnologías de Información, algunos datos brindados pueden ser: tiempo de desarrollo,
tiempo de implantación, tiempo de capacitación, perfiles del personal, términos de referencia, nivel
salarial, costos de adquisición de partes y equipos, costos de mantenimiento (en informática se
entiende por costos de mantenimiento los destinados a las adecuaciones que requieren los sistemas
para mantener su vigencia y utilidad) u otros.
2.9 ALTERNATIVAS DE SOLUCION
De acuerdo al problema central, la presentación de alternativas de solución está relacionada en
forma directa con las capacidades técnicas para su ejecución que podrían contribuir al cambio de la
situación actual a la situación futura deseada.
Estas alternativas deben ser evaluadas a través de diversos criterios que dependen de los objetivos
del proyecto, estos criterios pueden ser:
§
Financiero
§
Económico
§
Socioeconómico
§
Ambiental
§
Viabilidad política
§
Legal
§
Cultural
§
etc.
Para la evaluación puede utilizarse el siguiente cuadro:
Unidad de Tecnologías de Información
26
Metodología MDS-α
ALTERNATIVA
CRITERIOS
Financiero
Económico
Socioecon.
Ambiental
Viab. Política
Legal
Alternativa 1
Alternativa 2
Alternativa 3
Alternativa 4
Tabla 2-1: Cuadro comparativo de criterios para cada alternativa
2.9.1 RESTRICCIONES DE CADA ALTERNATIVA
Mencionar las restricciones de precio, mantención, operación, tecnología, u otros que presenta en
cada una de las alternativas.
2.9.2 PRODUCTO O SERVICIO ESPERADO DE CADA ALTERNATIVA
Especificar si se espera el mismo servicio o producto por cada alternativa de solución y realizar una
descripción general. Por ejemplo, se puede mencionar que el producto de la alternativa seleccionada
cumplirá con ciertos requerimientos específicos y en cambio no solucionará otro requerimiento
menos importante.
2.9.3 ELECCION DE LA ALTERNATIVA
Tomar la decisión sobre una alternativa (o combinación de ellas) que se juzgue como la más
apropiada para el proyecto. La decisión a adoptarse puede considerar:
§
Los intereses de los beneficiarios del proyecto
§
Recursos financieros disponibles
§
Los resultados de los estudios financieros, económicos, socioeconómicos, etc. indicados en la
evaluación.
§
Los intereses y mandatos de las entidades ejecutoras potenciales y demás involucrados
directa o indirectamente.
El análisis de alternativas es un medio para obtener preciada información para el respaldo en la toma
de decisiones.
Unidad de Tecnologías de Información
27
Metodología MDS-α
2.10 MATRIZ DEL MARCO LÓGICO
Una vez identificado claramente el proyecto, debe diseñarse la matriz del marco lógico; si el proyecto
se cataloga como mediano o de gran envergadura entonces su carácter es obligatorio (Ver Anexo 4).
2.11 PLANIFICACION DE ACTIVIDADES
La planificación de actividades puede representarse mediante un Diagrama Gantt6 el cual establece el
orden de las actividades a realizar, detallando cuales tareas pueden ser elaboradas en forma paralela
y cuales son necesarias previamente para realizar otras. Esta descripción se hace simbolizando cada
tarea mediante una barra, cuyo largo dependerá del tiempo de ejecución de cada tarea.
Para la planificación puede utilizarse el cuadro siguiente:
ACTIVIDADES
TIEMPO
T1
T2
T3
T4
T5
T6
T7
…….…
Tm
A1
A2
A3
…..
An
Tabla 2-2: Diagrama Gantt
6
Diagrama Gantt: Herramienta gráfica cuyo objetivo es mostrar el tiempo de dedicación previsto para
diferentes tareas o actividades.
Unidad de Tecnologías de Información
28
Metodología MDS-α
CAPITULO 3
3 REQUERIMIENTOS DE SOFTWARE
Se sabe que la parte más compleja en la construcción de un software es saber precisamente qué
construir; es así que debe definirse correctamente los diferentes requerimientos técnicos, incluyendo
todas las interfaces con personas, máquinas u otros sistemas antes de empezar con el proyecto.
Un requerimiento existe ya sea porque el tipo de producto demanda ciertas funciones o cualidades, o
porque el cliente quiere que ese requerimiento sea parte del producto final. Así que si no se tienen
los requerimientos correctos, no se puede diseñar o construir el producto correcto y,
consecuentemente, el producto no permitirá a los usuarios finales realizar su trabajo. Y esto está
confirmado por estudios que demuestran que más del 60% de los errores de diseño se originan
durante las etapas de requerimientos y análisis.
Los requerimientos se pueden dividir en requerimientos funcionales y no-funcionales.
§
Requerimientos Funcionales: definen qué hace el sistema (describen todas las entradas y
salidas), es decir, las funciones del sistema.
§
Requerimientos No-funcionales: definen los atributos que le indican al sistema cómo realizar
su trabajo (eficiencia, hardware, software, interface, usabilidad, etc.); es el cómo, cuándo,
cuánto y qué del sistema.
Un escenario comúnmente marcado es que el analista de sistemas se posiciona ante un dominio o
entorno que desconoce y un cliente que no tiene claramente estructurado los diferentes procesos del
negocio (incluyendo metas y objetivos) por lo que el analista se enfrenta ante objetivos ambiguos y
no operacionales, y como resultado de esta acción se dificulta enormemente la definición de las
distintas variables que se deben involucran en los distintos procesos a ser automatizados.
Esta sección debe involucrar necesariamente el trabajo tanto del usuario como del ingeniero de
software para definir claramente los distintos requerimientos que involucran el sistema a ser
desarrollado.
Unidad de Tecnologías de Información
29
Metodología MDS-α
3.1 VISIÓN Y ALCANCE DEL PROYECTO
Un proyecto de desarrollo de Software que carezca de una dirección claramente establecida y
correctamente comunicada a todos los participantes, es una invitación al fracaso.
Una definición concisa de la Visión y Alcance del Proyecto es crítica obtenerla al inicio del mismo.
La visión del proyecto alinea a todos los participantes en una dirección común y clara. La visión
describe al proyecto y que productos se podrán ultimadamente obtener en un “mundo perfecto”.
El alcance del proyecto describe qué se perseguirá como producto real y que cosas no se incluirán. El
alcance especifica la frontera entre lo que está o no comprendido, define las limitaciones del
proyecto.
Para esta sección se debe tener como producto un documento que exprese la visión y alcance del
proyecto según la siguiente plantilla:
3.1.1 PLANTILLA PARA EL DOCUMENTO DE VISIÓN Y ALCANCES DEL PROYECTO
3.1.1.1 REQUERIMIENTOS DE NEGOCIOS
Identificar los beneficios principales que el nuevo sistema proveerá a los usuarios y a la entidad en
general.
3.1.1.1.1 Antecedentes
Puntualizar las razones de ser del nuevo sistema. Realizar una descripción general de la historia o
situación que derivo en la decisión de construir el producto.
3.1.1.1.2 Oportunidades de Negocio
Describir las oportunidades existentes o el problema de negocios que será resuelto en la entidad.
Señalar el entorno en el cual el producto va a competir o va a ser utilizado. Identificar los problemas
que en la actualidad no pueden ser resueltos por falta del producto, y describir cómo el producto se
alinea con las tendencias de la institución según sus políticas y estrategias.
Unidad de Tecnologías de Información
30
Metodología MDS-α
3.1.1.1.3 Objetivos de Desarrollo del Sistema
Describir los más importantes beneficios institucionales que proveerá el producto, preferentemente
de una manera cuantificable y susceptible de medición. Estos objetivos pueden relacionarse a
estimaciones de ingresos o ahorro en costos.
3.1.1.1.4 Requerimientos del Usuario
Describir las necesidades de los usuarios tipo, incluyendo necesidades que no están siendo
satisfechas por productos que ya están disponibles en la entidad. Presentar problemas que los
usuarios encuentran en la actualidad y que el nuevo sistema va (o no va) a solucionar. Presentar estos
requerimientos en una lista numerada, de tal manera que un usuario especifico y los requerimientos
funcionales puedan ser rastreados de retorno a la misma.
3.1.1.1.5 Valor proporcionado al Usuario
Definir el valor que el usuario recibirá del producto e indicar como el producto desembocará en una
mejora de la satisfacción del citado usuario. Expresar esto en términos de:
§
Mejora en productividad.
§
Reducción de trabajo repetitivo.
§
Simplificación de procesos institucionales.
§
Ahorro en costos.
§
Automatización de tareas manuales.
3.1.1.1.6 Riesgos del Sistema
Resumir los principales riesgos de negocio asociados con el desarrollo (o no desarrollo) del producto,
como ser: problemas con tiempos de cumplimiento, aceptación del usuario, problemas de
implementación o posibles impactos negativos en el negocio.
3.1.1.2 VISIÓN DE LA SOLUCIÓN
Esta sección del documento establece una visión a largo-plazo del sistema que va a encarar los
objetivos de negocio.
Unidad de Tecnologías de Información
31
Metodología MDS-α
3.1.1.2.1 Declaración de la Visión
Escribir una declaración concisa de la visión que resuma los objetivos e intenciones a largo-plazo del
nuevo producto. La declaración de la visión debe reflejar una vista balanceada que satisfaga las
necesidades de los diferentes usuarios.
3.1.1.2.2 Características Principales
Incluir una lista numerada de las características o funciones principales, o de las capacidades que el
nuevo sistema proveerá al cliente. Enfatizar aquellas que distingan al producto de otros anteriores o
competidores.
3.1.1.2.3 Dependencias y presunciones
Registrar cualquier presunción realizada al momento de la concepción del proyecto y de la
elaboración de éste documento. También, mencionar las dependencias principales, como ser
tecnologías a ser utilizadas, proveedores, o cualquier relación de negocios.
3.1.1.3 ALCANCE Y LIMITACIONES
El alcance del proyecto define los conceptos y rangos de la solución propuesta, y las limitaciones
identifican ciertas capacidades o funciones que el sistema no va a incluir. Clarificar el alcance y
limitaciones ayudan a establecer expectativas reales del usuario o interesados.
3.1.1.3.1 Alcance de la Versión Inicial
Resumir las funciones principales de la versión inicial del sistema. Describir las características de
calidad que van a permitir al producto proporcionar los beneficios esperados a las diferentes
comunidades del o los usuarios.
3.1.1.3.2 Alcance de las versiones subsecuentes
Si se divisa una evolución por etapas del producto, indicar que características funcionales van a ser
pospuestas y los tiempos planificados para las subsecuentes versiones.
Unidad de Tecnologías de Información
32
Metodología MDS-α
3.1.1.3.3 Limitaciones y exclusiones
Definir la frontera entre lo que se incluye y no se incluye en el producto, para así no crear falsas
expectativas en el usuario y evitar la adición innecesaria de características no especificas.
3.1.1.4 CONTEXTO DEL NEGOCIO
3.1.1.4.1 Características del usuario (Perfil)
Elaborar un resumen de las características esenciales de las diferentes categorías de los usuarios para
este producto, para ello especificar la siguiente información para cada categoría de usuarios:
§
Beneficios principales que la categoría de usuario va a recibir del producto.
§
Actitudes esperadas del producto.
§
Características funcionales claves de su interés.
§
Cualquier restricción del usuario que deberá ser acomodada.
3.1.1.4.2 Prioridades del Proyecto
Una vez que las prioridades del proyecto se establezcan claramente, los interesados en el proyecto y
otros participantes pueden enfocar sus esfuerzos en un conjunto de objetivos comunes. Una manera
de enfocar este proceso es considerar 5 dimensiones del proyecto software:
§
características funcionales
§
calidad
§
cronograma
§
costo
§
personal
En cualquier proyecto cada una de estas dimensiones pueden ser clasificadas como:
§
Un conductor (driver) : Un objetivo de alta prioridad
§
Una restricción (constraint) : Un factor limitante para el proyecto
§
Un nivel de libertad: Un factor que el gerente del proyecto puede balancear en contra de
otra dimensión para la consecución del “conductor” entre las “restricciones” conocidas.
Todos los factores no pueden ser conductores, tampoco restricciones.
Unidad de Tecnologías de Información
33
Metodología MDS-α
3.1.1.5 FACTORES DE ÉXITO DEL PRODUCTO
Determinar cómo el éxito del producto va a ser medido y describir los factores que tengan mayor
impacto en obtener el éxito del proyecto.
3.2 INGENIERÍA DE REQUERIMIENTOS
La Ingeniería de Requerimientos es un conjunto de actividades que mediante el uso de ciertas
técnicas y herramientas se analiza un problema determinado, obteniendo como conclusión del
proceso las especificaciones de la solución. Involucra actividades en la definición, documentación y
mantenimiento de los requerimientos del producto buscado, el uso del término "ingeniería" implica
la utilización de técnicas sistemáticas y repetibles para asegurar que los requerimientos del sistema
estén completos y, sean consistentes y relevantes.
Las actividades que se incluyen en el proceso de Ingeniería de Requerimientos, incluyen la extracción
de requerimientos, el análisis, la documentación y la validación. No existe un proceso único que sea
válido de aplicar en todas las organizaciones. Cada organización debe desarrollar su propio proceso
de acuerdo al tipo de producto que se esté desarrollando, a la cultura organizacional, y al nivel de
experiencia y habilidad de las personas involucradas en el entorno.
El proceso de Ingeniería de Requerimientos puede verse de la siguiente forma:
Extracción de
Requerimientos
Necesidades de
los usuarios,
información del
dominio,
información de
sistemas
existentes,
estándares de
regulación, etc.
Análisis de
Requerimientos
Documentación de
Requerimientos
Validación de
Requerimientos
Documento de
Requerimientos
Especificaciones
del Sistema
Requerimientos
Acordados
Graf. 3-1: Proceso de la Ingeniería de Requerimientos
Unidad de Tecnologías de Información
34
Metodología MDS-α
A continuación se citan dos modelos base, de los cuales pueden adecuarse otros según las
necesidades del momento y del caso de estudio en particular.
3.2.1 Modelo Tradicional en Cascada
Este modelo de proceso de Ingeniería de Requerimientos sugiere que los resultados de una tarea
llevan a la siguiente, y así sucesivamente. Es decir, la extracción lleva al análisis, el análisis
desencadena la documentación, y la documentación inicia la validación.
Extracción
Análisis
Documentación
Validación
Graf. 3-2: Modelo Tradicional en Cascada en la Ingeniería de Requerimientos
Este modelo es bastante sencillo y el inconveniente que se manifiesta en el mismo es que no se
diferencian las fases. Por lo general, los requerimientos son de carácter dinámico en el tiempo y por
ello debe existir el carácter retro-alimentador en este modelo.
3.2.2 Modelo en Espiral
El modelo en espiral toma en cuenta la retroalimentación entre etapas y la repetición de las tareas.
El diagrama siguiente sugiere que las distintas actividades de la ingeniería de requerimientos se van
repitiendo hasta tomar una decisión final que consiste en la aceptación del Documento de
Especificación de Requerimientos generado como consecuencia del proceso. En otras palabras, si en
el diseño preliminar todavía se encuentran problemas entonces recorremos el ciclo nuevamente
(extracción, análisis, documentación, validación) hasta resolver los mismos (las veces que sea
necesario) hasta elaborar un documento aceptable.
Por lo general existen presiones a cumplir con ciertos plazos para la entrega del producto, pero se
debe tomar en cuenta muy claramente que esta etapa de la definición de requerimientos nos
ahorrará muchos dolores de cabeza cuando ya se esté codificando el sistema pedido. Se aconseja que
Unidad de Tecnologías de Información
35
Metodología MDS-α
en la planificación de las actividades sea tomado en cuenta la definición de los requerimientos de
software.
Especificación
Informal
Planificación/Extracció
n
Análisis
Punto de
decisión
Especificación
Final/ Reporte
de Validación
Requerimientos
Aceptados
Inicio
Validación
Documentación
Especificación
Preliminar
Graf. 3-3: Modelo en Espiral de la Ingeniería de Requerimientos
3.3 ACTIVIDADES DE LA INGENIERÍA DE REQUERIMIENTOS
Como ya se indico, las actividades más destacadas de la Ingeniería de Requerimientos son:
§
Extracción
§
Análisis
§
Documentación
§
Validación
3.3.1 Extracción
Esta fase representa el inicio de cada ciclo, y como su nombre lo indica el Analista debe extraer junto
al usuario los distintos aspectos que colaboraran en la solución del problema (servicios que prestará
el sistema, modos de presentación, tipos de cálculo, restricciones, modelos utilizados, etc.). Esto
suele ser una tarea difícil y muchas veces los usuarios no tienen una idea clara de sus necesidades
Unidad de Tecnologías de Información
36
Metodología MDS-α
reales; diversas personas dentro de la institución tienen necesidades encontradas, pueden existir
limitaciones técnicas o tecnológicas para cumplir con algunos requerimientos, etc. Pero, en definitiva
extraer los requerimientos del sistema no sólo implica preguntar a las personas qué quieren; es un
proceso delicado que involucra comprender el entorno de la aplicación, es decir, obtener un
conocimiento del área general de aplicación del sistema; comprender el problema en sí, lo que
implica que se debe extender y especializar el conocimiento sobre el dominio general para que se
aplique al usuario en particular; comprender el negocio; por tanto, se debe entender en profundidad
cómo es que este sistema interactuará y afectará a las partes del negocio que estarán involucradas y
cómo puede contribuir a lograr las metas de la entidad; finalmente, comprender las necesidades y
restricciones de los usuarios del sistema; en particular, se deben entender los procesos de trabajo
que se supone que el sistema apoyará y el rol de cualquier otro sistema que actualmente se involucre
en dichos procesos.
Entonces, es importante que la extracción sea efectiva, ya que la aceptación del sistema dependerá
de cuán bien éste satisfaga las necesidades del usuario y de cuán bien asista a la automatización del
trabajo.
3.3.2 Análisis
En base a la extracción se comienza esta fase, la cual se presenta en un alto grado de complejidad en
un proyecto donde el dominio es desconocido, en donde se apunta a descubrir problemas con los
requerimientos del sistema identificados hasta el momento.
Usualmente se hace un análisis luego de haber producido un bosquejo inicial del documento de
requerimientos; aquí se leen los requerimientos, se conceptúan, se investigan, se intercambian ideas
con el resto del equipo, se resaltan los problemas, se buscan alternativas y soluciones, y luego se van
fijando reuniones con el cliente para discutir tales requerimientos.
Debemos destacar que no es posible convertir el análisis en un proceso estructurado y sistemático, lo
que convierte a esta etapa en "subjetiva" porque depende en gran medida del juicio y de la
experiencia del analista.
Unidad de Tecnologías de Información
37
Metodología MDS-α
3.3.3 Documentación
En esta fase se documentan los requerimientos acordados con el usuario a un nivel apropiado de
detalle. Y en la práctica, esta etapa se va realizando conjuntamente con el análisis, pero podríamos
decir que la Documentación es el "pasar en limpio" el análisis realizado previamente aplicando
técnicas y/o estándares de documentación.
3.3.4 Validación
La validación es la etapa final de la Ingeniería de Requerimientos y su objetivo es justamente validar
los requerimientos, para ello se verifican todos los requerimientos que aparecen en el documento
especificado para asegurarse que representan una descripción aceptable del sistema que se debe
implementar. Esto implica verificar que los requerimientos sean consistentes y que estén completos.
La validación representa un punto de control del propio analista como así también de la interacción
con el usuario. Es inevitable que durante la validación se descubran algunos problemas, y esto se
debe corregir antes de aprobarse el documento final de requerimientos.
En definitiva, la validación significa asegurarse de que el documento de requerimientos represente
una descripción clara del sistema, y es una verificación final de que los requerimientos cubren
realmente las necesidades de los usuarios.
Esta etapa puede confundirse con la de análisis, pero la diferencia es clara: mientras que en el análisis
se trabaja sobre el boceto del documento de requerimientos, en la validación se utiliza el documento
final, lo que equivale a decir, sobre los requerimientos "depurados".
3.4 HERRAMIENTAS
Para llevar a cabo cada una de las actividades del proceso de Ingeniería de Requerimientos, se
pueden usar distintas técnicas y herramientas. Las herramientas que fueron seleccionadas son las
consideradas más pertinentes para el escenario planteado en ésta sección. Para tal labor se describe
los elementos necesarios en el Anexo 5.
Unidad de Tecnologías de Información
38
Metodología MDS-α
CAPITULO 4
4 ESPECIFICACIONES DE SOFTWARE
La Especificación de Software define claramente los alcances reales de los servicios que un Sistema
Informático debe proveer; determina los límites y restricciones en las distintas operaciones del
sistema a construir. Para ello en la actualidad la Ingeniería de Requerimientos nos permite capturar y
formalizar los requerimientos, dando lugar a las especificaciones del software.
Se sabe mediante varios estudios experimentales que la Ingeniería de Requerimientos es crítica y vital
respecto al éxito o fracaso de numerosos proyectos informáticos y su mala gestión tiene una gran
incidencia en relación con el desbordamiento de los costes y el incumplimiento a los plazos de
desarrollo. En esta área de la informática, se vienen desarrollando una gran cantidad de métodos,
técnicas, herramientas y estándares, que en muchas ocasiones no son conocidos por los mismos
profesionales del sector.
Una vez que ya han sido recopilados, clasificados, consensuados y redactados los diferentes
requerimientos, corresponde seguidamente especificar tales requerimientos con la finalidad en
primera instancia de conformar un Documento de Especificaciones de Requerimientos
(especificaciones de software) y luego formalizar los mismos mediante diferentes herramientas.
Debe existir en la Especificación de Requerimientos la habilidad de comunicarse con la audiencia
involucrada de forma balanceada para que tal proceso sea definido de forma específica y sin
ambigüedad alguna.
4.1 MODELADO DEL NEGOCIO
El método de Modelado de Negocios posibilita un mejor entendimiento de la organización donde se
va a implantar el sistema informático. Los motivos para ejecutar esta actividad son los siguientes:
§
Asegurar que el producto sea algo útil y no un obstáculo.
§
Ajustar el modelamiento de la mejor forma posible.
§
Poseer un marco referencia común entre el equipo del proyecto y los usuarios.
Unidad de Tecnologías de Información
39
Metodología MDS-α
Los objetivos específicos del modelado de negocio son:
§
Entender el problema e identificar potenciales mejoras.
§
Entender la estructura y la dinámica del problema a resolver.
Tomando en cuenta la “Visión y Alcance del Proyecto” definido en el tema anterior y para lograr los
objetivos descritos deben definirse los diferentes procesos, roles y responsabilidades.
Un proceso de negocio es un grupo de tareas relacionadas lógicamente que se llevan a cabo en una
determinada secuencia y que emplean los recursos de la una determinada organización para brindar
resultados en apoyo a sus objetivos.
En UML, se dispone del “Diagrama de Actividades” para definir los diferentes procesos de negocios
que contemplara el sistema. Esta herramienta permite ver de forma clara todas las actividades y su
flujo lógico, incluyendo paralelismo de actividades de un determinado proceso (y no solamente flujo
secuencial); y como suena su nombre esta herramienta es para flujo de actividades y no para flujo de
datos.
Ejemplo: Para el proceso de vender productos se tiene el siguiente diagrama
Diag. 4-1: Modelamiento del Negocio con Diagrama de Actividades
Unidad de Tecnologías de Información
40
Metodología MDS-α
4.2 DIAGRAMA DE CONTEXTO
En la sección de “Visión y Alcances del Proyecto” se determinaron las fronteras entre lo que vamos a
desarrollar y el resto del universo. El Diagrama de Contexto, ilustra de forma grafica estas fronteras
mediante la representación de las conexiones entre el sistema que se pretende desarrollar o
problema que se intenta solucionar, y el mundo exterior.
El Diagrama de Contexto identifica las entidades externas que tienen un vínculo con el sistema y que
se interrelacionan a éste último de alguna manera (llamados también terminadores), así como los
flujos de datos entre cada entidad externa y el sistema.
Ejemplo: Diagrama de Contexto para un Sistema de Registro de Ventas (Sistema RV)
Lista de Productos
Orden de Venta
ALMACEN
CLIENTE
Rechazo
Confirmación de la
Lista de Productos
Facturación
Pago
Depósito
Sistema
RV
Comisión
Registro de Transacción
VENDEDOR
BANCO
CONTABILIDAD
Diag. 4-2: Diagrama de Contexto del Sistema RV
4.3 CASOS DE USO
Los casos de uso son una herramienta de análisis que ayudan a describir qué es lo que el sistema
debe hacer. Desde el punto de vista del usuario describen qué hace el sistema.
Los casos de uso se escriben con el fin de expresar lo que debe hacer el sistema a desarrollar, sin
tener en cuenta cómo debe hacerlo.
Unidad de Tecnologías de Información
41
Metodología MDS-α
Un Caso de Uso es una secuencia de transacciones en un sistema cuyo resultado proporciona un
determinado valor a un actor individual del sistema.
Los casos de uso representan los requisitos funcionales del sistema.
En el modelado de casos de uso se tienen en cuenta dos conceptos básicos:
§
Actores: Los actores pueden representar a personas, software o hardware; el término actor
identifica el rol genérico del usuario del sistema. El nombre de dicho actor deberá reflejar el
papel que tendrá con nuestro sistema. La identificación de los actores nos permite:
o
Definir los límites del sistema (qué forma parte del sistema y qué no).
o
Desarrollar un sistema orientado al usuario que contemple todas las funcionalidades
esperadas por los diferentes actores.
§
Casos de Uso: Muestran las funcionalidades que ofrecerá el sistema y los comportamientos
posibles inherentes a las diferentes situaciones contempladas para cada una de estas.
4.3.1 Diagramas de Casos de Uso
Es una gráfica en donde se muestra la relación de los casos de uso con actores o con otros casos de
uso; dicha relación está dada por una línea o flecha entre los casos de uso y/o actores relacionados.
Las relaciones pueden ser de cuatro tipos posibles:
§
Comunicación: relación entre un actor y un caso de uso, se representa mediante una línea o
flecha indicando el orden de tal relación.
§
Uso: “include”, “includes”, “uses”; cuando un caso de uso utiliza a otro.
§
Extensión: “extend”, “extends”; cuando un caso de uso especializa a otro extendiendo su
funcionalidad.
§
Generalización: se trata del concepto de herencia, habitual en los diagramas de clases, pero
aplicado entre casos de uso, e incluso entre actores; se representa por una flecha con un
triángulo vacío en la punta señalando el sentido de la relación.
Ejemplo: Una parte del Sistema RV se muestra en el siguiente Diagrama de Casos de Uso
Unidad de Tecnologías de Información
42
Metodología MDS-α
Validar
Cliente
<<include>>
Hacer
Pedido
<<extend>>
(Establecer Prioridad)
<<include>>
Hacer Pedido
Urgente
Verificación
del Stock
Cliente
Facturación
Departamento de
Contabilidad
Comisión
Vendedor
Diag. 4-3: Diagrama de Casos de Uso
4.3.2 Documento de especificación de Casos de Uso
Lo importante de los casos de uso aparte de su diagramación es su especificación en un documento.
En este último se describe o explica principalmente la forma de actuar entre el usuario y el sistema.
Continuando con el ejemplo de la venta de productos, se muestra en el siguiente formulario el
correspondiente caso de uso de “Hacer Pedido”. De esta manera se deben completar todos los casos
de uso que contempla el sistema analizado y de igual forma conformar el Documento de Casos de
Uso.
Unidad de Tecnologías de Información
43
Metodología MDS-α
Creado por:
Fecha de Creación:
Daniel Abasto
18 de Diciembre de 2008
Nombre:
Actor:
CU-001/Hacer Pedido
Cliente
Describe el proceso de pedir la venta de algún producto por parte del
cliente
Eventos Actor
Eventos Sistema
1.- Pide datos generales del cliente
2.- Introduce datos personales.
3.- <<include>> Validar Cliente
4.- Identifica al cliente por primera
vez y lo registra.
5.- Muestra su lista de productos a
la venta
6.- Selecciona los productos y la
7.- <<include>> Verifica Stock y
cantidad de los mismos.
pone a la cola el pedido
identificando al vendedor que lo
atenderá.
8.- Reinicia el Caso de Uso.
Eventos Actor
Eventos Sistema
1.- Pide datos generales del cliente
2.- Introduce datos personales.
3.- <<include>> Validar Cliente
4.- Identifica a la persona como
cliente de la empresa.
5.- Muestra su lista de productos a
la venta
6.- Selecciona los productos y la
7.- <<include>> Verifica Stock y
cantidad de los mismos.
prioriza el pedido de acuerdo a la
jerarquía del cliente e identifica al
vendedor que lo atenderá.
8.- Reinicia el Caso de Uso.
1.- El cliente solicita utilización del sistema.
1.- Aceptación del pedido del cliente.
1.- Disponibilidad del cliente a introducir por sistema los datos pedidos.
2.- Sistema habilitado con disponibilidad de la Base de Datos.
Descripción:
Flujo principal:
Alternativa:
Precondición:
Pos condición:
Presunción:
Modificado por:
Fecha de modificación:
Form. 4-1: Formulario de Casos de Uso
4.4 DOCUMENTO DE ESPECIFICACIONES DE SOFTWARE
El análisis y desarrollo de requerimientos tiene como producto final un acuerdo documentado entre
el usuario/cliente y el grupo de desarrollo de sistemas acerca del producto a ser construido.
El documento es conocido como: Especificación de Requerimientos del Software, Especificación
Funcional / Especificación del Sistema / Especificaciones de Software.
Unidad de Tecnologías de Información
44
Metodología MDS-α
El Documento de Especificaciones de Software (DES) establece con precisión las funciones,
características y capacidad del software como así también sus restricciones. Este documento es la
base para toda subsecuentes etapas del desarrollo del sistema, es decir su planificación, diseño, y
codificación, así como para las pruebas del software y documentación del usuario.
El Documento de Especificaciones de Software debe ser preparado en forma conjunta (analistas,
desarrolladores, usuarios) y debe comprender la totalidad de los requerimientos citados por el
usuario. Tanto los desarrolladores como los propios usuarios no deben realizar presunción alguna y; si
cualquier requerimiento funcional o no funcional no está claramente establecido en el citado
Documento, entonces no es parte del acuerdo o convenio y por lo tanto nadie debe esperar que
aparezca en el producto final.
Según el estándar IEEE 830 un buen Documento de Especificaciones de Software debe ser: correcto,
completo, claro, sin ambigüedades, consistente, verificable, modificable, trazable, etc.
Posiblemente el Documento de Especificaciones de Software vaya evolucionando a medida que se
vaya desarrollando el sistema pedido, por ello los requerimientos deben ser especificados de la
manera más correcta posible de acuerdo a los conocimientos del entorno en su momento y esto debe
marcar una señal para mencionar que la especificación no está completa.
4.4.1 Formato del Documento de Especificación de Software
Este formato está de acuerdo a los lineamientos del estándar IEEE std 830 7.
4.4.1.1. Introducción
4.4.1.1.1 Propósito
Establece el propósito del Documento de Especificaciones, así también su audiencia.
4.4.1.1.2 Alcance
a) Identificar el nombre del Sistema a ser Desarrollado.
b) Explicar lo que hará y no hará el Software a desarrollar.
c) Explicar en que se usará el producto (beneficios, objetivos, metas).
7
IEEE std 830: Estándar de Especificaciones de Software
Unidad de Tecnologías de Información
45
Metodología MDS-α
4.4.1.1.3 Definiciones, siglas y abreviaciones
Definir todos los términos, acrónimos, y abreviaciones requeridos para interpretar de buena
manera el documento.
4.4.1.1.4 Referencias
Proveer una lista completa de todos los documentos utilizados e identificar sus fuentes
(registros, manuales, procedimientos, reglamentos, formularios, etc.).
4.4.1.1.5 Resumen
Describir brevemente lo que contiene el resto del documento como así también su
organización.
4.4.1.2 Descripción General
Se deben describir los factores generales que afectan al producto y sus requerimientos. Tomar en
cuenta que esta sección no establece requerimientos específicos, sino los antecedentes a ellos.
4.4.1.2.1 Perspectiva del Producto
Colocar la perspectiva al producto con otros relacionados, y si el producto es independiente,
debe ser especificado de la siguiente manera:
4.4.1.2.1.1 Interfaces del Sistema
4.4.1.2.1.2 Interfaces del usuario
4.4.1.2.1.3 Interfaces con el hardware
4.4.1.2.1.3 Interfaces con otros software
4.4.1.2.1.4 Interfaces con otros dispositivos de comunicación
4.4.1.2.1.5 Operaciones
4.4.1.2.1.6 Requerimientos de adaptación
Unidad de Tecnologías de Información
46
Metodología MDS-α
4.4.1.2.2 Funciones del Producto
Se debe incluir un resumen de todas las funciones principales que realizara el sistema a
desarrollar, sin incluir detalles.
4.4.1.2.3 Características del Usuario
Incluir las características generales de cada tipo de usuario (enriquecer si se puede su nivel de
educación, experiencia y nivel de aptitud técnica).
4.4.1.2.4 Restricciones
Describir de forma general aquellos aspectos que limitarán las distintas opciones del
desarrollador.
4.4.1.2.5 Suposiciones y dependencias
Listar cada uno de los factores que afectan los requerimientos establecidos en este
documento. Estos factores no deben ser tomados como restricciones de diseño para el
desarrollo del software.
4.4.1.3. Especificación de Requerimientos
Esta sección debe contener todos los requerimientos de software hasta un nivel de detalle suficiente
como para permitir a las personas que participan en el desarrollo del producto un diseño adecuado
del sistema, el cuál satisfaga esos requerimientos. En base a esta especificación los especialistas en
pruebas podrán comprobar que el sistema satisfaga los citados requerimientos.
Cada especificación establecida debe ser percibida externamente por un usuario, operador u otro
sistema externo.
Estos requerimientos específicos deben incluir mínimamente una descripción de cada entrada
(estimulo) al sistema, toda salida (respuesta) del sistema, y toda función realizada por el sistema en
respuesta a la entrada o en soporte a una salida.
Unidad de Tecnologías de Información
47
Metodología MDS-α
4.4.1.3.1 Características del Sistema
Esta sección debe contener la descripción detallada de todos los requerimientos específicos
que el analista y los respectivos usuarios han determinado como funciones del sistema. Para
ello se plantea el llenado de la siguiente forma:
Código de
Especificación
ESP-001
ESP-002
…..
…..
ESP-003
…..
ESP-004
…..
…..
…..
Detalle de la Especificación
Requerimiento
Relacionado
RF-001
RF-001
RF-003
RF-004
RF-004
…..
Caso de Uso
Relacionado
CU-001
CU-001
CU-001
CU-002
CU-002
…..
Form. 4-2: Formulario de Especificación de Requerimientos
Ejemplo de Especificación
RF: El sistema deberá desplegar mensajes de estado en rangos de tiempo regulares no
mayores de 60 segundos.
Luego de analizar el requerimiento (RF) y en concordancia con la participación del usuario se
llega a la siguiente especificación (ESP).
ESP: El gestor de tareas deberá desplegar mensajes de estado en una posición determinada en
la interface de usuario.
§
El mensaje tiene que ser actualizado cada 60 (+/- 10) segundos después de iniciado el
proceso de una tarea.
§
Si la tarea progresa de forma normal, el gestor de tareas deberá mostrar el porcentaje
de avance de la misma.
§
El gestor de tareas debe desplegar el mensaje “Tarea Concluida” cuando la misma
concluya.
§
El gestor de tareas deberá desplegar un mensaje de error si la tarea no puede
continuar o persistió un error.
Unidad de Tecnologías de Información
48
Metodología MDS-α
4.4.1.3.2 Especificaciones de Rendimiento
Mostrar este tipo de especificaciones en cifras numéricas, ya sea de tipo estática o dinámica.
Es decir el tipo de rendimiento que tendrá el producto. Por Ejemplo: Número de terminales
soportadas, usuarios simultáneos, cantidad de información, peso de la base de datos, tiempos
de acceso, etc.).
4.4.1.3.3 Restricciones de diseño
Especificar restricciones de diseño que pueden ser impuestas por otros estándares,
limitaciones de hardware, normas de seguridad, normas de calidad, etc.
4.4.1.3.4 Atributos del Sistema
Atributos del sistema que son especificados para poder ser objetivamente evaluados. Por
ejemplo: la accesibilidad, su inferencia lógica, diseño amigable, etc.
4.4.1.3.5 Otros requerimientos
Otros requerimientos que sean contemplados como importantes antes de firmar el acuerdo o
contrato
4.4.1.4. Acuerdo o Contrato
Se debe redactar un acuerdo o contrato entre las partes involucradas mediante sus respectivas
unidades organizacionales. Una de estas partes puede ser la Unidad de Tecnologías de Información
quien dotara al proyecto del cuerpo de técnicos para el desarrollo del producto pedido.
En el citado documento se hace notar claramente el alcance real que tendrá el sistema, la
participación que tendrán los distintos usuarios y desarrolladores en general, como así también los
respectivos tiempos para el citado proceso.
Finalmente firman al pie del documento los titulares de las unidades organizacionales involucradas o
las personas responsables, para dejar constancia de la aceptación de los términos del acuerdo o
contrato.
Unidad de Tecnologías de Información
49
Metodología MDS-α
4.5 DIAGRAMA DE FLUJO DE DATOS
Los Diagramas de Flujo de Datos o DFD representan de forma gráfica las funciones que el sistema
debe realizar. Dan respuesta a las preguntas ¿Qué transformaciones realizará el sistema? ¿Qué
entradas se transforman en qué salidas?, etc.
Diag. 4-4: Diagrama de Flujo de Datos
Los elementos fundamentales de los diagramas de flujo de datos son:
§
Los procesos se representan por medio de círculos o burbujas. Representan las funciones
individuales que el sistema debe resolver. Las funciones transforman entradas en salidas.
§
Los flujos se muestran por medio de flechas, representan las conexiones entre los procesos
mostrando la información que se necesita como entrada o la que se genera como salida.
Unidad de Tecnologías de Información
50
Metodología MDS-α
§
Los almacenes que se representan por medio de dos líneas. Muestran colecciones de datos
que el sistema debe recordar en el tiempo. Cuando el sistema este concluido, los almacenes
serán archivos o bases de datos.
§
Las entidades externas, típicamente son individuos, grupos de personas, organizaciones
externas, otros sistemas, etc.
Los diagramas derivados de los procesos principales se clasifican en niveles, los cuales son:
§
Nivel 0: Diagrama de contexto.
§
Nivel 1: Diagrama de nivel superior.
§
Nivel 2: Diagrama de detalle o expansión.
Se sugiere no pasar más allá del Nivel 2.
Unidad de Tecnologías de Información
51
Metodología MDS-α
CAPITULO 5
5 ARQUITECTURA DEL SOFTWARE
La arquitectura del software representa la estructura del programa que cohesiona las funcionalidades
más críticas y relevantes (las más necesarias para el sistema), sirviendo de soporte al resto de
funcionalidades finales (necesarias para el usuario). Su especificación es ampliamente aceptada y
representa el problema central de diseño de un sistema de software.
Uno de los principios de las metodologías modernas de desarrollo de software es priorizar la
definición, el diseño, la implementación y la evaluación de la arquitectura del software.
En la construcción de un edificio, se comienza primero por los cimientos, los pilares y las vigas, y los
distintos pisos hasta obtener el esqueleto de soporte principal, después se construyen las paredes,
puertas y ventanas, instalaciones eléctricas, etc. Basta el sentido común para darse cuenta que no
debe empezarse a colocar las paredes sin antes tener los pilares. En resumen, primero se crea el
esqueleto o estructura del edificio y luego se ensamblan las distintas partes. La primera es el soporte
para las segundas y apoyan la mayoría de las funcionalidades básicas del inmueble. ¿Qué pasaría si
existiese un error?, por ejemplo si se olvidase la construcción de una columna o pilar, seguramente el
edificio no podrá tener la certificación de ser habitable; por el contrario si nos olvidásemos de
colocar la bañera, estaríamos restándole solamente una funcionalidad que más luego de acuerdo a
las necesidades pueden de alguna forma corregirse y reubicarse. En este ejemplo se nota claramente,
que el primer error es de mayor efecto e impacto que el segundo.
La estrategia definida anteriormente es aplicada en una diversidad de disciplinas sociales y técnicas,
una de ellas es la creación de software. A diferencia de la construcción de un edificio, el software no
se rige en leyes físicas, ni por procedimientos conocidos, sino que es inherentemente específico; por
ello el diseño de un software es una tarea generalmente única y creativa.
La arquitectura del software debe definirse a partir de un conjunto de requisitos críticos funcionales,
de rendimiento o de calidad. Considerando cómo el software debe dar solución a tales objetivos, la
arquitectura constituye la estructura principal que refleja la solución al problema central.
Unidad de Tecnologías de Información
52
Metodología MDS-α
El equipo de desarrollo debe diseñar, construir y estabilizar primeramente la arquitectura del
software, antes de diseñar e implementar el conjunto de componentes elementales que se integran
en tal arquitectura y que aportan las funcionalidades finales de los usuarios.
La esencia del principio de priorizar la arquitectura es la de dedicar los mínimos esfuerzos a garantizar
la corrección de las partes más importantes, costosas e indefinidas del sistema.
La Arquitectura del Software es un nivel de diseño que va más allá de los algoritmos y las estructuras
de datos. El diseño y la especificación de la estructura del sistema emergen como un nuevo problema.
Los elementos estructurales incluyen: la organización y el control global, los protocolos de
comunicación, la distribución física, la composición de elementos de diseño, la escalabilidad y el
rendimiento, y la elección a las distintas alternativas de diseño.
Definición: Según la IEEE-Std 1471-2000, la Arquitectura del Software es la
organización fundamental de un sistema formada por sus componentes, las
relaciones entre ellos y el contexto en el que se implantarán, y los principios
que orientan su diseño y evolución.
Ante la variedad de definiciones existentes de Arquitectura de Software, se ha tratado de
proporcionar una sistematización de las versiones manipuladas, explicando las mismas en función de
sus clases de modelos, entre ellos:
5.1 MODELOS DE ARQUITECTURA DE SOFTWARE
5.1.1 Modelos Estructurales
Sostienen que la Arquitectura de Software está compuesta por componentes, conexiones entre estos
y aspectos tales como: la configuración, el estilo, las restricciones, la semántica, el análisis, las
propiedades, las racionalizaciones, los requerimientos, las necesidades de los participantes, etc.
5.1.2 Modelos Framework
Son similares a los modelos estructurales, pero enfatiza principalmente en el diseño de una
estructura coherente del sistema completo, a cambio de concentrarse en su composición. Los
modelos de framework a menudo se refieren a dominios o clases de problemas específicos.
Unidad de Tecnologías de Información
53
Metodología MDS-α
5.1.3 Modelos Dinámicos
Puede referirse a los cambios en la configuración del sistema, o a la dinámica involucrada durante el
proceso de la computación (valores de los datos de acuerdo a la dinamicidad).
5.1.4 Modelos de Proceso
Se concentran en la construcción de la arquitectura, y en los pasos o procesos involucrados en esa
construcción. En esta perspectiva, la arquitectura es el resultado de seguir una conducta (script) de
proceso. Esta vista se ejemplifica con el actual trabajo sobre programación de procesos para derivar
arquitecturas.
5.1.5 Modelos funcionales
Se considera a la arquitectura como un conjunto de componentes funcionales, organizados en capas y
que proporcionan servicios hacia arriba. Esta visión es pensada como un framework particular.
Ninguna de estas vistas o modelos excluye a las otras, ni representa un conflicto fundamental sobre lo
que es o debe ser la Arquitectura de Software; por el contrario, representan los diferentes matices en
que pueden aplicarse. En ese sentido se puede decir que la Arquitectura de Software es un nivel
elevado de abstracción de la vista estructural, una combinación de estilos arquitectónicos y que
básicamente involucra los componentes, conexiones, configuración y restricciones.
5.2 ELEMENTOS CLAVE EN LA ARQUITECTURA DE SOFTWARE
Los componentes clave en la Arquitectura de Software son:
§
Componentes
§
Conectores
§
Configuraciones
5.2.1 Componentes
Los ”componentes” son unidades de cómputo (procesamiento) o de almacenamiento de datos. Son
también la ubicación del procesamiento y del estado (clientes, servidores, bases de datos, filtros,
capas, etc). Un componente puede ser simple o compuesto; un componente compuesto representa a
Unidad de Tecnologías de Información
54
Metodología MDS-α
un sistema y, una arquitectura de software con componentes compuestos representa un sistema de
sistemas.
5.2.2 Conectores
Un “conector” es un elemento arquitectónico que modela:
§
Interacciones entre componentes
§
Reglas que gobiernan esas interacciones
Interacciones Simples representan:
§
Llamadas a procedimientos
§
Accesos a variables compartidas
Interacciones complejas y semánticamente ricas representan:
§
Protocolos cliente-servidor
§
Protocolos de acceso a base de datos
5.2.3 Configuraciones / Topologías
Una ”configuración arquitectónica” o ”topología” es una gráfica conectada de componentes y
conectores que describen una estructura arquitectónica. Poseen:
§
Conectividad apropiada
§
Propiedades concurrentes y distribuidas
§
Adherencia a heurísticas de diseño y reglas de estilo
Los componentes compuestos son configuraciones.
5.3 REPRESENTACIÓN ARQUITECTÓNICA
Convencionalmente, para la presente metodología usaremos los siguientes gráficos para representar
los elementos de la arquitectura de software:
Unidad de Tecnologías de Información
55
Metodología MDS-α
Elementos
Representación
Componentes
Conectores
Configuraciones
Tabla 5-1: Representación de los elementos arquitectónicos
Nota: Los conectores pueden ser representados mediante flechas (à) que indiquen la dirección de la
conexión; y si en un conector la conexión es de ambos lados, entonces simplemente se puede dibujar
una línea de enlace sin flechas (o con flechas dependiendo el diseño).
Como se menciono anteriormente, los componentes compuestos representan configuraciones, que a
su vez representan sistemas y en todo modelo arquitectónico de software se debe hacer notar esta
disposición.
Graf. 5-1: Componente compuesto/Configuración/Sistema
Unidad de Tecnologías de Información
56
Metodología MDS-α
5.4 ROL DEL ARQUITECTO DE SOFTWARE
El Worldwide Institute of Software Architects (WWISA) es el Instituto Mundial de Arquitectos de
Software el cuál señala los roles que debe tener un Arquitecto de Software, a ello se citan:
§
Detalla las fases que definen el proceso de construcción del software.
§
Enfatiza “construcción de software” en contraposición a “desarrollo de software” puesto que
teóricamente no hay final para un “desarrollo”.
§
Si se compara el rol de un “Arquitecto” que construye edificios, el “Arquitecto de Software”
construye sistemas (software), no los desarrolla, es el mentor.
5.5 FASES DE LA CONSTRUCCION DEL SOFTWARE
Las fases se derivan de los procesos que se realizan en la construcción de edificaciones, parte de la
analogía Construcción de Edificios Vs Construcción de Software, que es más fácil de entender para los
usuarios. Estas fases se aplican a todos los proyectos de construcción de software.
5.5.1 Fase 1: Pre-Diseño
§
El arquitecto escucha para comprender el alcance del proyecto, los requerimientos y
expectativas del cliente.
§
El arquitecto estudia el contexto del proyecto.
§
Identifica las posibles soluciones
§
Comienza los pasos y surgimiento de una dirección de diseño.
§
Se establecen objetivos generales con relación a presupuestos y tiempos.
5.5.2 Fase 2: Análisis del Dominio
§
El arquitecto emprende la tarea de comprender y documentar completamente las áreas
(dominios) para las cuales el sistema deberá ser construido.
§
Se detalla el comportamiento deseado.
§
El arquitecto evalúa el ambiente de negocios y tecnológico del cliente.
§
Los términos y conceptos del dominio son definidos con precisión.
Unidad de Tecnologías de Información
57
Metodología MDS-α
5.5.3 Fase 3: Diseño Esquemático
§
Se prepara el diseño a nivel arquitectura mostrando las características del dominio y la
estructura tecnológica.
§
Se diseña el estilo de la interfaz de usuario.
§
Se construye prototipos si son necesarios.
§
Se realiza una valoración de los riesgos y de una posible migración.
5.5.4 Fase 4: Desarrollo del Diseño
§
El arquitecto continúa expandiendo el detalle y refinando el diseño.
§
Todos los diagramas de diseño del dominio y tecnología son finalizados (elementos necesarios
para que el cliente valide el cumplimiento a sus requerimientos).
5.5.5 Fase 5: Documentos del Proyecto
§
El arquitecto se enfoca en los requerimientos de aquellos que construirán el sistema.
§
Se documenta el proceso de construcción, los roles en el equipo de trabajo y las secuencias
de construcción.
§
Se escribe la guía de construcción, la guía de estilo de la interfaz de usuario y la guía de
pruebas.
§
El arquitecto especifica las herramientas y métodos a utilizar.
5.5.6 Fase 6: Contratación o Sub-Contratación
§
El arquitecto ayuda a identificar a los posibles constructores del sistema.
§
Para proyectos a ser subcontratados, se invita y evalúa a posibles contratistas/consultores.
§
El arquitecto de software colabora con los detalles del contrato y los costos.
§
Las secuencias de actividades son acordadas y los contratos firmados.
5.5.7 Fase 7: Construcción
§
El arquitecto supervisa la construcción asegurando que la visión del cliente es entendida y
ejecutada.
§
El arquitecto conduce las revisiones del diseño y analiza problemas y solicitudes de cambio.
Unidad de Tecnologías de Información
58
Metodología MDS-α
§
El arquitecto de software diseña los cambios aceptados, valora el impacto en el diseño y el
costo general; también establece la secuencia de los cambios.
§
Participa en las pruebas y revisiones de aceptación.
5.5.8 Fase 8: Post-Construcción
§
El arquitecto ayuda al cliente en la implantación y migración al nuevo sistema.
§
Puede estar involucrado en la capacitación de operadores y usuarios.
§
Asiste en temas relacionados a la garantía y procesos de mantenimiento.
5.6 ABSTRACCION DE LA ARQUITECTURA
Arquitectura
Diseño
Implementación
Graf. 5-2: Abstracción Vista Dimensional Lineal
Base de Datos
Aplicación
Interfaces
Infraestructura
Arquitectura
Diseño
Implementación
Graf. 5-3: Abstracción Vista Dimensional Plana
Unidad de Tecnologías de Información
59
Metodología MDS-α
El siguiente gráfico muestra la Arquitectura de Software del Navegador Mozilla
User Interface
User Interface
Browser Engine Interface
Gecko
Rendering Engine Interface
Necko
Security
NSS/PSM
SpiderMonkey
JavaScript
Interpreter
Expat
XML Parser
Data Persistence
User, Secure, Browser
Persist
UI Toolkit (XPFE)
GTK +
Adapter
GTK+ /X11 Libraries
Display Backend
Networking
Graf. 5-4: Arquitectura de Software del Navegador Mozilla
Diseñar la Arquitectura del Software de un sistema en particular permite:
§
Comunicación entre las personas participantes. Tales personas necesitan abstraer, diseñar,
codificar y comunicarse en términos de grandes bloques.
§
Estandarización a nivel estructural para eludir los desarrollos excesivamente personalizados,
evitando:
o Erosión: Violación a la arquitectura
o Drift: Ignorar la arquitectura
§
Documentación inicial de las decisiones de diseño, misma que deben expresar sistemas de
larga vida.
§
Definición de las restricciones de implementación.
§
Predicción de las cualidades más sobresalientes del sistema.
§
Administración de la evolución del sistema.
§
U otros.
Unidad de Tecnologías de Información
60
Metodología MDS-α
Store Server
Server
Crawler
URL Server
Anchor
URL Resolver
Links
Doc Index
Indexer
Repository
Barrels
Lexicon
Sorter
Page Range
Server
Searcher
Graf. 5-4: Arquitectura de Software del Buscador Google
5.7 ESTILOS ARQUITECTÓNICOS
Un estilo es una forma de organización arquitectónica, el cual define una estructura base conjugando
los componentes, conectores, configuraciones y restricciones; así,
arquitecturas compuestas o
complejas pueden resultar de la composición de estilos básicos.
Los estilos se utilizan para sintetizar estructuras de soluciones definiendo patrones a las distintas
arquitecturas y en la cual se encapsulan configuraciones concretas.
Un tópico importante de la Arquitectura de Software es que se trata de un razonamiento de alto nivel
y calidad operacional, concentrándose en los requerimientos no funcionales que son esenciales para
el éxito de todo proyecto informático. Estos requerimientos de no funcionales están dados por
atributos de calidad (performance, disponibilidad, seguridad, modificabilidad, usabilidad, portabilidad
u otros.) y los estilos arquitectónicos contribuyen eficientemente a tales requerimientos.
Unidad de Tecnologías de Información
61
Metodología MDS-α
En el Anexo 6 se plantea una lista de estilos arquitectónicos y sus correspondientes modelos de
arquitectura de software.
Una clasificación convencional de los estilos arquitectónicos está dada por:
§
Estilos de Flujo de Datos
o Tuberías y filtros
o Secuencial y en lote
§
Estilos Centrados en Datos
o Arquitecturas de Pizarra o Repositorio
o Base de Datos
o Sistemas de Hipertexto
§
§
Estilos de Llamada y Retorno
o
Programa principal y subrutina
o
Model-View-Controller (MVC)
o
Arquitecturas en Capas
o
Arquitecturas Orientadas a Objetos
o
Cliente Servidor
o
Arquitecturas Basadas en Componentes
Estilos de Máquinas Virtuales
o Intérpretes
o Sistemas basados en Reglas
§
Estilos Peer-to-Peer
o Arquitecturas Basadas en Eventos
o Arquitecturas Orientadas a Servicios
o Arquitecturas Basadas en Recursos
§
Estilos Heterogéneos
o Sistemas de Control de Procesos
o Arquitecturas Basadas en Atributos
5.8 LENGUAJE DE DESCRIPCION ARQUITECTÓNICA
Los lenguajes de descripción arquitectónica o ADLs se utilizan para el modelado, la descripción y la
prueba de las arquitecturas, representan los componentes, conectores, configuraciones y
Unidad de Tecnologías de Información
62
Metodología MDS-α
restricciones. Se trata de un conjunto de propuestas de variado nivel de rigurosidad, casi todas ellas
de extracción académica. Los ADLs permiten modelar una arquitectura mucho antes que se lleve a
cabo la programación de las aplicaciones que la componen, analizar su adecuación, determinar sus
puntos críticos y eventualmente simular su comportamiento.
Entre los ADLs más conocidos destacan ACME, ARMANI, JACAL Y xADL.
ADL
Acme
Aesop
ArTek
Armani
C2 SADL
CHAM
Darwin
Jacal
LILEANNA
MetaH
Rapide
SADL
UML
UniCon
Wright
xADL
Investigador - Organismo
Monroe & Garlan (CMU), Wile (USC)
Garlan (CMU)
Terry, Hayes-Roth, Erman (Teknowledge,
DSSA)
Monroe (CMU)
Taylor/Medvidovic (UCI)
Berry / Boudol
Magee, Dulay, Eisenbach, Kramer
Kicillof , Yankelevich (Universidad de
Buenos Aires)
Tracz (Loral Federal)
Binns, Englehart (Honeywell)
Luckham (Stanford)
Moriconi, Riemenschneider (SRI)
Rumbaugh, Jacobson, Booch (Rational)
Shaw (CMU)
Observaciones
Lenguaje de intercambio de ADLs
ADL de propósito general, énfasis en estilos
Lenguaje específico de dominio - No es ADL
ADL asociado a Acme
ADL específico de estilo
Lenguaje de especificación
ADL con énfasis en dinámica
ADL - Notación de alto nivel para descripción y
prototipado
Lenguaje de conexión de módulos
ADL específico de dominio
ADL & simulación
ADL con énfasis en mapeo de refinamiento
Lenguaje genérico de modelado – No es ADL
ADL de propósito general, énfasis en
conectores y estilos
Garlan (CMU)
ADL de propósito general, énfasis en
comunicación
Medvidovic, Taylor (UCI, UCLA)
ADL basado en XML
Tabla 5-2: Principales Lenguajes de Descripción Arquitectónica/ADLs
Unidad de Tecnologías de Información
63
Metodología MDS-α
CAPITULO 6
6 DISEÑO Y MODELAMIENTO
El Análisis y Diseño consiste en transformar los requerimientos y especificaciones del usuario
definidos previamente a una especificación formal o informal que describa como implementar un
determinado software.
Esencialmente el Análisis consiste en obtener una visión acerca de lo hace o debe hacer el sistema de
software a desarrollar, en ese sentido su ámbito de resolución está en base a los requisitos
funcionales del sistema. Por otro lado, el Diseño es un refinamiento que toma en cuenta los requisitos
no funcionales, por tanto se centra en como el sistema cumple sus objetivos.
Así, luego de realizar todo el análisis correspondiente de los capítulos de Requerimientos de
Software, Especificaciones del Software y Arquitectura del Software procedemos a diseño y
modelamiento de nuestro sistema.
6.1 INTERFACE DE USUARIO
Graf. 6-1: Diseño o Modelo Navegacional de la Interfaz de Usuario del Caso de Uso de Alquilar Película
Unidad de Tecnologías de Información
64
Metodología MDS-α
Para el caso de la Interface de Usuario utilizaremos el Diseño o Modelo Navegacional, el cual consiste
en mostrar mediante una especificación informal la secuencia de sucesos principales que debe ocurrir
en el funcionamiento del sistema cuando este ya esté desarrollado.
De forma convencional para la presente metodología se determina que las herramientas a utilizar en
los diferentes modelos serán:
Modelo Conceptual
§
Diagrama Entidad Relación (diseño estructurado)
§
Diagrama de Clases (diseño orientado a objetos)
Modelo Lógico
§
Modelo Relacional
Modelo Físico
§
Diccionario de Datos
Tabla 6-1: Convención de Modelos
6.2 MODELO CONCEPTUAL
El Analista/Desarrollador debe concentrarse en la observación de los hechos relevantes que ocurren
en la realidad, mismos que fueron ya expresados en los requerimientos, las especificaciones y la
arquitectura del software, con la finalidad de concebir conceptualmente el sistema y que pueda
automatizar las necesidades de información de la misma.
Para el caso de un Diseño Estructurado se debe utilizar el Modelo Entidad Relación.
CI
Graf. 6-2: Diagrama Entidad Relación (E-R)
Unidad de Tecnologías de Información
65
Metodología MDS-α
Para el caso de un Diseño Orientado a Objetos se debe utilizar el Diagrama de Clases.
Graf. 6-3: Diagrama de Clases
6.3 MODELO LOGICO
Es la representación lógica de la estructura que compondrá la base de datos del sistema. El Modelo
Relacional es el Modelo Lógico en el que se basan la mayoría de los SGBD (Sistema de Gestión de Base
de Datos) comerciales de uso en la actualidad.
De acuerdo al tipo de diseño conceptual elegido, se debe mapear tal modelo para su representación
en el Modelo Relacional. El modelo relacional proporciona una manera simple de representar los
datos, así se trata una tabla bidimensional llamada Relación.
título
La Bicicleta de los Huanca
Mi Socio
año
1995
1972
duración
145
136
tipo
A
B
Tabla 6-2: Tabla Relacional (o simplemente Relación)
Para la comodidad del trabajo bajo este modelo, se utilizan los esquemas:
Películas (título, año, duración, tipo)
Unidad de Tecnologías de Información
66
Metodología MDS-α
y una Tupla estaría dada por:
(Mi Socio, 1972, 136, B)
En un Modelo Relacional, un diseño consiste en uno o más esquemas y a tal conjunto se le conoce
como “Esquema Relacional de la Base de Datos” o simplemente “Esquema de la Base de Datos”.
6.3.1 Normalización
Después de mapear el modelo conceptual al modelo relacional (modelo lógico) se debe aplicar el
proceso de normalización en el esquema de base de datos resultante, la cual consiste en la aplicación
de una serie de reglas para verificar si dicho esquema pertenece o no a una cierta forma normal.
Se aplica la normalización principalmente para:
§
Evitar la redundancia de los datos.
§
Evitar problemas de actualización de los datos en las diferentes tablas de la Base de Datos.
§
Proteger la integridad de los datos.
La normalización es el proceso mediante el cual un esquema de relación que no es satisfactorio se
lleva a un nuevo esquema equivalente pero de mejor calidad en cuanto al diseño, llevando del estado
inicial del esquema hasta una forma normal sin modificar la dependencia de los datos.
Existen varias Formas Normales, unas más restrictivas que otras (Ver Anexo 7).
1FN
2FN
3FN
BCFN
4FN
5FN
Graf. 6-4: Formas Normales
Unidad de Tecnologías de Información
67
Metodología MDS-α
6.4 MODELO FISICO
A partir del Modelo Lógico se describen las estructuras físicas de almacenamiento de los datos, por
ejemplo: definiciones, accesos, índices, tipos de campo, tamaño del campo, restricciones, etc.
Convencionalmente adoptaremos esta descripción detallada de la Base de Datos, aplicando el
desarrollo de la especificación conocida como Diccionario de Datos.
En un modelamiento puro, orientado a objetos; el Modelo Físico estaría dado por:
Graf. 6-5: Modelo Físico Orientado a Objetos
6.4.1 Diccionario de Datos
El Diccionario de Datos es la descripción de información acerca de todos los datos y objetos que
forman la Base de Datos; en él se 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.
En una Base de Datos Relacional, el Diccionario de Datos proporciona información acerca de:
§
La estructura lógica y física de la Base de Datos.
§
Las definiciones de todos los objetos de la Base de Datos: tablas, vistas, índices, disparadores,
procedimientos, funciones, etcétera.
Unidad de Tecnologías de Información
68
Metodología MDS-α
§
Los valores por defecto de las columnas de las tablas.
§
Información acerca de las restricciones de integridad.
§
Auditoría de información, como los accesos a los objetos.
§
U otros.
Diccionario de Objetos de la Base de Datos
Se debe describir todos los objetos que conforman la Base de Datos.
Tomando de ejemplo el diagrama anterior (Graf. 6-5) se puede expresar tales datos de la siguiente
manera:
Objeto
Tipo
Definición
Relación
Cardinalidad
auditoria
Tabla
Bitácora de auditoria
servicios
(n:1)
xml_error
(1:n)
grupo_servicios
Tabla
Grupo de servicios de la empresa disponibles
servicios
(1:n)
parametros
Tabla
Parámetros de los servicios de la empresa
servicios
(n:1)
tipo_parametro
(n:1)
Servicios de la empresa definidos por una
componente y una operación
grupo_servicios
(n:1)
parametros
(1:n)
servicios
Tabla
tipo_parametro
Tabla
Tipo de datos de los parámetros de la empresa
(fecha, numero, texto)
parametros
(1:n)
xml_error
Tabla
Xml recibido por el sintetizador que genero un
error al invocar un servicio de la empresa
auditoria
(n:1)
Form. 6-1: Formulario de Objetos de la Base de Datos
donde los valores para Tipo pueden ser:
§ Tabla
§ Vista
§ Procedimiento Almacenado
§ Disparador
§ Función
§ U otros.
Diccionario de Datos de los Objetos de la Base de Datos
Se pretende realizar una descripción detallada de los diferentes elementos que conforman cada uno
de los objetos de la Base de Datos.
Unidad de Tecnologías de Información
69
Metodología MDS-α
Tipo y Nombre del Objeto:
Tabla auditoria
Columna o Variable
Tipo de Dato
Tamaño
Valor por Defecto
Descripción
auditoria_id
int
2
Identificación de auditoria
servicios_id
smallint
1
Es llave foránea a la tabla
servicios
resultado
char
1
‘A’ = Estado inicial
Estado actual de la auditoría
fecha_hora
smalldatetime
4
fecha y hora actual
Para registro temporal de la
auditoria
tiempo
int
2
0 = Cero
Duración de la auditoría en
minutos
descripcion_error
varchar
250
NULL
Para el registro detallado del
error
dispositivo_movil
varchar
20
NULL
Para el registro del tipo de móvil
usuario
int
2
usuario actual
Registro del usuario
Form. 6-2: Formulario de Datos de los Objetos de la Base de Datos
Unidad de Tecnologías de Información
70
Metodología MDS-α
CAPITULO 7
7 IMPLEMENTACION
El objetivo principal del análisis y diseño consiste en transformar los elementos de los mismos en
elementos de implementación, estos pueden ser: códigos fuentes, ejecutables, binarios, etc.
La implementación debe también estar sujeta a las pruebas de unidad, las cuales se limitan a los
componentes de software implementados. Entonces de la implementación se obtiene un sistema
ejecutable estable, constituido por los resultados producidos por los analistas/desarrollares.
Los objetivos específicos de la implementación están dadas por:
§
El arquitecto de software debe planificar las distintas actividades de implementación.
§
Cada desarrollador decide en qué orden implementar los diferentes elementos del
subsistema.
§
Integrar el sistema siguiendo el plan dado por el arquitecto de software.
§
Notificar los errores de diseño, si estos se encuentran.
§
Planificar que subsistemas deben ser implementados y en qué orden deben ser integrados,
formando el Plan de Integración.
§
Probar los subsistemas individualmente.
La estructura de todos los elementos implementados forma el Modelo de Implementación. La
integración debe realizarse de forma incremental, es decir, en cada momento debe añadirse un
elemento a la vez. De esta manera es menos dificultoso localizar los fallos, probando cada
componente más a fondo en el tiempo. En fases tempranas del proceso se pueden implementar
prototipos para reducir el riesgo. Su utilidad puede ir desde ver si el sistema es viable desde el
principio, probar tecnologías o diseñar la interfaz de usuario. Los prototipos pueden ser exploratorios
(desechables) o evolutivos. Estos últimos por lo general llegan a transformarse en el sistema final.
Una vez preparado el Modelo Físico se debe preparar el ambiente correspondiente en un Sistema
Gestor de Base de Datos para alojar cada uno de los objetos descritos en la etapa anterior y de esa
manera dar inicio formalmente a la etapa de implementación.
Unidad de Tecnologías de Información
71
Metodología MDS-α
7.1 GENERACION DE CODIGO
En la presente metodología se ha invertido esfuerzos para desarrollar una convención de codificación
con los estándares más conocidos en este rubro. Así la aplicación de ésta permitirá una buena
legibilidad y compresión de todo código fuente que está basado en dicha convención.
7.1.1 Convenciones de Codificación
En cualquier proyecto de desarrollo de sistemas se hace necesario seguir unas guías comunes para
asegurar una correcta comprensión del código fuente así como su posterior mantenimiento por
personas que no han participado del desarrollo inicial. La disparidad de estilos trae consigo un efecto
negativo en la salud del proyecto; al inicio aparentan ser productivas, ingeniosas, eficaces, pero a
largo plazo cuando llega el momento de corregir errores que ocurren en entornos o condiciones no
previstas, o cuando se deben realizar ampliaciones del sistema, o cuando se necesita incorporar un
nuevo programador; es donde se pueden ver los efectos negativos de las malas prácticas.
La convención de nombres es un conjunto de normas y reglas para la escritura de nombres, código
fuente, identificadores, comentarios u otros elementos dentro de la programación de sistemas, que
facilitan y hacen más comprensible no solamente su lectura sino también su comprensión.
7.1.1.1 Lineamientos generales
§
Salvo necesidades especiales se convendrá que la codificación de los nombres sean escritas
en español, exceptuando aquellas que tienen origen externo pero que son incluidas en
nuestros programadas por los beneficios que estos describan (librerías, componentes,
frameworks, etc.)
§
En los nombres de identificadores queda prohibido el uso de:
o Determinantes:
ü Artículos: el, la, los, las, uno, unos, unas, ….
ü Determinantes demostrativos: este, ese, aquel, ….
ü Determinantes posesivos: mi, tu, su, cuyo, cuyos, cuyas, ….
ü Cardinales: uno, dos, tres, ….
ü Ordinales: segundo, tercero, cuarto, ….
ü Multiplicativos: triple, cuádruple, quíntuple, ….
Unidad de Tecnologías de Información
72
Metodología MDS-α
o Pronombres:
ü Personales: yo, tu, el , ….
ü Recíprocos: os, nos, se, ….
ü Reflexivos: me, te, se, ….
ü Interrogativos/Exclamativos: que, como, cual, cuanto, ….
Las únicas excepciones a estas reglas son el ordinal “Primer” y el multiplicativo “Doble”
§
Evitar el uso de preposiciones, exceptuando situaciones de marcada necesidad: a, ante, bajo,
con, de, desde, en, hacia, hasta, para, ….
§
En todo momento se utilizaran nombres que sean claros, concretos, expresivos y no
ambiguos. Por ejemplo: fechaTransaccion vs fecha, estadoCorrespondencia vs estado, etc.
7.1.1.2 Codificación Camel Case
CamelCase es un estándar en varios lenguajes de programación. Es la práctica de escribir frases o
palabras compuestas eliminando los espacios y poniendo en mayúscula la primera letra de cada
palabra. El nombre se deduce al parecido de estas mayúsculas, a las jorobas de los camellos.
Existen dos tipos de CamelCase:
UpperCamelCase: la primera letra de todas se escribe en mayúscula al igual que las primeras
letras de las restantes palabras. Por ejemplo:
NombreClase
lowerCamelCase: la primera letra de la primer palabra se escribe en minúscula y las primeras
letras de las restantes palabras están escritas en mayúsculas. Por ejemplo:
nombreObjeto
7.1.1.3 Indentación
Para la indentación existen varios estilos tales como: Allman, K&R, BSD KN, Whitesmiths, etc. Por
convención se utilizará el estilo Allman, el cual dice que debemos usar los sangrados (tabulación)
para indentar el código, nunca espacios y colocar las llaves de control en la línea subsiguiente.
Unidad de Tecnologías de Información
73
Metodología MDS-α
Class HolaMundo
{
1 Tab
2 Tab
3 Tab
public metodo()
{
if(condicion)
{
………
llaves en nueva linea
}
}
}
Vista 7-1: Identación
7.1.1.4 Indentar Seteo de Variables
Esto no es un estándar, pero puede tomarse como una buena recomendación. Por ejemplo en PHP se
tiene:
antes
$nombreTemporal = $_FILES['archivo']['nombreTemporal'];
$tamanoArchivo = $_FILES['archivo']['tamano'];
$nombreReal = $_FILES['archivo']['nombre'];
después (con indentación)
$nombreTemporal
$tamanoArchivo
= $_FILES['archivo']['nombreTemporal'];
= $_FILES['archivo']['tamano'];
$nombreReal
= $_FILES['archivo']['nombre'];
Sin duda se lee mejor de la segunda manera, queda más claro y se distinguen mejor las variables.
También podemos hacer lo mismo con los parámetros de funciones cuando las líneas se repiten:
$sitio->configuracion("cabecera"
$sitio->configuracion("menu"
, $cabecera);
, $menu);
$sitio->configuracion("descripcion"
$sitio->configuracion("titulo"
, $descripcion);
, $titulo);
Unidad de Tecnologías de Información
74
Metodología MDS-α
7.1.1.5 Tamaño Máximo de Línea
Evitar que la longitud de la línea no supere los 80 caracteres (esto no es restrictivo). Cuando se supera
esta longitud se debe cortar bajo los siguientes principios:
§
Salto de línea después de la coma
§
Salto de línea después de un operador
§
Alinear la nueva línea con el principio de la expresión en el mismo nivel que la línea anterior
7.1.1.6 Saltos de Línea
Añadir un salto de línea después del cierre de los paréntesis de los parámetros, así también después
de un punto y coma o cuando termine una sentencia.
Class HolaMundo
{
public metodo()
{
if(condicion)
salto de línea
{
valor1 = 1;
valor2 = 2;
}
}
}
Vista 7-2: Salto de Línea
7.1.1.7 Espacios y Líneas en Blanco
§
Usar espacios en blanco para mejorar la legibilidad del código
§
Usar espacios en blanco en ambos lados del operador de símbolos, después de comas y
después de las declaraciones
§
Usar líneas en blanco para separar trozos de código
§
Usar líneas en blanco antes de cada método dentro de la clase
Unidad de Tecnologías de Información
75
Metodología MDS-α
Class HolaMundo
{
Después de una coma
public metodo(parametro1, parametro2)
{
//comentarioA
if(condicionA)
{
valor1 = 1;
valor2 = 2;
}
separación de código
//comentarioB
if(condicionB)
{
valorB = 1 + valor1 ;
}
}
}
separar operadores
Vista 7-3: Espacios y Líneas en Blanco
7.1.1.8 Nombres de Clases
Para el nombre de clases tomar en cuenta:
§
Las clases representan “cosas” y no “acciones”, por tal motivo evitar los verbos.
§
El nombre debe definirse en “singular”, salvo que la clase represente multiplicidad de cosas.
§
Los nombres de las clases deben ser “sustantivos”. Por ejemplo Automovil, Persona, Pais,
Armamento, Empresa
§
Cada clase debe tener un bloque de documentación según la norma del lenguaje
(phpDocumentor para PHP, javaDoc para Java, etc.).
En la definición del nombre de clases se aplicara el estilo CamelCase. Solo deberían contener
caracteres alfanuméricos incluyendo el carácter underscore (_). Tal nombre debe ser significativo y
brindar una idea de lo que representa. La primera letra siempre debe ir en mayúscula
(UpperCamelCase).
Unidad de Tecnologías de Información
76
Metodología MDS-α
Por ejemplo:
definición incorrecta: clase_ejemplo, nombreClase
definición correcta: NombreClase, Nombre_Clase
7.1.1.9 Interfaces
Las interfaces seguirán las mismas reglas de las clases con la única exigencia que deben añadirse en la
terminación la palabra Interface.
Por ejemplo:
BaseDatosInterface
7.1.1.10 Funciones, Procedimientos y Métodos
Las funciones y métodos deben estar en lowerCamelCase, utilizando en caso necesario el caracter
underscore (_) para separar palabras brindando el sentido completo y humano de su funcionamiento.
Un buen nombre para una rutina es aquel que describe todo lo que hace la rutina; bajo ningún caso
utilizar verbos genéricos. Por ejemplo: procesarActivo, gestionarFuncionario, etc. El nombre debe
consistir en un verbo seguido del objeto al que afecta.
Por ejemplo:
imprimirFichaActivo
modificarDatosFuncionario
calcularPromedioPonderado
7.1.1.11 Parámetros
Los parámetros de rutinas deben estar ordenados de la siguiente manera:
§
Primero los parámetros de entrada o solo lectura.
§
Después los parámetros de transporte o de lectura/escritura
§
Finalmente, los parámetros exclusivamente de salida
No se deben utilizar los parámetros como variables comunes (auxiliares, contadores, temporales,
generales, etc.). Por ejemplo el siguiente fragmento de código es inapropiado:
Unidad de Tecnologías de Información
77
Metodología MDS-α
function funcionCalculoEjemplo($entrada, $salida)
{
$entrada = $entrada + funcionOtroCalculo($entrada);
$entrada = $entrada + ($entrada / 2);
…………..
$salida = $entrada;
}
La única situación en la que se permite la modificación de los parámetros de entrada es para
normalizar su valor como preparación a su uso.
function funcionEjemplo($codigoBarra)
{
$codigoBarra = trim(strtoupper($codigoBarra));
…………..
}
7.1.1.12 Variables
Cualquier tipo de variables deben estar escritas en lowerCamelCase y cuando una variable representa
una instancia de una clase debe tener el mismo nombre de la clase con el prefijo obj haciendo alusión
a la creación del objeto correspondiente, también en lowerCamelCase; y de forma similar a los
anteriores utilizar el carácter underscore (_) cuando sea necesario para separar las palabras.
Asimismo se recomienda utilizar en el nombre de las variables un sentido completo y humano que
refleje el funcionamiento del mismo.
Por Ejemplo:
obj_persona
contador
ejeX
controlador
Unidad de Tecnologías de Información
78
Metodología MDS-α
7.1.1.13 Nomenclatura de Variables
Es recomendable para asegurar la legibilidad del programa y de su entorno usar nombres con prefijos
que señalen su clasificación, por ejemplo:
Clasificación
Prefijo
Ejemplo
Global
glb_
glb_contador
Puntero
ptr_
ptr_pilaPeso
Arreglo
arr_
arr_tiempoRecorrido
Instancia de una Clase / Objeto
obj_
obj_funcionario
Formulario
frm_
frm_datosCorrespondencia
Texto
txt_
txt_nombreFuncionario
Select / Combo
cmb_
cmb_profesion
Checkbox
chk_
chk_listaProducto
Radio
rad_
rad_color
Submit
sbm_
sbm_aceptar
Button
btn_
btn_reportePlanilla
Tabla 7-1: Convención para los objetos de la programación
Para el tratamiento de codificación en la web es conveniente la siguiente convención:
Clasificación
Prefijo
Ejemplo
Password
psw_
psw_firmaDigital
File
fil_
fil_archivoPrecio
Reset
rst_
rst_limpiar
Hidden
hdn_
hdn_estadoModelo
Método Get
mgt_
mgt_txt_nombreFuncionario
Método Post
mpo_
mpo_cmb_profesion
Método Put
mpu_
mpu_chk_listaProducto
Tabla 7-2: Convención para los objetos/métodos de la web
7.1.1.14 Constantes
Las constantes deben ir en mayúscula, inclusive las constantes de clase. Utilizar el caracter
underscore (_) cuando sea necesario para separar las palabras. Por ejemplo:
PATH_MODELO
NOMBRE_SISTEMA
Unidad de Tecnologías de Información
79
Metodología MDS-α
7.1.1.15 Comentarios
§
Los comentarios deben tener el mismo nivel de indentación que el código que comentan.
§
Los comentarios deben ser fáciles y sencillos de generar y modificar. Por ejemplo lo expuesto
a continuación es opuesto a lo estipulado a esta convención:
/**********************************************************
*
*
*
Esta es una función que calcula la depreciación de los activos *
*
mediante el método de línea recta
*
*
*
***********************************************************/
§
Los comentarios no deben repetir el código ni formularlo de otra manera, sino que deben
explicar la intensión del mismo.
§
En cada módulo, clase, método, función, procedimiento o rutina importante se debe
mantener un bloque de comentarios que describa según su necesidad lo siguiente:
o Su razón, entorno o cometido
o Los parámetros que acepta, valores o rangos válidos. Precondiciones
o El resultado que devuelve. Postcondiciones
o Excepciones que se provocan
o Efectos secundarios que se provocan, incluyendo cambios en variables globales
§
Aquellos métodos o funciones que devuelven valores nulos deben explicar las circunstancias
de los mismos (inexistente, sin dato, no aplicable, etc.)
§
Las funciones que traten con porcentajes, permiles u otros, deben explicar sus rangos de
acción. Por ejemplo: [0-1] , [0-100], [0-1000], …
§
Las funciones matemáticas, físicas u otras que expresen magnitudes deben describir
claramente las respectivas unidades de medición
§
En caso de desactivar temporalmente fragmentos de código, se debe comentar la razón que
expone esta decisión (nuevo requerimiento, afinación, etc.) y cuando se prevé su activación.
§
En situaciones que se expresen condiciones particulares con cierta especialidad se
recomienda realizar cometarios para ayudar su comprensión; esto generalmente ocurre en
los bucles.
Por ejemplo:
Unidad de Tecnologías de Información
80
Metodología MDS-α
//se busca el caracter delimitador para determinar el parrafo
while(corriente.cadena(posicion) != CARACTER_DELIMITADOR )
{
……
}
§
Se debe aplicar la norma de documentación interna que acompaña al lenguaje de
programación utilizado en la creación de un sistema en particular. Por ejemplo
phpDocumentor si se utiliza PHP, JavaDoc si se usa Java, etc.
7.1.1.16 Notificación de Errores
§
Cualquier comunicación de error al usuario debe ser sutil, educado y que además exprese la
posible solución. No echar la culpa al usuario.
§
En lo posible se debe gestionar un control preventivo de datos para evitar una notificación de
errores a posteriori.
§
Delimitar claramente una tabla de errores estándar y su posterior tratamiento a estas
excepciones y notificarlas de forma clara y concisa, permitiendo al usuario la identificación de
errores típicos.
7.1.1.17 Nombres de Archivos
Los nombres de archivos deben estar en lowerCamelCase utilizando el carácter underscore (_) cuando
sea necesario para separar las palabras. Los nombres de los archivos deben ser significativos o
humanizados y que representen el objetivo del archivo.
Por ejemplo:
formulario/controlador/formularioServicio.php
libreria/plantilla/datosBasicos.php
Unidad de Tecnologías de Información
81
Metodología MDS-α
7.1.1.18 ESTILO DE CODIFICACIÓN
7.1.1.18.1 Cadenas de Caracteres
En lenguajes script como el PHP, las cadenas deben utilizar el caracter de comilla simple (') cuando no
se requiera sustitución interna de variables; y cuando exista sustitución debe utilizarse la doble
comilla.
Por ejemplo:
$nombre
= 'Daniel Abasto';
$miNombre = "Mi nombre es $nombre";
7.1.1.18.2 Concatenación de Caracteres
En lenguajes script como el PHP, la concatenación debe realizarse usando el operador punto (.) sin
dejar espacios entre los operandos.
Por ejemplo:
$sql = "select count(*) from ".$tabla;
Cuando ocupen varias líneas se debe indentar la concatenación al nivel del operador igual.
Por ejemplo:
$sql = "select count(*) from ".$tabla.
"where campo = 'A'";
Unidad de Tecnologías de Información
82
Metodología MDS-α
CAPITULO 8
8 PRUEBAS
El principal objetivo de las pruebas consiste en evaluar la calidad del producto que se está
desarrollando a través de las diferentes etapas de desarrollo; así mediante la aplicación de pruebas
concretas se podrán validar las distintas suposiciones hechas en el diseño y que los requerimientos se
estén cumpliendo satisfactoriamente; esto significa decir que se verifica que el producto funcione
como se diseño y que los requerimientos son satisfechos cabalmente como los pretende el usuario
final.
En las pruebas se debe encontrar, documentar y solucionar los diferentes defectos en la calidad del
sistema. Las pruebas deben realizarse en todo el ciclo de vida del desarrollo del sistema para de esa
manera ir refinándolo en todo momento y no esperar hasta el final del mismo.
Sus objetivos específicos están dados por:
§
Encontrar y documentar defectos en la calidad del software.
§
Notificar la calidad observada del software.
§
Proveer un medio de validación para las suposiciones hechas en el diseño y especificaciones
de los requerimientos por medio de demostraciones concretas.
§
Validar que los requerimientos fueron implementados apropiadamente.
§
Validar las funciones del producto de software según lo diseñado.
Para llevar adelante el proceso de las pruebas deberá planificarse que es lo que hay que probar, para
ello se debe diseñar como se va a llevar a cabo la prueba, implementar todo lo necesario para
concretar esta actividad, ejecutarlas en los niveles necesarios y obtener los resultados, de forma tal
que la información obtenida sirva para ir refinando el producto a desarrollar.
El fin de la prueba no consiste en asegurar la calidad, pero si evaluarla, y proporcionar una
realimentación a su debido tiempo, de forma que los aspectos de calidad puedan resolverse y
evolucionar de manera efectiva en tiempo y costo.
Unidad de Tecnologías de Información
83
Metodología MDS-α
Los principales aspectos a ser evaluados en un producto software son:
§
La funcionalidad (¿hace lo que debe?).
§
La fiabilidad (¿resistente a fallos?).
§
El rendimiento (¿lleva a cabo su trabajo de manera efectiva?).
Las pruebas pueden hacerse a diferentes niveles dependiendo del objetivo de los mismos, entre estos
tenemos:
§
Pruebas de Unidad: se prueban las unidades mínimas por separado, y normalmente se hace
durante la implementación misma.
§
Pruebas de Integración: evaluaciones de varias unidades juntas.
§
Pruebas de Sistema: sobre la aplicación o sistema completo.
§
Pruebas de Implantación: dirigida al inicio y aceptación de operaciones mediante el sistema.
§
Pruebas de Aceptación: realizado sobre el sistema global por los diferentes usuarios o
terceras personas.
§
Pruebas de Regresión: realizada después de haber incluido un proceso de modificación o
actualización para no incluir errores o procesos defectuosos.
8.1 PRUEBAS UNITARIAS
Las pruebas unitarias se realizan principalmente para verificar la funcionalidad y estructura de cada
componente individualmente una vez que ha sido codificado. Constituyen la prueba inicial de un
sistema y las demás pruebas deben apoyarse sobre ellas.
Existen dos enfoques principales para el diseño de casos de prueba:
§
Enfoque Estructural o de Caja Blanca: Se verifica la estructura interna con independencia de la
funcionalidad del componente. Esto equivale a decir que, no se comprueba la corrección de
los resultados si éstos se producen. Ejemplos de este tipo de pruebas pueden ser:
o
Ejecutar todas las instrucciones del programa.
o Localizar código no usado
o Comprobar los caminos lógicos del programa
o U otros.
Unidad de Tecnologías de Información
84
Metodología MDS-α
§
Enfoque Funcional o de Caja Negra. Se comprueba el correcto funcionamiento de los
componentes del sistema de información, analizando las entradas y salidas y verificando que
el resultado es el esperado. Se consideran exclusivamente las entradas y salidas del sistema
sin preocuparse por la estructura interna del mismo.
El enfoque general que suele tomarse para una prueba unitaria está orientado al de caja blanca,
aunque puede existir complementación con caja negra. El hecho de tomar los casos de caja blanca se
debe, a que el tamaño del componente es apropiado para examinar la lógica del desarrollo.
Para llevar adelante las pruebas unitarias se deben seguir los siguientes pasos:
§
Registrar los resultados de todos los casos de prueba asociados a cada verificación establecida
en el plan de pruebas. Los casos de prueba deben contemplar tanto las condiciones válidas y
esperadas como las inválidas e inesperadas.
§
Corregir los errores o defectos encontrados y repetir las pruebas que se detectaron. Si se
considera necesario, debido a su implicación o importancia, se repetirán otros casos de
prueba ya realizados con anterioridad.
La prueba unitaria se da por finalizada cuando se hayan realizado todas las verificaciones establecidas
y no se encuentre ningún defecto, o bien se determine su suspensión.
8.2 PRUEBAS DE INTEGRACION
Las pruebas de integración se realizan para verificar el correcto ensamblaje entre los distintos
componentes una vez que han sido probados unitariamente con el fin de comprobar que interactúan
correctamente mediante sus respectivas interfaces, tanto internas como externas, cubren la
funcionalidad establecida y se ajustan a los requisitos no funcionales.
En las pruebas de integración se examinan las interfaces de los distintos componentes o subsistemas
para asegurar que son llamados cuando son necesarios y que los datos o mensajes que se transmiten
son los requeridos.
Los tipos fundamentales de integración son los siguientes:
Unidad de Tecnologías de Información
85
Metodología MDS-α
Integración Incremental
Se combina el siguiente componente que se debe probar con el conjunto de componentes que ya
están probados y se esa manera se va incrementando progresivamente el número de componentes a
probar.
Así se distinguen las siguientes estrategias de integración:
§
De Arriba Abajo (Top-Down): El primer componente que se desarrolla y prueba es el primero de la
jerarquía (A). Los componentes de nivel más bajo se sustituyen por componentes auxiliares para
simular a los componentes invocados. Una de las ventajas de aplicar esta estrategia es que las
interfaces entre los distintos componentes se prueban en una fase temprana y con frecuencia.
§
De Abajo Arriba (Bottom-Up): En este caso se crean primero los componentes de más bajo nivel
(E, F) y se crean componentes conductores para simular a los componentes que los llaman. A
continuación se desarrollan los componentes de más alto nivel (B, C, D) y se prueban. Por último
dichos componentes se combinan con el que los llama (A). Los componentes auxiliares son
necesarios en raras ocasiones. Este tipo de enfoque permite un desarrollo más en paralelo que el
enfoque de arriba abajo, pero presenta mayores dificultades a la hora de planificar y de gestionar.
§
Estrategias Combinadas: A menudo es útil aplicar las estrategias anteriores de forma conjunta. De
este modo, se desarrollan partes del sistema con un enfoque "Top-Down", mientras que los
componentes más críticos en el nivel más bajo se desarrollan siguiendo un enfoque "Bottom-Up".
En este caso se recomienda una planificación cuidadosa y coordinada, de manera tal que el éxito
de la prueba sea la esperada.
Graf. 8-1: Organización de la estrategia de integración incremental
Unidad de Tecnologías de Información
86
Metodología MDS-α
Integración No Incremental
Se prueba cada componente por separado y posteriormente se integran todos de una vez realizando
las pruebas pertinentes. Este tipo de integración se denomina también “Big-Bang” (gran explosión).
8.3 PRUEBAS DEL SISTEMA
Las pruebas del sistema consisten en ejercitar profundamente el sistema, comprobando la
integración del sistema de información globalmente, verificando el funcionamiento correcto de las
interfaces entre los distintos subsistemas y con el resto de los sistemas externo con los que se
comunica. Así las pruebas del sistema son pruebas de integración completas, y permiten probar el
sistema en su conjunto y con otros sistemas con los que se relaciona para verificar que las
especificaciones funcionales y técnicas se cumplen. Dan una visión muy similar a su comportamiento
en el entorno de producción.
Una vez que se han probado los componentes individuales y se han integrado, se prueba el sistema
de forma global. En esta etapa pueden distinguirse los siguientes tipos de pruebas, cada uno con un
objetivo claramente diferenciados:
§
Pruebas Funcionales: Dirigidas a asegurar que el sistema de información realiza
correctamente todas las funciones que se han detallado en las especificaciones dadas por el
usuario del sistema.
§
Pruebas de Comunicaciones: Determinan que las interfaces entre los componentes del
sistema funcionan adecuadamente, tanto a través de dispositivos remotos, como locales.
Asimismo, se han de probar las interfaces hombre/máquina.
§
Pruebas de Rendimiento: Consisten en determinar que los tiempos de respuesta están dentro
de los intervalos establecidos en las especificaciones del sistema.
§
Pruebas de Volumen: Consisten en examinar el funcionamiento del sistema cuando está
trabajando con grandes volúmenes de datos, simulando las cargas de trabajo esperadas.
§
Pruebas de Sobrecarga: Consisten en comprobar el funcionamiento del sistema en el umbral
límite de los recursos, sometiéndole a cargas masivas. El objetivo es establecer los puntos
extremos en los cuales el sistema empieza a operar por debajo de los requisitos establecidos.
Unidad de Tecnologías de Información
87
Metodología MDS-α
§
Pruebas de Disponibilidad de Datos: Consisten en demostrar que el sistema puede
recuperarse ante fallos, tanto de equipo físico como lógico, sin comprometer la integridad de
los datos.
§
Pruebas de Facilidad de Uso: Consisten en comprobar la adaptabilidad del sistema a las
necesidades de los usuarios, tanto para asegurar que se acomoda a su modo habitual de
trabajo, como para determinar las facilidades que aporta al introducir datos en el sistema y
obtener los resultados.
§
Pruebas de Operación. Consisten en comprobar la correcta implementación de los
procedimientos de operación, incluyendo la planificación y control de trabajos, arranque y
rearranque del sistema, etc.
§
Pruebas de Entorno: Consisten en verificar las interacciones del sistema con otros sistemas
dentro del mismo entorno.
§
Pruebas de Seguridad: Consisten en verificar los mecanismos de control de acceso al sistema
para evitar alteraciones indebidas en los datos.
8.4 PRUEBAS DE IMPLANTACION
Las pruebas de implantación consisten en comprobar el funcionamiento correcto del sistema
integrado (hardware y software) en el entorno de operación, y permitir al usuario operador realizar la
aceptación del sistema una vez instalado en su entorno real, en base al cumplimiento de los
requisitos no funcionales dados por estos últimos.
Una vez que hayan sido realizadas las pruebas del sistema en el entorno de desarrollo, se llevan a
cabo las verificaciones necesarias para asegurar que el sistema funcionará correctamente en el
entorno de operación. Debe comprobarse que responde satisfactoriamente a los requisitos de
rendimiento, seguridad, operación y coexistencia con el resto de los sistemas de la instalación para
conseguir la aceptación del usuario de operación.
Las pruebas de seguridad van dirigidas a verificar que los mecanismos de protección incorporados al
sistema cumplen su objetivo; las pruebas de rendimiento a asegurar que el sistema responde
satisfactoriamente en los márgenes establecidos en cuanto tiempos de respuesta, de ejecución y de
utilización de recursos, así como los volúmenes de espacio en disco y capacidad; por último con las
pruebas de operación se comprueba que la planificación y control de trabajos del sistema se realiza
Unidad de Tecnologías de Información
88
Metodología MDS-α
de acuerdo a los procedimientos establecidos, considerando la gestión y control de las
comunicaciones y asegurando la disponibilidad de los distintos recursos.
Asimismo, también se llevan a cabo las pruebas de gestión de copias de seguridad y recuperación,
con el objetivo de verificar que el sistema no ve comprometido su funcionamiento al existir un
control y seguimiento de los procedimientos de salvaguarda y de recuperación de la información, en
caso de caídas en los servicios o en algunos de sus componentes. Para comprobar estos últimos, se
provoca el fallo del sistema, verificando si la recuperación se lleva a cabo de forma apropiada. En el
caso de realizarse de forma automática, se evalúa la inicialización, los mecanismos de recuperación
del estado del sistema, los datos y todos aquellos recursos que se vean implicados.
Las verificaciones de las pruebas de implantación y las pruebas del sistema tienen muchos puntos en
común al compartir algunas de las fuentes para su diseño como pueden ser los casos para probar el
rendimiento (pruebas de sobrecarga o de Stress).
El responsable de implantación junto al equipo de desarrollo determina las verificaciones necesarias
para realizar las pruebas así como los criterios de aceptación del sistema. Estas pruebas las realiza el
equipo de operación, integrado por los técnicos de sistemas y de operación que han recibido
previamente la formación necesaria para llevarlas a cabo.
8.5 PRUEBAS DE ACEPTACION
Las pruebas de aceptación consisten en validar que un sistema cumple con el funcionamiento
esperado y permitir la aceptación por parte del usuario de dicho sistema, principalmente desde el
punto de vista de su funcionalidad y rendimiento.
Las pruebas de aceptación son definidas por el usuario del sistema y preparadas por el equipo de
desarrollo, aunque la ejecución y aprobación final corresponden al usuario. Estas pruebas van
dirigidas a comprobar que el sistema cumple los requisitos de funcionamiento esperado, recogidos en
el catálogo de requisitos y especificaciones con los diferentes criterios de aceptación.
El responsable de usuarios debe revisar los criterios de aceptación que se especificaron previamente
en el plan de pruebas del sistema y, posteriormente, dirigir las pruebas de aceptación final.
Unidad de Tecnologías de Información
89
Metodología MDS-α
La validación del sistema se consigue mediante la realización de pruebas de caja negra que
demuestran la conformidad de los requisitos y que se recogen en el plan de pruebas, el cual define las
verificaciones a realizar y los casos de prueba asociados. Dicho plan está diseñado para asegurar que
se satisfacen todos los requisitos funcionales especificados por el usuario sin dejar de lado los
requisitos no funcionales relacionados con el rendimiento, seguridad de acceso al sistema, a los datos
y procesos, así como a los distintos recursos del sistema.
La formalidad de estas pruebas dependerá en mayor o menor medida de cada organización, y vendrá
dada por la criticidad del sistema, el número de usuarios implicados en las mismas y el tiempo del que
se disponga para llevarlas cabo, entre otros.
8.6 PRUEBAS DE REGRESION
Las pruebas de regresión se realizan con el fin de eliminar el efecto onda, es decir, comprobar que los
cambios sobre un componente de un sistema de información, no introducen un comportamiento no
deseado o errores adicionales en otros componentes no modificados.
Las pruebas de regresión se deben llevar a cabo cada vez que se hace un cambio en el sistema, tanto
para corregir un error como para realizar una mejora. No es suficiente probar sólo los componentes
modificados o añadidos, o las funciones que en ellos se realizan, sino que también es necesario
controlar que las modificaciones no produzcan efectos negativos sobre el mismo u otros
componentes.
Normalmente, este tipo de pruebas implica la repetición de las pruebas que ya se han realizado
previamente, con el fin de asegurar que no se introducen errores que puedan comprometer el
funcionamiento de otros componentes que no han sido modificados y confirmar que el sistema
funciona correctamente una vez realizados los cambios.
Las pruebas de regresión pueden incluir:
§
La repetición de los casos de pruebas que se han realizado anteriormente y están
directamente relacionados con la parte del sistema que fue modificado.
§
La revisión de los procedimientos manuales preparados antes del cambio, para asegurar que
permanecen correctamente.
Unidad de Tecnologías de Información
90
Metodología MDS-α
§
La obtención impresa del diccionario de datos de forma que se compruebe que los elementos
de datos que han sufrido algún cambio son correctos.
El responsable de realizar las pruebas de regresión será el equipo de desarrollo junto al técnico de
mantenimiento, quien a su vez, será responsable de especificar el plan de pruebas de regresión y de
evaluar los resultados de dichas pruebas.
Unidad de Tecnologías de Información
91
Metodología MDS-α
CAPITULO 9
9 IMPLANTACIÓN DEL SISTEMA
En esta fase se deben realizar las actividades necesarias para poner a disposición de los usuarios el
sistema de información desarrollado y en función a sus características se define un plan de
implantación señalando a todas las personas participantes en el proceso.
Antes de pasar a un ambiente de producción se debe preparar la infraestructura necesaria para
configurar el entorno, instalar cada uno de los componentes, activar los distintos procedimientos,
migración o carga inicial de datos.
Para establecer el plan de implantación se debe tomar en cuenta:
§
El cumplimiento de los diferentes requerimientos de implantación.
§
La estrategia de transición del antiguo sistema al nuevo.
9.1 DEFINICION DEL PLAN DE IMPLANTACION
Previamente se revisa la estrategia de implantación del sistema, analizando las posibles dependencias
con otros sistemas, que puedan condicionar en alguna medida el plan de implantación. Seguidamente
se constituye el equipo de implantación, determinando el recurso humano correspondiente para la
instalación, implantación y preparación del mantenimiento, para ello debe señalarse cada uno de los
perfiles y los niveles de responsabilidad.
La estrategia de implantación deberá tomar en cuenta información como ser: la envergadura del
proyecto, el número de sistemas involucrados en la implantación, la cobertura geográfica, la
capacitación de los usuarios, etc.; para luego en el plan de implantación calcular adecuadamente el
esfuerzo y los recursos necesarios.
Esta fase requerirá trabajos con los usuarios operadores, la instalación de las diferentes herramientas
informáticas, la publicación y ejercicio del servicio, un plan de mantenimiento, resguardo de los
códigos fuente y bases de datos, capacitación de los usuarios, etc.
Unidad de Tecnologías de Información
92
Metodología MDS-α
9.2 CAPACITACION
En función al plan de implantación se debe revisar y efectivizar las diferentes actividades de
capacitación y formación de los usuarios finales, para ello:
§
Asegurar que se cuenta con los recursos humanos, técnicos y materiales necesarios para
realizar la actividad correspondiente.
§
Establecer el plan de capacitación del sistema de información con la única finalidad de
garantizar el éxito de la implantación.
§
Determinar en función a los distintos esquemas de formación asociados a los distintos
perfiles, los contenidos que tienen los cursos, quienes los van a recibir, su prioridad y
sobretodo los tiempos que se impartirán los mismos.
§
También posibilitar la realización del seguimiento operacional a los distintos usuarios
beneficiados con la capacitación con la finalidad de informar las posibles desviaciones para
tomar las medidas oportunas.
9.3 MANUAL DE INSTALACION
Conformar un documento que señale la infraestructura base que se necesita para lograr la instalación
y puesta en producción del software desarrollado, para ello tomar en cuenta que tal infraestructura
debe cumplir los requisitos descritos en el plan de implantación.
Algunos temas puntuales que se deben tener en este documento son:
§
Requisitos de implantación (instalación e infraestructura).
§
Procedimientos de seguridad y control de accesos (mantenimiento de la integridad y
confiabilidad de los datos, control de acceso al sistema, copias de seguridad y recuperación
de datos, etc.).
§
Operación y administración del sistema (estándares, recuperación y reanudación de trabajos,
planificación de trabajos, etc.).
§
Y si el sistema trae consigo un proceso de migración o carga de datos se debe señalar
puntualmente cada uno de los pasos que estas actividades involucra.
§
Señalar el equipo responsable de la instalación, pruebas de implantación y aceptación del
sistema.
Unidad de Tecnologías de Información
93
Metodología MDS-α
Y en lo que respecta al trabajo con las Bases de Datos se debe señalar también su respectivo plan,
señalando básicamente:
§
La creación de la Base de Datos a partir del Modelo Lógico.
§
Establecimiento de los procedimientos de explotación, uso y actualización de las Bases de
Datos.
§
Establecimiento de los procedimientos de las copias de seguridad de los datos y su
restauración indicando la temporalidad de los mismos.
§
Señalizar el procedimiento de los tipos de usuarios de las bases de datos, sus respectivos
permisos según los distintos perfiles de los usuarios del sistema.
Y por último, señalar los procedimientos de operación y administración del sistema incluyendo el
arranque y cierre, recuperación y reanudación del sistema según una frecuencia establecida.
9.4 MANUAL DEL USUARIO
Desarrollar un documento se pueda ser utilizado como una guía, para mostrar y a la vez enseñar al
usuario acerca de las distintas funcionalidades que tiene el sistema. Tal documento debe responder a
los diferentes requerimientos y especificaciones hechas por el usuario.
Un manual de usuario debe estar redactado de manera simple y concisa, que pueda ser entendible
por cualquier tipo de persona (usuarios, técnicos, operadores, etc.) y mínimamente debe incluir:
§
Un prefacio, con información sobre cómo usar el propio manual.
§
Un índice.
§
Una guía detallada que describa la funcionalidad del sistema.
§
Una sección de resolución de problemas típicos.
§
Información de contacto.
§
Un Glosario.
Unidad de Tecnologías de Información
94
Metodología MDS-α
CAPITULO 10
10 MANTENIMIENTO DEL SISTEMA
El objetivo de este proceso es la obtención de una nueva versión de un sistema de información en
particular, y se lo realiza a partir de las peticiones de mantenimiento que los usuarios realizan con
motivo de un problema detectado en el sistema, o por la necesidad de una mejora del mismo.
En este proceso se realiza el registro de las peticiones de mantenimiento con el fin de llevar el control
de las mismas y de proporcionar, si fuera necesario, datos estadísticos de peticiones recibidas o
atendidas en un determinado periodo, sistemas que se han visto afectados por los cambios, en qué
medida y el tiempo empleado en la resolución de dichos cambios. Es recomendable, por lo tanto,
llevar un catálogo de peticiones de mantenimiento sobre los sistemas de información, en el que se
registren una serie de datos que nos permitan disponer de la información antes mencionada.
En el momento en el que se registra la petición, se procede a diagnosticar de qué tipo de
mantenimiento se trata. Atendiendo a los fines, podemos establecer los siguientes tipos de
mantenimiento:
§
Correctivo: son aquellos cambios precisos para corregir errores del producto software.
§
Evolutivo: son las incorporaciones, modificaciones y eliminaciones necesarias en un producto
software para cubrir la expansión o cambio en las necesidades del usuario.
§
Adaptativo: son las modificaciones que afectan al entorno en que el sistema opera, por
ejemplo: cambios de configuración del hardware, software de base, gestores de base de
datos, comunicaciones, etc.
§
Perfectivo: son las acciones llevadas a cabo para mejorar la calidad interna de los sistemas en
cualquiera de sus aspectos: reestructuración del código, definición más clara del sistema y
optimización del rendimiento y eficiencia.
Una vez registrada la petición e identificado el tipo de mantenimiento y su origen, se determina a los
responsabilidad de atender la petición. En el supuesto de que la petición sea remitida, se registra en
el catálogo de peticiones de mantenimiento y continúa el proceso.
La petición puede ser denegada; en este caso, se notifica al usuario y acaba el proceso.
Unidad de Tecnologías de Información
95
Metodología MDS-α
Posteriormente, según el tipo de mantenimiento, se verifica y reproduce el problema, o se estudia la
viabilidad del cambio propuesto por el usuario; en ambos casos se estudia el alcance de la
modificación.
Hay que analizar las alternativas de solución identificando, según el tipo de mantenimiento de que se
trate, cuál es la más adecuada. El plazo y urgencia de la solución a la petición se establece de acuerdo
con el estudio anterior.
La definición de la solución incluye el estudio del impacto de la solución propuesta para la petición en
los sistemas de información afectados. Mediante el análisis de dicho estudio, la persona encargada
del Proceso de Mantenimiento valora el esfuerzo y coste necesario para la implementación de la
modificación.
Las tareas de los procesos de desarrollo que va a ser necesario realizar son determinadas en función
de los componentes del sistema actual afectados por la modificación. Estas tareas pertenecen a
actividades de los procesos generales de Análisis, Diseño, Construcción e Implantación.
Por último, y antes de la aceptación del usuario, es preciso establecer un plan de pruebas de
regresión que asegure la integridad del sistema de información afectado.
La mejor forma de mantener el coste de mantenimiento bajo control es una gestión del Proceso de
Mantenimiento efectiva y comprometida. Por lo tanto, es necesario registrar de forma disciplinada
los cambios realizados en los sistemas de información y en su documentación. Esto repercutirá
directamente en la mayor calidad de los sistemas resultantes.
Lo dicho anteriormente puede esquematizarse como sigue:
§
Registro de la Petición para mantener una estandarización de las diferentes solicitudes
(catálogo de mantenimiento) mejorando de esta manera el flujo de trabajo de las personas
involucradas.
§
Asignación de la Petición para realizar su estudio de viabilidad según las soluciones
identificadas para luego brindar una respuesta (aceptación o rechazo). Si se acepta la petición
se identifica al responsable de atender este asunto.
§
Análisis de la Petición llevando a cabo el diagnóstico y análisis del cambio para dar respuesta
a las peticiones de mantenimiento que han sido aceptadas en la actividad anterior. Se analiza
el alcance de la petición en lo referente a los sistemas de información afectados, valorando
Unidad de Tecnologías de Información
96
Metodología MDS-α
hasta qué punto pueden ser modificados en función del ciclo de vida estimado para los
mismos.
§
Verificación y Estudio de la Petición que una vez examinada su correspondiente estudio se
registra su información de mantenimiento y se determina el tipo de tratamiento.
§
Estudio de la Propuesta de Solución que de acuerdo a su alcance se establece una prioridad
de atención, concretando los requisitos solicitados y analizando a detalle su implicancia en el
sistema de información. También se debe analizar el impacto que tendrá tal solución.
§
Implementación de la Modificación identificando los elementos afectados y estableciendo un
plan de acción.
§
Plan de Pruebas de Regresión para eliminar el conocido efecto “onda” , evitando de esta
manera la intrusión de comportamiento no deseado, errores o implicancias no deseadas en
los distintos componentes del sistema.
§
Seguimiento de los Cambios de acuerdo a los puntos de control definidos en el plan de
acción.
§
Realización de las Pruebas de Regresión definidas en el correspondiente plan, y asegurar de
esta manera que el sistema implicado en el cambio no esté comprometido con su normal y
correcto funcionamiento.
§
Aprobación y Cierre de la Petición de acuerdo a los resultados obtenidos de las pruebas de
regresión, y se cierra el catálogo de mantenimiento actualizando la petición tratada.
§
Actualización de Documentación del Sistema crear una nueva versión de la documentación
del sistema tratado indicando la persona quien la realizo, el tiempo, el tipo de ajuste, etc. Así
se modificarán por ejemplo: los documentos de requerimientos y especificaciones de
software, de arquitectura de software, de diseño y modelamiento, etc.
Unidad de Tecnologías de Información
97
Metodología MDS-α
CAPITULO 11
11 PLAN DE ASEGURAMIENTO DE LA CALIDAD
Las metodologías, normas, estándares y demás herramientas de construcción de software, tienen un
único fin, producir software de gran calidad.
La calidad de software se refleja en la “relación que debe existir entre los requisitos funcionales y los
de rendimiento, expresamente establecidos con los estándares de desarrollo, convenientemente
documentados y, principalmente con los requerimientos no funcionales incrustados implícita o
explícitamente en el software” (ISO 8402-94, ISO 9000:2000)
Así podemos decir que:
§
Los requerimientos de software son la base de las medidas de calidad.
§
La falta de concordancia con los requisitos se transforma en una falta de calidad.
§
Los estándares, normas y metodologías guían el buen desarrollo de sistemas con calidad.
§
Si no se sigue ninguna metodología siempre habrá falta de calidad.
§
Existen requisitos no funcionales que generalmente están implícitos (por ejemplo el deseo de
un buen mantenimiento y escalabilidad) que también pueden implicar una falta de calidad.
El aseguramiento de calidad de software es el conjunto de actividades planificadas y sistemáticas,
necesarias para satisfacer los requerimientos dados de calidad por parte del cliente y de los
desarrollares.
El aseguramiento de calidad de software se diseña para cada aplicación antes de comenzar a
desarrollarla y no después.
11.1 CALIDAD DEL SOFTWARE
La calidad de software es el conjunto de atributos que lo caracterizan y que determinan su utilidad y
existencia; la calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad,
portabilidad, usabilidad, seguridad, integridad, etc. La calidad del software es medible y varía de un
sistema a otro.
Unidad de Tecnologías de Información
98
Metodología MDS-α
La calidad del software puede medirse después de haber elaborado el producto. Pero, esto puede
resultar muy costoso si se detectan problemas derivados de imperfecciones en el análisis, diseño,
codificación, etc., por lo que es necesario tomar en cuenta que la obtención de la calidad como su
control debe realizarse durante todas las etapas del ciclo de vida del software
11.1.1 Obtención de Software con Calidad
La obtención de software con calidad implica la utilización de metodologías, normas, procedimientos
estándares en cada etapa del desarrollo del software (análisis, diseño, programación, prueba,
mantenimiento) permitiendo uniformar una filosofía de trabajo, con la intensión marcada de lograr
una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad,
tanto para la labor de desarrollo como para el control de la calidad del software.
11.1.2 Determinación de Calidad del Software
Existen tres grupos bien definidos que determinan la calidad del software:
Operaciones del Producto
Referidas a las características operativas de software.
§
Corrección (¿Resuelve lo pedido?): Es el grado en que una aplicación satisface sus
especificaciones y consigue los objetivos encomendados por el cliente.
§
Fiabilidad (¿Lo hace de forma fiable todo el tiempo?): Es el grado que se espera se lleve a
cabo las operaciones especificadas de una aplicación informática.
§
Eficiencia (¿Qué recursos hardware y software se necesita?): La cantidad de recursos
hardware y software que necesita una aplicación para realizar las operaciones con los
tiempos de respuesta adecuados.
§
Integridad (¿Se puede controlar su uso?): Es el grado con que puede controlarse el acceso
al software o a los datos (por lo general a personal no autorizado).
§
Facilidad de uso (¿Es fácil y cómodo de manejar?): Se trata del esfuerzo requerido para
aprender el manejo de una aplicación, trabajar con ella, introducir datos y conseguir los
resultados buscados.
Unidad de Tecnologías de Información
99
Metodología MDS-α
Revisión del Producto
Referida a la capacidad para soportar cambios o modificaciones.
§
Facilidad de mantenimiento (¿Se pueden identificar las fallas y ajustar procesos?): Se
refiere al esfuerzo requerido para localizar y reparar los errores, y ajustar procesos sin
mayores dificultades.
§
Flexibilidad (¿Se puede incluir nuevas opciones?): se refiere al esfuerzo requerido para
modificar una aplicación en funcionamiento o producción.
§
Facilidad de prueba (¿Se pueden probar todas las opciones?): Es el esfuerzo requerido
para probar una aplicación de forma que cumpla con las especificaciones de requisitos.
Transición del Producto:
Hace alusión a la adaptabilidad a nuevos entornos.
§
Portabilidad (¿Podrá usarse en otras máquinas?): Es el esfuerzo requerido para transferir
la aplicación a otro hardware o sistema operativo.
§
Reusabilidad (¿Se Podrá utilizar alguna parte del software en otra aplicación?): se refiere
al grado en que las partes de una aplicación pueden utilizarse en otros sistemas.
§
Interoperabilidad (¿Se podrá comunicar con otros sistemas informáticos?): Indica el
esfuerzo que se necesita para comunicar una determina aplicación con otros sistemas
informáticos.
11.2 PLAN DE LA CALIDAD
11.2.1 Alcance del Plan de Calidad
Se identifican los componentes, aspectos o características del sistema que deberán ser evaluados
para asegurar que los objetivos de calidad se han alcanzado.
·
Componente-1
·
Componente-2
·
Componente-3
·
Característica-1
·
Característica-2
Unidad de Tecnologías de Información
100
Metodología MDS-α
11.2.2 Objetivos de Calidad
Incluir los objetivos para ajustarlos al proyecto. Agrupar por prioridades de acuerdo a los
lineamientos del proyecto.
Esenciales
§ Funcionalidad à Corrección
§ Funcionalidad à Robustez
Esperados
§ Funcionalidad à Exactitud
§ Funcionalidad à Compatibilidad
§ Funcionalidad à Corrección medible
§ Usabilidad à Comprensibilidad y Legibilidad
§ Usabilidad à Apoyo para tareas
§ Usabilidad à Eficiencia
§ Usabilidad à Seguridad
§ Usabilidad à Consistencia y Familiaridad
§ Usabilidad à Satisfacción Subjetiva
Deseados
§ Confiabilidad à Consistencia en carga
§ Confiabilidad à Consistencia bajo concurrencia
§ Confiabilidad à Disponibilidad bajo carga
§ Confiabilidad à Longevidad
§ Eficiencia
§ Escalabilidad
§ Escalabilidad à Desempeño bajo carga
§ Escalabilidad à Grandes volúmenes de datos
§ Operabilidad
§ Capacidad de mantenimiento à Comprensibilidad
§ Capacidad de mantenimiento à Capacidad de evolución
§ Capacidad de mantenimiento à Capacidad de prueba
Unidad de Tecnologías de Información
101
Metodología MDS-α
11.2.3 Procesos del Aseguramiento de Calidad
Para lograr una buena adherencia con los estándares se debe medir cuantitativamente, donde sea
posible, los aspectos de calidad (complejidad, confiabilidad, mantenimiento, seguridad, defectos,
número de problemas) utilizando métricas bien establecidas. Para ello, se deben realizar chequeos,
reconocimientos, controles o verificaciones de:
§
Administración
§
Documentación
§
Estándares, prácticas, convenciones y métricas
§
Revisiones e intervenciones
§
Actividades de testeo
§
Reporte de errores y acciones correctivas
§
Herramientas, técnicas y métodos
§
Control del código
§
Control de medios
§
Colección de registros, mantenimiento y retención
§
Entrenamiento
§
Administración del riesgo
La forma en que se llevarán a cabo estas actividades se define en el Proceso de Aseguramiento de
Calidad, el cual estará presente e irá evolucionado en las sucesivas fases del proceso de desarrollo del
software.
11.2.4 Guías para las actividades del Aseguramiento de Calidad del Software
Nombre del Proceso de
Aseguramiento de Calidad:
Código:
Proyecto/Sistema:
Administrador del
Proyecto/Sistema:
Preparado por:
Nº Control de Versión
Versión del Documento:
Fecha de Preparación:
Revisado por
Fecha
Descripción
Tabla 11-1: Encabezado del Plan de Aseguramiento de la Calidad
Unidad de Tecnologías de Información
102
Metodología MDS-α
Las siguientes tres guías muestran la pauta general del proceso que se debe seguir respecto a las
actividades del Aseguramiento de Calidad.
11.2.4.1 Guía para la Administración
Nº
Propósito
1
Criterios de
Actividad
Detalle / Indicación
§
Entrada
Plan de Administración del Proyecto de
Software.
§
Personal que participara en el Control de
Calidad.
2
Revisión
§
§
Identificar tareas de cada integrante que
Verificar
participara en el Aseguramiento de
participantes del Control de Calidad y el Plan
Calidad del Software.
Administración del Software.
Definir
responsabilidades
a
la
consistencia
entre
los
cada
integrante.
3
Criterios de Salida
Esquema especifico de los participantes del
Estructura del Control de Calidad óptima para
Control de Calidad.
el proyecto.
Tabla 11-2: Tabla guía para la Administración
11.2.4.2 Guía para la Documentación
Nº
Propósito
1
Criterios de
Plan de Administración del Proyecto de
Entrada
Software.
2
3
Revisión
Criterios de Salida
Actividad
Revisión y análisis del plan de
documentación.
§
Buscar discrepancias.
§ Discutir discrepancias con el o los
responsables del proyecto.
Documentación revisada.
§
Detalle / Indicación
§
Reportar discrepancias
§
Enviar discrepancias correspondientes a
los respectivos responsables
Documento de acuerdo a estándares y sin
discrepancias.
Tabla 11-3: Tabla guía para la Documentación
Unidad de Tecnologías de Información
103
Metodología MDS-α
11.2.4.3 Guía para la Adherencia a los Estándares.
Nº
Propósito
1
Criterios de Entrada
Actividad
Detalle / Indicación
Documento
de
Requerimientos
Especificaciones
del
Documento
Arquitectura
de
y
Software,
del
Software, Documento del Diseño del
Sistema, etc.
2
Documentación
Monitorear la adherencia
documentos a los estándares.
de
los
La documentación debe reflejar los
diferentes puntos citados en la presente
metodología (MDS-ALFA)
3
Diseño
Monitorear la adherencia del diseño de
El diseño estará enmarcado en las
acuerdo a los estándares.
diferentes herramientas citadas en la
metodología (MDS-ALFA) de acuerdo a
su tipo (Estructurado, Orientado a
Objetos, etc.)
4
5
6
7
Codificación
Monitorear
la
la
La Codificación estará enmarcada de
codificación a la convención establecida
acuerdo a la Convención de Codificación
en la Metodología ALFA.
definida en la Metodología MDS-ALFA.
Monitorear
los
Los Comentarios y la Documentación
Interna
Comentarios y la Documentación Interna
Interna del Sistema estará enmarcado
de acuerdo la convención establecida en
bajo las convenciones de codificación
la Metodología ALFA.
defina en la Metodología MDS-ALFA.
Monitorear la adherencia de las pruebas
Revisar de acuerdo a los estándares
de acuerdo a los estándares.
citado en la Metodología MDS-ALFA.
Revisar la métrica definida
Revisar la o las métricas de acuerdo a los
Métricas
adherencia
de
Comentarios/Documentación
Prueba
la
adherencia
de
diferentes
atributos
de
calidad
propuestos.
8
9
Conformidad
Criterios de Salida
Monitorear la conformidad que existe en
Revisar documentos de conformidad del
el sistema.
sistema.
§
Proceso
de
Documentación
revisado
§
§
§
§
§
§
Proceso de Diseño revisado
Proceso de Codificación revisado
Proceso de Comentarios y
Documentación Interna revisados
Proceso de Pruebas revisado
Métricas definidas revisadas
Conformidad revisado
§
§
Discrepancias
reportadas
y
solucionadas.
Documentos de acuerdo a los
estándares.
Tabla 11-4: Tabla guía para la adherencia a los Estándares
Unidad de Tecnologías de Información
104
Metodología MDS-α
ANEXOS
Unidad de Tecnologías de Información
105
Metodología MDS-α
ANEXO 1
ARBOL CAUSA Y EFECTO
También conocido como árbol de problemas; es una herramienta de planificación que sirve de mucho
en el planteamiento de proyectos, esta técnica se utiliza para identificar una situación negativa
dentro de un determinado entorno aplicando para ello la relación causa y efecto.
La identificación correcta del problema tiene de inicio un elevado porcentaje de solución del mismo, y
en consecuencia un correcto encaminamiento a los diferentes objetivos.
DETERMINACION DEL PROBLEMA
Se deben seguir los siguientes pasos:
§
Según una determinada situación, identificar los posibles problemas
§
Mediante esta lluvia de ideas8, el grupo debe identificar el problema central
El problema central que se pretende solucionar con la aplicación del proyecto, debe expresar
necesidades insatisfechas y/o oportunidades no aprovechadas. El problema no debe expresar la falta
de una solución, ya que no se contaría con alternativas para su análisis. Por ejemplo:
Problema Incorrecto: "Falta de sistema informático en la Unidad de Recursos Humanos”
(Pues, el sistema informático puede ser una alternativa de solución.)
Problema Correcto: "Limitado tratamiento de la información de los funcionarios de la
institución"
Problema Central
Limitado tratamiento de la información
de los funcionarios de la institución.
8
Lluvia de ideas - Brainstorming, conocido también como tormenta de ideas, es una herramienta de trabajo
grupal que facilita el surgimiento de nuevas ideas sobre un tema o problema determinado.
Unidad de Tecnologías de Información
106
Metodología MDS-α
Así también es importante usar verbos adecuados en la definición de problema y tener mucho
cuidado en términos como carencia, falta, etc.
CAUSAS DEL PROBLEMA
Definido el problema central, seguidamente deben identificarse las causas directas e indirectas que
generan el mismo, suprimiendo aquellas que están fuera del alcance del proyecto, por ejemplo
aquellos sucesos externos que pueden estar presentes. Cada causa directa debe estar relacionada
con sus correspondientes causas indirectas.
EFECTOS DEL PROBLEMA
Los efectos son sucesos que se derivan del problema y permanecerán en caso de no ejecutarse el
proyecto. Similarmente, deben identificarse los efectos directos e indirectos según su relación con el
problema citado hasta ubicar el efecto final.
CONSTRUCCION DEL ARBOL
Identificado las causas y los efectos se organiza el árbol de la forma siguiente:
§
El problema principal ocupa el nodo central del árbol (es el tronco)
§
Por debajo del nodo central se identifican las causas directas que originan dicho problema, los
encadenamientos posteriores hacen una relación de las causas directas con sus
correspondientes causas indirectas (son las raíces)
§
Por encima del problema central, ubicamos a los efectos que derivan del problema,
relacionados hacia un orden superior hasta ubicar el efecto final (son las hojas).
Siguiendo el caso ejemplo, vemos en el gráfico Graf. A-1-1 la estructura del árbol para el problema
mencionado, en donde puede notarse que el gran efecto es la Desconfianza en la Administración del
Recurso Humano de la Institución.
Unidad de Tecnologías de Información
107
Metodología MDS-α
EFECTOS
Desconfianza en la
administración del
Recurso Humano de la
institución
Falta de fiabilidad de los
datos procesados
Información inadecuada
Demora en el
procesamiento de datos
Limitado tratamiento de
la información de los
funcionarios de la
institución
PROBLEMA CENTRAL
CAUSAS
Capacidad limitada de los
equipos de computación
Computadoras obsoletas
Mantenimiento limitado
Limitado control del
procesamiento de
información
Limitada aplicación de las
normas
Limitada aplicación de los
diferentes procesos y
procedimientos
Graf. A-1-1: Árbol Causa Efecto (Árbol de Problemas)
EL ARBOL DE OBJETIVOS
El árbol de objetivos conocido también como árbol de medios y fines se construye de una manera
opuesta y positiva al árbol de problemas. A partir del árbol de causa y efecto puede obtenerse los
objetivos del proyecto.
Problema Central
Limitado tratamiento de la
información de los
funcionarios de la institución
Objetivo General
Mejorar el tratamiento de la
información de los
funcionarios de la institución
Los objetivos específicos se construyen de similar forma, son lo opuesto de las causas directas. En la
grafica Graf. A-1-2 se puede observar el árbol de medios y fines relacionado con el problema de
ejemplo.
Unidad de Tecnologías de Información
108
Metodología MDS-α
Confianza en la
administración del
Recurso Humano de la
institución
FINES
Datos procesados de
forma correcta
Información adecuada
Procesamiento de datos
oportuna
Mejorar el tratamiento de
la información de los
funcionarios de la
institución
OBJETIVO GENERAL
Mejorar los equipos de
computación
MEDIOS
Mayor control del
procesamiento de
información
Computadoras adecuadas
Amplia cobertura de
mantenimiento
Aplicación correcta de las
normas
Mejor aplicación de los
diferentes procesos y
procedimientos
Graf. A-1-2: Árbol de Objetivos
Lo opuesto a las causas indirectas son los medios fundamentales, a partir de ellos se encontrarán las
acciones respondiendo a la pregunta ¿Cómo?; para el caso de Computadoras adecuadas, la pregunta
sería cómo las obtendremos; una opción comprar computadoras, otra es actualizar las partes, otra
alquilarlas, etc. Y así sucesivamente para cada medio se halla sus acciones correspondientes, para
luego agruparlas y formar las alternativas del proyecto
Computadoras adecuadas
Amplia cobertura de
mantenimiento
Aplicación correcta de las
normas
Mejor aplicación de los
diferentes procesos y
procedimientos
Unidad de Tecnologías de Información
109
Metodología MDS-α
Alternativa de Proyecto 1
§
Comprar computadoras
§
Realizar programas de mantenimiento
§
Estandarización de actividades
§
Automatizar procesos y procedimientos con personal interno
Alternativa de proyecto 2
§
Actualizar partes de computadoras
§
Realizar programas de mantenimiento
§
Estandarización de actividades
§
Automatizar procesos y procedimientos con personal externo
y así pueden plantearse otras alternativas al proyecto citado.
Mediante el árbol de medios y fines se tiene identificado las siguientes partes del proyecto:
OBJETIVO GENERAL DEL PROYECTO
Mejorar el tratamiento de la información de los funcionarios de la institución.
OBJETIVOS ESPECÍFICOS DEL PROYECTO
§
Mejorar los equipos de computación
§
Poseer un mayor control del procesamiento de información.
PRODUCTOS DEL PROYECTO
Al ejecutarse el proyecto con el respaldo de la correspondiente inversión, entregará:
§
Computadoras adecuadas
§
Amplia cobertura de mantenimiento
§
Aplicación correcta de las normas
§
Mejor aplicación de los diferentes procesos y procedimientos
Unidad de Tecnologías de Información
110
Metodología MDS-α
ANEXO 2
PROCESOS Y PROCEDIMIENTOS
Proceso es un conjunto de pasos o actividades enlazadas entré sí que, partiendo de uno o más inputs
(entradas o insumos) los transforma, generando outputs (salidas, productos, resultados).
Normalmente un proceso puede estar conformado por dos o más operaciones. Sin embargo,
dependiendo de las funciones que cumplen las áreas o unidades organizacionales y de los objetivos o
resultados que persiguen, pueden existir procesos que se desagreguen directamente en
procedimientos.
Las operaciones son un conjunto de procedimientos interrelacionados, que transforman insumos en
bienes o servicios requeridos por los usuarios internos o externos.
Los procedimientos son un conjunto de tareas secuenciales o paralelas, que son realizadas para lograr
una operación, proceso o parte de ellos
MAPEO DE PROCESOS, OPERACIONES Y PROCEDIMIENTOS
MAPEO DE PROCESOS, OPERACIONES Y PROCEDIMIENTOS
CÓDIGO
PROCESO
PROCESOS
CÓDIGO
OPERACIÓN
OPERACIONES
CÓDIGO
PROCED.
PROCEDIMIENTOS
Form. 04: Formulario de mapeo de procesos, operaciones y procedimientos
Unidad de Tecnologías de Información
111
Metodología MDS-α
LLENADO DEL FORMULARIO N° 4
El Formulario N° 4 correspondiente al Mapeo de Procesos, Operaciones y Procedimientos, sirve para
definir de manera clara y concreta cuales serán los procesos, operaciones y procedimientos que
deberán llevarse adelante para la obtención de diferentes productos.
Código Proceso: Se debe asignar el código correspondiente al proceso, el cual consta de dos campos,
tal como se observa en la figura de Ej.:
Graf. A-2-1: Código de Proceso
Procesos: Colocar el nombre de cada uno de los procesos correspondientes. Para definir los procesos
se debe realizar unos análisis de las competencias, objetivos y productos que se pretenden lograr.
Código Operación: Se debe asignar el código correspondiente a cada operación, la cual consta de tres
campos, dos del código del proceso que debe ser encadenado y uno correspondiente a la numeración
de la operación, tal como se observa en la figura de Ej.:
Graf. A-2-2: Código de Operación
Operaciones: Colocar el nombre de cada uno de las operaciones (subprocesos) necesarias para lograr
el proceso correspondiente.
Código Procedimiento: Se debe asignar el código correspondiente a cada procedimiento, el cual
consta de cuatro campos, tres del código de la operación que debe ser encadenado y uno
correspondiente a la numeración del procedimiento, tal como se observa en la figura de Ej.:
Unidad de Tecnologías de Información
112
Metodología MDS-α
Graf. A-2-3: Código de Procedimiento
Procedimientos: Colocar el nombre de cada uno de los procedimientos correspondientes a las
operaciones o procesos.
INTEGRACIÓN DE PROCESOS Y OPERACIONES
INTEGRACIÓN DE PROCESOS Y OPERACIONES
NOMBRE DEL PROCESO:
OBJETIVO:
UNIDAD RESPONSABLE DEL PROCESO:
PRODUCTOS DEL PROCESO:
OPERACIONES COMPONENTES DEL PROCESO
CÓDIGO
OPERACIÓN
RESPONSABLES
PRODUCTO
CÓDIGO:
TIEMPO DÍAS
TOTAL TIEMPO DE EJECUCIÓN DEL PROCESO
Form. 05: Formulario de integración de procesos y operaciones
LLENADO DEL FORMULARIO N° 5
El Formulario N° 5 correspondiente a la integración de procesos y operaciones, debe ser llenado una
vez que se cuente con el Mapeo de Procesos.
Nombre del Proceso: En este apartado se registrará el nombre del Proceso, de acuerdo con el Mapeo
de Procesos previamente realizado. Se define mediante un verbo de acción en infinitivo que denota la
cualidad de imperativo (terminaciones ar, er, ir). Por ejemplo:
Nómina no es un proceso
Elaborar la nómina sí es un proceso
Código del Proceso: Colocar el código asignado al proceso en el Mapeo de Procesos.
Unidad de Tecnologías de Información
113
Metodología MDS-α
Objetivo del Proceso: Se debe indicar que se persigue con el proceso a fin de que el personal de la
entidad sepa para que se desarrolla y pueda involucrase y contribuir a la mejora continua del mismo.
El objetivo definido debe ser alcanzable, es decir realista, redactarse en forma breve y concisa e
iniciar con un verbo en infinitivo (terminaciones ar, er, ir) y en lo posible, evitar utilizar gerundios,
adjetivos calificativos.
Unidad Responsable del Proceso: Se debe mencionar el área o unidad organizacional responsable de
la ejecución, control, evaluación y mejoramiento del proceso.
Productos que genera el Proceso: Se debe incluir todos los bienes o servicios que genera el proceso
como consecuencia del valor agregado a los insumos.
Código y Nombre de las operaciones que componen el proceso: Se deben registrar los códigos y
nombres de todas las operaciones que componen el proceso, de acuerdo al mapeo realizado.
Unidades Responsables de las operaciones: Se debe mencionar el área o unidad organizacional
responsable de la ejecución de las operaciones.
Productos que genera la Operación: Se debe incluir todos los bienes o servicios intermedios que
genera la Operación.
Tiempo: Mencionar el tiempo aproximado requerido para cumplir las operaciones en días, cuya
sumatoria brindará el tiempo total del proceso.
PROCEDIMIENTOS
PROCEDIMIENTOS
NOMBRE DEL PROCEDIMIENTO:
OPERACIÓN A LA QUE CORRESPONDE EL PROCEDIMIENTO:
OBJETIVO DEL PROCEDIMIENTO:
INSUMOS REQUERIDOS PARA EL PROCEDIMIENTO:
PRODUCTOS OBTENIDOS DEL PROCEDIMIENTO:
TIEMPO DE EJECUCIÓN DEL PROCEDIMIENTO:
N°
DESCRIPCIÓN DE TAREAS
CÓDIGO:
PUESTO
RESPONSABLE
FORMAS
FORMULARIOS
Form. 06: Formulario de procedimientos
Unidad de Tecnologías de Información
114
Metodología MDS-α
LLENADO DEL FORMULARIO N° 6
Nombre del Procedimiento: En este apartado se registrará el nombre del Procedimiento, de acuerdo
con el Mapeo de Procesos previamente realizado.
Código: En este punto, debe colocarse el código correspondiente al procedimiento que se describe,
de acuerdo a lo establecido en el mapeo de procesos.
Operación a la que corresponde el procedimiento: Se debe incluir el nombre de la operación a la que
pertenece o contribuye de manera directa el procedimiento respectivo.
Objetivo del Procedimiento: Se debe indicar que se persigue con el procedimiento a fin de que el
personal involucrado sepa para que se desarrolla y pueda involucrarse y contribuir a la mejora
continua del mismo, considerando las características señaladas en el instructivo del formulario N° 5.
Insumos requeridos para el Procedimiento: Se deben señalar cuáles son los productos intermedios o
finales, requeridos para realizar el procedimiento. (Ej. Normas, POA ejecutado, etc. No se refiere a
materiales de escritorio o similares).
Productos obtenidos por el procedimiento: Se deben detallar cuáles son los productos (bienes o
servicios) que se pretender lograr con el procedimiento.
Tiempo de ejecución del Procedimiento: Se debe establecer el tiempo total de ejecución aproximado
del procedimiento en horas o días.
Descripción de las tareas que componen el Procedimiento: Es la narración objetiva de cada una de la
tareas que integran el procedimiento, en secuencia cronológica y organizada expresada de manera
clara, que permite al personal comprenderlas, seguirlas y aplicarlas.
Para la redacción de las actividades considere los siguientes lineamientos:
§
Utilizar verbos conjugados en el tiempo presente de tercera persona en singular, por ejemplo,
prepara, envía, analiza, desarrolla, por citar algunos.
§
Redactar cada oración o frase en orden lógico, esto es, primero el verbo y luego el
complemento.
Unidad de Tecnologías de Información
115
Metodología MDS-α
§
De preferencia utilizar oraciones o frases cortas, usando palabras sencillas y evitando
tecnicismos.
§
Evitar en lo posible incluir actividades que no agregan valor como recibir, enviar, registrar, por
citar algunas.
§
En la medida de lo posible no utilizar abreviaturas.
§
Una buena descripción de actividades responderá las siguientes preguntas: ¿Quién?, ¿Cómo?,
¿Cuándo?, ¿Con qué?, ¿Dónde?
Puestos responsables de las tareas: Se debe mencionar los puestos responsables de la ejecución de
cada una de las tareas que componen el Procedimiento.
Registros, formularios u otros impresos a utilizarse: Se deben mencionar todos los formularios o
formas impresas que se utilizarán en las tareas que se describen.
DIAGRAMA DE FLUJOS
El diagrama se elabora en base a la secuencia de las actividades; la toma de decisiones deberá ser
acorde con la descripción de tareas. En la primera columna de la izquierda se da inició al
procedimiento. El trazo inicia de arriba hacia abajo y de izquierda hacia la derecha; posteriormente el
flujo puede retroceder dependiendo del procedimiento.
Para la elaboración de los diagramas de flujo se deben seguir los siguientes lineamientos:
§
En un inicio comenzar con el trazo de columnas con líneas delgadas, en los encabezados de
éstas anote las unidades o puestos en orden de participación de izquierda a derecha, donde
el primer participante inicia la acción.
§
Estandarice las dimensiones de sus hojas dejando espacio suficiente en cada columna,
dependiendo del número de unidades o puestos que intervienen.
§
Trace las líneas del flujo del procedimiento, utilizando las puntas de las flechas para indicar la
dirección del flujo en cada sección del rayado.
§
Si el flujo retrocede muestre como lo hace, utilizando las flechas o conectores de actividad, no
repita el nombre del puesto o unidad participante en otra columna.
§
Dibuje los símbolos de un mismo tamaño.
§
Numere cada actividad del flujo, utilice números grandes y claros.
Unidad de Tecnologías de Información
116
Metodología MDS-α
§
Describa en lenguaje telegráfico cada tarea (el detalle de la actividad quedará establecida en
la descripción de tareas del procedimiento, por lo que no debe hacer una transcripción en los
símbolos del diagrama).
§
Incluya gráficamente en cada actividad los formatos que elabora, recibe y/o proporciona a
otras unidades o puestos, o los que archiva, señalando el número de tantos y cuál es su
distribución.
§
No mezcle al mismo lado del símbolo varias líneas de entrada y salida, emplee solo una línea
de unión entre dos símbolos. Solo el símbolo de decisión puede tener hasta tres líneas de
salida.
Simbología para elaborar un diagrama de flujo:
Símbolo
Descripción
Dentro del símbolo se deberá anotar “INICIO” o “FIN”, de acuerdo al principio o
conclusión del procedimiento, según corresponda.
Describe de manera telegráfica, las tareas que desempeña el personal involucradas en
el procedimiento, en flujos de procesos representa la ejecución de operaciones.
Representa cualquier documento que entre, se genere o utilice en el proceso o
procedimiento.
Representa una tarea que genera un documento.
Indica un punto dentro del flujo en donde se debe tomar una decisión entre dos
opciones o alternativas.
Preferentemente se indicará la procedencia (SI) hacia la parte de abajo del símbolo y la
procedencia (NO) hacia un lado. No contarán con número consecutivo de las etapas.
Representa el archivo de algún tipo de documentación en un punto del flujo.
1
Va a página ó
Viene de
página
Representa la conexión o enlace de una parte del diagrama de flujo con otro parte del
mismo, en la misma hoja. Se utiliza para unir actividades cuando el espacio en el
diagrama es limitado y sirve para evitar cruzar las líneas de dirección de flujo.
Representa la conexión o enlace de una parte del diagrama de flujo con otro parte del
mismo, en otra hoja.
Indican la dirección del flujo de tareas y sirven para unir los símbolos de descripción,
decisión, documentos, etcétera., Se utilizarán sólo líneas horizontales y verticales. En
los casos que no sea posible conectar con líneas rectas, se utilizarán ángulos rectos. Las
líneas no deberán cruzarse, si esto no es posible, se debe utilizar un pequeño “puente”:
Tabla A-2-1: Tabla de símbolos de diagramas de flujo de procedimientos
Unidad de Tecnologías de Información
117
Metodología MDS-α
Ejemplo de diagrama de flujo – Procedimiento
Graf. A-2-4: Simbología de diagramas de flujo
Unidad de Tecnologías de Información
118
Metodología MDS-α
ANEXO 3
BENEFICIOS Y COSTOS
En proyectos de informática se puede estimar los costos de sin muchas dificultades, pero no así los
beneficios. Generalmente en estos proyectos tanto los costos como los beneficios son de tipo
intangibles; y por consiguiente su descripción es de forma cualitativa.
BENEFICIOS
Tomar en cuenta que un beneficio cualesquiera debe ser contabilizado una sola vez dependiendo su
tipología. Y según el proyecto, pueden identificarse algunos de los beneficios siguientes:
Ahorro de Horas Hombre
En una situación en que no se ejecute el proyecto, se puede pensar en la contratación de personal
adicional que posibilite alcanzar los mismos objetivos que la alternativa del proyecto informático, a
esto se le conoce como situación base optimizada. En consecuencia el beneficio citado se tiene por no
tener que contratar personal adicional con respecto a la situación optimizada.
Por ejemplo, si la institución debiera contratar en una situación optimizada dos personas más durante
el lapso de una gestión versus ejecución del proyecto durante 8 meses, se tendría aproximadamente
un ahorro en costos de horas hombre de 4 meses por cada persona.
Este beneficio se da bajo el supuesto de que las horas hombre liberadas tengan un uso alternativo
productivo.
Aumento de productividad
El aumento de la productividad puede provenir de tres tipos:
Ahorro del tiempo de desplazamiento: Con la aplicación del nuevo sistema, se pretende disminuir o
eliminar el tiempo que las personas consumen en desplazarse para intercambiar información o para
ejecutar alguna acción, mismos que pueden ser operados desde su escritorio. Por ejemplo:
Unidad de Tecnologías de Información
119
Metodología MDS-α
§
Entregar información en algún medio magnético
§
Compartir información digital por red
§
Información procesada según formatos predefinidos
Mejora del actual sistema: Mejoramiento de las características básicas del sistema actual. Por
ejemplo:
§
Extender la robustez del sistema
§
Procesar más rápidamente la información, así también su acceso
§
Disminución de tiempos de espera en la impresión de los reportes
Automatización: La implementación e implantación de un sistema informático pretende automatizar
aquellos procesos manuales relevantes para una determinada unidad organizacional. Algunos
procesos típicos pueden ser:
§ Accesibilidad y ordenamiento de archivos
§
Generación automática de boletas de pago
§
Procesamiento de penalizaciones en el control de personal
§
Búsqueda e identificación de información
Ahorro en alquileres de oficinas
Suponiendo el caso de que la institución posea oficinas en alquiler y este ya no sea necesario tras la
ejecución del proyecto, se tendría un ahorro por el pago del mencionado alquiler. Esto puede ocurrir
por ejemplo cuando se digitaliza información a medios magnéticos que antes estaban contenidos en
gabinetes, archivos y carpetas físicas.
Para el caso en que la oficina sea de propiedad de la institución, el ahorro proviene del uso
alternativo que se le puede dar a dicha oficina.
Ahorro en costos de operación
Respecto a una situación base, pueden mencionarse por ejemplo: una disminución o eliminación de
los costos de mantención; ahorro de pagos por servicios a empresas externas, pues con la realización
del proyecto estos servicios podrán desarrollarse internamente, etc. Se debe mencionar el detalle de
Unidad de Tecnologías de Información
120
Metodología MDS-α
cada uno de los costos de operación describiendo el ahorro respectivo en cada circunstancia o
situación.
Mejoras en la gestión y en la toma de decisiones
Señalar los diferentes beneficios que están inmersos en la gestión y en la toma de decisiones como
ser: la versatilidad, fiabilidad y productividad de los operarios del sistema, información clara,
detallada y oportuna, reducción de tareas administrativas, planificación y facilitación en la toma de
decisiones, u otros. Generalmente estos beneficios son difíciles cuantificar, por lo que en ocasiones
son considerados como intangibles.
COSTOS
En general pueden presentarse los siguientes puntos:
§
Compra de hardware
§
Compra de software
§
Adaptación del software existente
§
Desarrollo de software
§
Capacitación
§
Instalación e implantación del servicio
§
Salarios ( si se requiera personal adicional)
§
Servicios externos
§
Comunicaciones (alquiler de líneas de comunicación)
§
Materiales de uso y consumo corriente (diskettes, hojas de impresión, tonners de impresoras,
scanner, CD’s, etc.)
§
Mantenimiento y reparaciones
§
Consumo de energía
§
u otros.
Unidad de Tecnologías de Información
121
Metodología MDS-α
ANEXO 4
MATRIZ DE MARCO LOGICO
La matriz de marco lógico es una herramienta analítica para la planificación y gestión de proyectos
orientada por objetivos. Permite estructurar los principales elementos de un proyecto, relacionando
los recursos disponibles, las actividades planeadas y los resultados esperados.
La matriz lógica refleja el ciclo de vida de un proyecto, es el sistema más utilizado para la
conceptualización, diseño, ejecución, seguimiento, evaluación y comunicación de la información más
relevante del proyecto en forma resumida. Ver el siguiente gráfico.
FORMULACION
Problema
Desarrollo de
Alternativas
Identificación
Evaluación
Alternativa
Seleccionada
EJECUCION
OPERACION
FIN
PROPOSITO
El Proyecto
COMPONENTES
S
ACTIVIDADES
Graf. A-4-1: Ciclo de vida del proyecto
Unidad de Tecnologías de Información
122
Metodología MDS-α
La estructura del marco lógico está definida como sigue:
OBJETIVOS
INDICADORES
FORMULA DE
ENUNCIADO - META
CALCULO
MEDIOS
VERIFICABLES
SUPUESTOS
FIN
PROPOSITO
COMPONENTES
ACTIVIDADES
Form. A-4-1: Formulario matriz de marco lógico
FIN
El fin es el impacto al cual contribuirá el proyecto una vez haya finalizado la fase de operación. Por
convención, el objetivo expresado en el Fin, debe redactarse como resultado logrado o producido;
debe reflejar logros, éxitos y metas cumplidas. Por ejemplo:
Fin correcto: Información del Recurso Humano de la institución, administrada
eficientemente
Fin incorrecto: Administrar eficientemente la información del Recurso Humano de
la institución.
Si el proyecto forma parte de un programa, en general la descripción del fin de los proyectos
comienza con ‘’Contribuir a…….’’
PROPOSITO
El propósito es el punto principal de referencia que debe definirse con precisión, de manera clara y
realista. Asegura el resultado de la solución del problema, es por tanto, el objetivo central del
proyecto. El propósito es una hipótesis sobre el beneficio que se desea lograr.
Todo proyecto debe tener un solo propósito, y el mismo debe expresarse como un resultado logrado.
Generalmente el propósito da el nombre al proyecto
COMPONENTES
Son los resultados específicos que se producen durante la ejecución del proyecto, sean estos
tangibles o intangibles. Son necesarios para alcanzar el propósito y son los productos que financia el
Unidad de Tecnologías de Información
123
Metodología MDS-α
proyecto. Por lo tanto, es razonable plantear que si todos los componentes son producidos de la
manera planeada, entonces se logrará el propósito buscado. Análogamente al fin y al propósito,
deben redactarse de forma clara y como resultados o productos finales (objetivo logrado).
Algunos ejemplos de componentes pueden ser: servicios, capacitación, obras, estudios,
equipamiento, sistemas informáticos instalados, etc.
ACTIVIDADES
Las actividades son las principales tareas que deben cumplirse para el logro de cada uno de los
componentes del proyecto. Corresponde a un listado de actividades en orden cronológico para cada
componente.
No es necesario que las actividades se detallen o desagreguen demasiado. Es suficiente que sean
identificados en el nivel de “macro actividades”, indicando a qué componente pertenecen.
INDICADORES
Dato o información que sirve para conocer, valorar e intensificar las características de un hecho o
para determinar su evolución futura. Los indicadores son una herramienta que entrega información
cuantitativa o cualitativa respecto del nivel de logro alcanzado por un programa o un proyecto. Es una
expresión que establece una relación entre dos o más variables, la que comparada con períodos
permite evaluar el desempeño.
Las dimensiones que son factibles y relevantes de medir a través de un indicador son su eficacia,
eficiencia, calidad y economía.
Enunciado - Meta: Es la expresión conceptual (escrita) de lo que se desea medir a través de un
indicador.
Fórmula de Cálculo: Es la expresión matemática que permite cuantificar el nivel o magnitud que
alcanza el indicador en un cierto período de tiempo, considerando variables que se relacionan
adecuadamente para este efecto.
Siguiendo con el ejemplo de la presente metodología se señala el indicador para el PROPOSITO, que
señala la oportunidad de la información en el tiempo:
Unidad de Tecnologías de Información
124
Metodología MDS-α
Indicador: Porcentaje de Información actualizada
Enunciado – Meta: El Porcentaje de Información actualizada supera el 90% en el tiempo
Fórmula de Cálculo: ia =
A 1
* *100
B D
donde:
A = Cantidad de funcionarios con información completa al día.
B = Total de funcionarios de la institución.
D = Cantidad de días de demora.
PRESUPUESTO
A nivel de las actividades y en la sección que corresponde a los indicadores se plantea el presupuesto
global del proyecto por actividades que se desarrollen en el mismo.
MEDIOS DE VERIFICACIÓN
Son la base para el seguimiento y la evaluación del proyecto e indican las fuentes de información y su
frecuencia para la actualización de los indicadores para de esa forma confrontarlos respecto de su
línea base. Incluyen material publicado, inspección visual, encuestas, registros de información,
reportes estadísticos, informes, etc.
SUPUESTOS
Son los factores externos cuya ocurrencia es necesaria para asegurar el cumplimiento de objetivos del
proyecto. Esos supuestos pueden ser de tipo financiero, social, político, ambiental, institucional,
climatológico, etc.
LOGICA DE LA MATRIZ DE MARCO LOGICO
Lógica Vertical: Muestra las relaciones causa efecto entre los distintos niveles de los objetivos.
Unidad de Tecnologías de Información
125
Metodología MDS-α
Para cumplir el Fin, es necesario que se cumpla el Propósito; para cumplir el Propósito, es necesario
que se produzcan los Componentes (resultados o productos). Para cumplir con los Componentes, es
necesario realizar las Actividades (para realizar las Actividades es necesario contar con los Insumos).
FIN
PROPOSITO
COMPONENTES
ACTIVIDADES
Graf. A-4-2: Lógica Vertical
Lógica Horizontal: Es condición necesaria y suficiente contar con las actividades más los supuestos de
ese nivel para obtener los componentes, similarmente los componentes más los supuestos de su nivel
es necesario y suficiente para obtener el propósito y por último, el propósito más los supuestos de su
correspondiente nivel son necesarios y suficientes para obtener el fin.
FIN
SUPUESTOS
entonces
si
más
PROPOSITO
SUPUESTOS
entonces
si
COMPONENTES
más
SUPUESTOS
entonces
si
ACTIVIDADES
más
SUPUESTOS
Graf. A-4-3: Lógica Horizontal
DETERMINACION DE LOS OBJETIVOS DE LA MATRIZ DE MARCO LOGICO
Partiendo del árbol de objetivos (Anexo 1), el fin o fines terminales debe corresponder con su similar
en la matriz de marco lógico. El objetivo central corresponde con el propósito del proyecto. Los
medios de primer orden son los componentes y los medios de segundo orden son las actividades que
Unidad de Tecnologías de Información
126
Metodología MDS-α
se llevarán adelante. Cada uno de los enunciados que representan a los objetivos, deben adecuarse
según lo manifestado en los correspondientes acápites de las secciones de la Matriz de Marco Lógico.
Fin
Propósito
Objetivo Central
Componentes
Actividades
Graf. A-4-4: Relación entre el árbol de objetivos y la matriz de marco lógico
Siguiendo con el ejemplo del Anexo 1, se tiene la siguiente matriz:
Proyecto: Mejoramiento al tratamiento de información de los funcionarios en el Ministerio Hacienda
OBJETIVOS
FIN
Información del Recurso
Humano de la
institución, administrada
eficientemente
INDICADORES
FORMULA DE
ENUNCIADO - META
CALCULO
El porcentaje de registro
de información es mayor
al 95%
ri =
A
*100
B
A = Cantidad de
funcionarios registrados
MEDIOS
VERIFICABLES
Registros actualizados en
el área de Escalafón.
La unidad de RRHH crea
una cultura
administrativa positiva a
cerca del procesamiento
de información personal
de la institución.
Informes de control de
personal.
Los funcionarios de la
institución dotan
oportunamente los
correspondientes datos
de su persona.
B = Total de funcionarios
de la institución
PROPOSITO
Tratamiento mejorado
de la información de los
funcionarios de la
institución
El porcentaje de
Información actualizada
supera el 90% en el
tiempo
ia =
A
*
1
*100
B D
A = Cantidad de
funcionarios con
información completa al
día
B = Total de funcionarios
de la institución
SUPUESTOS
Registros de
memorándums.
Dotación de credenciales
Generación de planillas
presupuestarias
D = Cantidad de días de
demora
Unidad de Tecnologías de Información
127
Metodología MDS-α
COMPONENTES
1: Equipos de
computación mejorados
El número de equipos
adquiridos superan el
50% en la Unidad de
RR.HH.
ea =
A
*100
B
A = Cantidad de equipos
nuevos
Facturas de compra.
Reporte de asignación
de activos
Personal con
conocimientos en
computación y
capacitado en la Norma
SAP
B = Total de equipos en
RR.HH.
2: Control del
procesamiento de
información
perfeccionado
El porcentaje de
aplicación de la norma
SAP es superior al 80%
an =
A
*100
B
A = Cantidad de
Procesos ejecutados
Manual de procesos y
procedimientos.
Base de Datos
consolidada para RR.HH.
B = Cantidad total de
procesos definidos en la
Norma SAP
ACTIVIDADES
1: Adquisición de
Computadoras
PRESUPUESTO
Bs. 160.000
ejecucion =
A
2: Cobertura de
Mantenimiento
Bs. 35.000
*100
B
A = Costo ejecutado en
un determinado tiempo
3: Estandarización de las
actividades según norma
Bs. 75.000
B = Costo Total del
proyecto
4: Automatización de
procesos y
procedimientos
Bs. 260.000
Informe financiero.
Informes mensuales de
capacitación,
mantenimiento, etc.
Documentación de
desarrollo de sistemas.
Equipamiento
computacional
disponible en el
mercado.
Norma SAP actualizado.
Disposición de tiempo
según cronograma de
personal en la Unidad de
Tecnologías de
Información
Costo Total Bs. 530.000
Matriz A-4-1: Matriz de Marco Lógico
Unidad de Tecnologías de Información
128
Metodología MDS-α
ANEXO 5
HERRAMIENTAS DE LA INGENIERÍA DE REQUERIMIENTOS
El analista de requerimientos puede utilizar una variedad de herramientas. Algunas de esas
herramientas y las más utilizadas se citan en el cuadro siguiente:
Herramientas
Extracción
Actividades
Análisis
Documentación
Entrevistas y Cuestionario
X
Sistemas existentes
X
X
Grabaciones de Video y Audio
X
X
Brainstorming (tormenta de ideas)
X
X
Arqueología de Documentos
X
X
Aprendiz
X
Observación
X
Run Use Case WorkShop
X
Prototipo Bosquejado
X
Prototipo Tangible/Usable
X
X
Validación
X
X
FODA
X
Modelo Conceptual
X
X
X
Diagrama de Pescado
X
X
X
Glosario
X
X
X
X
Lista de Requerimientos
X
X
X
X
Checklist
X
Tabla A-5-1: Herramientas de la Ingeniería de Requerimientos
X
Entrevistas y Cuestionarios
En las entrevistas se debe previamente coordinar tanto la fecha y hora, y debe realizarse una
planificación acorde y colocarla en agenda; para ello debe confeccionarse un punteo del objetivo de
la entrevista. Por ejemplo, en la primera entrevista debe establecerse un plan de comunicación, en el
cual se pueden intercambiar datos tales como teléfonos, direcciones de correo electrónico, horas de
contacto, etc.
Para las entrevistas posteriores conviene llevar un cuestionario ya preparado. En términos generales,
un cuestionario consiste en un conjunto de preguntas pre-diseñadas y presentadas a una persona
Unidad de Tecnologías de Información
129
Metodología MDS-α
para su respuesta. La forma de las preguntas puede influir en las respuestas recibidas, por lo que se
sugiere preparar las mismas con anticipación y con el debido cuidado.
Las preguntas suelen distinguirse en dos categorías: abiertas y cerradas.
Las preguntas abiertas permiten a los encuestados responder en su propia terminología.
Generalmente estas son más reveladoras, ya que los interrogados no están limitados en sus
respuestas. Son especialmente útiles en la etapa exploratoria de la investigación del proyecto, cuando
el analista busca penetrar en el pensamiento del encuestado.
Algunas preguntas abiertas pueden ser:
§
¿Por qué razón se quiere resolver este problema?
§
¿Cómo es la resolución del problema actualmente?
§
¿Cuál es el valor de una solución exitosa?
§
¿Quién utilizará el sistema que se va a desarrollar?
§
¿Cómo debería llevarse adelante el desarrollo del sistema?
Por su parte, las preguntas cerradas predeterminan las posibles respuestas y la persona interrogada
elige entre las opciones dispuestas.
Luego, estas preguntas pueden utilizarse por ejemplo para establecer criterios de priorización de los
casos de uso con el usuario, también se la puede utilizar cuando tenemos que negociar algún
requerimiento.
Sistemas Existentes
Esta técnica consiste en analizar distintos sistemas ya existentes que estén relacionados con el
sistema a desarrollar. Tal análisis se puede efectuar de las interfaces de usuario, observando el tipo
de información que se introduce y cómo la misma es tratada. Esto es útil para descubrir información
importante a tener en cuenta, información que tal vez el usuario no haya tomado en cuenta. Por su
parte es útil analizar las salidas que dichos sistemas producen (listados, consultas, etc.), porque
pueden surgir nuevas ideas sobre la base de estas. Luego de este análisis se puede realizar una
tormenta de ideas y así obtener requerimientos sumamente interesantes.
Unidad de Tecnologías de Información
130
Metodología MDS-α
Es recomendable realizar a priori y sin necesidad de que intervenga el usuario analizar o investigar
por ejemplo en Internet algunos productos similares, este mecanismo puede ocasionar que se
establezcan contactos con profesionales que desarrollan sistemas de características comparables.
Otra ventaja que presenta esta técnica es que cuenta con la experiencia de los sistemas que ya están
en producción, y que pasaron por una curva de aprendizaje del dominio del problema. Es así que
cuando se analizan estos sistemas, debe tomarse en cuenta por ejemplo, el por qué manejan cierta
información y para qué sirve, lo que resultará de suma utilidad para el usuario final. También es
recomendable que luego de haber analizado el sistema, se lo muestre al usuario, ya que por su
experiencia pueden surgir importantes ideas nuevas.
Grabaciones de Video y Audio
Las grabaciones sirven básicamente como registro y apoyo de las entrevistas, y para analizar algún
proceso en particular.
Esta actividad permite centrar la atención en la entrevista en sí en vez de distraerse tomando notas
de todo lo que se dice. Cuando se está grabando la conversación, basta con puntear en una libreta los
temas tratados para después tener una guía básica de los mismos y luego saber en qué lugar de la
grabación se deben realizar ciertas búsquedas. Además, posibilita analizar los temas con más
detenimiento y con una visión más global, pues ya se ha conversado sobre todos los puntos
necesarios y se han visto los procesos específicos/ad hoc.
Una gran ventaja de esta técnica es que permite ver y analizar el proceso la cantidad de veces que sea
necesario.
Es conveniente comenzar las grabaciones con preguntas poco importantes que sirvan para prepara al
usuario y a la vez relajar el ambiente.
Brainstorming (tormenta de ideas)
Este modelo se usa para generar ideas. Su intensión es la producción de la máxima cantidad de
requerimientos para el sistema.
Se sugiere no detenerse en pensar si la idea es o no del todo utilizable. La intención de este ejercicio
consiste en generar en una primera instancia muchas ideas. Luego, se eliminarán tales ideas en base a
Unidad de Tecnologías de Información
131
Metodología MDS-α
distintos criterios, por ejemplo: caro, impracticable, imposible, no confiable, fuera de las expectativas,
etc.
Las reglas básicas a seguir son:
§
Los participantes deben pertenecer a diferentes disciplinas y, preferentemente, deben poseer
mucha experiencia. Esto trae aparejado la obtención de una cantidad mayor de ideas
creativas.
§
Conviene suspender el juicio crítico y se debe permitir la evolución de cada uno de los
aportes, porque si no puede crearse un ambiente hostil que no alienta a la generación de
ideas.
§
Por más ilógicas que parezcan algunas ideas, no se las debe descartar, porque luego de
maduradas probablemente se tornen en un requerimiento sumamente útil.
§
A veces ocurre que una idea resulta en otra idea, y otras veces podemos relacionar varias
ideas para generar una nueva.
§
No debe existir censura al escribir las ideas.
Arqueología de Documentos
Esta herramienta posibilita determinar requerimientos sobre la base de la inspección de
documentación utilizada en la institución; por ejemplo: boletas, facturas, recibos, formularios,
reportes, etc. En el caso de las facturas podemos encontrar información que no se pensaba manejar y
que en definitiva resulta de suma utilidad, como un número propio de la institución que se usa para
saber el orden que tiene la factura en una determinada carpeta y que permite encontrar las copias
del documento con mayor rapidez.
En definitiva, se debe recolectar cualquier documento que sea utilizado para registrar o enviar
información. Y, en el análisis de cada documento, se puede realizar algunas preguntas, como:
§
¿Cuál es el propósito del documento?
§
¿Quién lo usa? ¿Por qué? ¿Para qué?
§
¿Qué tareas que realizan con este documento?
§
¿Qué relaciones existentes entre los distintos documentos?
§
¿Cuál es el proceso que realiza la conexión con estos documentos?
§
¿Cuál es el documento que genera más problemas a los usuarios?
Unidad de Tecnologías de Información
132
Metodología MDS-α
Aprendiz
Esta herramienta se basa en la idea del maestro y el aprendiz, y es una buena forma de observar el
trabajo real. El aprendiz es representado por el analista y el usuario cumple el rol de maestro.
El aprendiz se sienta con el maestro a aprender por medio de la observación, realizando
intervenciones interrogativas como ¿por qué hizo eso? y ¿qué significa eso?, y también realizando
algún trabajo bajo la supervisión del maestro.
Esta técnica puede ser combinada para confeccionar el modelo conceptual. A medida que el trabajo
es observado y explicado, el analista puede realizar bosquejos para cada una de las tareas realizadas
en distintos flujos de datos.
La aplicación de esta herramienta libera muchas veces al usuario el explicar cómo realiza su trabajo.
Una de las posibles objeciones que se le pueden hacer a esta herramienta es que su implementación
requiere de mucho tiempo.
Observación
Observar el cómo se hacen las cosas es una buena manera de entender lo que estas requieren. Esto
significa que de alguna manera debe conectarse íntimamente con la cultura organizacional de la
institución, palpar y vivir su realidad. El análisis permitirá buscar estructuras y patrones a los distintos
procesos y de la problemática en general, para luego posibilitar las diferentes abstracciones de la
realidad.
Run Use Case WorkShop
Son Talleres de Trabajo basados en los Casos de Uso. En esta actividad participan los usuarios y el
equipo de requerimientos. La primer parte del WorkShop consiste en generar los escenarios
correspondientes con información proporcionada por los diferentes usuarios del sistema.
Por medio de los casos de uso y de las cosas esenciales extraídos de los usuarios se debe resolver
conjuntamente los diferentes sucesos que se van presentando; así por ejemplo se pueden identificar
los distintos tipos de usuarios, e identificar los diferentes pasos que se realizan en un caso de uso
particular. Luego se dilucida con la contraparte si los pasos registrados son o no los correctos, si están
Unidad de Tecnologías de Información
133
Metodología MDS-α
bien o si deben ser ajustados (cambiar, mejorar, adecuar). Como resultado de este proceso
obtenemos un excelente bosquejo del caso de uso.
Una vez finalizada la etapa anterior, el equipo de requerimientos retorna a la oficina a especificar y
deducir los requerimientos, a partir del conocimiento previamente adquirido.
Prototipos
Durante la actividad de extracción, puede ocurrir que algunos requerimientos no estén claros o que
no se esté seguro de haber entendido correctamente los diferentes requerimientos obtenidos hasta
el momento, lo cual puede conducir a un desarrollo ineficiente del sistema final. Entonces, para
validar los requerimientos hallados, se construyen prototipos.
Los prototipos son simulaciones del posible producto, que luego son utilizados por el usuario final,
permitiéndonos conseguir una importante retroalimentación en cuanto a si el sistema diseñado en
base a los requerimientos recolectados le permite al usuario realizar su trabajo de manera eficiente y
efectiva.
Los prototipos se pueden clasificar en:
§
Prototipo Evolutivo: Cuando un usuario no puede articular sus requerimientos, entonces los
mismos se pueden determinar mediante un proceso de ensayo y error. De esta manera se
van realizando evoluciones sobre la base de un prototipo hasta determinar claramente los
requerimientos.
§
Prototipo Bosquejado: Para este prototipo nos apoyamos, por un lado, en el rol del analista
de requerimientos, simulando las respuestas del sistema y realizando bosquejos de las
interfaces de usuario; y, por otro, el usuario, que es quien realiza las entradas (utilizando el
prototipo) y mediante el diálogo, manejamos la interactividad entre el usuario y el sistema.
Una de las ventajas más importantes es el poco esfuerzo que realizamos para aplicar los
cambios.
§
Prototipo Tangible/Usable: Los términos tangible y usable se refieren a desarrollar una
aplicación (software) que el usuario pueda utilizar, es decir, con la cual pueda interactuar
como si fuera la aplicación final.
Unidad de Tecnologías de Información
134
Metodología MDS-α
Cualquiera sea la herramienta de software, que elijamos utilizar para desarrollar el prototipo,
debemos recordar los siguientes puntos:
§
Debe demandar poco esfuerzo para realizar los cambios.
§
Debe ser flexible en el manejo de interfaces de usuario.
§
Debe consumir poco tiempo para generar un nuevo prototipo.
Cabe remarcar y dejar muy en claro al usuario que se trata de un prototipo y que no es el producto
final; para explicar esta diferencia se pude recurrir a la analogía con las maquetas de los arquitectos.
Las desventajas más importantes de los prototipos pueden ser:
§
Costo de entrenamiento y capacitación en la herramienta
§
Costo de confeccionar el prototipo.
§
Problemas de calendario.
§
Incompletitud (puede confundir a los usuarios, haciéndolos pensar que el producto final
quedará como el prototipo, es decir incompleto).
Análisis FODA
Con este análisis se intentan identificar las principales fortalezas, oportunidades, debilidades y
amenazas con las que se enfrenta una institución.
Fortalezas
Debilidades
Oportunidades
Amenazas
Negativo
Positivo
Interno
Externo
Diag. A-5-1: Diagrama FODA
Por un lado, las oportunidades y las amenazas, se refieren a los factores externos que pueden afectar
el futuro del negocio. Y por otro lado, se encuentran las fortalezas y debilidades que son factores
Unidad de Tecnologías de Información
135
Metodología MDS-α
internos. Las fortalezas señalan ciertas estrategias cuya aplicación podría conducir al éxito del
negocio, mientras que las debilidades señalan aquello que la institución debe corregir.
Esta herramienta se usa para analizar la situación de una entidad e identificar la forma en que se
puede ayudar a disminuir las debilidades y amenazas; y a la vez cómo se pueden crear y aprovechar
las oportunidades y, cómo hacer aún más fuertes las fortalezas. También es útil para analizar el
impacto de la solución planteada.
Modelado Conceptual
Un modelo conceptual es una representación de conceptos del dominio del problema. Permite
mostrar conceptos, atributos y asociaciones entre conceptos. La creación del modelo posibilita
comprender la terminología del dominio y comunica cuáles son los términos importantes y las
relaciones existentes entre ellos.
Para representar un concepto podemos basarnos en el Modelo Entidad Relación, o si hablamos del
entorno orientado a objetos en el Diagrama de Clases, utilizando las entidades y las clases como
forma de representar el concepto respectivamente.
Esta herramienta es utilizada para capturar el vocabulario del sistema que se está desarrollando.
Mediante ella podemos incluir abstracciones que forman parte del dominio.
El modelo conceptual muestra los conceptos que se manejan en el negocio y como se relacionan
entre sí. Es una buena forma de obtener la idea general de cómo funciona el negocio (relaciones
entre los diferentes elementos), y a la vez capturar su vocabulario y conceptos.
Si se utiliza el modelamiento conceptual en las el proceso de ingeniería de requerimientos, debe
entenderse que este representa todavía una visión parcial hasta consensuar con el usuario el modelo
final (esto generalmente corresponde a la etapa de especificación).
Diagrama de Pescado
Permite identificar, explorar y exhibir gráficamente, con detalles crecientes, todas las posibles causas
relacionadas con un problema o condición a fin de descubrir su raíz u origen y poder concentrarse en
el contenido del problema, no en la historia del mismo.
Unidad de Tecnologías de Información
136
Metodología MDS-α
En la figura que se presenta como ejemplo del diagrama de pescado, se analizan las posibles causas
por las cuales el proceso de control de personal en la Unidad de Recursos Humanos es insuficiente.
entorno
funcionarios
sobrecarga
laboral
demasiados
datos
Control de
personal
insuficiente
manual
proceso
obsoleto
equipos de
computación
Graf. A-5-1: Diagrama de Pescado
Como vemos en este diagrama, se distinguen 4 categorías básicas: funcionarios, entorno, proceso,
equipos de computación. En dicha figura vemos causas relacionadas a las distintas categorías. Por
ejemplo, se analiza una posible causa relacionada con la sobrecarga laboral de los funcionarios, y otra
que es el estado obsoleto de los equipos de computación en la Unidad de Recursos Humanos de la
institución.
Con esta se puede analizar el impacto de la solución planteada para un requerimiento dado. Por
ejemplo, cómo afecta el trabajo diario del funcionario de la Unidad de Recursos Humanos.
También en el caso de que la solución planteada interactúe con otros sistemas existentes
(modificando, consultando o intercambiando información), el diagrama de pescado nos permite
analizar los posibles problemas que pueden surgir.
Esta herramienta la podemos utilizar conjuntamente con una tormenta de ideas (brainstorming), y de
esta manera ordenar las posibles soluciones a un problema. Es decir, por un lado se generan ideas y
por el otro utilizamos esta herramienta para organizarlas.
Unidad de Tecnologías de Información
137
Metodología MDS-α
Glosario
El glosario es una simple lista de términos en donde se incluyen su significado y explicación de
palabras que no son de uso común, mejorando así la comunicación con el usuario y con grupo en
general.
El glosario es dinámico en cuanto a su actualización, mientras transcurre el proceso de Ingeniería de
Requerimientos, perfeccionándolo en cada nuevo ciclo.
Para conformar el glosario pueden utilizarse dos columnas; en la primera se identifica el nombre del
término y, en la segunda, se detalla su descripción.
Termino
Descripción
Tabla A-5-2: Plantilla para la definición del Glosario
Es recomendable ordenar alfabéticamente esta tabla por Términos, para así facilitar las consultas.
Lista de Requerimientos
La lista de requerimientos es un documento en donde se describen los requerimientos del sistema (o
sea que debe hacer el sistema). Solamente se incluyen los requerimientos del producto. Ayuda
bastante que el usuario sepa cabalmente los requerimientos del sistema; en esta lista va expresado
toda la demanda que tiene propiamente el usuario.
Los requerimientos pueden ser clasificados en dos grandes categorías, los no-funcionales y los
funcionales.
Los no-funcionales señalan las características de cómo el sistema debe realizar su trabajo; por
ejemplo: eficiencia, hardware necesario, software, etc.
Por otro lado, los requerimientos funcionales definen qué hace el sistema; describen básicamente
todas las entradas y salidas, las relaciones respectivas, mismas que el sistema debe manejar.
Resumiendo, los requerimientos funcionales describen las funciones del sistema.
Unidad de Tecnologías de Información
138
Metodología MDS-α
La plantilla a utilizar es la siguiente:
Código
RNF-001
RNF-002
RNF-003
RNF-XYZ
REQUERIMIENTOS NO FUNCIONALES
Descripción
Tabla A-5-3: Plantilla para la descripción de Requerimientos No Funcionales
Código
RF-001
RF-002
RF-003
RF-XYZ
REQUERIMIENTOS FUNCIONALES
Descripción
Tabla A-5-4: Plantilla para la descripción de Requerimientos Funcionales
Checklist
El Checklist o lista de verificación es una herramienta fácil de usar y proporciona una gran utilidad. En
general, es una lista de preguntas que el analista debe utilizar para evaluar cada requerimiento. Se
deben verificar y marcar los puntos de evaluación mientras se lee la lista de requerimientos. Cuando
emergen problemas potenciales, los mismos deben ser anotados y descritos cabalmente.
Las checklist brindan un recordatorio de lo que se debe buscar y reducen las chances de pasar por
alto alguna verificación importante.
Para esta sección se puede utilizar la plantilla genérica descrita a continuación, en donde la misma se
utiliza según la cantidad de requerimientos descritos en la lista de requerimientos (funcionales y no
funcionales)
COD-REQ.: REQUERIMIENTO
Preguntas de Verificación
Pregunta - 01
Pregunta - 02
Pregunta - 03
Pregunta - XY
Respuesta
Tabla A-5-5: Plantilla para la lista de verificación de requerimientos
Unidad de Tecnologías de Información
139
Metodología MDS-α
ANEXO 6
ESTILOS ARQUITECTÓNICOS
Un aspecto fundamental de la disciplina de Arquitectura de Software son los estilos. Un estilo es un
concepto descriptivo que define una forma de articulación u organización arquitectónica. Es una
forma recurrente de estructurar o documentar un sistema.
El conjunto de los estilos cataloga las formas básicas de estructuras de software, mientras que las
formas complejas se articulan mediante composición de los estilos fundamentales. Tiene propiedades
que los hace interesantes y útiles por ser soluciones abstractas para alcanzar ciertos requerimientos
de calidad (requerimientos no funcionales).
Diferentes partes del sistema pueden tener diferentes estilos arquitectónicos. La descripción de un
estilo se puede formular en lenguaje natural o en diagramas, pero lo mejor es hacerlo en un lenguaje
de descripción arquitectónica o en lenguajes formales de especificación.
Una clasificación convencional de estilos arquitectónicos está dada por:
§
Estilos de Flujo de Datos
o Tuberías y filtros
o Secuencial y en lote
§
Estilos Centrados en Datos
o Arquitecturas de Pizarra o Repositorio
o Base de Datos
o Sistemas de Hipertexto
§
Estilos de Llamada y Retorno
o
Programa principal y subrutina
o
Model-View-Controller (MVC)
o
Arquitecturas en Capas
o
Arquitecturas Orientadas a Objetos
o
Cliente Servidor
o
Arquitecturas Basadas en Componentes
Unidad de Tecnologías de Información
140
Metodología MDS-α
§
Estilos de Máquinas Virtuales
o Intérpretes
o Sistemas basados en Reglas
§
Estilos Peer-to-Peer
o Arquitecturas Basadas en Eventos
o Arquitecturas Orientadas a Servicios
o Arquitecturas Basadas en Recursos
§
Estilos Heterogéneos
o Sistemas de Control de Procesos
o Arquitecturas Basadas en Atributos
Con el uso de estilos arquitectónicos se pueden cortar diseños complejos en diseños más simples,
evitando malas prácticas y representando las estructuras de los sistemas de forma más limpia y
concisa, por ejemplo:
§
Mala Práctica
o Aplicaciones clientes que consultan si sucedió algo
o Listener de HTTP, Archivo, Colas
§
Buena Práctica
o Estilo basado en Eventos
A continuación se brinda una lista de ejemplos de Arquitectura de Software de sistemas conocidos y
un pequeño catálogo de algunos estilos arquitectónicos.
Unidad de Tecnologías de Información
141
Metodología MDS-α
Graf. A-6-1: Arquitectura de Software de un Video Juego
Secuencial
Paralelo
Analizador
Sintáctico
Analizador
Sintáctico
Parser
Parser
Analizador
Semántico
Analizador
Semántico
Representación Interna
Optimizador
Generación
de Código
Graf. A-6-2: Arquitectura de Software de un Compilador
Unidad de Tecnologías de Información
142
Metodología MDS-α
Editor de
Diseño
Traductor
del Diseño
Generador
de Código
Editor del
Programa
Repositorio del Proyecto
Análisis y
Diseño
Generador
de Reportes
Graf. A-6-3: Arquitectura de Software de una Herramienta CASE
Datos (Estado
del Programa)
Programa
siendo
interpretado
Maquina de
Interpretación
Simulada
Estado
Interno del
Interprete
Graf. A-6-4: Arquitectura de un Intérprete implementada en Maquina Virtual
Sensores
Adquisición
Datos de
Vigilancia
Control de
Seguimiento
Preparación
Proceso de
Entrada
Control de
Calidad
Tiempo Real
Seguridad
de la Red
Seguimiento
Mono
Distribución
de Datos de
Vigilancia
Fusión
Horizontal
Vertical
Gestión de
Pistas
Monitoreo
Correlación
Grabación
Dispositivos
Graf. A-6-5: Arquitectura de un Sistema de Vigilancia
Unidad de Tecnologías de Información
143
Metodología MDS-α
Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Física
Graf. A-6-6: Arquitectura de Referencia del Modelo Estándar OSI
Cliente 1
Cliente 2
Cliente 3
Cliente 4
Red de Banda Ancha
Servidor de
Catálogos
Servidor de
Video
Servidor de
Gráficos
Servidor de
Hipertexto
Graf. A-6-7: Arquitectura de Software de una Biblioteca de Videos y Pinturas
Estilo de Arquitectura de Tuberías y Filtros
Basada en el patrón “pipe and filter” (tuberías y filtros). En este estilo los componentes se denominan
filtros y las conexiones tuberías. Cada filtro trabaja de manera independiente, esperan un conjunto de
datos en un determinado formato y procesa como resultado otros datos de salida, también en un
formato específico.
Si el flujo degenera en una única línea de transformación, la arquitectura se denomina secuencial en
batch o en lote.
Unidad de Tecnologías de Información
144
Metodología MDS-α
Tuberías
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
Filtro
a) Tuberías y Filtros
Filtro
Filtro
Filtro
Filtro
b) Batch Secuencial
Graf. A-6-8: Estilo de Arquitectura de Tuberías y Filtros / Batch Secuencial
Estilo de Arquitectura de Pizarra
En la parte central de este tipo de arquitectura se destaca un almacén de datos, el cual es accedido y
actualizado de manera frecuente por los otros componentes (adicionan, actualizan, modifican y
borran tales almacenes). El cliente accede a un repositorio central, este repositorio puede ser:
§
Repositorio Pasivo: el software cliente accede a los datos independientemente de cualquier
cambio en los datos o a las acciones de otros clientes.
§
Repositorio Activo (Pizarra): el repositorio envía información a los clientes cuando los datos
de su interés cambian, así de esta manera se considera como un ente activo.
Cliente 1
Cliente 2
Pizarra
Cliente 6
Cliente 5
Cliente 3
Cliente 4
Graf. A-6-9: Estilo Arquitectónico de Pizarra
Unidad de Tecnologías de Información
145
Metodología MDS-α
Estilo de Arquitectura de Programa Principal/Subprograma
Posibilita estructurar software con relativa facilidad de modificación y escalamiento. Se trata de
descomponer las funciones en jerarquías de control, donde el programa principal invoca a los
programas subordinados y estos a su vez a los otros.
P
a
d
i
e
j
c
b
g
f
k
l
h
m
n
o
Graf. A-6-10: Estilo de Arquitectura de Programa Principal/Subprograma
Estilo de Arquitectura Orientada a Objetos
Los componentes del sistema encapsulan datos y operaciones que deben utilizarse para manipular
tales datos. La comunicación y coordinación de entre componentes se realiza mediante envío de
mensajes. Su arquitectura es de un sistema de llamada y retorno, donde se enfatiza el
empaquetamiento entre datos y operaciones que permiten manipular y acceder dichos datos.
Las representaciones de los datos y las operaciones están encapsuladas en un tipo abstracto de datos
u objeto, los componentes son los objetos; las invocaciones de los métodos son los conectores
Obj 1
Obj 2
Obj 3
Atributos
Atributos
Atributos
Métodos
Métodos
Métodos
Obj 4
Atributos
Métodos
Graf. A-6-11: Estilo de Arquitectura Orientada a Objetos
Unidad de Tecnologías de Información
146
Metodología MDS-α
Estilo de Arquitectura en Capas
Este estilo permite definir un conjunto de niveles o capas; por lo general cada capa solo puede
comunicarse con su vecina y aunque esta solución puede ser menos eficiente en algunos casos,
facilita la portabilidad de los diseños. Dependiendo el lugar que ocupe una capa; cada capa provee
servicios a la capa superior y éste servido por la capa inferior. Los componentes son cada una de las
Capa 4
Capa 3
Capa 2
Capa 1
capas y los conectores son los protocolos de interacción entre las capas.
Graf. A-6-12: Estilo de Arquitectura en Capas
Estilo de Arquitectura Cliente Servidor
Se refiere a un esquema de sistema distribuido, el cual muestra cómo los datos y el procesamiento se
distribuyen a través de un rango de componentes; tales componentes se identifican en ser la red,
clientes o servidores, estos últimos tienen inmerso un estado stand-alone para la ejecución de un
servicio específico ante la petición de un determinado cliente.
Cliente 1
Cliente 2
Cliente 3
Cliente 4
Red de Comunicación
Servidor 1
Servidor 2
Servidor 3
Servidor 4
Graf. A-6-13: Estilo de Arquitectura Cliente Servidor
Unidad de Tecnologías de Información
147
Metodología MDS-α
Estilo de Arquitectura de Máquina Virtual o Intérprete
Este tipo de solución de software resuelve varios problemas de hardware y está básicamente
reducida a la aplicación de lenguajes de programación, está formado por cuatro componentes
elementales:
§
Un motor de simulación o interpretación
§
Una memoria que contienes el código a interpretar
§
Una representación del estado de la representación
§
Una representación del estado del programa que se está simulando
Estado del
Programa
Memoria con
Código a
Interpretar
Simulación de la
Interpretación
Estado de la
Interpretación
Graf. A-6-14: Estilo de Arquitectura de Máquina Virtual o Intérprete
Estilo de Arquitectura de Control de Procesos
Cualquier sistema diseñado bajo este estilo se compone de tres elementos básicos:
§
Control: Implementa el algoritmo de control presentando las interfaces de activación y
desactivación, establece los rangos de funcionamiento.
§
Proceso: Oculta los dispositivos que ocultan la salida cuyos parámetros deben ser medidos y
controlados; ofrece una interfaz al Control de manera que pueda modificar el proceso cuando
resulte conveniente
§
Sensores: Miden los parámetros que deben ser controlados (se los conoce como variables
controladas o variables medibles) y comunican esos valores al Control.
Este estilo permite las incorporaciones sencillas de más o diferentes sensores, mejoras en el
algoritmo de control, cambios en los diferentes tipos dispositivos de hardware, etc.
Unidad de Tecnologías de Información
148
Metodología MDS-α
Control
Proceso
Sensor 1
Sensor 2
Graf. A-6-15: Estilo de Arquitectura de Control de Procesos
Estilo de Arquitectura Modelo Vista Controlador
Este patrón de arquitectura separa los datos de una aplicación, la interfaz de usuario y lógica de
control en básicamente tres componentes:
§
Modelo: encargada de la implementación de las funcionalidades y datos del sistema
§
Vista: Gestiona la forma de mostrar los datos al usuario
§
Controlador: responde a acciones del usuario (eventos) e invoca cambios en el modelo y
probablemente en la vista.
Modelo
Vista
Controlador
Graf. A-6-16: Estilo de Arquitectura Modelo Vista Controlador
Unidad de Tecnologías de Información
149
Metodología MDS-α
ANEXO 7
NORMALIZACION DE BASES DE DATOS
El proceso de Normalización de Bases de Datos consiste en aplicar una serie de reglas a las relaciones
obtenidas tras el paso de mapeo del Modelo Entidad Relación al Modelo Relacional.
Las Bases de Datos relacionales se estandarizan o normalizan con el objeto de:
§
Evitar la redundancia de los datos.
§
Evitar problemas de actualización de los datos en las tablas.
§
Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea
considerada como una relación tiene que cumplir con algunas restricciones:
§
Cada columna debe tener un nombre único.
§
No puede haber dos filas iguales. No se permiten los registros duplicados.
§
Todos los datos en una columna deben ser del mismo tipo o dominio.
TERMINOLOGÍA RELACIONAL
Graf. A-7-1: Terminología del Modelo Relacional
Para una mejor manipulación es preferible tratar esta terminología a nivel de esquemas, es decir:
Trabajo (Código, Nombre, Posición, Salario)
donde Código es la Clave Primaria.
Unidad de Tecnologías de Información
150
Metodología MDS-α
Así también se respeta la siguiente terminología:
§
Relación = tabla o archivo
§
Tupla = registro, fila o renglón
§
Atributo = columna o campo
§
Clave = llave o código de identificación
§
Clave Candidata = superclave mínima
§
Clave Primaria = clave candidata elegida
§
Clave Ajena = clave externa o clave foránea
§
Clave Alternativa = clave secundaria
§
Dependencia Multivaluada = dependencia multivalor
§
RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de
Bases de Datos Relacionales.
§
1FN = Primera Forma Normal.
§
2FN = Segunda Forma Normal.
§
3FN = Tercera Forma Normal.
§
FNBC = Forma Normal de Boyce Codd.
§
4FN = Cuarta Forma Normal.
§
5FN = Quinta forma Normal.
Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la
fuente teórica del Modelo de Base de Datos Relacional.
Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo
puede tomar. Una instancia de una tabla puede verse entonces como un subconjunto del producto
cartesiano entre los dominios de los atributos. Sin embargo, suele haber algunas diferencias con la
analogía matemática, dado que algunos RDBMS permiten filas duplicadas, entre otras cosas.
Finalmente, una tupla puede razonarse matemáticamente como un elemento del producto
cartesiano entre los dominios.
DEPENDENCIA FUNCIONAL
La dependencia funcional muestra asociaciones lógicas de los datos; significa que los valores para A y
B en tal asociación; el valor de B será deducido o mantendrá su valor a partir de A, así decimos que:
Unidad de Tecnologías de Información
151
Metodología MDS-α
§
B depende funcionalmente de A
o que es lo mismo:
§
A determina el valor de B
A
B
A
B
Graf. A-7-2: Representación de la Dependencia Funcional
Por ejemplo si conocemos el valor de fechaNacimiento podemos conocer el valor de edad, y la
dependencia funcional salta a la luz de la manera siguiente:
fechaNacimiento à edad
Axiomas de Armstrong
A1: Dependencia Funcional Reflexivo
Si Y está incluido en X, entonces X à Y
Por ejemplo:
Si el nombre está incluido en el carnetIdentidad, entonces del carnetIdentidad podemos
determinar el nombre
Si nombre Í carnetIdentidad , entonces carnetIdentidad ® nombre
A2: Dependencia Funcional Incremental
Si X à Y, entonces X, Z à Y, Z
Por ejemplo:
Unidad de Tecnologías de Información
152
Metodología MDS-α
Si carnetIdentidad à nombre, entonces carnetIdentidad, direccion à nombre, direccion
Si con el carnetIdentidad se determina el nombre de una persona, entonces con el
carnetIdentidad mas la direccion se determina el nombre o direccion de la persona.
A3: Dependencia Funcional Transitiva
Si X à Y à Z , entonces X à Z
Por ejemplo:
Si fechaNacimiento à edad à licenciaConducir,
entonces fechaNacimiento à licenciaConducir
Se tiene que fechaNacimiento determina edad, y edad determina licenciaConducir, entonces
fechaNacimiento determina licenciaConducir. Para este ejemplo la restricción de aplicación es
que para tener Licencia de Conducir se debe adquirir la Mayoría de Edad.
FORMAS NORMALES
Las Formas Normales son aplicadas a las tablas de una determinada Base de Datos. Mencionar que
una Base de Datos está en la forma normal FN implica decir que todas las tablas que la componen
están en la forma normal FN.
Para cubrir las necesidades generales en la mayoría de las Bases de Datos, se requiere que la misma
este normalizada con las primeras tres formas.
Primera Forma Normal - 1FN
Una tabla o esquema está en Primera Forma Normal (1FN) si:
§
Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son
indivisibles, mínimos e inseparables.
§
La tabla contiene una clave primaria.
§
La tabla no contiene atributos nulos.
§
La tabla no posee ciclos o grupos repetitivos.
Unidad de Tecnologías de Información
153
Metodología MDS-α
Una columna no puede tener múltiples valores, los datos son atómicos, cada uno de los registros
debe tener el mismo número de atributos que es lo mismo decir que cada registro debe contener el
mismo tipo y número de campos. Esta forma normal elimina los valores repetidos dentro de una Base
de Datos.
Por ejemplo:
Se tiene en el Ministerio de Economía y Finanzas Públicas diferentes puestos de trabajo regulados por
el Estado, lo que significa que las condiciones salariales están determinadas por el puesto. Para ello se
ha creado el siguiente esquema relacional:
FUNCIONARIO(cod_funcionario, nombre, puesto, salario, emails) con cod_funcionario como clave
primaria.
FUNCIONARIO
cod_funcionario
111
222
333
...
nombre
Juan Pérez Miranda
José Duran Chambi
Ana María Díaz Cabero
...
puesto
Jefe de Unidad
Administrativo
Administrativo
...
salario
12000
3000
3000
...
emails
[email protected]; [email protected]
[email protected]
[email protected]; [email protected]
...
No está en Primera Forma Normal – 1FN(X)
Solución 1
FUNCIONARIO
cod_funcionario
111
111
222
333
333
...
nombres
Juan
Juan
José
Ana María
Ana María
...
paterno
Pérez
Pérez
Duran
Díaz
Díaz
…
materno
Miranda
Miranda
Chambi
Cabero
Cabero
…
puesto
Jefe de Unidad
Jefe de Unidad
Administrativo
Administrativo
Administrativo
...
salario
12000
12000
3000
3000
3000
...
emails
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
...
Si está en Primera Forma Normal – 1FN y su llave primaria es (cod_funcionario, nombres, paterno,
materno, puesto, salario, emails)
Solución 2
FUNCIONARIO
cod_funcionario
111
222
333
...
nombres
Juan
José
Ana María
...
paterno
Pérez
Duran
Díaz
…
materno
Miranda
Chambi
Cabero
…
puesto
Jefe de Unidad
Administrativo
Administrativo
...
salario
12000
3000
3000
...
Si está en Primera Forma Normal – 1FN y su llave primaria es (cod_funcionario)
Unidad de Tecnologías de Información
154
Metodología MDS-α
EMAIL
email
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
...
cod_funcionario
111
111
222
333
333
...
Si está en Primera Forma Normal – 1FN y su llave primaria es (email) con llave foránea
(cod_funcionario) a la Tabla FUNCIONARIO.
Segunda Forma Normal – 2FN
Una tabla o esquema está en Segunda Forma Normal (2FN) si:
§
Está en Primera Forma Normal (1FN).
§
Los atributos que no forman parte de ninguna clave dependen de forma completa de la clave
principal, es decir que no existen dependencias parciales.
Continuando con el ejemplo anterior, a partir de la última solución analizamos:
§
Ambas tablas (FUNCIONARIO y EMAIL) están en Primera Forma Normal (1FN).
§
Para un valor particular de llave principal (tanto en la tabla FUNCIONARIO como EMAIL)se
puede determinar el valor de los restantes atributos, es decir cada atributo depende de
forma completa de la llave primaria.
Por tanto, la segunda solución también se encuentra en Segunda Forma Normal (2FN).
NOTA: cuando la llave primaria de una tabla es simple, se tiene prácticamente garantizado que se
encuentra en 2FN. Y si tuviéramos una llave compuesta, y parte de ella determina el valor de algún
atributo, entonces si nos encontraríamos en problemas, para tal caso debe estudiarse la composición
de la llave primaria y la posibilidad de crear una tabla que muestre esa dependencia en una relacion.
Tercera Forma Normal – 3FN
Una tabla o esquema esta en Tercera Forma Normal (3FN) si:
§
Está en Segunda Forma Normal (2FN).
§
No existe ninguna dependencia funcional transitiva entre los atributos que no son clave (o
parte de ella).
Unidad de Tecnologías de Información
155
Metodología MDS-α
Siguiendo el ejemplo dado, y partiendo de la última solución tenemos:
§
Se encuentra en 2FN.
§
Existe dependencia funcional transitiva entre:
(cod_funcionario à puesto) y (puesto à sueldo)
Por tanto no se cumple con la Tercera Forma Normal (3FN). Y para transformarla adecuadamente
hacemos:
FUNCIONARIO
cod_funcionario
111
222
333
...
nombres
Juan
José
Ana María
...
paterno
Pérez
Duran
Díaz
…
materno
Miranda
Chambi
Cabero
…
puesto
Jefe de Unidad
Administrativo
Administrativo
…
Si está en Tercera Forma Normal – 3FN y su llave primaria es (cod_funcionario) con llave foránea
(puesto) a la Tabla PUESTO.
PUESTO
puesto
Jefe de Unidad
Administrativo
...
salario
12000
3000
...
Si está en Tercera Forma Normal – 3FN y su llave primaria es (puesto)
EMAIL
email
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
...
cod_funcionario
111
111
222
333
333
...
Si está en Tercera Forma Normal – 3FN y su llave primaria es (email) con llave foránea
(cod_funcionario) a la Tabla FUNCIONARIO.
Forma Normal de Boyce - Codd - FNBC
La tabla o esquema esta en Forma Normal de Boyce – Codd (BCNF) si:
§
Está en 3FN.
§
Existen múltiples llaves candidatas.
§
Atributos compartidos entre las llaves compuestas.
Unidad de Tecnologías de Información
156
Metodología MDS-α
§
Cada atributo que determina completamente a otro, es clave candidata (este es un requisito
más fuerte que la 3FN, donde los atributos no clave tienen que mutuamente independientes).
Cuarta Forma Normal - 4FN
Una tabla o esquema se encuentra en Cuarta Forma Normal (4FN) si:
§
Para cada una de sus dependencias múltiples no funcionales XààY, con X una super-clave
que: X es una clave candidata ó un conjunto de claves primarias (este concepto se apoya
sobre dependencias multivaluadas).
Quinta Forma Normal - 5FN
Una tabla o esquema se encuentra en Quinta Forma Normal (5FN) si:
§
La tabla o esquema esta en 4FN.
§
No existen relaciones de dependencias no triviales que no siguen los criterios de las claves.
Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de
dependencia se encuentra definida por las claves candidatas.
Unidad de Tecnologías de Información
157
Metodología MDS-α
BIBLIOGRAFÍA
[1] Alvarez Amalia y Scafarelli Leonardo (2006). ORT Software Factory- Aseguramiento de la calidad.
Uruguay. Universidad ORT.
[2] Andía Valencia Walter. El árbol causa y efecto – Una metodología para los proyectos de inversión
privada. Perú. Lima.
[3] Arquitectura de software: arte y oficio. España. Valencia. Actualidad TIC. Universidad Politécnica
de Valencia. Instituto Tecnológico de Informática.
[4] Arquitectura de software (2002). España. Escuela Superior de Ingeniería Informática de Albacete.
[5] Bastarrica María Cecilia. Atributos de calidad y arquitectura de software. Chile. Universidad de
Chile. Departamento de Ciencias de la Computación.
[6] Billy Reynoso Carlos (2004). Introducción a la Arquitectura de Software. Argentina. Buenos Aires.
Universidad de Buenos Aires.
[7] Camacho H., Cámara L., Cascante R. y Sainz H. El enfoque del marco lógico – 10 casos prácticos.
España. Madrid. CIDEAL – ADC.
[8] Cristiá Maximiliano (2006). Catálogo incompleto de estilos arquitectónicos. Argentina. Santa Fe.
Universidad Nacional de Rosario. Facultad de ciencias exactas, Ingeniería y Agrimensura.
[9] Cuesta Carlos. Arquitectura de Software. España. Universidad Rey Juan Carlos.
[10] Cueva Lovelle Juan Manuel (1999). Calidad del software. España. Universidad de Oviedo.
[11] Davyt Dávila Nicolás (2001). Ingeniería de Requerimientos. Uruguay. Universidad ORT, Facultad
de Ingeniería.
[12] Domínguez Kenyer, Perez María y Mendoza Luis (). Gestión de proyectos de desarrollo de
software libre con un enfoque de calidad. Venezuela. Caracas. Universidad Simón Bolivar
Unidad de Tecnologías de Información
158
Metodología MDS-α
[13] Elaboración de Procesos y Procedimientos (2007). España. Madrid. Universidad Politécnica de
Madrid.
[14] Fábrica de Software: Documento de proceso de la gerencia de aseguramiento de la calidad.
Chile. Universidad Católica de Chile, Escuela de Ingeniería, Departamento de Ciencias de la
Computación.
[15] Febles Estrada Ailyn y Pérez Isabel (2005). Métricas para la Configuración de Software. Cuba. La
Habana. Facultad de Ingeniería Industrial. Instituto Superior Politécnico José Antonio Echeverría
CUJAE.
[16] Fosch Alonso Ignasi y Arellano Roig Javier (2006). Guía de estilo de codificación. España.
Universidad Oberta de Catalunya.
[17] Giuliano A., Scarpa C., Bustamante D., Leiva D., García G., Macchi G., Vannini K., Cabot M.,
Ferrara M., Maldonado P., Villagra S., Piacentino S., Nucci V y Herrero V. Proyectos informáticos
– Técnicas y Herramientas (2000). Argentina. Buenos Aires. Universidad de Buenos Aires.
Facultad de Ingeniería.
[18] Gómez A (2004). Metodología de desarrollo de aplicaciones web. Venezuela. Caracas. Micorp.
[19] Gonzales Sigfrido, Gutiérrez Eduardo y Vasquez Hugo. Metodología de proyectos informáticos.
Chile. Ministerio de Planificación y Cooperación.
[20] Hernández Gonzáles Anaisa (2004): Informática – Identificación de Procesos de Negocio. Cuba,
La Habana. Instituto Superior Politécnico José Antonio Echeverría CUJAE. Facultad de Ingeniería
Industrial.
[21] Hristov Alexander (2007). Manual de estilo de programación. Bulgaria.
[22] IEEE 730 1998. Plan de aseguramiento de la calidad del software.
[23] IEEE-STD-828-1998: Plan de gestión de la configuración de software.
[24] IEEE-STD-830-1998: Especificaciones de los requisitos de software.
[25] Ishikawa Kaoru (1989). Diagrama causa y efecto.
Unidad de Tecnologías de Información
159
Metodología MDS-α
[26] ISO 9000-3: 1997. Administración y aseguramiento de la calidad del software.
[27] ISO 9001: 2000. Sistemas de gestión de calidad.
[28] ISO/IEC 12207. Procesos del ciclo de vida del software.
[29] ISO/IEC 9126. Evaluación del software.
[30] Kruchten Philippe (2003). The rational unified process an introduction. Estados Unidos. Addison
Wesley.
[31] León Carlos (2007). Evaluación de Inversiones. Perú. Chiclayo. Universidad Católica Santo Toribio
de Mogrovejo.
[32] Manual de procesos y procedimientos (2008). Bolivia. La Paz. Ministerio de Economía y Finanzas
Públicas.
[33] Marrero Carlos y Santos Kiberley (2007). Metodología de la red nacional de integración y
desarrollo de software libre – MeRinde. Venezuela. Caracas. Centro Nacional de Tecnologías de
Información.
[34] Matriz de indicadores – Metodología de marco lógico (2007). México. Consejo Nacional de
Evaluación de la Política de Desarrollo Social – CONEVAL.
[35] Mendez Anderson. Aseguramiento de la calidad mediante ingeniería de software. República
Dominicana: Politécnico de Azua.
[36] Metodología de desarrollo de sistemas de información MDSI versión 1 (2005). Perú. Lima.
Presidencia del Consejo de Ministros. Oficina Nacional de Gobierno Electrónico e Informática.
[37] Metodología de planificación, desarrollo y mantenimiento de sistemas de información –
METRICA Versión 3.0. España. Ministerio de Administraciones Públicas. Consejo Superior de
Informática y para el impulso de la Administración Electónica.
[38] Metodología para la elaboración de matriz de marco lógico. Chile. Dirección de Presupuesto.
Unidad de Tecnologías de Información
160
Metodología MDS-α
[39] Metodología para la preparación y evaluación de proyectos de educación. Chile. Santiago.
Ministerio de Planificación.
[40] Pollice Gary (2003). Using the RUP for small projects: Expanding upon extreme programming. A
Rational Software White Paper.
[41] Pulido Pavón Jose Antonio (2007). Arquitectura de software para sistemas de tiempo real
particionados. España. Madrid. Tesis Doctoral. Universidad Politécnica de Madrid.
[42] Rational Unified Process for System Engineering (2002). Rational the Software Development
Company
[43] Sanín Ángel Héctor. Marco lógico, instrumento de formulación, gestión y evaluación de
proyectos. BID – CEPAL.
[44] Serrano Juan Manuel (2008). Arquitecturas software y estilos arquitectónicos. España.
Universidad Rey Juan Carlos.
[45] Sommerville Ian (2000). Ingeniería de software – Diseño arquitectónico. Sexta edición.
[46] Thomas Fielding Roy (2000). Estilos arquitectónicos y el diseño de arquitecturas de software
basadas en red. Estados Unidos. Tesis Doctoral. University California – Irvine.
[47] Vásquez Gustavo. Testing de Performance. Uruguay. Montevideo. Universidad de la República.
Facultad de Ingeniería.
[48] Velásquez Huerta Robert Aldo. Control y evaluación de proyectos informáticos. Perú.
Universidad Inca Garcilaso de la Vega. Facultad de Educación.
[49] Vilalta Marzo Josep (2007). Modelo de Casos de uso. España. Barcelona.
Unidad de Tecnologías de Información
161
Metodología MDS-α
CONTENIDO
INTRODUCCIÓN ................................................................................................................................................. 1
METODOLOGÍAS ........................................................................................................................................... 1
METODOLOGÍA DE DESARROLLO DE SISTEMAS ALFA (MDS-α) ....................................................................... 1
ORGANIZACION ............................................................................................................................................ 2
APLICACIÓN METODOLÓGICA ....................................................................................................................... 4
Aplicación Lineal ........................................................................................................................................... 4
Aplicación Cíclica........................................................................................................................................... 5
Aplicación Iterativa por Fases ........................................................................................................................ 5
Guía Rápida de la Metodología ALFA ............................................................................................................. 6
CAPITULO 1 .....................................................................................................................................................10
1 BASES DE UN PROYECTO DE DESARROLLO DE SISTEMAS........................................................................... 10
1.1 GENERALIDADES ................................................................................................................................... 12
1.1.1 EVOLUCION DE LOS PROYECTOS EN TECNOLOGIAS DE INFORMACION ................................................ 12
1.1.2 FUNDAMENTOS PARA LA ADOPCION DEL CRITERIO COSTO-EFICIENCIA .............................................. 13
1.1.3 CRITERIOS DE APROBACION O RECHAZO DE PROYECTOS EN TECNOLOGIAS DE INFORMACION ........... 14
1.2 CICLO DE PROYECTOS DE DESARROLLO DE SISTEMAS ............................................................................ 14
1.3 PROYECTOS DE INVERSION .................................................................................................................... 15
1.3.1 CICLO DE VIDA DE LOS PROYECTOS ..................................................................................................... 15
1.3.1.1 ESTADO DE PREINVERSION .............................................................................................................. 16
Etapa de generación y análisis de la idea de proyecto.................................................................................. 17
Etapa de estudio del perfil .......................................................................................................................... 18
Etapa de estudio de prefactibilidad ............................................................................................................. 18
Etapa de estudio de factibilidad .................................................................................................................. 19
1.4 TIPOS DE PROYECTOS INFORMATICOS ................................................................................................... 19
CAPITULO 2 .....................................................................................................................................................21
2 PREPARACION DEL PROYECTO DE DESARROLLO DE SISTEMAS .................................................................. 21
2.1 CARATULA Y TABLA DE CONTENIDOS..................................................................................................... 22
2.2 RESUMEN EJECUTIVO ............................................................................................................................ 22
2.3 PLAN O POLITICA INSTITUCIONAL SOBRE TECNOLOGIAS DE INFORMACION ........................................... 23
2.4 DEFINICION DEL PROBLEMA .................................................................................................................. 24
2.5 DIAGNOSTICO DE LA SITUACION ACTUAL............................................................................................... 24
2.5.1 DESCRIPCION DE LA UNIDAD ORGANIZACIONAL ................................................................................. 24
2.5.2 ACTUALIDAD TECNOLOGICA ............................................................................................................... 25
2.5.3 DESCRIPCION DE LOS PROCESOS Y PROCEDIMIENTOS......................................................................... 25
2.6 DESCRIPCIÓN GENERAL DE REQUERIMIENTOS ....................................................................................... 25
2.7 ESTIMACION DE BENEFICIOS ................................................................................................................. 25
2.8 ESTIMACION DE COSTOS ....................................................................................................................... 25
2.9 ALTERNATIVAS DE SOLUCION ................................................................................................................ 26
2.9.1 RESTRICCIONES DE CADA ALTERNATIVA ............................................................................................. 27
2.9.2 PRODUCTO O SERVICIO ESPERADO DE CADA ALTERNATIVA ................................................................ 27
2.9.3 ELECCION DE LA ALTERNATIVA ........................................................................................................... 27
2.10 MATRIZ DEL MARCO LÓGICO ............................................................................................................... 28
2.11 PLANIFICACION DE ACTIVIDADES ......................................................................................................... 28
Unidad de Tecnologías de Información
162
Metodología MDS-α
CAPITULO 3 .....................................................................................................................................................29
3 REQUERIMIENTOS DE SOFTWARE............................................................................................................. 29
3.1 VISIÓN Y ALCANCE DEL PROYECTO ........................................................................................................ 30
3.1.1 PLANTILLA PARA EL DOCUMENTO DE VISIÓN Y ALCANCES DEL PROYECTO .......................................... 30
3.1.1.1 REQUERIMIENTOS DE NEGOCIOS ..................................................................................................... 30
3.1.1.1.1 Antecedentes ............................................................................................................................... 30
3.1.1.1.2 Oportunidades de Negocio ........................................................................................................... 30
3.1.1.1.3 Objetivos de Desarrollo del Sistema .............................................................................................. 31
3.1.1.1.4 Requerimientos del Usuario.......................................................................................................... 31
3.1.1.1.5 Valor proporcionado al Usuario .................................................................................................... 31
3.1.1.1.6 Riesgos del Sistema ...................................................................................................................... 31
3.1.1.2 VISIÓN DE LA SOLUCIÓN .................................................................................................................. 31
3.1.1.2.1 Declaración de la Visión ................................................................................................................ 32
3.1.1.2.2 Características Principales............................................................................................................. 32
3.1.1.2.3 Dependencias y presunciones ....................................................................................................... 32
3.1.1.3 ALCANCE Y LIMITACIONES ............................................................................................................... 32
3.1.1.3.1 Alcance de la Versión Inicial .......................................................................................................... 32
3.1.1.3.2 Alcance de las versiones subsecuentes.......................................................................................... 32
3.1.1.3.3 Limitaciones y exclusiones ............................................................................................................ 33
3.1.1.4 CONTEXTO DEL NEGOCIO ................................................................................................................ 33
3.1.1.4.1 Características del usuario (Perfil) ................................................................................................. 33
3.1.1.4.2 Prioridades del Proyecto ............................................................................................................... 33
3.1.1.5 FACTORES DE ÉXITO DEL PRODUCTO ............................................................................................... 34
3.2 INGENIERÍA DE REQUERIMIENTOS ......................................................................................................... 34
3.2.1 Modelo Tradicional en Cascada .......................................................................................................... 35
3.2.2 Modelo en Espiral............................................................................................................................... 35
3.3 ACTIVIDADES DE LA INGENIERÍA DE REQUERIMIENTOS .......................................................................... 36
3.3.1 Extracción .......................................................................................................................................... 36
3.3.2 Análisis............................................................................................................................................... 37
3.3.3 Documentación .................................................................................................................................. 38
3.3.4 Validación .......................................................................................................................................... 38
3.4 HERRAMIENTAS .................................................................................................................................... 38
CAPITULO 4 .....................................................................................................................................................39
4 ESPECIFICACIONES DE SOFTWARE ............................................................................................................ 39
4.1 MODELADO DEL NEGOCIO .................................................................................................................... 39
4.2 DIAGRAMA DE CONTEXTO..................................................................................................................... 41
4.3 CASOS DE USO ...................................................................................................................................... 41
4.3.1 Diagramas de Casos de Uso ................................................................................................................ 42
4.3.2 Documento de especificación de Casos de Uso ................................................................................... 43
4.4 DOCUMENTO DE ESPECIFICACIONES DE SOFTWARE .............................................................................. 44
4.4.1 Formato del Documento de Especificación de Software ...................................................................... 45
4.4.1.1. Introducción ................................................................................................................................... 45
4.4.1.1.1 Propósito...................................................................................................................................... 45
4.4.1.1.2 Alcance......................................................................................................................................... 45
4.4.1.1.3 Definiciones, siglas y abreviaciones ............................................................................................... 46
4.4.1.1.4 Referencias................................................................................................................................... 46
4.4.1.1.5 Resumen ..................................................................................................................................... 46
4.4.1.2 Descripción General ........................................................................................................................ 46
4.4.1.2.1 Perspectiva del Producto .............................................................................................................. 46
4.4.1.2.1.1 Interfaces del Sistema................................................................................................................ 46
Unidad de Tecnologías de Información
163
Metodología MDS-α
4.4.1.2.1.2 Interfaces del usuario ................................................................................................................ 46
4.4.1.2.1.3 Interfaces con el hardware......................................................................................................... 46
4.4.1.2.1.3 Interfaces con otros software .................................................................................................... 46
4.4.1.2.1.4 Interfaces con otros dispositivos de comunicación ..................................................................... 46
4.4.1.2.1.5 Operaciones .............................................................................................................................. 46
4.4.1.2.1.6 Requerimientos de adaptación .................................................................................................. 46
4.4.1.2.2 Funciones del Producto ................................................................................................................ 47
4.4.1.2.3 Características del Usuario............................................................................................................ 47
4.4.1.2.4 Restricciones ................................................................................................................................ 47
4.4.1.2.5 Suposiciones y dependencias ........................................................................................................ 47
4.4.1.3. Especificación de Requerimientos ................................................................................................... 47
4.4.1.3.1 Características del Sistema............................................................................................................ 48
4.4.1.3.2 Especificaciones de Rendimiento .................................................................................................. 49
4.4.1.3.3 Restricciones de diseño ................................................................................................................ 49
4.4.1.3.4 Atributos del Sistema.................................................................................................................... 49
4.4.1.3.5 Otros requerimientos ................................................................................................................... 49
4.4.1.4. Acuerdo o Contrato ........................................................................................................................ 49
4.5 DIAGRAMA DE FLUJO DE DATOS............................................................................................................ 50
CAPITULO 5 .....................................................................................................................................................52
5 ARQUITECTURA DEL SOFTWARE ............................................................................................................... 52
5.1 MODELOS DE ARQUITECTURA DE SOFTWARE ........................................................................................ 53
5.1.1 Modelos Estructurales ........................................................................................................................ 53
5.1.2 Modelos Framework .......................................................................................................................... 53
5.1.3 Modelos Dinámicos ............................................................................................................................ 54
5.1.4 Modelos de Proceso ........................................................................................................................... 54
5.1.5 Modelos funcionales .......................................................................................................................... 54
5.2 ELEMENTOS CLAVE EN LA ARQUITECTURA DE SOFTWARE ..................................................................... 54
5.2.1 Componentes..................................................................................................................................... 54
5.2.2 Conectores ......................................................................................................................................... 55
5.2.3 Configuraciones / Topologías.............................................................................................................. 55
5.3 REPRESENTACIÓN ARQUITECTÓNICA..................................................................................................... 55
5.4 ROL DEL ARQUITECTO DE SOFTWARE .................................................................................................... 57
5.5 FASES DE LA CONSTRUCCION DEL SOFTWARE........................................................................................ 57
5.5.1 Fase 1: Pre-Diseño .............................................................................................................................. 57
5.5.2 Fase 2: Análisis del Dominio................................................................................................................ 57
5.5.3 Fase 3: Diseño Esquemático................................................................................................................ 58
5.5.4 Fase 4: Desarrollo del Diseño .............................................................................................................. 58
5.5.5 Fase 5: Documentos del Proyecto ....................................................................................................... 58
5.5.6 Fase 6: Contratación o Sub-Contratación ............................................................................................ 58
5.5.7 Fase 7: Construcción........................................................................................................................... 58
5.5.8 Fase 8: Post-Construcción................................................................................................................... 59
5.6 ABSTRACCION DE LA ARQUITECTURA .................................................................................................... 59
5.7 ESTILOS ARQUITECTÓNICOS .................................................................................................................. 61
5.8 LENGUAJE DE DESCRIPCION ARQUITECTÓNICA ...................................................................................... 62
CAPITULO 6 .....................................................................................................................................................64
6 DISEÑO Y MODELAMIENTO ...................................................................................................................... 64
6.1 INTERFACE DE USUARIO ........................................................................................................................ 64
6.2 MODELO CONCEPTUAL ......................................................................................................................... 65
6.3 MODELO LOGICO .................................................................................................................................. 66
Unidad de Tecnologías de Información
164
Metodología MDS-α
6.3.1 Normalización .................................................................................................................................... 67
6.4 MODELO FISICO .................................................................................................................................... 68
6.4.1 Diccionario de Datos........................................................................................................................... 68
CAPITULO 7 .....................................................................................................................................................71
7 IMPLEMENTACION ................................................................................................................................... 71
7.1 GENERACION DE CODIGO ...................................................................................................................... 72
7.1.1 Convenciones de Codificación............................................................................................................. 72
7.1.1.1 Lineamientos generales ................................................................................................................... 72
7.1.1.2 Codificación Camel Case .................................................................................................................. 73
7.1.1.3 Indentación ..................................................................................................................................... 73
7.1.1.4 Indentar Seteo de Variables............................................................................................................. 74
7.1.1.5 Tamaño Máximo de Línea................................................................................................................ 75
7.1.1.6 Saltos de Línea................................................................................................................................. 75
7.1.1.7 Espacios y Líneas en Blanco ............................................................................................................. 75
7.1.1.8 Nombres de Clases .......................................................................................................................... 76
7.1.1.9 Interfaces ........................................................................................................................................ 77
7.1.1.10 Funciones, Procedimientos y Métodos........................................................................................... 77
7.1.1.11 Parámetros.................................................................................................................................... 77
7.1.1.12 Variables ....................................................................................................................................... 78
7.1.1.13 Nomenclatura de Variables............................................................................................................ 79
7.1.1.14 Constantes .................................................................................................................................... 79
7.1.1.15 Comentarios .................................................................................................................................. 80
7.1.1.16 Notificación de Errores .................................................................................................................. 81
7.1.1.17 Nombres de Archivos..................................................................................................................... 81
7.1.1.18 ESTILO DE CODIFICACIÓN .............................................................................................................. 82
7.1.1.18.1 Cadenas de Caracteres................................................................................................................ 82
7.1.1.18.2 Concatenación de Caracteres...................................................................................................... 82
CAPITULO 8 .....................................................................................................................................................83
8 PRUEBAS .................................................................................................................................................. 83
8.1 PRUEBAS UNITARIAS ............................................................................................................................. 84
8.2 PRUEBAS DE INTEGRACION ................................................................................................................... 85
8.3 PRUEBAS DEL SISTEMA .......................................................................................................................... 87
8.4 PRUEBAS DE IMPLANTACION................................................................................................................. 88
8.5 PRUEBAS DE ACEPTACION ..................................................................................................................... 89
8.6 PRUEBAS DE REGRESION ....................................................................................................................... 90
CAPITULO 9 .....................................................................................................................................................92
9 IMPLANTACIÓN DEL SISTEMA................................................................................................................... 92
9.1 DEFINICION DEL PLAN DE IMPLANTACION ............................................................................................. 92
9.2 CAPACITACION ...................................................................................................................................... 93
9.3 MANUAL DE INSTALACION .................................................................................................................... 93
9.4 MANUAL DEL USUARIO ......................................................................................................................... 94
CAPITULO 10 ...................................................................................................................................................95
10 MANTENIMIENTO DEL SISTEMA ............................................................................................................. 95
Unidad de Tecnologías de Información
165
Metodología MDS-α
CAPITULO 11 ...................................................................................................................................................98
11 PLAN DE ASEGURAMIENTO DE LA CALIDAD ............................................................................................ 98
11.1 CALIDAD DEL SOFTWARE ..................................................................................................................... 98
11.1.1 Obtención de Software con Calidad .................................................................................................. 99
11.1.2 Determinación de Calidad del Software ............................................................................................ 99
11.2 PLAN DE LA CALIDAD ..........................................................................................................................100
11.2.1 Alcance del Plan de Calidad .............................................................................................................100
11.2.2 Objetivos de Calidad ........................................................................................................................101
Esenciales..............................................................................................................................................101
Esperados .............................................................................................................................................101
Deseados ..............................................................................................................................................101
11.2.3 Procesos del Aseguramiento de Calidad...........................................................................................102
11.2.4 Guías para las actividades del Aseguramiento de Calidad del Software.............................................102
11.2.4.1 Guía para la Administración ..........................................................................................................103
11.2.4.2 Guía para la Documentación .........................................................................................................103
11.2.4.3 Guía para la Adherencia a los Estándares. .....................................................................................104
ANEXO 1......................................................................................................................................................... 106
ARBOL CAUSA Y EFECTO.............................................................................................................................106
DETERMINACION DEL PROBLEMA ..............................................................................................................106
CAUSAS DEL PROBLEMA.............................................................................................................................107
EFECTOS DEL PROBLEMA ...........................................................................................................................107
CONSTRUCCION DEL ARBOL .......................................................................................................................107
EL ARBOL DE OBJETIVOS ............................................................................................................................108
ANEXO 2......................................................................................................................................................... 111
PROCESOS Y PROCEDIMIENTOS..................................................................................................................111
MAPEO DE PROCESOS, OPERACIONES Y PROCEDIMIENTOS ........................................................................111
LLENADO DEL FORMULARIO N° 4 ...............................................................................................................112
INTEGRACIÓN DE PROCESOS Y OPERACIONES ............................................................................................113
LLENADO DEL FORMULARIO N° 5 ...............................................................................................................113
PROCEDIMIENTOS......................................................................................................................................114
LLENADO DEL FORMULARIO N° 6 ...............................................................................................................115
DIAGRAMA DE FLUJOS ...............................................................................................................................116
Simbología para elaborar un diagrama de flujo:..........................................................................................117
Ejemplo de diagrama de flujo – Procedimiento...........................................................................................118
ANEXO 3......................................................................................................................................................... 119
BENEFICIOS Y COSTOS ................................................................................................................................119
BENEFICIOS................................................................................................................................................119
Ahorro de Horas Hombre ...........................................................................................................................119
Aumento de productividad ........................................................................................................................119
Ahorro en alquileres de oficinas .................................................................................................................120
Ahorro en costos de operación...................................................................................................................120
Mejoras en la gestión y en la toma de decisiones .......................................................................................121
COSTOS .....................................................................................................................................................121
Unidad de Tecnologías de Información
166
Metodología MDS-α
ANEXO 4......................................................................................................................................................... 122
MATRIZ DE MARCO LOGICO .......................................................................................................................122
FIN .............................................................................................................................................................123
PROPOSITO ................................................................................................................................................123
COMPONENTES .........................................................................................................................................123
ACTIVIDADES .............................................................................................................................................124
INDICADORES ............................................................................................................................................124
PRESUPUESTO ...........................................................................................................................................125
MEDIOS DE VERIFICACIÓN .........................................................................................................................125
SUPUESTOS................................................................................................................................................125
LOGICA DE LA MATRIZ DE MARCO LOGICO .................................................................................................125
DETERMINACION DE LOS OBJETIVOS DE LA MATRIZ DE MARCO LOGICO ....................................................126
ANEXO 5......................................................................................................................................................... 129
HERRAMIENTAS DE LA INGENIERÍA DE REQUERIMIENTOS ..........................................................................129
Entrevistas y Cuestionarios ........................................................................................................................129
Sistemas Existentes....................................................................................................................................130
Grabaciones de Video y Audio....................................................................................................................131
Brainstorming (tormenta de ideas) .............................................................................................................131
Arqueología de Documentos ......................................................................................................................132
Aprendiz ....................................................................................................................................................133
Observación...............................................................................................................................................133
Run Use Case WorkShop ............................................................................................................................133
Prototipos..................................................................................................................................................134
Análisis FODA.............................................................................................................................................135
Modelado Conceptual................................................................................................................................136
Diagrama de Pescado.................................................................................................................................136
Glosario .....................................................................................................................................................138
Lista de Requerimientos.............................................................................................................................138
Checklist ....................................................................................................................................................139
ANEXO 6......................................................................................................................................................... 140
ESTILOS ARQUITECTÓNICOS .......................................................................................................................140
Estilo de Arquitectura de Tuberías y Filtros.................................................................................................144
Estilo de Arquitectura de Pizarra ................................................................................................................145
Estilo de Arquitectura de Programa Principal/Subprograma .......................................................................146
Estilo de Arquitectura Orientada a Objetos.................................................................................................146
Estilo de Arquitectura en Capas..................................................................................................................147
Estilo de Arquitectura Cliente Servidor .......................................................................................................147
Estilo de Arquitectura de Máquina Virtual o Intérprete ..............................................................................148
Estilo de Arquitectura de Control de Procesos ............................................................................................148
Estilo de Arquitectura Modelo Vista Controlador........................................................................................149
ANEXO 7......................................................................................................................................................... 150
NORMALIZACION DE BASES DE DATOS .......................................................................................................150
TERMINOLOGÍA RELACIONAL .....................................................................................................................150
DEPENDENCIA FUNCIONAL ........................................................................................................................151
Axiomas de Armstrong ...............................................................................................................................152
FORMAS NORMALES ..................................................................................................................................153
Unidad de Tecnologías de Información
167
Metodología MDS-α
Primera Forma Normal - 1FN......................................................................................................................153
Segunda Forma Normal – 2FN ....................................................................................................................155
Tercera Forma Normal – 3FN .....................................................................................................................155
Forma Normal de Boyce - Codd - FNBC ......................................................................................................156
Cuarta Forma Normal - 4FN........................................................................................................................157
Quinta Forma Normal - 5FN .......................................................................................................................157
BIBLIOGRAFÍA................................................................................................................................................. 158
Unidad de Tecnologías de Información
168
Descargar