PDF de programación - Introducción a la Ingeniería del Software

Imágen de pdf Introducción a la Ingeniería del Software

Introducción a la Ingeniería del Softwaregráfica de visualizaciones

Publicado el 18 de Diciembre del 2018
832 visualizaciones desde el 18 de Diciembre del 2018
445,8 KB
16 paginas
Creado hace 8a (29/09/2015)
Introducción a la Ingeniería del Software

Ingeniería del Software

Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid

Ingeniería del Software

¿Qué es la Ingeniería del Software?

¿En qué se diferencia un Programador de un Ingeniero de

Software?

¿Cuál es la diferencia entre un Ingeniero de Software y un

Ingeniero de Sistemas?

¿Qué diferencia la Ingeniería del Software de la Ciencia de la

Computación?

¿Qué es el software?

¿Qué es un proceso de software?

¿Qué es la arquitectura del software?

Juan Pavón - UCM 2011-12

Ingeniería del Software

2

Mitos del software

 Te explico un poco como va y ya concretaremos luego
 Es fácil modificar el software
 Como es complejo, el software puede fallar
 Una vez que el programa funciona, hemos terminado
 Hasta que empiece a funcionar no sabré si está bien
 Al cliente basta con darle un código que funcione
 El programa no falla, es el cliente que no sabe utilizarlo
 Con pruebas y verificación formal se pueden eliminar todos los

errores

 Cuanto más voluminosa sea la documentación de un producto,

mejor será

 Siempre podemos añadir más programadores
 Si una característica de la aplicación no es necesaria para el

80% de los usuarios, al 20% restante realmente no le hará falta
 Si un error ha sobrevivido a dos revisiones, no es un error, sino

comportamiento normal del sistema

Juan Pavón - UCM 2011-12

Ingeniería del Software

Desastres causados por fallos del software

 Explosión del Ariane 5, 1996

 Motivo: conversión de datos de un número demasiado grande

 Pérdida del Mars Climate Observer, 1999

 Motivo: mezcla de kilos y libras. El satélite acabó pegándosela en

Marte

 Airbus 320 derribado por un misil lanzado desde el USS Vicennes

durante la guerra Irán-Irak, 1988
 Fallo en el software de reconocimiento de patrones, que confundió a

un avión civil con un F-14 iraní: 290 pasajeros muertos

 Muertes de pacientes de cáncer por sobredosis de radiación del

equipo Therac-25, 1986
 Fallo de control de condiciones de carrera

 Redondeo en la conversión del Euro a DM

 1 EURO = 1.95583 DM

 0.01 DM = 0.01 Euro y 0.01 Euro = 0.02 DM

 Virus y gusanos

Juan Pavón - UCM 2011-12

Ingeniería del Software

3

4

¿Qué es el software?

 Pressman:

1. Instrucciones (programas de computadora) que cuando se
ejecutan proporcionan la función y el rendimiento deseados

2. Estructuras de datos que permiten a los programas

manipular adecuadamente la información, y

3. Documentos que describen la construcción y uso de

programas

 Sommerville:

 Programas de ordenador y documentación asociada
 Los productos de software pueden ser

• Genéricos: desarrollados para clientes muy diversos
• Hecho a medida: para un cliente particular de acuerdo a

su especificación

Juan Pavón - UCM 2011-12

Ingeniería del Software

¿Qué es la Ingeniería del Software?

 La Ingeniería de Software (IS) es

 una disciplina de ingeniería

• Aplicación de teorías, métodos, herramientas para hacer

cosas que funcionen:
• Software que sea fiable y trabaje en máquinas reales

• Teniendo en cuenta restricciones financieras,

organizacionales y técnicas

 que comprende todos los aspectos de la producción de

software
• Desde la especificación inicial al mantenimiento del sistema
• Administración y gestión del proceso de producción

• Principios y metodologías para desarrollo y mantenimiento de

sistemas de software

 IEEE 610-12 (Software Engineering)

 Aplicación de un enfoque sistemático, disciplinado y

cuantificable al desarrollo, operación (funcionamiento) y
mantenimiento del software

Juan Pavón - UCM 2011-12

Ingeniería del Software

5

6

¿Qué es la Ingeniería del Software?

 La IS es aplicar el sentido común al desarrollo de sistemas

software [Navarro, UCM]

¿Qué es el sentido común?

• Planificar antes de desarrollar
• Diseñar antes de programar
• Reutilizar diseños que funcionan y son mantenibles

 ... utilizando las herramientas apropiadas [Pavón, UCM]

Juan Pavón - UCM 2011-12

Ingeniería del Software

Herramientas CASE

 Computer-Aided Software Engineering (CASE)

 Software que facilita la realización de actividades del proceso

de desarrollo de software
• Edición de diagramas
• Comprobar la consistencia de los diagramas
• Generación de documentación
• Seguimiento de actividades del proyecto

 Upper-CASE

 Herramientas que ayudan en las actividades de captura de

requisitos, análisis y diseño

 Lower-CASE

 Herramientas para la programación, depuración y pruebas

Juan Pavón - UCM 2011-12

Ingeniería del Software

7

8

Ingeniería del Software e Ingeniería de Sistemas

 La Ingeniería de Sistemas se refiere a todos los

