You are on page 1of 41

INTRODUCCIÓN A LA

INGENIERÍA DEL SOFTWARE


Tema 1

Ingeniería del Software


ETS Ingeniería Informática
DSIC – UPV

Curso 2018-2019
Ingeniería del Software DSIC-UPV Curso 2018-2019

Objetivos
• Presentar la Ingeniería del Software y explicar su
importancia en el desarrollo de software de calidad

• Responder las principales cuestiones relacionadas


con la Ingeniería del Software

• Introducir el Proceso del Software

2
Ingeniería del Software DSIC-UPV Curso 2018-2019

Contenidos
1. Introducción
2. El software
• Características
• La Crisis del Software
• Software de calidad
• Problemática de la Industria

3. Ingeniería del Software


• Definiciones
• El Proceso del Software
• Gestión de proyectos software

3
Ingeniería del Software DSIC-UPV Curso 2018-2019

Bibliografía básica

• Sommerville, I. Ingeniería del Software. (8ª ed.) Addison-Wesley, 2008.

• Sommerville, I. Software Engineering. (9th ed.) Pearson, 2011.

• Pressman, R., Ingeniería del Software: un enfoque práctico (3ª ed.)


McGraw-Hill, 2010.

• Weitzenfeld, A., Ingeniería del Software Orientada a Objetos con UML,


Java e Internet. Thomson, 2005

4
INTRODUCCIÓN
Ingeniería del Software DSIC-UPV Curso 2018-2019

El software marca la diferencia

En las últimas décadas el software ha superado al


hardware como factor decisivo de éxito

1950 1960 1970 1980 1990 2000

El principal desafío es el
desarrollo Los avances en la electrónica El principal desafío es mejorar
del Hardware, para reducir han dado como resultado una la calidad del Software y
costes de procesamiento y mayor reducir costes
almacenamiento de datos potencia de cálculo y una
reducción
de costes

6
Ingeniería del Software DSIC-UPV Curso 2018-2019

El software marca la diferencia


• En la última década, especialmente, la explosión de
la Web como plataforma y la computación móvil
han revolucionado la industria del software
• Nuevos lenguajes
• Nuevas versiones de HTML
• Nuevos dispositivos
• Nuevos métodos de desarrollo!!

7
Ingeniería del Software DSIC-UPV Curso 2018-2019

El software cuesta más…


• Evolución del coste total del sistema en función
del porcentaje invertido en software y en hardware
Porcentaje del coste
total del sistema

80

Software
50
Hardware

20

Tiempo
1960 1970 1980

8
Ingeniería del Software DSIC-UPV Curso 2018-2019

…¡y no solo dinero!


• http://www5.in.tum.de/persons/huckle/bugse.html
• http://www.pcmag.com/article2/0,1759,1636333,00.asp
• http://www.microsiervos.com/archivo/ordenadores/10-peores-
bugs.html
• http://www.wired.com/software/coolapps/news/2005/11/69355?cur
rentPage=all
• http://www.taringa.net/posts/info/3469982/Los-20-desastres-mas-
famosos-de-la-historia-del-software.html

• http://catless.ncl.ac.uk/Risks

9
EL SOFTWARE
 Características
 La Crisis del Software
 Software de calidad
 Problemática de la Industria
Ingeniería del Software DSIC-UPV Curso 2018-2019

¿Qué es el software?
• Instrucciones que cuando se ejecutan proporcionan la
función y el comportamiento deseados

• Estructuras de datos que facilitan a los programas el


manipular adecuadamente la información

• Documentos que describen la operación y uso de los


programas

11
Ingeniería del Software DSIC-UPV Curso 2018-2019

Características del software


El software es un elemento lógico:
• se desarrolla, no se fabrica en un sentido clásico

• no se estropea, se deteriora debido a los cambios

• la mayoría se construye a medida, en vez de ensamblar


componentes existentes

12
Ingeniería del Software DSIC-UPV Curso 2018-2019

Evolución del software


• El contexto en el que se ha desarrollado el software
está fuertemente ligado al desarrollo de los
sistemas informáticos

Crisis del Software

1960 1970 1980 1990 2000

• Desarrollo artesanal • Software como producto • HW de bajo costo •Explosión OO •Explosión Web
• Software “a medida” • Lenguajes de alto nivel • Metodologías •Metodologías OO
• Lenguajes de bajo • Mantenimiento costoso •OO
estructuradas •Sistemas •Componentes
nivel •Lenguajes OO distribuidos •Aspectos
•Componentes •Servicios Web

13
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


• Los productos exceden la estimación 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!


14
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software

• Inversión en desarrollo de Sistemas Software.

• Año 1979 (Total: $ 6.8 millones)

Entregado pero
nunca usado Usado tal como
47% se entrego
~2%

Pagado pero Usado pero


nunca entregado con trabajo extra Usado después
29’7% o abandonado de cambios
después ~3%
19 %

