You are on page 1of 15

1

Software e
Ingeniera del Software
Ingeniera del Software de Gestin
Tema 1
DSIC - UPV
Escuela Tcnica Superior de Informtica Aplicada Curso 2006-07
2
Introducir la Ingeniera del Software y explicar
su importancia
Responder las principales cuestiones
relacionadas con la Ingeniera del Software
Introducir los principales modelos de proceso
software
Objetivos Objetivos
2
3
1. Introduccin
2. Software
.Caractersticas
. La Crisis del Software
. Software de calidad
. Problemtica de la Industria
3. Ingeniera del Software
. Definiciones
4. El Proceso del Software
Contenidos Contenidos
4
Bibliografa
Bsica:
Weitzenfeld, A., Ingeniera del Software OO con UML. Java e Internet.
Thomson, 2005.
Captulo 1
Sommerville, I. Ingeniera del Software. (6 ed.). Addison-Wesley, 2002
Captulo 1
Pressman, R., Ingeniera del Software. Un enfoque prctico (4 ed.).
McGraw-Hill, 1998.
3
5
El software marca la diferencia
Actualmente en los sistemas basados en computador el
software ha superado al hardware como factor decisivo de
xito
1960 1970 1980 1990 1950 2000
El principal desafo es el desarrollo
del Hardware, parareducir costes de
procesamiento y almacenamiento de
datos
Los avances en laelectrnica
han dado como resultado unamayor
potenciadeclculo y unareduccin
decostes
El principal desafo es mejorar
la calidad del Software y
reducir costes
6
El software cuesta ms
Evolucin del coste total del sistema en funcin del
porcentaje invertido en software y en hardware
1960 1980 1970
Software
Hardware
20
50
80
Porcentaje del coste
total del sistema
Tiempo
4
7
2. Software
Instrucciones que cuando se ejecutan proporcionan
la funcin y el comportamiento deseados
Estructuras de datos que facilitan a los programas el
manipular adecuadamente la informacin
Documentos que describen la operacin y uso de los
programas
Qu es el software?
8
Caractersticas del software
El software es un elemento lgico
El software se desarrolla, no se fabrica en un
sentido clsico
El software no se estropea, se deteriora debido
a los cambios
La mayora del software se construye a medida,
en vez de ensamblar componentes existentes
5
9
Evolucin del software
El contexto en el que se ha desarrollado el software est
fuertemente ligado al desarrollo de los sistemas informticos
1960 1970 1980
Crisis del Software
Desarrollo artesanal
Softwareamedida
Lenguajes debajo nivel
1990
Softwarecomo producto
Lenguajes dealto nivel
Mantenimientocostoso
HW debajo costo
Metodologas
Programacin como
disciplina
SGBD, SO,...
Potentes ordenadores
personales
Tecnologas OO
Sistemas expertos,
redes neuronales,--
10
La crisis del software
Los productos exceden la estimacin de costes
Notables retrasos en la fecha de entrega
Prestaciones inadecuadas
Mantenimiento casi imposible
Modificaciones a precios prohibitivos
Falta de fiabilidad del producto software
Software de baja calidad!
6
11
Inversin en desarrollo de Sistemas Software.
Ao 1979 (Total: $ 6.8 millones)
Entregado pero
nunca usado
47%
Pagado pero
nunca entregado
297%
Usado pero
con trabajo extra
o abandonado
despus
19 %
Usado tal como
se entrego
~ 2 %
Usado despus
de cambios
~ 3 %
12
Inversin en desarrollo de Sistemas Software,
desglosada en las distintas fases:
DESARROLLO
INICIAL
1/4
MANTENIMIENTO
3/4
Codificacin
1/6
Anlisis y
diseo
1/3
Validacin y puesta en marcha
1/2
7
13
Resumen de la inversin en el desarrollo de
Sistemas Software:
Anlisis y diseo
1/12
MANTENIMIENTO
3/4
Codificacin
1/24
Validacin
1/8
Anlisis y Diseo 8 %
Codificacin 4 %
Validacin y
Mantenimiento 88 %
14
Errores cometidos en el desarrollo de Sistemas
Software, por fases:
Comunications of the ACM, Enero 1984
10 %
50 %
30 %
Anlisis Diseo Codificacin Prueba
8
15
Coste de eliminacin de los errores cometidos:
Mantenimiento
Anlisis
Diseo
Codificacin
Pruebas
16
Inversin en desarrollo de Sistemas Software.
Ao 1994 (Total: $ 250 billones/ao - - 175.000 proyectos)
Tipo 1 (xito). El proyecto es
finalizado en el tiempo acordado y
dentro del presupuesto, con todas
las caractersticas y funcionalidades
inicialmente especificadas.
Tipo 2 (Cambios). El proyecto es
finalizado pero por en un plazo ms
largo y con un presupuesto mayor;
adems ofrece menos caractersticas
y funcionalidades que inicialmente
se especificaron.
Tipo 3 (Cancelado). El proyecto
es cancelado en algn punto durante
el desarrollo del mismo.
http://www.standishgroup.com/sample_research/chaos_1994_1.php
9
17
Software de calidad
La finalidad es producir software de gran calidad
Qu es software de calidad?
Concordancia con:
Los requisitos funcionales y de rendimiento establecidos
explcitamente
Los estndares de desarrollo explcitamente documentados
Las caractersticas implcitas que se espera de todo
software desarrollado profesionalmente
18
Factores de calidad
La clasificacin de los factores de calidad se centra en
tres aspectos importantes de un producto software
1. Sus caractersticas operativas
2. Su capacidad de soportar los cambios
3. Su adaptabilidad a nuevos entornos
Se deben medir directa o indirectamente!!!!
a lo largo de todo el proceso y no al final
10
19
Factores de calidad
Correccin Hace lo que quiero?
Fiabilidad Lo hace de forma fiable todo el tiempo?
Eficiencia Se ejecutar en el Hw lo mejor que pueda?
Integridad Es seguro?
Facilidad de uso Est diseado para ser usado?
Facilidad de mantenimiento Puedo corregirlo?
Flexibilidad Puedo cambiarlo fcilmente?
Facilidad de prueba Puedo probarlo?
Portabilidad Podr usarlo en otra mquina o SO?
Reusabilidad Podr reusar alguna parte del Sw?
Facilidad de interoperacin Puedo hacerlo interactuar con otro sistema?
1
2
3
20
Problemtica de la industria del
software
Los productos no
son de calidad
Altos costes de desarrollo
y mantenimiento
Grandes retrasos
Poca inversin y esfuerzo en
el anlisis y la especificacin
Uso de lenguajes informales y
modelos inadecuados
Naturaleza no fsica de la
programacin
Poca teora y poca difusin
Productos ya en el mercado
dificultan la innovacin
Mucha artesana
Trabajo en grupo
Comunicacin con usuario
Gestin de proyectos por no
informticos
Causas:
11
21
Soluciones
Formacin:
mtodos de razonamiento formal (lenguajes formales de
especificacin ejecutables: lgica +lgebra)
nuevos modelos de desarrollo y modificacin del ciclo de
vida
Difusin de los avances tecnolgicos
programacin no imperativa (lenguajes lgicos, ...)
programacin no secuencial (POO,..)
Inversin en herramientas
entornos de desarrollo modernos
generadores de documentacin
22
3. Ingeniera del Software
Son muchas las definiciones existentes para la
Ingeniera del Software:
Segn Boehm, La INS supone la aplicacin prctica y sistemtica
del conocimiento cientfico a la produccin de programas que se
desarrollan a tiempo y dentro de las estimaciones de presupuesto y
la correspondiente documentacin para desarrollarlos, instalarlos,
usarlos y mantenerlos
Segn Pressman, La INS es una disciplina que integra mtodos,
herramientas y procedimientos para el desarrollo de SW de
computador.
Segn Davis, La INS es la aplicacin de principios cientficos
para: (1) la transformacin ordenada de un problema en una
solucin SW y (2) el mantenimiento del mismo durante toda su vida
til.
Segn Sommerville, La INS es una disciplina ingenieril que
abarca todos los aspectos de la produccin de software
12
23
La Ingeniera del Software es
mucho ms que . . .
planificacin,
seguimiento y
control
rigurosos de los proyectos software
La INS es algo ms que programar: El proceso de la INS
comienza bastante antes de escribir lneas de cdigo y
continua despus de que la primera versin del producto
haya sido completada.
Adems de ...
24
Establece un marco para el desarrollo de software:
Procedimientos de desarrollo (ciclos de vida,
modelos de proceso)
Gestin y mejora de los procedimientos de desarrollo
Entorno
Entorno
Proceso de
Gestin
Proceso de
Gestin
Controla
Realimentacin
Tecnologa
de Gestin
Tecnologa
de Gestin
Explota
Proceso de
Produccin
Proceso de
Produccin
Tecnologa
de Produccin
Tecnologa
de Produccin
Explota
J ustifica Cumplimiento_estndares
Proporciona Proporciona
4. El Proceso del Software
13
25
Modelos de Proceso
Clsico o en cascada
Clsico con prototipado
Modelos evolutivos:
- Incremental
- En espiral
Metodologas giles
- Programacin Extrema (XP)
. . .
26
Modelo Clsico o en Cascada (1)
Primer modelo propuesto
Caractersticas bsicas:
Aplicacin secuencial de una serie de pasos.
Cada paso genera documentacin y entradas para la
siguiente fase.
(Royce, 1970)
14
27
(Ideal)
Anlisis y Especificacin de Requisitos
Diseo
Codificacin
Integracin
Modelo Clsico o en Cascada (2)
28
(Real)
ANLISIS
DISEO
CODIFICACIN
MANTENIMIENTO
A TODAS
LAS FASES
PRUEBAS UNITARIAS
PRUEBAS DE INTEGRACIN
PRUEBAS DE ACEPTACIN
Errores
Anlisis
Producto
Cerrado
Errores
Diseo
Programa
Validado
ERS
Diseo
Cdigo
Errores
Cdigo
Mdulos
Validados
Modelo Clsico o en Cascada (3)
15
29
Los proyectos pocas veces siguen un flujo secuencial.
Dificultades para establecer todos los requisitos al comienzo del
proceso.
Errores detectados muy tardamente (los errores de anlisis y
diseo son caros de eliminar y se propagan a las otras etapas con
un efecto conocido como bola de nieve).
Mantenimiento por parcheado (el software va deteriorndose y
resulta cada vez ms difcil de mantener)
Crtica al modelo
Modelo Clsico o en Cascada (4)
30
(Deformado)
En la prctica el modelo tiende a deformarse, y todo el peso de la
validacin y mantenimiento recae, en su mayor parte, sobre el cdigo
fuente.
Producto
Acabado
Anlisis y
Especificacin
Anlisis y
Especificacin
Diseo
Diseo
Implementacin
Implementacin
Especificacin
Informal
Especificacin
Informal Diseo
Diseo
Validacin
Validacin
Mantenimiento
Mantenimiento
Modelo Clsico o en Cascada (5)

You might also like