aspectos del desarrollo de sistemas basados en
computadora, tanto del hardware como del software y los
procesos de diseño y distribución de sistemas
 La Ingeniería del Software es solo parte de este proceso
 Los ingenieros de sistemas se encargan de especificar el

sistema, definir su arquitectura, integrar sus partes
• Están menos relacionados con la ingeniería de los

componentes del sistema (HW y SW)

 Al ser el software muchas veces la parte más importante

del sistema, las técnicas de ingeniería del software se
aplican en el proceso de ingeniería de sistemas

Juan Pavón - UCM 2011-12

Ingeniería del Software

9

Ingeniería de Software y Ciencia de la Computación

 La Ciencia de la Computación se refiere a las teorías y los
fundamentos subyacentes en los sistemas de computación

 La Ingeniería del Software trata los problemas prácticos

del desarrollo de software

 Con las teorías de la ciencia de la computación no es

suficiente para desarrollar software (al menos cuando el
sistema tiene suficiente envergadura)

Juan Pavón - UCM 2011-12

Ingeniería del Software

10

Relevancia de la IS

 Las economías de TODOS los países desarrollados

dependen en gran medida del software

 Cada vez más sistemas son controlados por software

 Comunicaciones
 Seguridad
 Administración
 Fábricas
 Comercio
 Agricultura
 Etc.

 El gasto en la Ingeniería de Software, representa un alto

porcentaje del PIB de los países desarrollados

Juan Pavón - UCM 2011-12

Ingeniería del Software

11

Costes del software

 Los gastos del software dominan sobre los de sistema

 El HW es cada vez más barato
 Cuesta más el software que hay en un PC que el PC

 Cuesta más mantener el software que desarrollarlo

 En sistemas con una larga vida, los costes de mantenimiento

llegan a multiplicar varias veces los costes de desarrollo

 Lo más caro en un proyecto son los desarrolladores

 La IS trata de mejorar el coste del desarrollo de software

Juan Pavón - UCM 2011-12

Ingeniería del Software

12

¿Cuáles son los costes de la IS?

 Coste del software

 Gastos de desarrollo
 Gastos de mantenimiento y evolución

 El coste varía dependiendo de:

 Tipo de sistema que se desarrolle y los requisitos de atributos

del sistema como eficiencia y fiabilidad

 Modelo de desarrollo

 Generalmente, para el desarrollo del software

 60% en desarrollo
 40% en pruebas

 En software hecho a medida los gastos de evolución

suelen ser mayores que los de desarrollo
 En software genérico muchas veces no se considera la

evolución sino que cada nueva versión se trata como un
nuevo producto (razones mercantiles)

Juan Pavón - UCM 2011-12

Ingeniería del Software

13

Retos de la IS

 Sistemas heredados (legacy systems)

 Mantenimiento, actualización, integración

 Heterogeneidad (SW y HW) de sistemas distribuidos

 Integración y evolución

 Tiempos de desarrollo cada vez más cortos

 Y con menos recursos
 Proyectos web: 3 meses–3 personas–3 kilos

 Modas

 Métodos, lenguajes, ...

 Cultura de ingeniería
 Formalidad

 Existe una gran demanda de que exista formalidad en el

proceso de desarrollo de software

Juan Pavón - UCM 2011-12

Ingeniería del Software

14

IS: las 3 P

Personas

Producto

Proceso

Juan Pavón - UCM 2011-12

Ingeniería del Software

15

Producto: el software

 El software cada día es más caro, más grande, menos

eficiente, menos robusto, …
 El hardware cada día es más barato, más pequeño, más

eficiente, más robusto, …

 El software hoy:

 Distribuido: web, nube, …
 Multi-componente
 Multi-plataforma
 Ubicuidad
 Interfaces multi-modales
 Múltiples versiones
 Inteligente

Juan Pavón - UCM 2011-12

Ingeniería del Software

16

Características del software

 El software se desarrolla, no se fabrica

 Los costes se centran en ingeniería, no en fabricación
 Los proyectos software no se pueden gestionar como procesos

de fabricación

 El software no se estropea

 Pero hay que mantenerlo

Juan Pavón - UCM 2011-12

Ingeniería del Software

17

Características del software

Curva de fallos del hardware

Curva de fallos del software

Juan Pavón - UCM 2011-12

Ingeniería del Software

18

Características del software

 Reparación del software

 El software deteriorado no se puede reparar

• ¿revisar miles de líneas de código?
• ¿cambia una versión con el tiempo?

 Muchas veces las reparaciones dañan más al software
 El software debe estar bien diseñado para facilitar su

evolución

Juan Pavón - UCM 2011-12

Ingeniería del Software

19

Software bien diseñado

 Atributos del software bien diseñado

 Mantenible

• Capaz de evolucionar según las necesidades de cambio de los clientes

 Seguro

• Robusto, que no produce daños incluso bajo un fallo del sistema

 Eficiente

• No desperdicia los recursos del sistema (memoria, procesador, disco)

 Amistoso

• Buena interfaz

 Bien documentado

Atributos en tensión: su importancia depende del sistema y del

entorno en el que será utilizado

El coste tiende a ser alto si se exige un alto nivel de alguna característica

Juan Pavón - UCM 2011-12

Ingeniería del Software

20

Características del software

 Coste de la eficiencia del software
  • Links de descarga
http://lwp-l.com/pdf14583

Comentarios de: Introducción a la Ingeniería del Software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad