Unidad 2 Fundamentos de Ingeniería Del Software
Unidad 2 Fundamentos de Ingeniería Del Software
Unidad 2 Fundamentos de Ingeniería Del Software
I
Objetivos de la Unidad 2
– Definir qué es la ingeniería de software y explicar su
importancia
– Presentar los diferentes modelos de proceso de
software
– Definir el concepto de requerimientos del software
– Enumerar las actividades de análisis de
requerimientos
– Describir las funciones y componentes de una SRS
– Discutir algunos tipos de métricas de software, tales
como, métricas orientadas al tamaño, métricas
orientadas a función
– Definir las diferentes actividades para llevar a cabo el
análisis de riesgo
Objetivos de la Unidad 2… Continuación
– Discutir el planeamiento y cronograma de un proyecto de
software
– Describir los términos de control de calidad y
aseguramiento de calidad, en el contexto del software
– Presentar los diferentes niveles de prueba
– Explicar los métodos involucrados en el proceso de prueba
unitaria
– Establecer los enfoques involucrados en la prueba de
integración
– Presentar los deferentes componentes de la prueba del
sistema
Unidad 2:
Fundamentos de Ingeniería de Software
Objetivos de Aprendizaje
• Explicar el software como un producto y proceso
• Definir la ingeniería de software y explicar su
importancia
• Discutir las ventajas y desventajas de diversos
modelos de proceso de software
• Discutir acerca de los Modelos Evolutivos y
Secuenciales
Introducción
Confiable Portable
Características Evolutivo
Robusto del Software
Reutilizable Mantenible
Eficiente
Tipos de Aplicaciones de Software
Sistema
Tiempo Incorporadas
Real
Tipos de
Aplicaciones
de Software
Negocio Computadoras
Personales e
Individuales
Ingeniería y
Científicas
Proceso de Software
Comprensión
Facilidad de Facilidad de
Soporte Adaptación
Visibilidad
Características Confiabilidad
del Proceso de
Software
Facilidad de
Aceptación Facilidad de
Verificación
Robustez
Rapidez
Facilidad de
Mantenimiento
Fases del Proceso de Desarrollo de Software
• Fase de Definición:
- Ingeniería de información
- Planeamiento del proyecto de Software
- Análisis de requerimientos
• Fase de Desarrollo:
- Diseño de Software
- Codificación
- Prueba
• Fase de Mantenimiento
Categorías de Modelos de Procesos de Software
• Modelo Evolutivo
Ingeniería de
Sistema
Análisis de
Requerimientos
Diseño
Codificación
Prueba
Mantenimiento
Modelo de Cascada
Ventajas:
– Posibilita un orden máximo en el proceso de implementación
– Proporción una plantilla estructurada para la ingeniería de
software
Desventajas:
– El cliente debe proporcionar todos los requerimientos de una
sola vez
– Es difícil para los usuarios anticipar si el sistema final va a
satisfacer sus requerimientos
– Cualquier cambio que se haga durante la implementación
puede causar confusión.
– La versión de trabajo puede verse sólo en una etapa
posterior.
Modelo de Desarrollo Rápido de Aplicación
Uso de 4GT y
Modelar el componentes
Negocio reutilizables
Equipo 3 Especificaciones
Diseño Codificación Pruebas Lanzamiento
Parciales
Equipo 3
Especificaciones Codificación Lanzamiento
Diseño Pruebas
Parciales
Obtener
Requerimientos
Diseño
Rápido
Refinar Prototipo
Requerimientos
Evaluar
Prototipo
Lanzamiento e
Ingeniería
Modelo de Creación de un Prototipo
• Ventajas:
– Ocurre un desarrollo rápido sin detalles de la entrada y
salida
– Los clientes pueden ver muy pronto la salida de alguna
forma
– Hay la oportunidad de modificar los requerimientos
tempranamente en el proceso de desarrollo
• Desventajas:
– El cliente puede tomar el prototipo como el producto final.
– Puede resultar que el proceso de desarrollo del producto
tome mucho tiempo
– Los desarrolladores no están seguros de qué hacer con
el prototipo
Modelo Incremental
Estudio del Análisis Diseño Lanzamiento
Codificación Pruebas
Sistema y Parcial Restringido del 1er
Análisis de incremento
Requerimientos Retroalimentación
Retroalimen-
tación de
todos los Retroalimentación del Incremento
Usuarios Anterior
Análisis de
Planificación Riesgo
del Proyecto
Codificación, Prueba y
Lanzamiento
Evaluación y
Retroalimentació
n del Cliente
Modelo Espiral
Ventajas:
– Las últimas iteraciones tienen más probabilidad de tener
una versión final rápidamente
– Este modelo se puede usar aún después de que el
software es entregado
– Usa el prototipo como un mecanismo de reducción de
riesgo
Desventajas:
– Demanda una experiencia considerable de valoración del
riesgo por parte del cliente
– Los clientes son generalmente aprensivos de si el enfoque
evolutivo puede ser controlado o no.
Modelo de Ensamblado de Componentes
• Considerar el diseño e identificar los componentes que
pueden ser reutilizados
• Seleccionar los componentes requeridos de la librería o
repositorio
• Retocar los componentes seleccionados de ser necesario
• Construir componentes adicionales para ayudar a realizar el
diseño en la etapa de la iteración
• Ensamblar los componentes para ayudar a la entrega del
producto en la etapa de iteración
• Adicionar los nuevos componentes creados en la librería o
repositorio
• Completar la iteración actual del componente ensamblador
Técnicas de Cuarta Generación (4GTs)
Administración de Requerimientos
Validación de Requerimientos
Modelado de Sistema
Especificación de Requerimientos
Negociación de Requerimientos
Refinamiento de Requerimientos
Análisis de Requerimientos
Levantamiento de Requerimientos
Levantamiento de Requerimientos
• Proceso de recibir un conjunto de requerimientos
de:
- el cliente
- el usuario
- la gerencia
Mala apreciación
del entorno de Problemas en el
trabajo
Levantamiento de Problema de
Requerimientos Volatilidad
Problema de
Comprensión
Mala Requerimientos
comunicación Volatiles en sí
Mismos
Cambia en el
Clientes Tiempo Número
Inseguros de de
sus Necesidades Requerimientos
Pobre Dominio
del
Conocimiento
Análisis de Requerimientos
• Los requerimientos se analizan para ser categorizados y
organizados.
No-ambigüedad Consistencia
Aspectos que
Aseguran la
Validación de
Requerimientos
Correspondencia a
Completitud ciertos estándares
Administración de Requerimientos
No Ambigua
Correcta Verificable
Atributos de
Rastreable un SRS de Consistente
Alta Calidad
Integra Comprensible
Comentada
Resumen
• Se discutió la naturaleza e importancia de los
requerimientos
• Se definieron los requerimientos de software y el término
SRS
• Se describieron las actividades para el análisis de los
requerimientos
• Se describió el proceso de análisis de requerimientos
• Se describieron las funciones y componentes de una SRS
• Se explicaron los diferentes atributos de una SRS bien
redactada