15
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


• Inversión en desarrollo de Sistemas Software, desglosada en
las distintas fases:

Análisis y
DESARROLLO diseño
INICIAL 1/3 Codificación
1/4 1/6

MANTENIMIENTO Validación y puesta en marcha


3/4 1/2

16
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


• Resumen de la inversión en el desarrollo de Sistemas
Software:
Análisis y diseño
1/12
Codificación
1/24

Validación
1/8 • Análisis y Diseño 8%

• Codificación 4%

• Validación y
Mantenimiento 88 %

MANTENIMIENTO
3/4

17
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


• Errores cometidos en el desarrollo de Sistemas
Software, por fases:
Comunications of the ACM, Enero 1984

50 %

30 %

10 %

Análisis Diseño Codificación Prueba

18
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software

• Coste de eliminación de los errores cometidos:

Análisis
Diseño
Codificación
Pruebas
Mantenimiento

19
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


Inversión en desarrollo de Sistemas Software.

• Año 1994 (Total: $ 250 Kmillones/año - - 175.000 proyectos)


•Tipo 1 (Éxito). El proyecto es
finalizado en el tiempo acordado y
dentro del presupuesto, con todas
las características y funcionalidades
inicialmente especificadas.

•Tipo 2 (Cambios). El proyecto es


finalizado pero por en un plazo más
largo y con un presupuesto mayor;
además ofrece menos características
y funcionalidades que inicialmente
se especificaron.

•Tipo 3 (Cancelado). El proyecto


es cancelado en algún punto durante
https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf
el desarrollo del mismo.

20
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


Informe CHAOS …

http://www.versionone.com/assets/img/files/CHAOSManifesto2013.pdf

21
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


Informe CHAOS 2015 …

http://www.laboratorioti.com/2016/05/16/informe-del-caos-2015-chaos-report-2015-bien-mal-fueron-los-proyectos-ano-2015/
22
Ingeniería del Software DSIC-UPV Curso 2018-2019

La crisis del software


Informe CHAOS 2015 …

¿Es importante el tamaño de los proyectos software?

% sobre los proyectos exitosos


2011-2015

http://www.laboratorioti.com/2016/05/16/informe-del-caos-2015-chaos-report-2015-bien-mal-fueron-los-proyectos-ano-2015/
23
Ingeniería del Software DSIC-UPV Curso 2018-2019

¿Qué factores afectan al éxito de un proyecto


software?

...

24
Ingeniería del Software DSIC-UPV Curso 2018-2019

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
explícitamente
• Los estándares de desarrollo explícitamente documentados
• Las características implícitas que se espera de todo
software desarrollado profesionalmente

25
Ingeniería del Software DSIC-UPV Curso 2018-2019

Factores de calidad
• La clasificación de los factores de calidad se
centra en tres aspectos importantes de un
producto software
1. Sus características 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 de desarrollo
26
Ingeniería del Software DSIC-UPV Curso 2018-2019

Factores de calidad
Corrección ¿Hace lo que quiero?

Fiabilidad ¿Lo hace de forma fiable todo el tiempo?


Características
Eficiencia ¿Se ejecutará en el Hw lo mejor que pueda? operativas
Integridad ¿Es seguro?

Facilidad de uso ¿Está diseñado para ser usado?

Facilidad de mantenimiento ¿Puedo corregirlo? Capacidad de soportar


Flexibilidad ¿Puedo cambiarlo fácilmente? cambios
Facilidad de prueba ¿Puedo probarlo?

Reusabilidad ¿Podré reusar alguna parte del Sw?


Adaptabilidad a
Portabilidad ¿Podré usarlo en otra máquina o SO?
nuevos
Facilidad de interoperación ¿Puedo hacerlo interactuar con otro sistema? entornos

27
Ingeniería del Software DSIC-UPV Curso 2018-2019

Problemática de la industria del software


• Los productos no Causas:
Poca inversión y esfuerzo en el análisis y la
son de calidad especificación

Uso de lenguajes informales y modelos


inadecuados

Naturaleza no física de la programación


• Altos costes de
Poca teoría y poca difusión
desarrollo y
Productos ya en el mercado dificultan la
mantenimiento innovación

Mucha artesanía

Trabajo en grupo
• Grandes retrasos Comunicación con usuario

Gestión de proyectos por no informáticos

28
Ingeniería del Software DSIC-UPV Curso 2018-2019

Soluciones
• Formalización:
• métodos de razonamiento formal (lenguajes formales de
especificación ejecutables: lógica + álgebra)
• nuevos modelos de desarrollo y modificación del ciclo de vida

• Difusión de los avances tecnológicos


• nuevos paradigmas de programación
• Arquitecturas, protocolos, modelos de computación

• Inversión en herramientas
• entornos de desarrollo modernos
• generadores de documentación

29
LA INGENIERÍA DEL
SOFTWARE
 Definiciones
 El Proceso del Software
