Académique Documents
Professionnel Documents
Culture Documents
Tema 1. Introducción
Tema 1. Introducción
Estructura
El software.
Factores de calidad del software.
Problemas en el desarrollo de software.
La Ingeniería del Software.
Visión general del proceso de Ingeniería del Software.
Tema 1. Introducción
Bibliografía
UN
PROGRAMA
UN
SISTEMA
(Algoritmos y SOFTWARE
estructuras de
datos)
UN
PRODUCTO
UN PROYECTO
SOFTWARE SOFTWARE
Artesanal Calidad
Disciplina de Herramientas
ingeniería
Gestión de proyectos
Desarrollo del software.
Un símil.
INDUSTRIA de la CONSTRUCCION INDUSTRIA del SOFTWARE
- PEQUEÑOS PROYECTOS
(armario empotrado) (pequeño programa)
1 día x 1 hombre 1 día x 1 hombre
+ GRANDES PROYECTOS
(La Défense, Opera House) (Gran proyecto Sw)
Varios años x Varios años x
Contratistas, Contratistas,
constructores, empresa software,
arquitectos, ingenieros software,
delineantes, analistas,
obreros, operadores,
albañiles, programadores,
auditores, auditores,
aficionados al arte usuarios
Los proyectos más pequeños (los de uso personal) se ‘parecen’ a los pequeños
programas:
puede desarrollarlo el propio interesado, y en un tiempo mínimo.
Los proyectos más grandes se ‘parecen’ a los grandes proyectos software:
gran cantidad de personal y usuarios,
son personas distintas los que desarrollan, usan y mantienen,
cobran importancia fundamental las tareas relacionadas con aspectos
administrativos, de planificación, estimación y control.
Origen: desconocido
El Software
El Software:
Instrucciones que, cuando se ejecutan, proporcionan la
funcionalidad deseada.
Estructuras de datos que facilitan a las instrucciones
manipular adecuadamente la información.
Documentos que describen el desarrollo, uso, instalación y
mantenimiento de los programas.
Software: "programas de computador, procedimientos,
y, posiblemente, la documentación asociada y los
datos pertenecientes a las operaciones de un sistema
de computación".
Incluye: entrenamiento, soporte al consumidor e
instalación.
Características del software
Fiable Portable
Capacidad de ofrecer los mismos Capaz de integrarse en entornos
resultados bajo las mismas distintos con el mismo esfuerzo.
condiciones.
Adaptable
Eficiente (extensibilidad)
Utilización óptima de los recursos
Modificar alguna función sin que
de la máquina.
afecte a sus actividades.
Robusto Inteligible
No poseer un comportamiento
Diseño claro, bien estructurado y
catastrófico ante situaciones
documentado.
excepcionales
(Tolerante a fallos). No Erróneo
Correcto No exista diferencia entre los
valores reales y los calculados
Se ajusta a las especificaciones
dadas por el usuario. Reutilizable (reusabilidad)
Atributos de Calidad del
Software (Sommerville 2002)
Mantenibilidad
Confiabilidad
fiabilidad
seguridad
protección
Eficiencia
Usabilidad
Perspectiva histórica del
desarrollo de software
Década 50-60: Década 80-90:
“Software como un añadido”. Tecnología de SGBDs, SOs...
Desarrollo artesanal, a medida. Nuevos paradigmas de
Lenguajes de bajo nivel. programación y de producción de
programas:
Década 60-70: OO
C/S
Software como producto.
Década lenguajes y compilación. 90’s - actualidad:
“Crisis del software”.
Análisis/Diseño OO.
Década 70-80: Tecnología CASE
Programación estructurada. Componentes y reutilización
Ingeniería del Software. Interoperabilidad (CORBA, .NET...)
Primeros métodos estructurados. Internet
ISw. distribuida
repositorios de componentes
reutilizables
e-business; e-commerce
...
Frecuentemente, el sw es la
parte más compleja (Thayer 2002)
La problemática actual
del software
100
80
Hardware
60
Software
40
20
0
60 70 80 años
Problemas del software (II)
Usado después
Usado pero con
trabajo extra o de cambios
abandonado ~ 3%
despues
19%
Usado tal como
Pagado pero se entregó
nunca Entregado ~ 2%
entregado pero nunca
29.7% usado
47%
Año 1979
Total: $6.8 millones
Coste del software
TOTAL Desarrollo
1/4 inicial 1/3
Desarrollo Análisis 1/6
inicial y diseño codificación
3/4 (A/D)
Mantenimiento 1/2
Validación y
puesta a punto
(V/PP)
Codif.
1/24 1/12
A/D
1/8
VALIDACIÓN + PP + MANT. = 7/8 (88%)
V/PP
3/4
Mantenimiento CODIFICACIÓN = 1/24 (4%)
ANÁLISIS + DISEÑO = 1/12 (8%)
TOTAL
En España
Definición: Valor monetario del mercado interior de productos y servicios de TI, como porcentaje del PIB (ambos a precios
corrientes).
En España (II)
Principales variables del mercado
español de Tecnologías de la 2001 2002 %
información en 2002 (en millones Sistemas
de euros) Operativos
Herramientas de
315,01 330,79 5,01
Modelado del
métodos de análisis, negocio ingeniería de
diseño, prueba...
requisitos
reutilización
Prototipado POO
métodos formales
herramientas 4ª gen.
lenguajes no
herramientas CASE: procedimentales para
editores dirigidos por la sintaxis,
consulta a BD’s
entornos integrados de
generadores de pantallas,
desarrollo,
generadores de código,
herramientas para la gestión de
generadores de informes
proyectos,
herramientas de prototipado, etc.
Objetivos de la Ingeniería del
Software
Abstracción Localización
Permite parcelar la complejidad. Deben estar agrupados todos
Por ello se olvidan aspectos aquellos elementos que están
irrelevantes del sistema y se afectados por un mismo hecho.
potencian los fundamentales. Uniformidad
Encapsulamiento u Ocultación Tódos los módulos deben tener
de la información una notación similar.
Esconder todos los detalles que Completitud
no afecten a otros módulos,
Deben estar desarrollados todos
definiendo interfaces estrictos que
los aspectos del sistema.
sirvan de interacción entre los
distintos modelos. Validación y Verificabilidad
Modularidad El producto final debe ser
fácilmente validable y verificable:
Sirve para parcelar la solución en
¿Estamos desarrollando el
módulos independientes con programa correcto?
fuerte cohesión interna.
¿Estamos desarrollando
correctamente el programa?
Visión general del proceso
de ISw
Documentación esencial
(CASE, Computer Assisted
Software Engineering)
Tipos de mantenimiento
DEFINICIÓN
DESARROLLO
Fallos de definición
MANTENIMIENTO
Errores
Modificaciones y adaptaciones
60-100x
1,5-6x
1x
Definición Desarrollo Mantenimiento