Fundamentos de
Ingeniería del Software
Capítulo 1. Introducción
Capítulo 1. Introducción
Estructura
1. Motivación.
2. El software.
3. Factores de calidad del software.
4. Problemas en el desarrollo de software.
4. Problemas en el desarrollo de software.
5.
6. Visión general del proceso de ingeniería del software.
7. Responsabilidad ética y profesional en ingeniería del
La ingeniería del software.
software.
Capítulo 1. Introducción
Bibliografía
(Pressman 2006), (Pressman 2001) o
(Pressman 1998)
Cap.1 y Cap. 2 (aptdo. 2.1)
1. Motivación. Hacia un
proyecto software…
PROGRAMA
SISTEMA
SOFTWARE
PRODUCTO
SOFTWARE
PROYECTO
SOFTWARE
+ Requisitos
+ Arquitectura
+ Interfaces e integración
+ Algoritmos y
estructuras de datos
+ …
Ing. en Informática 1er / 2o curso…
Carrera profesional…
Motivación. Un par de
preguntas…
Con las herramientas actuales,
¿la programación en sí es un reto?
Como futuro ingeniero/a de software,
¿qué crees que te debería distinguir en el
mercado laboral?
Motivación. Necesaria
aproximación disciplinada…
Información = Ppal. activo de las empresas
desarrollo de SI
fuertes presiones
calidad,
calidad,
productividad
¿Desarrollo artesanal suficiente?
⇒ Disciplina de ingeniería
(sw. fiable, económico y eficiente)
Gestión de calidad
Métodos (técnicas,
procesos, herramientas)
Gestión de proyectos
Motivación. Un símil con la
industria de la construcción…
INDUSTRIA de la CONSTRUCCION
INDUSTRIA del SOFTWARE
PEQUEÑOS PROYECTOS
(pintar dormitorio de los niños)
1 día x 1 hombre (autodidacta)
(pequeño programa)
1 día x 1 hombre (autodidacta)
GRANDES PROYECTOS
(El Nido, Pekín)
Varios años x
(Gran proyecto sw)
Varios años x
Contratistas,
constructores,
constructores,
arquitectos,
delineantes,
obreros,
albañiles,
auditores,
aficionados al arte
…
Contratistas,
factoría software,
factoría software,
ingenieros software,
analistas,
operadores,
programadores,
auditores,
usuarios
…
• Los proyectos más pequeños (de uso personal) se ‘parecen’ a los pequeños programas:
puede desarrollarlo el propio interesado, en un tiempo mínimo.
• Los proyectos más grandes se ‘parecen’ a los grandes proyectos software:
⇒ gran cantidad de personal y usuarios,
⇒ personas distintas desarrollan, usan y mantienen,
⇒ importancia fundamental: tareas relacionadas con aspectos administrativos, de planificación, estimación y control.
⇒ “Planos” en la industria de la construcción: bien establecidos
⇒ ¿tenemos “planos” en la industria del software?
Motivación. Comunicación
compleja en el desarrollo…
1. Lo que el director desea.
2. Como lo define el director de
3. Como se diseña el Sistema.
proyecto.
4. Como lo desarrolla el
5. Como se ha realizado la
6. Lo que el usuario quería.
programador.
instalación.
Origen: desconocido
(finales años sesenta)
⇒⇒⇒⇒ Problemas de comunicación con el cliente
⇒⇒⇒⇒ Problemas de comunicación en el equipo
2. El software
“Programas de computador, procedimientos, y,
posiblemente, la documentación asociada y los datos
pertenecientes a las operaciones de un sistema de
computación"
Instrucciones que, cuando se ejecutan, proporcionan la
Instrucciones que, cuando se ejecutan, proporcionan la
funcionalidad deseada.
Estructuras de datos, que facilitan a las instrucciones
manipular adecuadamente la información.
Base de datos, que registra la información que maneja el
sistema.
Documentos, que describen el desarrollo, uso, instalación y
mantenimiento de los programas.
Incluye: entrenamiento, soporte al consumidor e
instalación.
Características del software
(frente al hardware)
Más difícil de medir, validar, verificar:
Elemento lógico, no físico.
Desarrollado, no ‘fabricado’.
No se ‘estropea’, ¡pero se deteriora!
No se ‘estropea’, ¡pero se deteriora!
deterioro por ‘cambios’
Mayoritariamente ‘cerrado’:
tradicionalmente, usado todo o nada
tradicionalmente, poco ensamblaje de componentes
Perspectiva histórica del
desarrollo de software
Década 1950-60:
“Software como un añadido”
Aplicaciones sencillas
Desarrollo artesanal, a medida
Lenguajes de bajo nivel
Década 1960-70:
Software como producto
Primeras aplicaciones complejas
Primeras aplicaciones complejas
Década lenguajes y compilación
“Crisis del software”
Década 1970-80:
Programación OO
4GLs
C/S
Tecnología de SGBDs, SOs
Métodos estructurados y primeros métodos OO
Tecnología CASE (1ª generación)
Programación estructurada
Ocultación de información
Modelo relacional
Primeras etapas Ingeniería del Software
Primeros métodos estructurados
Modelado de datos
Década 1980-90:
Década 1990-00
Generalización POO
Programación visual
Tecnología de componentes
Interoperabilidad (CORBA)
Nuevas plataformas (Java, .NET)
Análisis/Diseño OO
Fin “Guerra de los métodos”
UML (Unified Modeling Language, 1997)
UML (Unified Modeling Language, 1997)
Patrones y frameworks
Tecnología CASE (2ª generación)
Popularización de Internet
Década 2000-10
Generalización comercio electrónico
Web 2.0
Desarrollo web
Seguridad
Arquitecturas basadas en servicios (SOA)
Métodos ágiles
Líneas de producto
GSD: Global Software Development
Desarrollo open source
MDE: Model-Driven Engineering
-
-
-
Actualmente, con frecuencia, el
sw es la parte más compleja
(Thayer 2002)
3. Factores de calidad del sw.
(internos y externos) (Bell 2000)
Correcto
Fiable
Se ajusta a las especificaciones
dadas por el usuario.
Capacidad de ofrecer los mismos
resultados bajo las mismas
condiciones.
condiciones.
No Erróneo
No existe diferencia entre los
valores reales y los calculados
Eficiente
Robusto
Utilización óptima de los recursos
de la máquina.
No poseer un comportamiento
catastrófico ante situaciones
excepcionales (tolerante a fallos).
Portable
Capaz de integrarse en entornos
distintos con el mínimo esfuerzo.
Adaptable (extensible)
Modificar alguna función sin que
afecte a sus actividades.
afecte a sus actividades.
Inteligible
Diseño claro, bien estructurado y
documentado.
Reutilizable
El software puede ser usado con
facilidad en nuevos desarrollos.
Factores de calidad del
software (II) (Sommerville 2004)
Facilidad de mantenimiento
Confiabilidad
Fiabilidad
Fiabilidad
Seguridad
Protección
Eficiencia
Facilidad de uso
4. Problemas en el desarrollo
de software
Con el avance del hardware, necesidad de
aplicaciones más complejas
⇒ Se produjo un cambio en la relación entre el
coste hardware/software
coste hardware/software
Son problemas “tradicionales”:
Incapacidad para estimar tiempo, coste y esfuerzo
para el desarrollo de un producto software.
Falta de calidad del producto software.
Relación coste hw./sw.
Porcentaje del coste
total del sistema
100
80
60
40
20
0
Hardware
Hardware
Software
60
70
80
años
Problemas en el desarrollo de
software (II) (Pressman)
¿Por qué lleva tanto tiempo terminar los
programas?
¿Por qué es tan elevado su coste?
¿Por qué no podemos encontrar todos los
¿Por qué no podemos encontrar todos los
errores antes de entregar el software a
nuestros clientes?
¿Por qué nos resulta difícil constatar el
progreso conforme se desarrolla el sw.?
INVERSION EN DESARROLLO DE
SISTEMAS SOFTWARE
Usado pero con
trabajo extra o
abandonado
despues
19%
Pagado pero
nunca
entregado
29.7%
Entregado
pero nunca
usado
47%
Usado después
de cambios
~ 3%
Usado tal como
Usado tal como
se entregó
~ 2%
Año 1979
Total: $6.8 millones
Origen: desconocido
Coste del software
TOTAL
TOTAL
TOTAL
TOTAL
1/4
Desarrollo
inicial 3/4
Mantenimiento
Desarrollo
Desarrollo
Desarrollo
Desarrollo
inicial
inicial
inicial
inicial
1/6
codificación
1/3
Análisis
y diseño
1/2
Validación y
puesta a punto
puesta a punto
(V/PP)
Codif.
1/24
1/8
V/PP
1/12
A/D
3/4
Mantenimiento
VALIDACIÓN + PP + MANT. = 7/8 (88%)
CODIFICACIÓN = 1/24 (4%)
ANÁLISIS + DISEÑO = 1/12 (8%)
TOTAL
TOTAL
TOTAL
TOTAL
En España
GASTO EN TENCOLOGÍAS DE LA INFORMACIÓN COMO PORCENTAJE DEL PIB (MUNDO)
Fuente: La Sociedad de la Información en España 2007. Fundación Telefónica. pág. 237
www.telefonica.es/sociedaddelainformacion/pdf/informes/espana_2007/SIE_2007.pdf
%
0
8
,
6
%
5
5
,
7
%
2
1
,
7
%
5
2
,
6
%
0
2
,
4
%
8
3
,
4
%
4
0
,
5
%
2
8
,
% 2
9
9
,
4
%
5
4
,
3
%
0
2
,
3
%
8
5
,
2
%
3
4
,
% 4
9
4
,
2
%
6
8
,
2
%
4
3
,
2
%
5
9
,
1
%
3
1
,
2
%
5
2
,
4
%
8
4
,
2
%
5
9
,
% 2
6
9
,
4
%
9
6
,
% 3
6
7
,
1
%
5
0
,
3
%
4
0
,
3
%
2
5
,
3
%
2
3
,
3
%
9
2
,
4
%
1
8
,
1
%
3
8
,
2
%
3
8
,
2
%
1
1
,
3
%
4
0
,
3
%
5
8
,
2
%
0
2
,
3
%
0
2
,
3
%
8
7
,
2
%
6
7
,
2
%
1
9
,
2
%
3
0
,
3
%
2
9
,
2
%
5
3
,
2
%
4
1
,
2
%
1
7
,
2
%
2
7
,
2
%
8
0
,
3
%
7
2
,
3
%
7
5
,
3
%
8
1
,
2
%
6
0
,
3
%
1
7
,
1
%
1
2
,
3
%
0
4
,
1
L eto nia
E sto nia
B ulg aria
R u m a nía
J a p ó n
R e p.C h ec a
P olo nia
H u n gría
S u ecia
E slov a q uia
Litu a nia
R ein o U nid o
S uiza
H ola n d a
P ortu g al
B élgica/L uxe m b urg o
Din a m arc a
Finla n dia
A ustria
Ale m a nia
E slov e nia
E-2 5
U
E-1 5
U
Fra ncia
U.
E. U
E
Italia
E sp a ñ a
TIC
TI
%
6
5
,
1
%
0
2
,
3
%
7
2
,
2
%
7
3
,
2
%
2
5
,
1
Irla n d a
%
9
0
,
1
G re cia
N oru e g a
En España (II)
Fuente: AETIC (Asociación de
Empresas de Electrónica,
Tecnologías de la Información y
Telecomunicaciones de España)
www.aetic.es
En España (III)
Software de
aplicación a medida.
Poco software de
base, paquetes
integrados.
integrados.
Vigente la situación
general.
Fuente: AETIC
Año: 2007
www.aetic.es
Algunas causas
Naturaleza “no física” de la programación.
El sw es la parte más ‘maleable’ del sistema
Problemas de comunicación con los clientes.
Proble
Comentarios de: Fundamentos de Ingeniería del Software - Capítulo 1. Introducción (0)
No hay comentarios