El término ciclo de vida del software describe
el desarrollo de software, desde la fase inicial hasta la fase final. El
propósito de este programa es definir las distintas fases intermedias que se
requieren para validar el desarrollo de la aplicación, es decir, para
garantizar que el software cumpla los requisitos para la aplicación y verificación
de los procedimientos de desarrollo: se asegura de que los métodos utilizados
son apropiados.
El ciclo de vida básico de un software consta de los
siguientes procedimientos:
· Definición
de objetivos: definir el resultado del proyecto y su
papel en la estrategia global.
· Análisis
de los requisitos y su viabilidad:
recopilar, examinar y formular los requisitos del cliente y examinar cualquier
restricción que se pueda aplicar.
· Diseño
general: requisitos generales de la arquitectura
de la aplicación.
· Diseño en
detalle: definición precisa de cada subconjunto
de la aplicación.
· Programación
(programación e implementación): es la
implementación de un lenguaje de programación para crear las funciones
definidas durante la etapa de diseño.
· Prueba de
unidad: prueba individual de cada subconjunto de
la aplicación para garantizar que se implementaron de acuerdo con las
especificaciones.
· Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba de integración
que está cuidadosamente documentada.
· Prueba
beta (o validación), para garantizar que el
software cumple con las especificaciones originales.
· Documentación: sirve para documentar información necesaria para los
usuarios del software y para desarrollos futuros.
· Implementación
· Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del software
(mantenimiento continuo).
El orden y la presencia de cada uno de estos
procedimientos en el ciclo de vida de una aplicación dependen del tipo de
modelo de ciclo de vida acordado entre el cliente y el equipo de
desarrolladores.
ETAPAS DEL CICLO DE VIDA DEL SOFTWARE
El ciclo de vida clásico del software siendo uno de
los más utilizados tal como lo plantean diferentes autores, está conformado en
su versión ampliada por siete etapas que se pueden representar mediante un
modelo en cascada así:
INGENIERÍA DE SISTEMAS: En esta etapa el analista luego de un minucioso y detallado
estudio de los sistemas de una organización, detecta un problema o una necesidad
que para su solución y/o satisfacción es necesario realizar un desarrollo de
software.
ANÁLISIS: En esta
etapa se debe entender y comprender de forma detallada cual es la problemática
a resolver, verificando el entorno en el cual se encuentra dicho problema, de
tal manera que se obtenga la información necesaria y suficiente para afrontar
su respectiva solución. Esta etapa es conocida como la del QUÉ se va a solucionar.
DISEÑO: Una vez
que se tiene la suficiente información del problema a solucionar, es importante
determinar la estrategia que se va a utilizar para resolver el problema. Esta
etapa es conocida bajo el CÓMO se va a solucionar.
IMPLEMENTACIÓN: partiendo
del análisis y diseño de la solución, en esta etapa se procede a desarrollar el
correspondiente programa que solucione el problema mediante el uso de una
herramienta computacional determinada.
PRUEBAS: Los
errores humanos dentro de la programación de los computadores son muchos y
aumentan considerablemente con la complejidad del problema.
Cuando se termina de escribir un programa de
computador, es necesario realizar las debidas pruebas que garanticen el
correcto funcionamiento de dicho programa bajo el mayor número de situaciones
posibles a las que se pueda enfrentar.
DOCUMENTACIÓN: Es la
guía o comunicación escrita en sus diferentes formas, ya sea en enunciados,
procedimientos, dibujos o diagramas que se hace sobre el desarrollo de un
programa. La importancia de la documentación radica en que a menudo un programa
escrito por una persona, es modificado por otra. Por ello la documentación
sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
La documentación se compone de tres partes:
a.
Documentación
Interna: Son los comentarios o mensajes que se
añaden al código fuente para hacer más claro el entendimiento de los procesos
que lo conforman, incluyendo las precondiciones y las pos condiciones de cada
función.
b. Documentación Externa: Se define en un documento escrito con los siguientes puntos:
Descripción del Problema
Datos del Autor
Algoritmo (diagrama de flujo o Pseudocódigo)
Diccionario de Datos
Código Fuente (programa)
c. Manual de Usuario: Describe paso a paso la manera cómo funciona el programa,
con el fin de que el usuario lo pueda manejar para que obtenga el resultado
deseado.
MANTENIMIENTO: una vez
instalado un programa y puesto en marcha para realizar la solución del problema
previamente planteado o satisfacer una determinada necesidad, es importante
mantener una estructura de actualización, verificación y validación que
permitan a dicho programa ser útil y mantenerse actualizado según las
necesidades o requerimientos planteados durante su vida útil. Para realizar un
adecuado mantenimiento, es necesario contar con una buena documentación del
mismo.
Para terminar de entender la problemática en la cual
se desarrolla este libro es importante tener unos conceptos claros y precisos
de lo que es el Análisis y el Diseño de Algoritmos.
SOFTWARE EDUCATIVO
Ingeniería del Software Educativo
Se denomina software educativo al destinado a la
enseñanza y el aprendizaje autónomo y que, además, permite el desarrollo de ciertas
habilidades cognitivas.
Así como existen profundas diferencias entre las
filosofías pedagógicas, así también existe una amplia gama de enfoques para la
creación de software educativo, atendiendo a los diferentes tipos de
interacción que debería existir entre los actores del proceso de
enseñanza-aprendizaje: educador, aprendiz, conocimiento, computadora.
Existen muchos programas para trabajar en la
computadora para afianzar el aprendizaje. El trabajo en equipo de profesionales
de la informática, ha permitido crear programas para computadoras, que no solo
facilitan el trabajo, sino que también sirven para entretener y educar.
Estos programas forman parte del software educativo,
denominada en algunos casos como Instrucción Asistida por Computadora o
Multimedia Educativa, utilizada como una herramienta instruccional o de
enseñanza, que acompañada con un material adecuado que permite guiar a
estudiantes a alcanzar un nivel educativo adaptado a sus necesidades.
Clasificación de los diferentes tipos de software
educativo
Bajo este nombre (abreviado MEC “MATERIAL EDUCATIVO
COMPUTARIZADO”) se agrupan diversos tipos de aplicaciones encaminados a apoyar
el aprendizaje.
Una referencia bastante apropiada es "Ingeniería
de Software Educativo" de Álvaro Galvis (Galvis, 94), de donde se ha
tomado la clasificación que se presenta. Una primera clasificación de
herramientas y materiales para asistir el aprendizaje los divide en
algorítmicos y heurísticos. En los materiales algorítmicos predomina el aprendizaje
vía transmisión de conocimiento desde quien sabe hacia quien lo desea aprender;
quien diseña la herramienta planea secuencias de actividades para conducir al estudiante; el rol de alumno
es asimilar el máximo de lo que se le transmite. Por otra parte en los
materiales heurísticos predomina el aprendizaje por experimentación y
descubrimiento; el diseñador crea ambientes ricos en situaciones que el alumno
debe explorar; el alumno debe llegar al conocimiento a partir de la
experiencia, creando sus propios modelos de pensamiento, sus propias interpretaciones
del mundo, las cuales puede someter a prueba con la herramienta. Tal
clasificación puede refinarse aún más:
TIPO ALGORÍTMICO
Predomina el aprendizaje vía transmisión de
conocimiento, desde quien sabe, hacia quien lo desea aprender y donde el
diseñador se encarga de encapsular secuencias bien diseñadas de actividades de
aprendizaje que conducen al interesado desde donde está hasta donde se desea
llegar; el papel del usuario es asimilar al máximo de lo que se transmite.
Dentro de este tipo se encuentran:
SISTEMAS TUTORIALES
Incluye cuatro fases que deben formar parte de todo
proceso de enseñanza-aprendizaje:
La fase Introductoria, en la que se genera la
motivación, se centra la atención y se favorece la percepción selectiva de lo
que se desea que el usuario aprenda. La fase de orientación inicial en la que
se da la codificación, almacenaje y retención de lo aprendido. La fase de
aplicación en la que hay evocación y transferencia de lo aprendido. La fase de
Retroalimentación en la que se de muestra lo aprendido, ofrece retroinformación
y esfuerzo o refuerzo.
SISTEMAS DE EJERCITACIÓN Y PRÁCTICA
Refuerzan las dos fases finales del proceso de
instrucción: aplicación y retroalimentación. Se parte de la base que el usuario
tiene un conocimiento previo del tema relacionado con el software final. Donde
el software le servirá para probar sus destrezas y conocimientos adquiridos
previamente. Estos sistemas sirven como motivación y refuerzo para el usuario.
TIPO HEURÍSTICO
Predomina el aprendizaje experimental y por
descubrimiento, donde el diseñador crea ambientes ricos en situaciones que el
usuario debe explorar conjeturablemente. El usuario debe llegar al conocimiento
a partir de experiencias, creando sus propios modelos de pensamiento, sus
propias interpretaciones del mundo. Pertenecen a este grupo:
SIMULADORES Y JUEGOS EDUCATIVOS
Ambos poseen la cualidad de apoyar el aprendizaje de
tipo experimental conjetural, como base para lograr aprendizaje por
descubrimiento. La Interacción con un micromundo, en forma semejante a la que
se tendría en una situación real, es la fuente del conocimiento; el usuario
resuelve problemas, aprende procedimientos, llega a entender las características
de los fenómenos y cómo controlarlos, o aprende qué acciones tomar en
diferentes circunstancias. Lo esencial en ambos casos es que el usuario es un
agente necesariamente activo que, además de participar en la situación debe
continuamente procesar la información que el micromundo le proporciona en forma
de situación problemática, condiciones de ejecución y resultado.
MICROMUNDOS EXPLORATORIOS Y LENGUAJE SINTÓNICO
Una forma particular de interactuar con micromundos es
haciéndolos con ayuda de un lenguaje de computación, en particular si es de
tipo sinfónico con sus instrucciones y que se puede usar naturalmente para
interactuar con un micromundo en el que los comandos sean aplicables.
SISTEMAS EXPERTOS
Capaces de representar y razonar acerca de algún
dominio rico en conocimientos, con el ánimo de resolver problemas y dar
consejos a quienes no son expertos en la materia. Además, de demostrar gran
capacidad de desempeño en términos de velocidad, precisión y exactitud, tiene
como contenido un dominio de conocimientos que requiere gran cantidad de
experiencia humana, no solo principios o reglas de alto nivel, y que es capaz
de hallar o juzgar la solución de algo, explicando o justificando lo que haya o
lo que juzgue; de modo que es capaz de convencer al usuario que su
racionamiento es correcto.
· Los
sistemas tutoriales pueden presentar las cuatro fases del aprendizaje, y resultan
particularmente útiles cuando se requiere alta motivación, retroalimentación
inmediata, ritmo propio y secuencia controlable por el usuario parcial o
totalmente.
· Los
sistemas de ejercitación y práctica permiten reforzar las dos fases finales del
proceso de instrucción: aplicación y retroalimentación por medio de ejercicios
tradicionales.
· Los
simuladores pretenden apoyar el aprendizaje por medio de experimentos, de forma
que el estudiante descubra conceptos en un micromundo semejante a una situación
real. En este tipo de MEC, que puede emplearse en cualquier de las cuatro
fases, el alumno es agente activo.
· Los juegos
educativos, al igual que los simuladores apoyan el aprendizaje semejando
situaciones, sin embargo, en la simulación se trata de situaciones reales
mientras que esto no se da necesariamente en los juegos, además en éstos se dan
situaciones excitantes o entretenidas.
Los micromundos exploratorios, emplean un lenguaje de
programación sintónico, es decir no hay que aprenderlo, simplemente se está
sintonizado con sus instrucciones y se emplea para interactuar en un
micromundo. La diferencia básica con los simuladores es que además de exigir la
solución de problemas, la exige de forma estructurada (es decir, una que
conlleve división de problemas en subproblemas). Por esta razón, los lenguajes sintónicos
permiten el desarrollo de estrategias para solución de problemas.
Los sistemas expertos son sistemas capaces de
representar y razonar acerca de algún dominio rico en conocimientos, con el
ánimo de resolver problemas y dar consejo a quienes no son expertos en la
materia. Estos sistemas además de demostrar gran capacidad de desempeño en
términos de velocidad, precisión y exactitud, cuentan con una base de
conocimientos construida a partir de experiencia humana. Con la base de
conocimientos y con reglas de alto nivel es capaz de hallar o juzgar la
solución a algo, explicando o justificando lo que halla o lo que juzga, de modo
que es capaz de convencer al usuario de que su razonamiento es correcto.
· Un
sistema Tutorial Inteligente presenta un comportamiento "inteligentemente"
adaptativo, es decir, adapta el tratamiento educativo en función de aquello que
se desea aprender y de las características y desempeño del aprendiz. Además de
tener los componentes típicos de un sistema experto (base de conocimiento,
motor de inferencia, hechos e interfaz con usuario) hay un "modelo de
estudiantes" donde se plasman sus conocimientos, habilidades y destrezas y
un "módulo de interfaz" capaz de ofrecer distintos tipos de ambiente
de aprendizaje a partir de las cuales se puede llegar al conocimiento buscado.
Metodología para la evaluación y desarrollo del
software educativo.
En esencia se conservan los grandes pasos o etapas de
un proceso sistemático para desarrollo de materiales (análisis, diseño,
desarrollo, prueba y ajuste, implementación). Sin embargo, en este caso se da
particular énfasis a los siguientes aspectos: la solidez del análisis, como
punto de partida; el dominio de teorías sustantivas sobre el aprendizaje y la
comunicación humanas, como fundamento para el diseño de los ambientes
educativos computarizados; la evaluación permanente y bajo criterios
predefinidos, a lo largo de todas las etapas del proceso, como medio de
perfeccionamiento continuo del material; la documentación adecuada y suficiente
de lo que se realiza en cada etapa, como base para el mantenimiento que
requerirá el material a lo largo de su vida útil.
La anterior explicación permite entender la razón de
ser del doble ciclo, para selección o desarrollo de MECs, que ha propuesto
Galvis como metodología básica de trabajo y que se ilustra en la siguiente
Figura.
El punto de partida de ambos ciclos es la
identificación de necesidades educativas reales que conviene atender con
material educativo computarizado. Dependiendo del resultado final de esta
etapa, se procede en el sentido contrario al avance de las manecillas del
reloj, cuando se trata de seleccionar un MEC; pero en el mismo sentido del
avance de las manecillas, si conviene efectuar su desarrollo.
En cualquiera de los dos ciclos, una vez que se
dispone de un MEC, se requiere evaluarlo con un grupo piloto de alumnos que
pertenezca a la población objeto, bajo las condiciones para las cuales está
diseñado. Esta es la base para decidir si el MEC debe llevarse a la práctica en
gran escala, o para echar pie atrás, rediseñarlo, ajustarlo o desecharlo.
Durante su implementación también es importante que se evalúe el MEC, de modo
que se pueda establecer la efectividad real del material, éste es el sentido de
la prueba de campo.
Las metodologías persiguen tres necesidades
principales:
· Mejores aplicaciones,
conducentes a una mejor calidad.
· Un
proceso de desarrollo controlado.
· Un
proceso normalizado en una organización, no dependiente del personal.
1. Los procesos se descomponen hasta el nivel de tareas o
actividades elementales, donde cada tarea está identificada por un
procedimiento que define la forma de llevarla a cabo. Para aplicar un
procedimiento se pueden usar una o más técnicas, pudiendo ser gráficos con
textos.
1. CARACTERÍSTICAS Y CLASIFICACIÓN DE LAS METODOLOGÍAS
Se pueden enumerar una serie de características
[Piattini, 1996] que debe tener la metodología y que influirán en el entorno de
desarrollo:
· Reglas
predefinidas
· Determinación
de los pasos del ciclo de vida
· Verificaciones
en cada etapa
· Planificación
y control
· Comunicación
efectiva entre desarrolladores y usuarios.
· Flexibilidad:
aplicación en un amplio espectro de casos
· De fácil
comprensión
· Soporte
de herramientas automatizadas.
· Que
permita definir mediciones que indiquen mejoras
· Que
permita modificaciones
· Que
soporte reusabilidad del software
3. El ciclo de vida y los procesos del software
educativo.
Todo proyecto tiene asociado, por más pequeño que éste
sea, pasos que se deben seguir tales como: planificación, estimación de
recursos, seguimiento y control, y evaluación del proyecto. La selección de un
modelo de ciclo de vida está asociada a un orden en la realización de las
actividades a desarrollar. La red de actividades, es la que permitirá
establecer a partir de la matriz de precedencia el camino crítico, como la
secuencia de tareas más larga de principio al fin. El diagrama de Gantt, o los
diagramas calendario permitirán establecer el estado del proyecto en un determinado
momento a partir de su inicio, en cuanto a recursos se refiere. Para estimar el
tamaño del producto o del programa a desarrollar, definido como la cantidad de
código fuente, especificaciones, casos de prueba, documentación del usuario y
otros productos, que han de ser desarrollados, se debe recurrir a datos estadísticos
propios o no. La estimación consiste en la predicción del personal, el esfuerzo
y el costo asociado para llevar a cabo todas las actividades del mismo.
1. ¿CUÁLES SON LOS ELEMENTOS QUE INTERVIENEN EN EL CICLO DE
VIDA DE UN SISTEMA?
2. La planificación de la gestión proyecto
Se la puede describir en términos de, las actividades
a realizar, los documentos de salida y de las técnicas a utilizar.
Planificación de la gestión del proyecto
|
|
Actividades a realizar
|
Confeccionar el mapa de actividades para el modelo
elegido del ciclo de vida, asignar de los recursos,
definir el proyecto, planificar la gestión
|
Documentos de salida
|
Plan de gestión, plan de retiro
|
Técnicas a utilizar
|
CPM, PERT, diagrama de Gantt, estadísticas,
simulación (Montecarlo), puntos funcionales, Modelos
de estimación (COCOMO), Técnicas de
descomposición para estimación.
|
La identificación de la necesidad
La identificación de una necesidad, enunciada en
términos concretos, es el punto de partida para la puesta en marcha de un
proyecto y la evaluación de las posibles soluciones dará la viabilidad del
mismo.
Identificación de la necesidad
|
|
Actividades a realizar
|
Identificar necesidades, formular posibles soluciones y estudiar su
viabilidad.
|
Documentos de salida
|
Informe de necesidades. Alternativas de solución.
Soluciones factibles
|
Técnicas a utilizar
|
De adquisición de conocimientos, análisis costo beneficio,
modelización, diagramas de flujos de datos, prototipado
|
.
El proceso de especificación de los requisitos
Consiste en establecer de un modo conciso, claro y
preciso el conjunto de requisitos que deben ser satisfechos por el software a
desarrollar. El objetivo es determinar
en forma total y consistente los requisitos de software. El análisis se realiza
sobre la salida resultante, la descomposición de los datos, el procesamiento de
los mismos, las bases de datos y las interfaces de usuario. (J. Juzgado, 1996).
(ver Tabla 3.7). Se debe considerar que un requisito es una condición o característica
que debe tener el programa para satisfacer un documento formal.
Estos requisitos pueden ser funcionales, de
rendimiento o de interfaces. Los primeros especifican la función que el
programa debe realizar, los segundos especifican una característica numérica y
los últimos determinan las características de las interfaces, usuario-software,
software-hardware y software- software. (Juzgado, 1996).
Especificación de requisito
|
|
Actividades a realizar
|
Definir y desarrollar los requisitos del software y de las
interfaces
|
Documentos de salida
|
Especificación de los requisitos del software, requisitos de
interfaces de usuario, de interfaces con otro software y con hardware.
Requisitos de interfaces con el medio.
|
Técnicas a utilizar
|
Técnicas orientadas a los procesos: Análisis estructurado: diagramas
de flujo de datos (DFD), diccionario de datos (DD), especificación de
procesos.
Diagramas de actividades. Técnicas orientadas a los datos: Diagramas
entidad relación y diagramas de datos.
Técnicas orientadas a los objetos. Diagramas de
clases/objetos Jerarquía de clases/objetos
Técnicas formales de especificación: Técnicas relacionales: ecuaciones
implícitas, relaciones recurrentes, axiomas algebraicos. Técnicas orientadas
al estado: tablas de decisión, de eventos, de transición, mecanismos de
estado finitos, etc. Técnicas de prototipación
|
El proceso de diseño
El proceso de diseño es la piedra angular para la
obtención de un producto coherente que satisfaga los requisitos de software. El
diseño desde el punto de vista técnico comprende cuatro tipos de actividades:
diseño de datos, arquitectónico, procedimental y diseño de interfaces y desde
el punto de vista del proyecto evoluciona desde un diseño preliminar al diseño
detallado.
El diseño de datos, modela las estructuras de datos
necesarias para el desarrollo, el arquitectónico define las relaciones entre
las estructuras del programa, considerando el desarrollo de módulos que se
relacionan, mezcla la estructura de programas y de datos, y define las
interfaces. El diseño procedimental transforma estructuras en descripción
procedimental del software y por último el diseño de interface establece los
mecanismos de interacción humano-computadora.
Este proceso de diseño, es la correcta traducción de
los requisitos de software en un producto. (ver Tabla 3.8).
Se deben aplicar algunos principios conducentes a un
software de calidad, tales como:
− Abstracción.
− Refinamiento sucesivo.
− Modularidad (consiste en la división en forma lógica
de elementos en funciones y subfunciones).
− Estructura jerárquica en módulos con control entre
componentes.
− Estructura de los datos.
− Procedimientos por capas funcionales.
− Ocultamiento de la información, etc., aplicación de
métodos sistemáticos y una revisión constante.
Proceso de diseño
|
|
Actividades a realizar
|
Realizar el diseño arquitectónico, analizar el flujo de información,
diseñar la base de datos, diseñar las interfaces, desarrollar los algoritmos,
realizar el diseño detallado.
|
Documentos de salida
|
Descripción del diseño del software de la arquitectura del software,
del flujo de información, descripción de la base de datos, de las interfaces,
de los algoritmos.
|
Técnicas a utilizar
|
Descripción del diseño del software de la arquitectura del software,
del flujo de información, descripción de la base de datos, de las interfaces,
de los algoritmos.
Técnicas orientadas a los procesos: diseño estructurado, diálogo de
las interfaces, diseño lógico, HIPO (Hierarchy Input Process Output).
Técnicas orientadas a los datos. Modelo lógico y físico de datos.
Jackson, etc.
Técnicas orientadas a los objetos: Modelo clase/objeto, diagrama de
módulos.
Técnicas de bajo nivel:
Programación estructurada: diagramas de árbol
Programación orientada a objetos: diagrama de
procesos
Técnicas de prototipación,
Técnicas de refinamiento,
|
El proceso de implementación
Este proceso (ver Tabla 3.9), produce código fuente,
código de la base de datos y documentación, de base de acuerdo a los estándares
utilizados. La salida de este proceso conduce
a las pruebas de validación y verificación.
Proceso de implementación
|
|
Actividades a realizar
|
Crear los datos de prueba, crear código fuente, generar el código
fuente, crear la documentación, planificar y realizar la integración de
módulos.
|
Documentos de salida
|
Datos de prueba, documentación del sistema y del usuario. Plan de
integración.
|
Técnicas a utilizar
|
Lenguajes de programación. Jackson
|
El proceso de instalación
Este proceso se centra en la verificación de la
implementación adecuada del software y en la conformidad del cliente, previa
prueba de aceptación (Tabla 3.10).
Proceso de instalación
|
|
Actividades a realizar
|
Planificar la instalación, instalar el software, cargar la base de
datos, realizar las prueba de aceptación..
|
Documentos de salida
|
Plan de instalación del software e informe de
instalación
|
Los procesos de mantenimiento y retiro
El proceso de mantenimiento se centra en el cambio asociado
a los errores detectados, fallas, mejoras solicitadas y cambios. Se lo
considera como una vuelta a la aplicación del ciclo de vida pero con un
software existente como iteraciones de desarrollo.
Los tipos de mantenimiento pueden ser: correctivos, ante
defectos encontrados, adaptativos, o sea, cambios del software de acuerdo al
cambio en el entorno y de mejoras, con agregado de funciones adicionales.
Procesos de
|
Mantenimiento
|
Retiro
|
Actividades a
realizar
|
Reaplicar el ciclo de vida.
|
Notificar al usuario, realizar las operaciones en
paralelo y retirar el sistema.
|
Documentos de salida
|
Orden de mantenimiento Y recomendaciones de mantenimiento
|
Plan de retiro
|
El proceso de verificación y validación
Las tareas que abarca son las siguientes: pruebas de
verificación, revisiones y auditoría e incluye las tareas de validación y
pruebas de validación que se realizan durante el ciclo de vida del software
para asegurar la satisfacción con los requisitos.
Para la verificación y validación del software, cuando
ya exista código ejecutable, se pueden realizar las pruebas del mismo que
consisten en ejecutar el software con determinados datos de entrada y producir
resultados que luego serán comparados con los teóricos.
Un proceso asociado a las pruebas, es la depuración
que consiste en tratar de deducir dónde están localizados los defectos en el
software que hacen que este no funcione correctamente. (ver Tabla 3.12).
Procesos de verificación y de validación
|
|
Actividades a realizar
|
Planificar y ejecutar las tareas de verificación y validación.
Recoger y analizar los datos de las métricas, planificar las pruebas,
desarrollar las especificaciones de las pruebas y ejecutarlas.
|
Documentos de salida
|
Plan de verificación y validación. Informes de evaluación. Plan de
pruebas.
Especificación de las pruebas. Resultados de las pruebas.
|
Técnicas a utilizar
|
Técnicas de prueba de caja blanca:
Técnicas de prueba de caja negra:
Revisiones formales.
Auditorías.
|
Los procesos de desarrollo de la documentación y de
formación
Este proceso permite planificar, diseñar, implementar,
editar, producir, distribuir y mantener los documentos para los desarrolladores
y los usuarios.
Para una utilización efectiva del sistema se debe
proporcionar al usuario las instrucciones y guías necesarias acerca del uso del
software y de sus limitaciones.
Es un punto fundamental la formación del usuario en el
sistema. También es importante la formación de los desarrolladores y soporte
técnico.
Procesos de
|
Mantenimiento
|
Retiro
|
Actividades a
realizar
|
Planificar e implementar
La documentación, producir y distribuirla
documentación
|
Planificar el programa de formación.
Desarrollar materiales de formación.
Validar e implementar el programa.
|
Documentos de salida
|
Plan de documentación
|
Plan de formación
|
No hay comentarios:
Publicar un comentario