El documento describe varios modelos de desarrollo de software, incluyendo el modelo en cascada, el modelo evolutivo incremental y en espiral, y los modelos basados en reutilización y transformaciones. Explica que no existe un modelo universal y que los modelos son guías flexibles para las actividades de desarrollo de software como el análisis de requisitos, diseño, programación e integración.
2. SOFTWARE:
Se conoce como software1 al equipo lógico de un sistema
informático, que comprende el conjunto de los
componentes lógicos necesarios que hacen posible la realización de
tareas específicas, en contraposición a los componentes físicos que
son llamados hardware. La ingeniería de software es la encargada
de desarrollar las metodologías apropiadas para realizar un software
de calidad. Este software para poseer los requisitos apropiados debe
tener como características: ser confiable, robusto, reutilizable,
eficiente, mantenible, evolutivo, portable y utilizable.
3.
4. PROCESO DE DESARROLLO DEL SOFTWARE:
Es un conjunto de tareas que se sigue para construir un
software; este va desde la concepción de una idea hasta
la entrega o liberación del mismo.
ACTIVIDADES EN EL DESARROLLO DE SOFTWARE:
Dentro de las principales actividades están:
• Análisis de requerimiento: Identificar el problema y
documentarlo.
• Especificación: Describe el “que” y no el “como”.
• Diseño: Se desarrolla la arquitectura del sistema, asi como
los componentes.
5. PROCESO DE DESARROLLO DEL SOFTWARE:
• Programación: Se desarrollan los módulos y las clases.
• Integración y gestión de configuraciones: Ensamblaje de
versiones coherentes de los componentes.
• Validación: Permite determinar la confiabilidad del producto.
- Prueba: el programa satisface la especificación.
- Testing: búsqueda de errores en los componentes o
integración del sistema.
• Prototipaje: desarrollo parcial del sistema.
6.
7. MODELO DE PROCESOS
No existe un modelo universal.
No son rígidos.
Son una guía de como se deben adelantar las
actividades.
8.
9. MODELO DE PROCESOS
CASCADA: Encadenamiento secuencial de las actividades, cada etapa
produce documentos que serán la entrada a la siguiente entrada, y cada
etapa debe concluirse para iniciar la próxima.
CASCADA MODIFICADO: Es un modelo iterativo y no lineal. Se pueden
congelar partes del desarrollo.
VENTAJAS: Planificación sencilla.
DESVENTAJAS: Retrasos innecesarios.
10.
11. MODELO DE PROCESOS
METODOLOGIA DRA: Es el proceso de desarrollo de software diseñado para
facilitar y acelerar la creación de aplicaciones, que permite construir
sistemas utilizables en poco tiempo. Participan varios equipos de trabajo
y cada equipo maneja una parte del sistema.
DESVENTAJAS: No se enfoca en detalles, además que se necesita un grupo
de desarrolladores de software.
MODELO EVOLUTIVO: - Incremental
- Espiral
- Basado en reutilización
12. MODELO DE PROCESOS
MODELO INCREMENTAL: Fue propuesto por Harlan Mills en el año 1980.
Surge el enfoque incremental de desarrollo como una forma de reducir la
repetición del trabajo en el proceso de desarrollo y dar oportunidad de
retrasar la toma de decisiones en los requisitos hasta adquirir
experiencia con el sistema.
MODELO EN ESPIRAL: En cada siclo se define el objetivo, se analizan los
riesgos, se desarrolla y verifica la solución obtenida y se planifica el
siguiente siclo.
VENTAJAS: Resolución temprana de riesgos. Define su arquitectura en las
fases iniciales.
13. MODELO DE PROCESOS
MODELO BASADO EN REUTILIZACION: El diseño basado en reutilización puro
busca construir un producto software integrando componentes pre-
existentes.
Los beneficios principales que otorga este modelo son:
-Tiempos de desarrollos cortos
-Disminución de errores
-Disminución de costos y riegos ya que se reduce los componentes a
desarrollar
-Existe un aumento de la confiabilidad ya que los componentes a utilizar
ya fueron testeados y utilizados en otro momento previo al comienzo del
proyecto
14. MODELO DE PROCESOS
MODELO BASADO EN TRANSFORMACIONES: Conjunto de técnicas y
herramientas basadas en modelos matemáticos y lógica formal que son
utilizadas para especificar y verificar los requerimientos y el diseño de
sistemas computarizados. Las especificaciones son refinadas hasta
alcanzar el programa.