Modelo Lineal secuencial
Se
tiene un modelo que lleva un desarrollo incremental, esto nos dice que se
desarrolla el software en etapas y que después del término de una etapa no es
posible regresar a ella, este modelo tiene cuatro etapas que son:
ü Planificación: se determinan los objetivos, metas,
requerimientos y restricciones en el proyecto.
ü Análisis de riesgos: identificación de situaciones
inconvenientes para evitarlas y solucionarlas.
ü Ingeniera: desarrollo del producto con respecto al
diseño y otras consideraciones planteadas.
ü Evaluación del cliente: valorización de los
resultados del proyecto (producto obtenido).
Y se tiene implícita la
realización de estas actividades:
ü Análisis de requerimientos: en esta etapa se procede a
recopilar todos los requisitos que debe cumplir el software a desarrollar, el
cliente aquí tiene un papel fundamental, ya que analiza junto con los desarrolladores
del software los requisitos que debe cumplir el software a desarrollar.
ü Diseño: esta etapa está enfocada hacia el desarrollo
de un esbozo de la arquitectura, la interfaz y el manejo de datos del software.
ü Generación de código: es cuando se implementa el
diseño del software en algún lenguaje de programación definido en el mismo
diseño.
ü Pruebas: se hace una revisión de los procesos que
realiza el software, para determinar que esté haciendo lo planteado para
cumplir con los requerimientos.
ü Mantenimiento: se verifica el correcto funcionamiento
del software en su entorno de uso, y si existen errores o defectos, proceden a
corregirlos.
Modelo de creación de un prototipo
El
Modelo de prototipos, en Ingeniería de software, pertenece a los
modelos de desarrollo evolutivo. El prototipo debe ser construido en poco
tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. El
diseño rápido se centra en una representación de aquellos aspectos del software
que serán visibles para el cliente o el usuario final. Este diseño conduce a la
construcción de un prototipo, el cual es evaluado por el cliente para una
retroalimentación; gracias a ésta se refinan los requisitos del software que se
desarrollará.
El
modelo de creación de un prototipo consta de 6 etapas las cuales son:
ü Plan
rápido.
ü Modelado,
diseño rápido
ü Construcción
del Prototipo
ü Desarrollo,
entrega y retroalimentación
ü Comunicación
ü Entrega
del desarrollo final
Modelo Evolutivo
Como
el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas
veces denominado como prototipo evolutivo) construye una serie de grandes
versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental
presupone que el conjunto completo de requerimientos es conocido al comenzar,
el modelo evolutivo asume que los requerimientos no son completamente conocidos
al inicio del proyecto.
En
el modelo evolutivo, los requerimientos son cuidadosamente examinados, y sólo
esos que son bien comprendidos son seleccionados para el primer incremento. Los
desarrolladores construyen una implementación parcial del sistema que recibe
sólo estos requerimientos.
Note
que el desarrollo evolutivo es 100% compatible con el modelo cascada. El
desarrollo evolutivo no demanda una forma específica de observar el desarrollo
de algún incremento. Así, el modelo cascada puede ser usado para administrar
cada esfuerzo de desarrollo. Obviamente, el desarrollo incremental y evolutivo
puede ser combinado también.
El
desarrollo de software en forma evolutiva requiere un especial cuidado en la
manipulación de documentos, programas, datos de test, etc. desarrollados para
distintas versiones del software.
Características
ü Es evolutivo
ü Posee un enfoque evolutivo para la creación
de software
ü Comienza con la identificación de las clases
más importantes
ü Examina los datos que se van a manejar
ü Permite la reutilización del software
ü El ensamblaje de los componentes reduce el 70
del 100% del tiempo del ciclo del desarrollo del software y un 84 del 100% del
costo del proyecto.
Ventajas y Desventajas.
Ventajas
|
Desventajas
|
Reutilización
del software.
|
Genera
mucho tiempo en el desarrollo del sistema.
|
Simplifica
las pruebas; pues estas se le hacen a los componentes antes de probar el
conjunto completo de componentes ensamblados.
|
Modelo
costoso.
|
Simplifica
el mantenimiento del sistema.
|
Requiere
experiencia en la identificación de riesgos.
|
Mayor
calidad.
|
Genera
mucho trabajo adicional.
|
Ejemplo: A
manera de ejemplo, pensemos en un equipo de sonido con cada una de sus piezas o
componentes; es probable que por separado puedan ser funcionales, pero para que
verdaderamente desempeñen la función que deberían, tienen que estar unidas
formando un todo.
El modelo evolutivo está compuesto por dos tipos el cual
son:
ü Modelo
Incremental.
ü Modelo
en Espiral.
El
Modelo Incremental combina elementos del MLS con la filosofía interactiva de
construcción de prototipos.
En
una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código
y Prueba. Sin embargo, para la producción del Software, se usa el principio de
trabajo en cadena o “Pipeline”, utilizado en muchas otras formas de
programación. Con esto se mantiene al cliente en constante contacto con los
resultados obtenidos en cada incremento.
Es
el mismo cliente el que incluye o desecha elementos al final de cada incremento
a fin de que el software se adapte mejor a sus necesidades reales. El proceso
se repite hasta que se elabore el producto completo. De esta forma el tiempo de
entrega se reduce considerablemente.
Al
igual que los otros métodos de modelado, el Modelo Incremental es de naturaleza
interactiva pero se diferencia de aquellos en que al final de cada incremento
se entrega un producto completamente operacional.
El Modelo Incremental se puede ver aquí en forma gráfica: (Características)
ü Se
evitan proyectos largos y se entrega algo de valor a los usuarios con cierta
frecuencia.
ü El
usuario se involucra más.
ü Difícil
de evaluar el coste total.
ü Difícil
de aplicar a los sistemas transaccionales que tienden a ser integrados y a
operar como un todo.
ü Requiere
gestores experimentados.
ü Los
errores en los requisitos se detectan tarde.
ü El
resultado puede ser muy positivo.
Ventajas y Desventajas.
Ventajas:
|
Desventajas:
|
Con
un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se
implementa la funcionalidad parcial.
|
El
modelo Incremental no es recomendable para casos de sistemas de tiempo real,
de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice
de riesgos.
|
También
provee un impacto ventajoso frente al cliente, que es la entrega temprana de
partes operativas del Software.
|
Requiere
de mucha planeación, tanto administrativa como técnica.
|
El
modelo proporciona todas las ventajas del modelo en cascada realimentado,
reduciendo sus desventajas sólo al ámbito de cada incremento.
|
Requiere
de metas claras para conocer el estado del proyecto.
|
Resulta
más sencillo acomodar cambios al acotar el tamaño de los incrementos.
|
Es un
modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de
construcción de prototipos con los aspectos controlados y sistemáticos del
modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido de
versiones incrementales del software. En el modelo espiral, el software se
desarrolla en una serie de versiones incrementales. Durante las primeras
iteraciones, la versión incremental podría ser un modelo en papel o un
prototipo. Durante las últimas iteraciones, se producen versiones cada vez más
completas del sistema diseñado.
El
modelo en espiral se divide en un número de actividades de marco de trabajo,
también llamadas regiones de tareas. Generalmente, existen entre tres y seis
regiones de tareas.
ü Comunicación con el cliente: Las tareas requeridas
para establecer comunicación entre el desarrollador y el cliente.
ü Planificación: Las tareas requeridas para definir
recursos, el tiempo y otra información relacionadas con el proyecto.
ü Análisis de riesgos: Las tareas requeridas para
evaluar riesgos técnicos y de gestión.
ü Ingeniería: Las tareas requeridas para construir una
o más representaciones de la aplicación.
ü Construcción y acción: Las tareas requeridas para
construir, probar, instalar y proporcionar soporte al usuario (por ejemplo:
documentación y práctica).
ü Evaluación del cliente: Las tareas requeridas para
obtener la reacción del cliente según la evaluación de las representaciones del
software creadas durante la etapa de ingeniería e implementada durante la etapa
de instalación.
Cada
una de las regiones está compuesta por un conjunto de tareas del trabajo,
llamado conjunto de tareas, que se adaptan a las características del proyecto
que va a emprenderse. Para proyectos pequeños, el número de tareas de trabajo y
su formalidad es bajo. Para proyectos mayores y más críticos cada región de
tareas contiene tareas de trabajo que se definen para lograr un nivel más alto
de formalidad. En todos los casos, se aplican las actividades de protección
(por ejemplo: gestión de configuración del software y garantía de calidad del
software).
El
modelo en espiral es un enfoque realista del desarrollo de sistemas y de
software a gran escala. Como el software evoluciona, a medida que progresa el
proceso el desarrollador y el cliente comprende y reaccionan mejor ante riesgos
en cada uno de los niveles evolutivos.
Ventajas y Desventajas.
El
modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del
software de computadora.
|
Resulta
difícil convencer a grandes clientes de que el enfoque evolutivo es
controlable.
|
Como
el software evoluciona a medida que progresa el proceso, el desarrollador y
el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los
nivele evolutivos.
|
Debido
a su elevada complejidad no se aconseja utilizarlo en pequeños sistemas.
|
El
modelo en espiral permite a quien lo desarrolla aplicar el enfoque de
construcción de prototipos en cualquier etapa de evolución del producto.
|
Genera
mucho tiempo en el desarrollo del sistema
|
El
modelo en espiral demanda una consideración directa de los riesgos técnicos
en todas las etapas del proyecto y si se aplica adecuadamente debe reducir
los riesgos antes de que se conviertan en problemas.
|
Modelo
costoso
|
En
la utilización de grandes sistemas ha doblado la productividad.
|
Requiere
experiencia en la identificación de riesgos
|
Diferencias entre el modelo Incremental y Espiral
ü El
modelo en espiral es un tipo de modelo basado en el desarrollo iterativo. Se
diferencia del modelo iterativo incremental en que más que representarlo como
una secuencia de actividades se representa como una espiral donde cada ciclo en
la espiral representa una fase del proceso del software. Así, por ejemplo, el
ciclo más interno podría referirse a la especificación de requerimientos y el
siguiente ciclo al diseño.
ü La
diferencia principal entre este modelo y los vistos hasta ahora es la
evaluación del riesgo. El riesgo es todo aquello que pueda ir mal. Por ejemplo,
si la intención es utilizar un lenguaje de programación, un riesgo posible es
que los compiladores disponibles no produzcan código objeto
eficiente. Los riesgos originan problemas en el proyecto como por
ejemplo, el exceso de costes. Por lo tanto, la disminución de los riesgos es
una actividad muy importante.
Modelos de métodos formales
El
modelo de métodos formales acompaña a un conjunto de actividades que conducen a
la especificación matemática del software de computadora. Los métodos formales
permiten que un ingeniero del software especifique, desarrolle y verifique un
sistema basado en computadora aplicando una notación rigurosa y matemática.
La
ambigüedad, lo incompleto y la inconsistencia se descubren y se corrigen más fácilmente,
no mediante una revisión a propósito para el caso, sino mediante la aplicación
del análisis matemático. Cuando se utilizan métodos formales durante el diseño,
sirven como base para la verificación de programas y por consiguiente permiten
que el ingeniero del software descubra y corrija errores que no se pudieron
detectar de otra manera.
Gráfico de
los modelos de métodos formales
Modelo de Desarrollo Rápido de Aplicaciones
El
RAD es un proceso de desarrollo de software, El método comprende el desarrollo
iterativo, la construcción de prototipos y el uso de utilidades CASE.
Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar
también la usabilidad, utilidad y la rapidez de ejecución.
El
Desarrollo Rápido de Aplicaciones es un modelo de proceso del desarrollo del
software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente
corto. El enfoque DRA comprende las siguientes fases:
ü Modelado de gestión: el flujo de información
entre las funciones de gestión se modela de forma que responda a las siguientes
preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se
genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la proceso?
ü Modelado de datos: el flujo de información definido como
parte de la fase de modelado de gestión se refina como un conjunto de objetos
de datos necesarios para apoyar la empresa. Se definen las características
(llamadas atributos) de cada uno de los objetos y las relaciones entre estos
objetos.
ü Modelado de proceso: los objetos de datos
definidos en la fase de modelado de datos quedan transformados para lograr el
flujo de información necesario para implementar una función de gestión. Las
descripciones del proceso se crean para añadir, modificar, suprimir, o
recuperar un objeto de datos. Es la comunicación entre los objetos.
ü Generación de aplicaciones: El DRA asume la utilización
de técnicas de cuarta generación. En lugar de crear software con lenguajes de
programación de tercera generación, el proceso DRA trabaja para volver a
utilizar componentes de programas ya existentes (cuando es posible) o a crear
componentes reutilizables (cuando sea necesario).
ü Pruebas de entrega: Como el proceso DRA enfatiza la
reutilización, ya se han comprobado muchos de los componentes de los programas.
Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los
componentes nuevos y se deben ejercitar todas las interfaces a fondo.
El Modelo de Ensamblaje de Componentes.
Incorpora
muchas de las características del Modelo Espiral. Es evolutivo por naturaleza y
exige un enfoque interactivo para la creación del software. Sin embargo, el
modelo ensamblador de componentes configura aplicaciones desde componentes
separados del software (algunas veces llamados "clases").
Esto
se debe gracias a que, si se desean y se implementan adecuadamente, las clases
orientadas a objetos son reutilizables por las diferentes aplicaciones y
arquitecturas de sistemas basados en computadoras.
Técnicas de Cuarta Generación
Las
técnicas de cuarta generación son un conjunto muy diverso de métodos y
herramientas que tienen por objeto el de facilitar el desarrollo del software,
facilitan al que desarrolla el software la propiedad de especificar algunas
características del mismo a alto nivel, más tarde, la herramienta genera
automáticamente el código fuente a partir de esta especificación.
Los
tipos más comunes de generadores de código cubren uno o varios de los
siguientes aspectos:
ü Acceso a base de datos: utilizando lenguajes de
consulta de alto nivel.
ü Generación de pantallas: permitiendo diseñar la
pantalla dibujándola directamente, incluyendo además el control del cursor y la
gestión de los errores de los datos de entrada.
ü Gestión de entornos gráficos.
ü Generación de informes.: Como otros paradigmas, T4G
comienza con el paso de recolección de requerimientos. En el mejor de los casos
el cliente debería describir los requerimientos y estos traducirse directamente
a un prototipo operacional pero en general esto no es así. El cliente puede no
estar seguro de lo que necesita, puede ser ambiguo en la especificación de
hechos que son conocidos y puede ser incapaz o no desear especificar la
información en la forma que una herramienta T4G puede construirla, además las
herramientas actuales T4G no son lo suficientemente sofisticadas para acomodar
realmente lenguaje natural y no lo serán por algún tiempo.
No hay comentarios.:
Publicar un comentario