Documentos de Académico
Documentos de Profesional
Documentos de Cultura
características y evolución
del software
un poco de historia
primeras décadas:
desarrollar el hardware
reducir costes de procesamiento y almacenamiento
productos personalizados
desarrollados específicamente para un cliente
aplicaciones de negocio, sistemas de control de tráfico aéreo, control de procesos de
fabricación,...
el cliente controla la especificación de la aplicación
Algunas preguntas:
¿Por qué se tarda tanto? (y casi siempre más de lo previsto)
¿Por qué la productividad es tan baja?
¿Por qué cuesta tanto?
¿Por qué siempre quedan errores sin localizar?
escuela superior de ingeniería informática
ingeniería del software de gestión
naturaleza y problemas del desarrollo
de software
El software como elemento lógico.
Se desarrolla, no se fabrica:
Calidad del diseño.
Costes más importantes en la ingeniería
Gestión especial de los proyectos
Planificación y estimaciones
imprecisas
Dificultad de mantener
el software existente
escuela superior de ingeniería informática
Insatisfacción del cliente
ingeniería del software de gestión Calidad Baja productividad
naturaleza y problemas del desarrollo
de software
- Uso de estándares
Ausencia de entrenamiento formal en nuevas técnicas
- Uso de herramientas
(programadores vs. ingenieros de software) - Mala planificación: aumento
de programadores
Resistencia al cambio
Mitos
MITOSdel software:
DE LOS DESARROLLADORES MITOS DEL CLIENTE
- Programa funcionando = fin del trabajo - Requisitos establecidos como
- Calidad = el programa se ejecuta una declaración general de
sin errores objetivos
- Entrega al cliente: programa - Flexibilidad del software ante
funcionando los cambios
escuela superior de ingeniería informática
ingeniería del software de gestión
la ingeniería del software
definiciones
establecimiento y uso de principios de ingeniería robustos, orientados a
obtener software económico, fiable, eficiente y que satisfaga las necesidades
del usuario
disciplina que comprende todos los aspectos de la producción de software,
desde las etapas iniciales hasta el mantenimiento:
“disciplina de ingeniería”: aplicación de teorías, métodos y herramientas para
solucionar problemas, y teniendo en cuenta restricciones financieras y
organizativas
“todos los aspectos de producción”: comprende procesos técnicos del
desarrollo y actividades como la administración de proyectos, desarrollo de
herramientas, métodos y teorías
actividad de
modelado
solución de problemas
adquisición de conocimiento
dirigida por una fundamentación
mejores técnicas de
control de calidad
mejores elementos
de programación
filosofía de coordinación,
control
escuela superior de ingeniería informática y buena gestión
ingeniería del software de gestión
modelado
modelado: método básico de la ciencia
modelo
representación abstracta de un sistema que da respuesta a preguntas sobre el
sistema
útiles cuando se manejan sistemas grandes, pequeños, complicados o caros
para tener una experiencia de primera mano
permiten visualizar y comprender sistemas que no existen o que sólo se
supone que existen
ejemplos:
biología: modelos de dinosaurios a partir de restos
física: modelos que representan cómo se reúnen materia y energía en los niveles
subatómicos más bajos
el sistema en el mundo real serían dinosaurios o partículas subatómicas
modelos
iniciador
<<subsistema>>
Enviar factura al comprador
Sistema de
iniciador visión
Hojear facturas
iniciador <<subsistema>>
Pagar factura
Vendedor
<<subsistema>> <<subsistema>>
Comprador <<extend>> Controlador del Controlador del
iniciador
brazo asidero
<<subsistema>>
Realizar transacción Sistema de identificación
Pagar recargo por saldo deudor de objetos
<<subsistema>>
productos de trabajo
artefacto o elemento que se produce durante el desarrollo (documento, fragmento de software,...)
dos tipos:
producto de trabajo interno: producto para el consumo interno del proyecto (por ejemplo, una revisión de
la estructura de la base de datos, resultados de pruebas para el gerente,...)
entrega: producto de trabajo para un cliente (especificación de requisitos, manual de usuario, producto
final,...)
Flujo de eventos:
se acuerdan requisitos no
2. El Viajero selecciona las estaciones de origen y destino funcionales. Por ejemplo:
3. El DistribuidorDeBilletes muestra el precio del billete
4. El Viajero inserta una cantidad de dinero que, al menos, debe
el distribuidor de billetes debe estar
disponible al menos un 95% del
ser igual que el precio del billete tiempo
5. El DistribuidorDeBilletes emite el billete especificado al Viajero y
devuelve el cambio si es necesario el distribuidor de billetes debe dar
respuesta en menos de un segundo
Postcondición: después de seleccionada la
6. El Viajero coge el billete y el cambio transacción
Requisitos
escuela superior deespeciales:
ingeniería informática
Si la del
ingeniería transacción
software no ser termina después de un minuto de
de gestión
inactividad, el DistribuidorDeBilletes devuelve todo el dinero
insertado
actividades de desarrollo
análisis
se produce un modelo correcto, completo, consistente,
claro, realista y verificable
transformación de los casos de uso en un modelo que
describe por completo el sistema y que se usará en el
Transacción
diseño
da como resultado
descubrimiento y resolución con el cliente de
cantidad pagada
ambigüedades e inconsistencias en el modelo de casos de
BilleteTren
uso Saldo
válido para
Zona
Moneda Papel
diseño de objetos:
definición de objetos e interfaces de subsistemas,
reestructuración del modelo de objetos para lograr los
objetivos de diseño, optimización del modelo para mejorar el
IU Solicitud rendimiento,...
de pago
resultado: modelo de objetos detallado
Comprador
Procesamiento de
solicitudes de pago
actividades del diseño
diseño arquitectónico
Planificador Gestor de
Procesamiento
de facturas
especificación de los subsistemas
de pagos pedidos
diseño de interfaz
diseño de componentes
Solicitud Confi rmación Factura
de pago de pedidos
diseño de la estructura de datos
diseño procedimental (algoritmos)
escuela superior de ingeniería informática
ingeniería del software de gestión
<<subsystem>> <<subsystem>>
Gestión Trabajos Gestión Sistema <<subsystem>>
Externos Mantenimientos
de Gestión
<<subsystem>>
Gestión Mantenimiento <<subsystem>>
Preventivo Gestión
Subgrupos-Instalaciones
<<subsystem>>
Gestión Máquinas
Subgrupo
Baja Instalaciones
<<include>>
Validar Usuario
<<subsystem>> <<subsystem>> <<subsystem>> Administrador
Gestión Mantenimiento Validación Gestión <<include>> (from Validación Usuarios)
Correctivo Usuarios Instalaciones (from Validación Usuarios)
Modificación Instalaciones
<<subsystem>>
Gestión Mantenimiento <<subsystem>>
Preventivo Gestión Consulta Instalaciones
Operario
Subgrupos-Instalaciones
(from Vali dación Usuarios)
<<subsystem>>
Gestión Máquinas
Subgrupo
Baja Características-Maq
<<include>>
Validar Usuario
Gestión Administrador
Características Gestión Tareas <<include>> (from Vali dación Usuari os)
Máquinas
(from Vali dación Usuari os)
Máquinas
Modificación Características-Maq
Consulta Características-Maq
Operario
(from Vali dación Usuari os)
Mostrar(Datos)
Cubrir_Datos()
Si no Existe
Comprobar()
<<include>>
Visualizar Resultado
Baja Características-Maq
<<include>>
Validar Usuario Construir
Administrador Datos no Correctos
<<include>> (from Validación Usuari os)
(from Vali dación Usuari os)
Fin Si
Fin Si
Consulta Características-Maq
Operario
(from Vali dación Usuarios)
formulario.
Administrador Validado
Post-Condiciones 1. Los datos de la nueva característica quedan
guardados si el proceso finaliza correctamente.
2. Los datos de la nueva característica no quedan
guardados si se produce algún error durante el
proceso.
Descripción 1. El sistema muestra el formulario de altas.
2. El usuario introduce los datos. Visualizar Seleccionar
Formulario Formulario
3. El sistema realiza la validación de los datos.
4. Si la característica ya existe [A].
5. Si los datos no son correctos [B].
6. El usuario selecciona la opción de Guardar.
Comprobar Introducir
7. El sistema guarda los datos.
Datos Datos
8. Si se guarda correctamente se visualiza un mensaje,
si hay algún problema el sistema avisa con un
mensaje de error. Datos Incorrectos Mensaje "Error
Excepciones El proceso se puede cancelar en cualquier momento.
Datos"
A. Si la característica ya existe se visualizan sus datos. Datos Correctos
B. Datos incorrectos, ir a punto 2.
Comprobar Existencia
de la Instalación
No Existe Seleccionar
Guardar
Modificación Características-Maq
Consulta Características-Maq
Operario
(from Vali dación Usuarios)
TCP/IP
Cliente
TCP/IP
Cliente
cada actividad tiene sus criterios de entrada y salida, que permiten conocer cuando comienza y
termina dicha actividad
Requerimentos
y Análisis
Diseño
Implementación
Pruebas
Mantenimiento
prototipos desechables
comprensión de las necesidades del
Recolección cliente
y refinamiento de desarrollo de una definición mejorada de
requisitos los requerimientos del sistema
prototipos centrados en la
experimentación de requisitos poco claros
Producto o complejos
Diseño
rápido problemas
prisas del cliente (utilización del prototipo como
sistema final
pasar elecciones debidas al prototipo a la
implementación final (entorno, sistema
Refinamiento Construcción operativo,...)
del prototipo del prototipo estructura deficiente
evolución del proceso difícil de gestionar
herramientas y técnicas especiales
Evaluación del
poco adecuado para grandes sistemas
prototipo por
el cliente
escuela superior de ingeniería informática
ingeniería del software de gestión
prototipado con lenguajes
visuales
Hypertext
Date component display component
Tree display
component
ventajas
Validar
incrementos puesta en marcha temprana
los incrementos iniciales permiten refinar
Integrar requerimientos de incrementos posteriores
incrementos
satisfacción del cliente (bajo riesgo de fallo)
sistema final muy probado y con pocos fallos
Validar
sistema problemas
incrementos relativamente pequeños
sistema incompleto adaptación de requerimientos a incrementos del
tamaño apropiado
sistema completo
identificación de recursos comunes a todos los
incrementos
Sistema final
escuela superior de ingeniería informática
ingeniería del software de gestión
modelo en espiral
PROGRESO
propuesto por Barry Boehm A TRAVÉS
DETERMINAR DE LAS ITERACIONES
OBJETIVOS, EVALUAR ALTERNATIVAS,
organización en ciclos ALTERNATIVAS Y IDENTIFICAR Y
RESTRICCIONES RESOLVER RIESGOS
primer ciclo: factibilidad
Análisis de riesgos
segundo ciclo:
requerimientos
Análisis de riesgos
tercer ciclo: diseño
...
Análisis de riesgos
cada ciclo se divide en 4 Prototipo
operativo
sectores An. Prototipo 3
Riesgo.
Proto-
- Prototipo 2
definición de objetivos, REVISIÓN tipo 1
restricciones del producto y
proceso, plan de .Plan de Simulaciones, modelos,
requerimientos Concepto de pruebas comparativas
administración,... Plan de ciclo operación
de vida Requerimientos
evaluación y reducción de de software
riesgos (por ejemplo, mejor Diseño del Diseño
definición de requerimientos producto detallado
Plan de Validación de
mediante prototipos) desarrollo requerimientos
Codificar
desarrollo y validación: Plan de integración
elección de un modelo para y prueba Diseño de validación
y verificación Prueba de
el desarrollo PLANIFICAR SIGUIENTE unidad
FASE
planificación: el proyecto se Prueba de
integración
revisa y se decide si se Prueba de
continúa con el siguiente aceptación
-
Explotación
ciclo. si es así, se planifica la
DESARROLLAR, VERIFICAR
siguiente fase PRODUCTO DE SIGUIENTE NIVEL
la iteración se centra en un grupo de casos de uso que juntos amplían la utilidad del producto desarrollado hasta ahora
las iteraciones sucesivas se construyen sobre los artefactos de desarrollo tal como quedaron al final de la última iteración
en las primeras fases del ciclo de vida los incrementos implican modificaciones
en las últimas fases los incrementos implican menos modificaciones y más añadidos a los modelos
si una iteración cumple con sus objetivos, el desarrollo continúa con la siguiente iteración. Si no, se revisan las decisiones previas y se adopta un nuevo enfoque
se acelera el ritmo del esfuerzo de desarrollo en su totalidad, para obtener resultados claros a corto plazo
los requerimientos del usuario se van refinando en iteraciones sucesivas, por lo que se pueden acomodar mejor los cambios
Requisitos
una iteración en la
fase de elaboración
Análisis
Diseño
Implementación
Prueba
iter #1 iter #2 --- --- --- --- --- iter #n-1 iter #n
Iteraciones
escuela superior de ingeniería informática
ingeniería del software de gestión
bibliografía
Bruegge, B., Dutoit, A.H., Ingeniería del Software Orientado a Objetos, cap. 1