Ingeniería del Software DSIC-UPV Curso 2018-2019

Definiciones
• B. Boehm:

• “La INS supone la aplicación práctica y sistemática del conocimiento científico a


la producción de programas que se desarrollan a tiempo y dentro de las
estimaciones de presupuesto y la correspondiente documentación para
desarrollarlos, instalarlos, usarlos y mantenerlos”
• R. Pressman:
• “La INS es una disciplina que integra métodos, herramientas y procedimientos para
el desarrollo de SW de computador”.
• A. Davis:
•“La INS es la aplicación de principios científicos para: (1) la transformación
ordenada de un problema en una solución SW y (2) el mantenimiento del mismo
durante toda su vida útil”.
• I. Sommerville:
• “La INS es una disciplina ingenieril que abarca todos los aspectos de la producción
de software”

31
Ingeniería del Software DSIC-UPV Curso 2018-2019

Un poco de historia
http://www.cs.st-
andrews.ac.uk/~ifs/Books/SE9/Web/History/

32
Ingeniería del Software DSIC-UPV Curso 2018-2019

En definitiva…
• La INS es algo más que programar

• El proceso de la INS comienza bastante antes de


escribir líneas de código y continúa después de que
la primera versión del producto haya sido
completada

• Son cruciales la planificación, el seguimiento y el


control rigurosos de los proyectos software

33
Ingeniería del Software DSIC-UPV Curso 2018-2019

La importancia del proceso


• Los nuevos retos a los que se enfrenta el desarrollo
de software requieren respuestas rápidas y eficaces
a cambios en los requisitos.

• La especificación clara de un proceso de desarrollo,


y el uso de herramientas para su ejecución y
monitorización, se han convertido en un requisito
en sí mismas

34
Ingeniería del Software DSIC-UPV Curso 2018-2019

El Proceso del Software


• Establece un marco para el desarrollo de
software
Tema 2
Controla
Proceso de Proceso de
Gestión Realimentación Producción

Explota Explota

Tecnología Tecnología
Proporciona
de Gestión Proporciona de Producción

Cumplimiento_estándares Entorno Justifica

35
Ingeniería del Software DSIC-UPV Curso 2018-2019

Gestión de proyectos software


• La administración de un proyecto software es el
primer nivel del proceso de ingeniería del software
y cubre todo el proceso de desarrollo

tareas

riesgos recursos necesarios

ámbito del trabajo hitos a recorrer

plan a seguir esfuerzo / coste

36
Ingeniería del Software DSIC-UPV Curso 2018-2019

Ingeniería del Software frente a Ingeniería


• Semejanzas • Diferencias
• Las actividades a realizar no son • El producto (software) es
específicas de la administración intangible y flexible
de proyectos de software
• Muchas técnicas de gestión de • El proceso de desarrollo de
proyectos de ingeniería son software no es estándar.
igualmente aplicables a los
Existen distintas propuestas y
proyectos software
cada organización adopta una
• Muchos de los problemas que
distinta
aparecen en los sistemas de
ingeniería complejos, aparecen
también en los sistemas • Muchas veces los proyectos
software (tiempo, recursos, software son “únicos”
cambio en especificaciones…)

37
Ingeniería del Software DSIC-UPV Curso 2018-2019

Gestión de proyectos software


• Actividades que incluye la gestión de
proyectos:

• Redacción de la propuesta
• Planificación del proyecto
• Estimación del coste del proyecto

• Selección y evaluación del personal


• Seguimiento y control del proyecto
• Redacción y presentación de informes

38
Ingeniería del Software DSIC-UPV Curso 2018-2019

El Plan del Proyecto - Estructura


1. Introduction Objetivos y restricciones ( presupuesto, tiempo…)

2. Organización del proyecto Organización del equipo (personal-roles)

3. Análisis de riesgo Riesgos, probabilidades y estrategias

4. Requisitos de recursos sofware y hardware


Compras, precios, fechas entrega …

5. División del trabajo Actividades, Hitos y Productos a entregar

6. Planificación Dependencias entre actividades,


Tiempo estimado y asignación de personal

7. Mecanismos de Supervisión e Informes

39
Ingeniería del Software DSIC-UPV Curso 2018-2019

Red de Tareas (Diagrama PERT)


14/7 /03 15 da y s
15 da y s
M1 T3
8 day s T9
T1 5 day s 4/8/03 25/8/03
25/7 /03
4/7 /03 T6 M4 M6
M3
star t 20 day s 7 day s
15 day s
T7 T11
T2
25/7 /03 11/8/03 5/9/03
10 da y s 10 day s
M2 M7 M8
T4 T5 15 da y s

T10 10da ys
18/7 /03
T12
M5
25 day s
T8 Finish
19/9/03
40
Ingeniería del Software DSIC-UPV Curso 2018-2019

Diagrama de Gantt
4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

Star t
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish

41

You might also like