Professional Documents
Culture Documents
afectan la
Calidad del
Software
CIENCIA VS INGENIERÍA
Factores que afectan la Calidad del
Software
Cambios
• La "Entropía" de un sistema de software se incrementa con cada cambio:
Cada cambio implementado erosiona la estructura del sistema lo cual hace
que el siguiente cambio sea aún más costoso ("Segunda Ley de la Dinámica
de Software").
• Conforme pasa el tiempo, el costo de implementar un cambio será
demasiado alto, y el sistema entonces no podrá soportar la tarea prevista.
Por que el software es tan complejo
El dominio del problema es difícil
El dominio del problema es a veces difícil, simplemente
porque no somos expertos en ello.
3. Validación: El software debe validarse, para asegurar que cumpla con lo que
quiere el cliente.
1. Codificar y corregir
2. Modelo en cascada
3. Desarrollo evolutivo
4. Desarrollo formal de
sistemas
5. Desarrollo basado en
reutilización
6. Desarrollo incremental
7. Desarrollo en espiral
Métodos de Ingeniería de software
Enfoques estructurados para el desarrollo de
software que incluyen modelos de sistema,
notaciones, reglas, consejos de diseño y
orientación de procesos.
Meir M. Lehman
Programas de Tipos de
Software
tipo S ("determinable"):
1. Problema puede
plantearse formalmente
y completamente.
2. Aceptación: Es el
programa correcto de
acuerdo a sus
especificaciones?
3. Este software no
evoluciona.
4. Un cambio a la
especificación define un
nuevo problema, por lo
tanto, un nuevo
programa
Tipos de Software
Programas de tipo E
("Embedded")
1. Un sistema que se
convierte en parte del
mundo que modela
2. Aceptación: depende
totalmente de opinión y
el juicio
3. Este software es
inherentemente evolutivo
4. Cambios en el software y
en el mundo se afectan
entre sí
Modelo de procesos de software
Para resolver los problemas reales de una industria, un ingeniero del
software o un equipo de ingenieros debe incorporar una estrategia de
desarrollo que acompañe al proceso, métodos y capas de herramientas.
DEFINICION DE
PROBLEMAS
ESTADO DESARROLLO
ACTUAL TECNICO
INTEGRACION
DE SOLUCIONES
Modelos del Proceso del Software
Es una representación abstracta de un proceso del software que pueden
utilizar para explicar diferentes enfoques para el desarrollo del software.
Los modelos del proceso son:
Modelo lineal secuencial o Cascada
Es la secuencia de actividades, donde la estrategia
principal es seguir el progreso del desarrollo de software
hacia puntos de revisión bien definidos.
Describe el orden de las actividades del desarrollo de
software.
Toma demasiado tiempo en ver resultados, lo que
retrasa la detección de errores hasta el final.
MODELO EN CASCADA
DEFINICION
ANALISIS
DISEÑO
DESARROLLO
PRUEBAS
Definición de requisitos: MANTENIMIENTO
Las restricciones y metas del sistema se definen a partir de la interacción con el
interesado.
Análisis
Se comprende la naturaleza de la aplicación y el dominio de información, así como su
funcionalidad, rendimiento e interconexión
Se reúnen todos los requisitos que debe cumplir el software
Diseño
se traducen los requisitos a una representación que permita evaluar la calidad del software que
se va a construir antes de comenzar la implementación
Desarrollo
Se llama también Implementación
Generación de código entendible por la máquina.
El paso de codificación realiza esta tarea.
Pruebas
Proceso de depuración de programas
Checar la validez de las sentencias
Pruebas para detectar errores, asegurando que a partir de los datos de entrada si se genere la salida
deseada
Mantenimiento
Corrección de errores no detectados en la etapa de pruebas
Posibles mejoras funcionales debidas a nuevos requerimientos del cliente
En esta fase se vuelven a aplicar todas las etapas anteriores sobre el software existente
MODELO EN CASCADA
VENTAJAS:
Se tiene todo bien organizado y no se mezclan las fases.
Es perfecto para proyectos que son rígidos.
Ideal para proyectos donde se especifiquen muy bien los requerimientos.
Ideal para proyectos en que se conozca muy bien la herramienta a utilizar.
DESVENTAJAS
Difícilmente un cliente va a establecer al principio todos los
requerimientos necesarios.
No permite movilizarse entre fases.
Los resultados y/o mejoras no son visibles, el producto se ve recién
cuando este, esté finalizado.
MODELO EN ESPIRAL
Se basa en una estrategia para
reducir el riesgo del proyecto en
áreas de incertidumbre, como
requerimientos iniciales incompletos
e inestables. El modelo enfatiza
ciclos de trabajo, cada uno de los
cuales estudia el riesgo antes de
proceder al siguiente ciclo.
MODELO EN ESPIRAL
Cada ciclo comienza con la identificación de los objetivos, soluciones
alternativas, restricciones asociadas con cada alternativa y, finalmente, se
procede a su evolución. Cuando se identifica incertidumbre, se utilizan
diversas técnicas para reducir el riesgo de las distintas alternativas. Cada
ciclo termina con una revisión que discute los logros actuales y los planes
para el siguiente ciclo.
Se crea un diseño preliminar para el nuevo sistema. Esta fase es la más
importante del modelo de espiral.
Se construye un primer prototipo del nuevo sistema tomando como
referencia el diseño preliminar.
MODELO EN ESPIRAL
MODELO EN ESPIRAL
Un segundo prototipo es evolucionado de un procedimiento de cuatro fases: