Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0902 - Fundamentos Ingenieria Software PDF
0902 - Fundamentos Ingenieria Software PDF
Versión 0.4.8
23 de diciembre de 2006
Índice general
1. Introducción a la Ingeniería del Software 4
1.1. El software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Características del software . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Evolución del desarrollo del software . . . . . . . . . . . . . . . . . . . . . 5
1.3.1. Primera era (principio de los 50 a mediados de los 60) . . . . . . . 5
1.3.2. Segunda era (mediados de los 60 a nales de los 70) . . . . . . . . 6
1.3.3. Tercera era (nales de los 70 a principios de los 90) . . . . . . . . . 6
1.3.4. Cuarta era (de los 90 en adelante) . . . . . . . . . . . . . . . . . . 6
1.4. Problemas asociados al desarrollo de software . . . . . . . . . . . . . . . . 6
1.5. Las causas de los problemas en el desarrollo del software . . . . . . . . . . 7
1.6. Algunos mitos del desarrollo del software . . . . . . . . . . . . . . . . . . . 7
1.7. La Ingeniería del Software: deniciones, elementos y objetivos generales . 8
1.8. Visión general del proceso de la Ingeniería del Software . . . . . . . . . . . 9
1.8.1. Fase de planicación . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8.2. Fase de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8.3. Fase de mantenimiento . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9. Situación actual de la Ingeniería del Software . . . . . . . . . . . . . . . . 10
1
3.3.3. Estándar ISO/IEC 15505-2 . . . . . . . . . . . . . . . . . . . . . . 22
3.4. Modelos de procesos del software . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1. Modelo en cascada o lineal secuencial . . . . . . . . . . . . . . . . 23
3.4.2. Modelo en cascada con prototipado desechable . . . . . . . . . . . 24
3.4.3. Modelos evolutivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.4. Modelo de desarrollo formal . . . . . . . . . . . . . . . . . . . . . . 28
3.4.5. Técnicas de 4a generación . . . . . . . . . . . . . . . . . . . . . . . 29
5. Ingeniería de Requisitos 38
5.1. Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.1. Tipos de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.1.2. Problemas comunes . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2. Ingeniería de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3. El proceso de Ingeniería de Requisitos . . . . . . . . . . . . . . . . . . . . 39
5.4. Identicación de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4.1. Técnicas o ayudas para la identicación de requisitos . . . . . . . . 40
5.5. Análisis y negociación de requisitos . . . . . . . . . . . . . . . . . . . . . . 42
5.6. Especicación de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.6.1. Naturaleza de la especicación de requisitos . . . . . . . . . . . . . 43
5.6.2. Características de la especicación de requisitos . . . . . . . . . . . 43
5.6.3. Estructura de un documento de especicación de requisitos . . . . 44
5.6.4. Algunas técnicas de especicación de requisitos . . . . . . . . . . . 45
5.7. Validación de requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.8. El uso de prototipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.8.1. Denición de prototipo . . . . . . . . . . . . . . . . . . . . . . . . 46
5.8.2. Tipos de prototipos . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.8.3. Técnicas y herramientas . . . . . . . . . . . . . . . . . . . . . . . . 46
5.8.4. Benecios de los prototipos . . . . . . . . . . . . . . . . . . . . . . 47
2
8. Técnicas y estrategias de prueba 50
8.1. Fundamentos de la prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.2. Principios de la prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.3. Técnicas de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.4. Diseño de casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.4.1. Pruebas de caja blanca . . . . . . . . . . . . . . . . . . . . . . . . 53
8.4.2. Pruebas de caja negra . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.5. Estrategias de prueba del software . . . . . . . . . . . . . . . . . . . . . . 57
8.6. La depuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.6.1. Enfoques para la depuración . . . . . . . . . . . . . . . . . . . . . 59
3
Capítulo 1
4
estropea, aumentando el mantenimiento que necesita. Es el caso, por ejemplo, del
llamado código heredado.
El número de fallos sigue una curva teórica en la que, en la denominada fase ini-
cial, inmediatamente posterior a la implantación, se detectan muchos fallos que,
con el tiempo, se van corrigiendo, de forma que cada vez se detectan menos. Aún
así, sigue siendo necesario un mantenimiento para corregirlos, especialmente cuan-
do existe un gran volumen de cambios, como sucede en el software de gestión.
Pero en la realidad, cada vez que se resuelven un número determinado de errores
se publica una nueva versión sobre la que se detectan más, y, después de apare-
cer varias, la curva real supera bastante a la teórica, necesitando cada vez más
mantenimiento.
5
tratamiento se realiza por lotes (procesos batch). En un proceso se ejecutan todos los
movimientos sin interactuar con el usuario.
A esta era la caracteriza la falta de documentación.
6
Existen dos razones fundamentales que provocan, con frecuencia, la insatisfacción del
cliente.
7
Un conocimiento general de los requisitos es suciente para empezar a escribir los
programas.
Una mala denición inicial es la principal causa del trabajo baldío en software. Se
deben analizar de forma completa los requisitos.
No se puede comprobar la calidad hasta que los programas no estén ejecutándose.
Se deben ir realizando pruebas mientras se desarrolla. Además, desde el principio
del proyecto se puede aplicar uno de los mecanismos más efectivos para garantizar
la calidad del software: la revisión técnica formal.
Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha
terminado.
Los grupos de desarrollo de software no se disuelven hasta que éste no está implan-
tado.
8
Métodos: Conjunto de tareas ordenadas para conseguir un n. Los métodos se desa-
rrollaron para cada una de las fases del desarrollo (análisis, diseño, implementación,
etc.), y un conjunto de varios con una losofía común componen una metodología.
Técnicas: Ayudan con las dicultades para llevar a cabo lo que se indica en los
métodos.
9
Correctivo: Cambia el software para corregir los defectos.
El reto de lo heredado
Existe demasiado software antiguo que es fundamental para empresas de hoy y que,
al deteriorarse, posee un mayor índice de fallos y necesita un mantenimiento muy alto.
El reto de la heterogeneidad
El software debe correr en muchas arquitecturas y sobre sistemas operativos distintos.
Esto afecta a la abilidad del software, es más fácil que falle.
El reto de la entrega
Se necesitan aprender técnicas, herramientas, etc., para ser más productivos y entregar
los proyectos a tiempo. Sin embargo, este aprendizaje reduce el tiempo que se puede
dedicar al desarrollo.
10
Capítulo 2
11
completar su signicado si es incompleto.
12
A principios del siglo XIX, la Revolución Industrial cambió el concepto de trabajo
artesanal por la especialización y división del trabajo. Las personas se organiza-
ron en secciones o departamentos que se coordinaban mediante el intercambio de
información. Se empleaba el papel, el lápiz y los archivadores como sistemas de
información.
A principios del siglo XX, el tamaño y complejidad de las empresas hizo que la
gestión de la información empleara a multitud de ocinistas o administrativos que
manejaban ingentes cantidades de impresos, chas clasicadas en archivadores, etc.
Se empleaba la máquina de escribir, calculadoras mecánicas...
El nal del siglo XX y principios del siglo XXI se caracterizan por el empleo de
sosticadas tecnologías de la información para los actuales sistemas de información.
Los sistemas mecánicos se sustituyen por los informáticos.
2.4.1. Denición
Un Sistema de Información es un conjunto integrado de personas, procedi-
mientos, información y equipos diseñados, construídos, operados y manteni-
dos para recoger, registrar, procesar, almacenar, recuperar y visualizar infor-
mación.
2.4.2. Elementos de un SI
Un Sistema de Información posee los siguientes elementos:
Componentes:
• Los procedimientos y las prácticas habituales que se siguen al ejecutar toda
clase de actividades necesarias para el buen funcionamiento de la empresa.
Un procedimiento es la regularización de las acciones para llevar a cabo una
actividad de la empresa. No existen procedimientos para todas, y en tales
casos lo que existe son prácticas habituales.
• La información y que es el componente fundamental.
• Las personas o usuarios que introducen, manejan o usan la información para
realizar sus actividades.
• El equipo de soporte para la entrada, el procesamiento, el almacenamiento y
la comunicación de información.
Estructura: Un Sistema de Información indica:
• La información que necesita. También se debe tener en cuenta la información
de la que se dispone.
• Las personas a las que va dirigido.
• Los equipos (que pueden ser informáticos).
Objetivo u objetivos: Ayudar al desempeño de las actividades productivas y de
decisión en todos los niveles de la organización, mediante el suministro de la in-
formación adecuada, con la calidad suciente, a las personas apropiadas, en el
momento y lugar oportunos, y con el formato más útil para el receptor.
13
2.4.3. Estructura de la información en un SI
Sigue el modelo planteado en la siguiente imagen:
Nivel táctico: Se ocupa de la asignación efectiva de los recursos a medio plazo para
mejorar el rendimiento de la empresa. Se basa en análisis de informes:
14
• Especícos, que no se han pedido antes, y que los directivos necesitan con
rapidez para resolver un problema muy concreto.
Nivel estratégico: Trabaja con plazos largos para acometer la difícil tarea de de-
cidir las líneas maestras que debe seguir la empresa en el futuro. Se trabaja con
información del tipo:
DSS (Decision Support System, Sistema de Apoyo a las Decisiones): Parte del Sis-
tema de Información que da soporte a las decisiones poco estructuradas y en las
que de antemano no están claros los factores a considerar, mientras que el MIS
trata los procesos de ayuda a la toma de decisiones bien denidos y en los que se
conoce a priori qué información es necesaria.
15
2.6. Sistemas de Información básicos en las organiza-
ciones
Un ERP (Enterprise Resource Planning) es un sistema automatizado de gestión em-
presarial que da soporte a las distintas áreas funcionales de una organización de una
forma integrada y coordinada.
En realidad es un conjunto de aplicaciones especializadas en cada área, alguna de las
cuales se considera básica y alrededor de ella se instalan las demás. La implantación de
un ERP exige una personalización a las características y circunstancias de cada empresa.
Algunas ventajas de los ERP son:
16
Capítulo 3
Recursos: Bienes que se usan para realizar las actividades y tareas y son requeridos
por éstas.
Desarrollo.
Mantenimiento.
17
• El contexto del problema a resolver (límites del problema).
• Las funcionalidades que se espera que resuelva el sistema.
• Las restricciones y condiciones de uso.
Especicación de requerimientos: Un analista intenta comprender los requisitos y
dene las especicaciones que los satisfacen y que describen la conducta externa
del sistema, lo qué se supone que debe hacer, no cómo lo hace. Hay que asegurarse
de que concuerdan con los requisitos, puesto que son el punto de partida para el
diseño.
Diseño: Sa nalidad fundamental es describir cómo va a desarrollar las especica-
ciones el sistema a construir. El resultado nal es una especicación precisa de la
estructura del software que satisfaga los requerimientos con la calidad necesaria.
Comprende:
• Estructura de los datos a implementar.
• Arquitectura del software.
• Representaciones de interfaz.
• Determinar los algoritmos.
Construcción: Cada unidad nal es codicada y se incluye en esta fase la prueba
individual para vericar su correcto funcionamiento. Para la construcción, el en-
cargado recibe un cuaderno de carga con la descripción del programa. En función
de su contenido, se pasa a realizar una de las siguientes actividades:
• Programar: Se reciben sólo las unidades de programación, y se deben realizar
los diagramas, organigramas, etc.
• Codicar: Generar código propiamente dicho.
Pruebas: Se comprueba que se está construyendo el producto correcto, y que se
está construyendo correctamente el producto. Incluye las pruebas de integración
(comprobar que todas las partes del sistema funcionan correctamente en conjunto),
de aceptación y del sistema.
Implantación: Se elabora la documentación necesaria para la operación y uso del
sistema, se imparte la formación precisa, se realiza la carga inicial de datos y se
pone el sistema en funcionamiento.
18
Nivel 1: Inicial
El proceso software se realiza en cada caso de una manera e incluso de forma caótica.
El éxito depende de esfuerzos personales más que de procesos adecuadamente denidos.
No hay un proceso denido implícita o explícitamente.
Nivel 2: Repetible
Se establecen unos procesos básicos de gestión del proyecto para hacer un seguimiento
del coste y calendario. Se establecen ciertas actividades para llevar a cabo un proyecto
necesarias para repetir éxitos anteriores en proyectos similares. Una función de calidad
asegura que se realizan dichas actividades.
Se obtienen niveles de calidad parecidos a proyectos anteriores.
Nivel 3: Denido
El proceso software está documentado y constituye el proceso estándar de la orga-
nización. La organización tiene denidos sus procesos y existe un procedimiento formal
que asegura que el proceso se sigue en todos los proyectos.
Existen pocas organizaciones que superan este nivel, debido al coste que supone alcanzar
el siguiente.
Nivel 4: Gestionado
Se recopilan medidas del proceso software y de la calidad del producto. Se gestiona
la calidad del proceso y del producto. Se pueden usar dichas medidas (métricas del
software) para detectar situaciones excepcionales y corregirlas.
Nivel 5: Optimizado
Es posible una mejora, una optimización continua del proceso, cuanticando el efecto
que un proceso nuevo o herramienta tienen sobre un proyecto y comparándolo con pro-
yectos anteriores que no utilizaron ese proceso o herramienta.
Este nivel representa una cierta analogía en la supervisión y control de la calidad del sof-
tware con los mecanismos de control que existen en otras industrias con mayor madurez.
19
3.3.1. Estándar IEEE 1074
Dene las actividades que constituyen los procesos necesarios para el desarrollo y el
mantenimiento del software, así como las de los procesos de gestión y soporte a lo largo
de todo el ciclo de vida. Las actividades pueden ser obligatorias u opcionales.
Los procesos se agrupan en 4 secciones, 17 procesos y 65 actividades. A continuación se
detallan las primeras.
Procesos integrales
Son los procesos que se necesitan para completar con éxito las actividades del desa-
rrollo de un proyecto. Comprende los procesos de:
Vericación y validación.
Gestión de la conguración del software.
Desarrollo de la documentación.
Entrenamiento.
El estándar requiere la selección de un modelo de ciclo de vida pero no implica ninguno
determinado (ninguno de los estándares lo hace). Cada organización debe seleccionar y
asociar las actividades denidas en el estándar al modelo del ciclo de vida del software
seleccionado.
El seguimiento del estándar no implica el uso de ningún método especíco, ni la creación
de determinados documentos. Prescribe los procesos del ciclo de vida, no los productos
del mismo.
El requisito de conformidad con el estándar es la realización de todas las actividades
obligatorias.
20
3.3.2. Estándar ISO/IEC 12207-1
Muestra los procesos (conjuntos de actividades), actividades (conjuntos de tareas) y
tareas (acciones que transforman entradas en salidas) que se necesitan durante:
El suministro.
El desarrollo.
La explotación.
El mantenimiento.
Los procesos pueden ser: principales (5), de soporte (8) o generales (4), así como un
proceso que permite adaptar el ciclo de vida a cada caso concreto.
Procesos principales
Útiles a las personas que inician o realizan el desarrollo, la explotación o el manteni-
miento del software: compradores, suministradores, personal de desarrollo, operadores y
personal de mantenimiento del software. Ejemplo de procesos de desarrollo son el análisis
de requisitos, el diseño software, la construcción y las pruebas.
Procesos de soporte
Sirven de apoyo al resto y contribuyen al éxito y calidad del proyecto software. Los
procesos que pertenecen a esta categoría son la documentación, la gestión de congura-
ción, el aseguramiento de calidad, la vericación y la validación.
21
Procesos generales
Pueden establecerse dos niveles:
A nivel proyecto: También considera los procesos de gestión del proyecto, gestión
de la calidad y gestión del riesgo. Se realizan para cada proyecto.
22
de un conjunto de características de éste.
Existe una gran variedad de modelos diferentes entre los que tenemos los que se describ-
cen a continuación.
23
3.4.2. Modelo en cascada con prototipado desechable
Trata de resolver algunos de los inconvenientes que presenta el modelo en cascada,
fundamentalmente el problema que representa disponer de unos requisitos completos y
consistentes al principio del desarrollo y la detección de errores en la fase de integración
provenientes de la fase de análisis.
Características del modelo: Divide el ciclo de vida en dos partes.
En la parte A, se construye un prototipo rápido o desechable, que ayudará a renar
y validar los requerimientos.
En la parte B, el desarrollo posterior prosigue en cascada.
Presenta una serie de ventajas:
Se dispone desde muy temprano de unos requerimientos completos y consistentes.
Facilita el desarrollo en lo que respecta a la interfaz de usuario.
Ayuda a mitigar el efecto bola de nieve al reducir el mantenimiento como conse-
cuencia de disponer de unas especicaciones completas y correctas, aunque no lo
elimina al continuar el desarrollo en cascada.
Así como de inconvenientes:
Es frecuente arrastrar malas decisiones (de diseño, de planicación, etc.) que sólo
eran apropiadas para la obtención rápida del prototipo y cuya implementación real
puede ser muy costosa.
El prototipo sólo puede ser aprovechado en su aspecto externo. Los aspectos fun-
cionales son muy reducidos.
El tiempo invertido en la construcción del prototipo y el coste adicional de la
inversión que supone la creación de un producto desechable.
Las características del proyecto que hacen adecuado el uso de este modelo son que:
El usuario no tenga un buen conocimiento del dominio.
Sea un proyecto corto.
Haya pocos cambios en los requisitos.
24
Modelo incremental
Este modelo entrega el software en partes pequeñas, pero utilizables, llamadas incre-
mentos. En general, cada incremento se construye sobre aquél que ya ha sido entregado.
Características del modelo:
Combina elementos del modelo lineal secuencial con la losofía iterativa propia de
los modelos evolutivos. Se realizan una serie de iteraciones sobre el propio modelo
en cascada.
Cada iteración produce un incremento, una versión más renada del sistema,
hasta alcanzar una que satisfaga plenamente los requisitos del usuario .
Cada incremento es un producto totalmente operativo que se entrega al usuario (se
pone en explotación).
Una vez establecida la arquitectura global el sistema se desarrolla incremento a
incremento.
25
Si existen alternativas (por ejemplo desarrollar cada subsistema por separado) es
mejor utilizar otros modelos.
Modelo en espiral
Propuesto por Boehm y actualmente muy conocido, es un modelo evolutivo que con-
juga aspectos sistemáticos del modelo lineal secuencial con la naturaleza iterativa propia
de este tipo de modelos. En el modelo en espiral, el software se desarrolla en una serie
de versiones incrementales. Durante las últimas iteraciones, se producen versiones cada
vez más completas del sistema.
26
No hay fases jadas de antemano en este modelo. Se pueden usar fases del modelo
de prototipos para resolver un problema con los requisitos y disminuir el riesgo,
seguido de fases del modelo en cascada u otro.
Las características del proyecto que hacen adecuado el uso de este modelo son que:
Ligado a la OO.
27
3.4.4. Modelo de desarrollo formal
Los métodos formales permiten especicar, implementar y vericar un sistema sof-
tware aplicando una notación matemática rigurosa con lo que se eliminan los problemas
de ambigüedad. Se precisa de un proceso de transformación que convierta fácilmente los
requerimientos en código.
Características del modelo:
Se realizan una serie de iteraciones sobre el código obtenido con objeto de mejorarlo.
Pocos desarrolladores tienen los conocimientos necesarios para aplicar estos mode-
los.
La característica del proyecto que hace adecuado el uso de este modelo es que se deba
construir software muy conable y se disponga de equipos de desarrollo con los conoci-
mientos necesarios.
28
3.4.5. Técnicas de 4a generación
Especicación usando formas de un lenguaje especializado o notaciones grácas que
describan el problema a resolver en términos que los entienda el usuario y posteriormente
generar automáticamente el código.
Características del modelo:
Mayor productividad.
Y como inconvenientes:
Código ineciente.
Las características del proyecto que hacen adecuado el uso de este modelo son que:
29
Capítulo 4
Un modelo de ciclo de vida indica qué actividades hay que hacer y cómo se enca-
denan, pero no cómo hacerlas. Esto sí lo deberían indicar los métodos.
30
De la década de los 60 a los 70, el descenso de los precios del hardware y el aumento de
potencia de los ordenadores propició un aumento en la complejidad de las aplicaciones.
Se propusieron muchos métodos para enfrentarse a ella, y los más inuyentes fueron los
métodos estructurados orientados al ujo de los datos (Yourdon y Constantine).
De la década de los 70 al 85, surgieron los métodos orientados a la estructura de los datos
(Jackson, Warnier-Orr) que, junto a los métodos estructurados orientados al ujo de los
datos, se han aplicado con éxito a una serie de dominios complejos, particularmente a
los sistemas de gestión de la información.
De 1985 a 1990, se llevan a cabo ampliaciones, como por parte de Ward y Mellor, para el
desarrollo de aplicaciones de tiempo real, donde los métodos estructuras no se mostraban
como una solución óptima.
De 1990 en adelante se han extendido los métodos orientados a objetos, métodos formales,
etc.
31
• Orientados a la estructura de los datos/a datos: Se centran en la estructura de
los datos en vez de en el ujo de éstos. Se utilizan para desarrollar software de
base como sistemas operativos y aplicaciones de gestión cuando utilizan bases
de datos jerárquicas. Aunque cada método tiene un enfoque y una notación
distinta, todos poseen características comunes:
◦ Asumen que la estructura de la información es jerárquica.
◦ Requieren que se represente la estructura de los datos usando las estruc-
turas básicas iterativa, selectiva y secuencial.
◦ Proporcionan un conjunto de pasos para transformar una estructura je-
rárquica de datos en una estructura de programa.
Las notaciones que utilizan dependen del método, para el DSED (Desarrollo
de Sistemas Estructurados de Datos) se utilizan diagramas de Warnier y de
entidades (muy parecidos a los DFD), y para el DSJ (Desarrollo de Sistemas
de Jackson), diagramas de Jackson y de especicación del sistema.
• Aplicaciones de tiempo real: A mediados de los 80 comenzaron a hacerse evi-
dentes las deciencias de los métodos estructurados cuando se intentaban uti-
lizar en aplicaciones de tiempo real). Las ampliaciones derivaron en el método
de Ward y Mellor en 1985, y más tarde en el de Hatley y Pirbhai en 1987.
En cuanto a notaciones, la de Ward & Mellor incorpora a los DFDs ujos de
control que se representan mediante echas de trazo discontinuo y procesos
de control. Sólo manejan ujos de control, que también se representan con
burbujas de trazo discontinuo.
Orientados a objetos: A diferencia de los métodos estructurados, que consideran los
sistemas de información como entradas-proceso-salidas, en la POO se identican
los objetos, que son objetos del mundo real, y que encapsulan datos y procesos. En
el análisis se trata de construir un modelo abstracto de objetos, que se traducen
a objetos del sistema durante el diseño, y que a su vez son traducidos a objetos
software (rutinas) durante la construcción.
La correspondencia más directa entre el programa que funciona y los requisitos
originales facilita el mantenimiento. Estos métodos son muy adecuados para el
desarrollo de sistemas interactivos.
No existe una notación estándar, sino que es especíca para cada método. Con
UML (Unied Modeling Language) tenemos, entre otros, diagramas de clases, de
objetos, de secuencia, de casos de uso...
Ejemplos de estos métodos son: Booch, OMT, Objectory/OOSE, FUSION, OOram,
Proceso Unicado, Rational Unied Process...
Métodos formales: Utilizan técnicas de base matemática para describir las propie-
dades del sistema. Estos métodos permiten especicar, desarrollar y vericar los
sistemas de manera sistemática en vez de hacerlo ad hoc. Se dice que un método es
formal si posee una base matemática estable, que normalmente vendrá dada por un
lenguaje de especicación formal. Pocos desarrolladores tienen los conocimientos
necesarios para aplicarlos, y se utilizan para desarrollar software muy seguro.
Como ejemplos de algunos lenguajes de especicación formal se encuentran: PSL/PSA
(Problem Statement Language/ Problem Statement Analyzer), OBJECT Z y CSP
(Communicating Sequential Processes).
32
4.4. Metodologías
4.4.1. Denición
Una metodología es un conjunto de métodos aplicados a lo largo del ciclo de vida del
desarrollo de software, unicados por alguna aproximación general o losóca.
Por ejemplo, para cada proceso principal, Métrica v3 especica una descripción del pro-
ceso y un diagrama de actividades. Para cada actividad especica:
Descripción de la actividad.
Tareas de que consta.
Productos generados por la actividad.
Técnicas utilizadas.
Participantes.
Las tres últimas se especican a nivel de tarea, pero no de actividad.
Para cada tarea especica:
Descripción de la tarea.
Productos.
33
De entrada.
De salida.
Técnicas.
Participantes.
4.4.3. Características
Las metodologías dan una cobertura total del ciclo de vida del desarrollo, son exibles
con relación al tamaño del proyecto a desarrollar, permiten una fácil formación y están
soportadas por herramientas automatizadas. Ademaás, son personalizables: se precisa un
proceso de personalización para adaptar una metodología foránea a una organización.
No es razonable pensar que dos organizaciones utilicen la misma metodología sin realizar
cambios sobre ella.
Por último, presentan enlaces (interfaces) con procesos de gestión, aseguramiento de la
calidad, gestión de la conguración...
4.4.4. Objetivos
Los objetivos generales de las metodologías son:
4.4.5. Clasicación
Las metodologías se pueden clasicar en:
Estructuradas.
Orientadas a procesos.
Orientadas a datos.
34
Orientadas a objetos.
Formales.
Mixtas.
4.5.1. Merise
Es la metodología ocial francesa. Sas bases fueron creadas por un pequeño grupo
universitario de ingenieros hacia nales de 1976, pero el proyecto de desarrollar una
metodología parte del Centre Technique Informatique (CTI) del Ministerio de Industria
francés y su lanzamiento se realiza en 1979.
Como aportaciones, considera un ciclo de vida más largo que los existentes, incorporando
una nueva actividad de planicación previa al desarrollo, que denomina esquema direc-
tor.
Además, considera tres niveles de abstracción:
Para cada nivel dene dos modelos, un modelo de datos y un modelo de tratamientos.
Tuvo alguna difusión en España y ha inuido en Métrica.
4.5.2. SSADM
Nació a principios de la década de los 80, promovida por el gobierno británico. Se
desarrolló de forma conjunta por la Central Computing and Telecomunications Agency y
Learmonth and Burchett Management Systems. Desde su nacimiento ha ido evolucionan-
do para adaptarse, de forma muy abierta, a los cambios tecnológicos; así, la v3 incorporó
la técnica diseño del diálogo para diseñar la interfaz de usuario y afrontar el crecimiento
del interactivo.
Sólo cubre el análisis y el diseño, considerando las fases de:
Estudio de viabilidad.
Diseño físico.
35
Deja fuera la construcción, pruebas e implantación, y por supuesto las actividades de
planicación y mantenimiento.
Como aspectos clave presenta el énfasis en la participación de los usuarios, y la libre
disposición tanto en entornos industriales como académicos, lo que ha sido benecioso
para la aparición de numerosas herramientas que soportan la metodología.
Al igual que Merise, ha inuido en Métrica.
4.5.3. Métrica v3
Puesto que Métrica es la metodología ocial española, será la que se trate en mayor
profundidad.
Objetivos
Comparte los objetivos de todas las metodologías, que se pueden consultar en el
apartado 4.4.3. Además, los objetivos especícos de Métrica v3 son:
Interfaces
Incorpora interfaces con gestión de proyectos, calidad (PGGC, Plan General de Ga-
rantía de Calidad), gestión de la conguración del software y seguridad (MAGERIT).
Ámbito de aplicación
Promovido por el Consejo Superior de Informática del Ministerio para las Admi-
nistraciones Públicas (órgano interministerial responsable de la política informática del
Gobierno).
En orden descendente, se aplica en:
Administración Autonómica.
Administración Local.
Alcance de la metodología
Métrica ha sido concebida para abarcar el desarrollo completo de sistemas de in-
formación sea cual sea su complejidad y magnitud, por lo cual su estructura responde
a desarrollos máximos y deberá adaptarse a las dimensiones y características de cada
proyecto en particular y al modelo de procesos escogido.
36
Versiones
1. Data de 1989.
2. Data de 1993. La versión 2.1 fue publicada en 1995.
3. Data de 2000.
Inuencias
De los métodos SSADM v4 y Merise.
De los estándares ISO 12207, IEEE Std. 1074-1998, ISO/IEC TR 15.504 (SPICE), ISO
9000-3, IEEE Std. 610.12-1998 y el estándar UML de OMG.
En cuanto a referencias especícas, PGGC y MAGERIT.
Aportaciones
Es una metodología mixta, cubre los enfoques estructurado y OO), al contrario que
Merise y SSADM, que son estructuradas.
Contempla la arquitectura cliente-servidor y las GUI (Graphical User Interface).
Desarrolla los procesos principales de planicación, desarrollo y mantenimiento.
Estructura
Se compone de procesos principales que a su vez se dividen en procesos, éstos en
actividades (comunes, estructuradas u orientadas a objetos), y estas últimas en tareas.
A continuación se detallará la información que suministra de cada uno.
Proceso principal: Descripción general.
Proceso: Descripción general y productos generados.
Actividad: Descripción y tareas de que consta. Productos generados por la activi-
dad, técnicas utilizadas y participantes (estos tres últimos datos se indican a nivel
de tarea, no de actividad).
Tarea: Descripción, productos de entrada y de salida, técnicas y participantes.
Procesos
Planicación de Sistemas de Información (PSI).
Desarrollo de Sistemas de Información:
• Estudio de Viabilidad del Sistema (EVS).
• Análisis del Sistema de Información (ASI).
• Diseño del Sistema de Información (DSI).
• Construcción del Sistema de Información (CSI).
• Implantación y Aceptación del Sistema (IAS).
Mantenimiento de Sistemas de Información (MSI).
37
Capítulo 5
Ingeniería de Requisitos
5.1. Requisitos
Cuando se realiza un proyecto, el primer paso es la obtención de requisitos, pregun-
tando al usuario qué servicios quiere que lleve a cabo, y las condiciones en que se va
a ejecutar, lo que se denominan condiciones de uso. La primera de las actividades en
muchos modelos del ciclo de vida es la obtención de los requisitos.
Los requisitos denen: los servicios que el sistema debe proporcionar a los usuarios, y las
restricciones y condiciones de uso.
La denición de los requisitos debe ser el fruto del trabajo conjunto de las partes invo-
lucradas como son los desarrolladores y usuarios. Los usuarios son los únicos que tienen
poder para modicar, añadir, quitar, etc., un requisito. El desarrollador sólo actúa como
notario.
Un usuario es el conocedor del dominio de aplicación, del área del proyecto. Por ejemplo,
si se desarrolla un proyecto de contabilidad, el usuario debe conocerla. Si el dominio es
abordable desde diferentes puntos de vista, cada uno que lo conoce es un usuario.
Por otra parte, los encargados de elaborar los requisitos son los analistas funcionales,
que no necesitan ser informáticos ni conocedores del dominio porque el análisis no forma
parte de las actividades técnicas informáticas, que comienzan en la fase de diseño.
38
Los requisitos no reejan las necesidades reales de los usuarios del sistema software.
Es difícil introducir cambios en los requisitos una vez estos han sido consensuados
entre usuarios y desarrolladores.
La causa de estos problemas es una falta de entendimiento entre los usuarios y aquéllos
que desarrollan el sistema software.
39
5.4. Identicación de requisitos
La identicación de requisitos es la actividad mediante la cual los usuarios y desarro-
lladores describen los requisitos que desean que satisfaga el sistema software a desarrollar.
Los problemas más comunes en la identicación de requisitos son:
Fijar el alcance o límites del sistema: Si cambian los objetivos, el proyecto también
cambia en gran medida.
Examen de archivos
Técnica básica para obtener información cuantitativa: volúmenes, frecuencias, ten-
dencias, ratios, etc.
También proporciona ayuda para medir el nivel de conanza que se puede depositar en
las estimaciones cuantitativas dadas por el usuario.
Muestreos
Es útil cuando se pide información relativa a un gran volumen de documentos o
actividades que se repiten con mucha frecuencia. En este caso es aceptable examinar
documentos o actividades escogidas al azar.
Por lo menos, debería realizar un muestreo aleatorio simple con un tamaño de muestra
de 30 individuos.
40
Cuestionarios
Son difíciles de diseñar y de interpretar, por lo que su uso debe restringirse a los casos
de localidades remotas o cuando la información deba proporcionarla un número elevado
de personas.
Entrevistas
Es la técnica principal y la que más se usa. En ellas, una o varias personas, desarro-
lladores y usuarios, se reúnen para que estos últimos indiquen los servicios que quieren y
las condiciones de uso en las que se desarrollarán. El analista debería tomar una copia de
cualquier documento que le pueda proporcionar el usuario. Con sus apuntes, documentos,
etc., debe elaborar un acta que después será aprobada por ambas partes.
Un analista debe contar con las siguientes características:
Imparcial.
Ponderado.
Buen oyente.
Habilidad en el trato.
Cordialidad y accesibilidad.
Paciencia.
Las entrevistas requieren de un método que podemos establecer en los siguientes pasos:
Planicación de la entrevista (antes de realizar la entrevista): Fijar a quién se debe
entrevistar, contando con la aprobación previa. Se informa al entrevistado con
antelación del contenido de la entrevista, y se reúne toda la información existente
sobre el contenido antes de realizar la entrevista. Finalmente, convenir día, hora y
lugar.
Realización de la entrevista: Deberá llevarse a cabo en un ambiente apropiado y lo
más exento posible de interrupciones. Conviene ser puntual, identicarse y explicar
el objetivo de la entrevista.
En el desarrollo, se debe ir de lo general a aspectos más detallados, empezando por:
• Funciones - entradas - salidas (lo que hace)
• Salidas - funciones - entradas (los documentos que maneja)
Se debe utilizar un estilo apropiado y evitar la tentación de argumentar, dar con-
sejos o envolver emocionalmente al entrevistado (esto último modicará su actitud
de cara a próximas entrevistas).
Finalización de la entrevista: Vericaremos las notas con la persona entrevistada,
le expresaremos nuestro agradecimiento y dejaremos el camino abierto para nuevos
contactos.
Consolidación (después de la entrevista): Se debe organizar y completar si fuera
preciso las notas recogidas, elaborar un acta que debe ser entregada a todos los par-
ticipantes, recabar cuantas consideraciones sean precisas en relación a su contenido
y conseguir que el usuario lo apruebe.
41
Reuniones
Cuando los diferentes aspectos en relación a un tema son conocidos por distintas per-
sonas es preciso reunirlas para obtener una información lo más completa posible sobre
dicho tema. El responsable de la reunión suele ser el desarrollador.
Existen una serie de problemas especícos para la aplicación de esta técnica, fundamen-
talmente los derivados de la dinámica de grupos.
42
Si el requisito es necesario.
Si algún requisito tiene un nivel de detalle inapropiado.
Si el requisito está bien delimitado y sin ambigüedad.
Si existen requisitos incompatibles con otros.
Si se puede probar el requisito una vez implantado.
Si cada requisito tiene un origen conocido.
43
y tipos de entradas de datos en cualquier situación que pueda presentarse. Hay
que tener presente que esto supone que deben especicarse tanto las respuestas a
entradas válidas como a las que no lo son.
1. Introducción
2. Descripción general.
3. Requisitos especícos.
4. Apéndices.
5. Glosario.
44
5.6.4. Algunas técnicas de especicación de requisitos
Se pueden utilizar lenguajes grácos: DFDs, E/Rs, Diccionario de datos, etc. Tam-
bién existen técnicas de especicación formal:
Si un requisito está relacionado con otros, ¾están claramente identicadas las rela-
ciones por medio de una matriz de referencias cruzadas?
Es casi imposible predecir cómo un nuevo sistema afectará a sus prácticas de tra-
bajo.
45
5.8.1. Denición de prototipo
Un prototipo es una versión inicial de un sistema software o de parte de él que se
construye de forma rápida y barata y que se utiliza para demostrar conceptos, probar op-
ciones y, de forma general, enterarse más del problema a resolver y sus posibles soluciones.
Así, se consigue anticiparse a la evolución de los requisitos.
Por la robustez
Prototipo funcional (Keep-it): El prototipo es sucientemente robusto y eciente
para que se pueda traspasar a producción directamente. Estos prototipos permiten
al usuario almacenar datos y realizar operaciones con esos datos.
Prototipado desechable (Throw-away): El prototipo se usa sólo para captar y validar
los requisitos del sistema.
46
Lenguajes formales de especicación y herramientas.
47
Capítulo 6
48
Capítulo 7
49
Capítulo 8
50
hasta entonces.
En las pruebas se deben distinguir dos términos importantes:
Vericación: Se corresponde con actividades para comprobar si un producto sof-
tware está técnicamente bien construido, es decir, si funciona.
Validación: En general, se trata de comprobar si el software construido satisface los
requisitos del usuario.
Recorridos
Un equipo de recorrido consta de una persona revisada y de tres a cinco revisores. La
persona revisada recorre el producto y los revisores preguntan sobre aspectos relacio-
nados con él. Los revisores pueden ser el jefe del proyecto, otros miembros del equipo de
desarrollo, del grupo de control de calidad, personal técnico, el usuario... El objetivo es
51
descubrir errores que no se resuelven durante la sesión de recorrido.
Como principios generales se debe tener en cuenta:
Planicar las sesiones de recorrido.
Una sesión de recorrido es para detectar errores, no para corregirlos.
Se deben atender aspectos principales.
Una sesión no debe durar más de dos horas.
El éxito depende mucho del establecimiento de una atmósfera agradable.
No deben usarse para evaluar al revisado.
Inspecciones
Según IEEE...
Una inspección es una técnica de evaluación o prueba en la cual las especi-
caciones de requisitos, las especicaciones funcionales, las especicaciones
técnicas, cuadernos de carga, los manuales de usuario y explotación, etc.,
se examinan en detalle, por una persona o grupo distintos del autor, para
detectar defectos, disconformidades con las normas de desarrollo y otros pro-
blemas.
Los grupos de inspección constan de uno a cuatro miembros, inspectores, preparados para
realizar esta labor. Las inspecciones deben ser dirigidas por moderadores preparados y
entrenados para tal n. Cada inspector, si son varios, tiene una tarea concreta para
incrementar la efectividad, y trabajan a partir de listas preparadas para su tarea con el
n de incrementar el descubrimiento de defectos.
Análisis estático
Sirve para valorar las características estructurales de cualquier representación que si-
ga unas reglas sintácticas bien denidas. En el código fuente es una técnica para valorar
sus características estructurales. Se examina la estructura del código, pero éste no se
ejecuta.
El objetivo es detectar prácticas de codicación cuestionables y el no cumplimiento de
estándares, así como variables no inicializadas, código aislado, etc.
Normalmente se utilizan herramientas automatizadas denominadas analizadores estáti-
cos.
52
Ejecución simbólica
Es una técnica de validación en la que a las variables de entrada a un programa se
les asignan valores simbólicos en vez de valores literales.
Un programa se analiza propagando los valores simbólicos de las entradas a través de los
cálculos, y las expresiones simbólicas resultantes se simplican a cada paso del cálculo,
de manera que los resultados se expresan siempre en términos de las entradas simbólicas.
Vericación formal
La vericación formal implica el uso de técnicas matemáticas rigurosas para demos-
trar que los programas tienen ciertas propiedades deseables. Dentro de las técnicas de
vericación formal las más empleadas son:
53
prueba que los ejecuten, o sea, generar casos de prueba que ejecuten exhaustivamente la
lógica del programa.
Desgraciadamente, incluso para programas pequeños el número de caminos lógicos puede
ser enorme, sin embargo, no se debe desechar la prueba de la caja blanca como imprac-
ticable. Lo que tenemos que hacer es elegir una serie de caminos lógicos importantes
que:
Que se ejecuten todas las decisiones lógicas en sus vertientes verdadera y falsa.
Entre las pruebas de la caja blanca vamos a considerar las que se detallan a continuación.
Camino lógico: Conjunto de caminos que durante la prueba garantizan que se eje-
cuta exhaustivamente la lógica del programa.
Complejidad ciclomática: Es una métrica del software que proporciona una medi-
ción cuantitativa de la complejidad lógica de un programa. En el contexto de la
prueba del camino básico dene el límite superior del número de pruebas que se
deben realizar para asegurar que se ejecuta al menos una vez cada sentencia.
54
3. Determinamos un conjunto básico de hasta V(G) caminos linealmente independien-
tes.
4. Preparamos los casos de prueba que forzarán la ejecución de cada camino del con-
junto básico.
Prueba de condiciones
Se centra en la prueba de cada una de las condiciones de un programa. Si una condición
es incorrecta, al menos un componente de la condición lo es.
Como conceptos, son dignos de destacar:
Condición simple: es una variable lógica o una expresión relacional que toma la
forma de dos expresiones aritméticas, y un operador relacional entre ellas, es decir,
E1 < operadorrelacional > E2. <, >, =, etc., son operadores relacionales.
Condición compuesta: Formada por dos o más condiciones simples, operadores ló-
gicos y paréntesis. OR, AND, NOT, etc., son operadores lógicos.
Los componentes de una condición son:
Operador lógico.
Paréntesis.
Operador relacional.
Expresión aritmética.
Un error en una condición puede ser por un error en cualquier de dichos componentes.
Para una condición simple, se deben generar casos de prueba que ejecuten al menos una
vez las ramas verdadera y falsa de la condición.
Para una condición compuesta, se deben generar casos de prueba que ejecuten al menos
una vez las ramas verdadera y falsa de la condición compuesta y las ramas verdadera y
falsa de cada condición simple.
Prueba de bucles
La prueba de bucles se centra exclusivamente en la validez de la construcción de
bucles. Los bucles aparecen en la mayoría de los algoritmos implementados en el software
y es por ello que debemos prestarles atención cuando llevamos a cabo la prueba del
software. Podemos considerar cuatro tipos de bucles: simples, anidados, concatenados y
no estructurados. Para cada uno de ellos se deben obtener unos casos de prueba.
Bucles simples: Si n es el número máximo de iteraciones del bucle, generar casos
de prueba que permitan:
• Pasar por alto totalmente el bucle.
• Pasar una sola vez por el bucle.
• Pasar dos veces por el bucle.
• Hacer m pasos por el bucle, con m < n.
55
• Hacer n − 1, n y n + 1 pasos por el bucle.
Bucles anidados: Si aplicáramos el enfoque de los bucles simples el número de prue-
bas aumentaría geométricamente a medida que aumentara el nivel de anidamiento.
Para evitarlo, Beizer propone:
1. Llevar a cabo las pruebas de bucles simples con el bucle más interior. Con-
gurar el resto de bucles con sus valores mínimos.
2. Progresar hacia afuera, llevando a cabo pruebas para el siguiente bucle, mante-
niendo los bucles externos en sus valores mínimos y los internos en sus valores
típicos.
3. Continuar hasta probar todos los bucles.
Bucles concatenados: La prueba depende de que los bucles concatenados sean inde-
pendientes o no. Dos bucles concatenados no son independientes si se usa el contador
del primero como valor inicial del contador del segundo. Si son independientes, se
debe probarlos como los bucles simples, y si no, como los bucles anidados.
Partición equivalente
Se divide el dominio de valores de entrada en un número limitado de clases de equiva-
lencia. La prueba de un valor representativo de la clase permite suponer razonablemente
que el resultado obtenido será el mismo que probando cualquier otro valor de la clase.
Entre los conceptos, destaca el de clase de equivalencia, un conjunto de estados válidos
o de estados inválidos para una condición de entrada. Típicamente, una condición de
entrada puede ser: un valor numérico especíco, un rango de valores, un conjunto de
valores o una condición lógica. Las clases de equivalencia que se pueden denir son las
siguientes:
56
Si una condición de entrada especica un miembro de un conjunto se dene una
clase válida (elementos del conjunto) y una inválida (elementos que no pertenecen
al conjunto).
Si una condición de entrada especica una condición lógica se dene una clase
válida (valores que dan lugar a verdadero) y una inválida (valores que dan lugar a
falso).
Para obtener los casos de prueba se deben identicar las clases de equivalencia y después
crear los casos de prueba correspondientes.
57
La prueba de unidad hace uso intensivo del enfoque de caja blanca.
La prueba de integración utiliza pruebas de la caja blanca y de la caja negra.
La prueba de validación usa exclusivamente pruebas de la caja negra. La prueba del
sistema queda fuera de los límites de la Ingeniería del Software, entrando en el contexto
de la Ingeniería de Sistemas.
8.6. La depuración
La depuración aparece como una consecuencia de una prueba efectiva. Cuando un
caso de prueba descubre un error, la depuración es el proceso resultante para la elimina-
ción de dicho error.
El desarrollador, al evaluar los resultados de una prueba se encuentra con una indica-
ción sintomática de un problema en el software. El síntoma es la manifestación del error.
Conectar un síntoma con una causa es la tarea fundamental de la depuración. La ma-
nifestación externa de un error y la causa interna del error pueden no estar
relacionados de forma obvia.
El proceso de depuración siempre tiene uno de los dos resultados siguientes:
El síntoma puede ser debido a causas que se distribuyen por una serie de tareas
ejecutándose en diferentes procesadores.
El síntoma puede ser causado por un error humano que no sea fácilmente detectable.
Aspectos humanos
Todo parece indicar que la habilidad en la depuración es un rasgo innato en algunas
personas.
58
8.6.1. Enfoques para la depuración
Fuerza bruta
El más común y menos eciente. Dejamos que el ordenador encuentre el error haciendo
volcados de memoria, trazas de ejecución, etc., y esperamos que entre la gran cantidad
de información generada encontremos alguna pista que nos lleve a la causa del error.
Vuelta atrás
Partiendo del lugar donde se descubre el síntoma se recorre manualmente hacia atrás
el código fuente hasta llegar a la posición de error. Si en la vuelta atrás el número de
caminos crece mucho esta técnica se hace impracticable.
Eliminación de causas
Se hace una lista de posibles causas, se llevan a cabo pruebas para eliminar cada una,
y si alguna prueba indica que alguna causa en particular parece prometedora se renan
los datos con el n de aislar el error.
59
Capítulo 9
Permitir que los usuarios de cada herramienta tengan una visión consistente de
la interfaz persona-máquina: Representaciones consistentes de la información, in-
terfaces estandarizadas entre herramientas y un mecanismo homogéneo para la
comunicación.
60
9.1.1. Evolución histórica de las herramientas
Surgen a mediados de los setenta cuando empiezan a aparecer las primeras metodolo-
gías estructuradas y se popularizan a nales de los ochenta, pero las falsas expectativas y
la incorrecta utilización llevan al desencanto a muchas organizaciones. A mediados de los
noventa entran en una nueva fase de madurez, surge una nueva generación y las nuevas
herramientas superan un buen número de limitaciones de las existentes, a la vez que los
usuarios conocen mejor sus posibilidades.
9.2. Objetivos
Mejorar la productividad y la calidad del software a través de:
9.3. Características
Soporte multiusuario, personalización y apoyo automatizado a las tareas de la meto-
dología en uso.
Interfaces que posibiliten cargar el repositorio con datos de otros sistemas o enviar
datos a otros sistemasm proporcionando así un medio de comunicación con otras
herramientas.
Opciones de grácos, pantallas, informes, etc., que permitan dar soporte automa-
tizado a las técnicas precisas.
61
9.5. El repositorio
El repositorio es una base de datos que actúa como centro para el almacenamiento
de información. Es el núcleo o corazón de la herramienta.
El papel del desarrollador es interactuar con el repositorio empleando herramientas inte-
gradas con él.
Compartir información
Proporciona mecanismos para compartir información entre múltiples herramientas, y
controla el acceso multiusuario bloqueando y desbloqueando objetos.
Estandarización de documentos
La adopción de estándares para los distintos soportes da lugar directamente a un
enfoque estándar para la creación de documentos.
62
9.6. Taxonomías de herramientas
9.6.1. Clasicación por categorías
Herramientas de gestión: Estimación, planicación y seguimiento.
Herramientas técnicas: De análisis, diseño, etc., de mantenimiento, L4G's...
Herramientas de soporte: Repositorio, de control de conguración, de seguridad...
Herramientas grácas
Símbolos, estructuras y formas.
Herramientas omáticas
Tratamiento de textos, correo electrónico, calculadoras de sobremesa...
Herramientas de documentación
Son herramientas de producción de documentos. Es frecuente que se invierta hasta
un 20 %-30 % del esfuerzo global del desarrollo en el proceso de documentación, por lo
que estas herramientas suponen una importante mejora de la productividad.
63
Herramientas de construcción de prototipos
Generadores de pantallas y disposición entre ellas para aplicaciones interactivas.
Creación de un diseño de datos acompañado por diseños de informes y pantallas.
Herramientas PRO/SIM para predecir el comportamiento de un sistema antes de
llegar a construirlo. Además, le capacitan para desarrollar simulaciones del sistema
de tiempo real.
Herramientas de cuarta generación.
Herramientas de programación
Compiladores, editores y depuradores para apoyar a la mayoría de los lenguajes de
programación convencionales.
L4G.
Lenguajes de consulta a bases de datos SQL.
Generadores de código: A partir de estructuras básicas o de pseudocódigo.
Herramientas de reingeniería
Las herramientas para el software heredado abarca un conjunto de actividades de
mantenimiento que actualmente absorben un porcentaje signicativo de todo el esfuerzo
relacionado con el software. Las herramientas de reingeniería se pueden subdividir en las
funciones siguientes:
H. de ingeniería inversa: Se toma el código fuente como entrada y se generan mode-
los grácos de análisis y diseño estructurados, listas de utilización y más información
sobre el diseño.
H. de reestructuración: Se analiza la sintaxis del programa, se genera una gráca
de control de ujo y se genera automáticamente un programa estructurado.
H. de ingeniería directa.
64
Herramientas de gestión de la información
Acceso rápido a documentos.
C.B.T.: Recopilan información y la suministran al usuario.
Herramientas de prueba
Adquisición de datos: Adquieren los datos que se utilizarán durante la prueba.
9.7.1. Planicación
Se debe valorar el nivel de madurez de la organización haciendo especial énfasis en
la metodología y técnicas que se aplican en el desarrollo, realizar un plan de gestión de
riesgos y seleccionar el grupo de personas para llevar a cabo la implantación.
9.7.2. Adquisición
Depende en gran medida de la situación en la que se encuentre la empresa, pero en
general se tendrán en cuenta varios criterios:
65
Posibilidades de integración con otras plataformas (presentes y futuras).
Tener en cuenta que el coste de adopción de la herramienta puede llegar a ser hasta
ocho veces el coste de adquisición.
Evaluación.
Evaluación.
66