Está en la página 1de 9

Ingeniera del Software

Ingeniera del Software de Gestin 1 Facultad de Informtica

Juan Pavn Mestras Dep. Sistemas Informticos y Programacin Universidad Complutense Madrid http://www.fdi.ucm.es/profesor/jpavon

Ingeniera del Software


Qu es la Ingeniera del Software ? En qu se diferencia un Programador de un Ingeniero de Software? Cul es la diferencia entre un Ingeniero de Software y un Ingeniero de Sistemas? Qu diferencia la Ingeniera del Software de la Ciencia de la Computacin? Qu es el software ? Qu es un proceso de software ? Qu es un modelo de software?
Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

Mitos del software


n n n n n n n n n

Es fcil 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 cdigo que funcione El programa no falla, es el cliente que no sabe utilizarlo Con pruebas y verificacin formal se pueden eliminar todos los errores Cuanto ms voluminosa sea la documentacin de un producto, mejor ser Si una caracterstica de la aplicacin 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
Ingeniera del Software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Qu es el software?
n

Pressman:
1. 2. 3.

Instrucciones (programas de computadora) que cuando se ejecutan proporcionan la funcin y el rendimiento deseados Estructuras de datos que permiten a los programas manipular adecuadamente la informacin, y Documentos que describen la construccin y uso de programas

Sommerville:
n n

Programas de ordenador y documentacin asociada Los productos de software pueden ser


Genricos: desarrollados para clientes muy diversos Hecho a medida: para un cliente particular de acuerdo a su especificacin

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

Desastres causados por fallos del software


n n

Explosin del Ariane 5, 1996


n

Motivo: conversin de datos de un nmero demasiado grande Motivo: mezcla de kilos y libras. El satlite acab pegndosela en Marte

Prdida del Mars Climate Observer, 1999


n

Airbus 320 derribado por un misil lanzado desde el glorioso USS Vicennes durante la guerra de Irak, 1988
n

Fallo en el software de reconocimiento de patrones, que confundi a un avin civil con un F-14 iran: 290 pasajeros muertos

Muertes de pacientes de cncer por sobredosis de radiacin del equipo Therac-25, 1986
n

Fallo de control de condiciones de carrera 1 EURO = 1.95583 DM ==> 0.01 DM = 0.01 Euro y 0.01 EURO = 0.02 DM

Redondeo en la conversin del Euro a DM


n

Virus y gusanos
Ingeniera del Software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Qu es la Ingeniera del Software?


n

La Ingeniera de Software (IS) es


n

una diciplina de ingeniera


Aplicacin de teoras, mtodos, herramientas para hacer cosas que funcionen:
Software que sea fiable y trabaje en mquinas reales

Teniendo en cuenta restricciones financieras, organizacionales y tcnicas


n

que comprende todos los aspectos de la produccin de software


Desde la especificacin inicial al mantenimiento del sistema Administracin y gestin del proceso de produccin
Principios y metodologas para desarrollo y mantenimiento de sistemas de software

IEEE 610-12 (Software Engineering)


n

Aplicacin de un enfoque sistemtico , disciplinado y cuantificable al desarrollo, operacin (funcionamiento) y mantenimiento del software
Ingeniera del Software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Qu es la Ingeniera del Software?


n

La IS es aplicar el sentido comn al desarrollo de sistemas software, Navarro (UCM)


Qu es el sentido comn?
Planificar antes de desarrollar Disear antes de programar Reutilizar diseos que funcionan y son mantenibles

... utilizando las herramientas apropiadas, Pavn (UCM)

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

Herramientas CASE
n

Computer-Aided Software Engineering (CASE)


n

Software que facilita la realizacin de actividades del proceso de desarrollo de software


Edicin de diagramas Comprobar la consistencia de los diagramas Generacin de documentacin Seguimiento de actividades del proyecto

Upper-CASE
n

Herramientas que ayudan en las actividades de captura de requisitos, anlisis y diseo Herramientas para la programacin, depuracin y pruebas

Lower-CASE
n

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

Ingeniera de Software y Ciencia de la Computacin


n n n

La Ciencia de la Computacin se refiere a las teoras y los fundamentos subyacentes en los sistemas de computacin La Ingeniera del Software trata los problemas prcticos del desarollo de software Con las teoras de la ciencia de la computacin no es suficiente para desarrollar software (al menos cuando el sistema tiene suficiente envergadura)

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

Ingeniera de Software e Ingeniera de Sistemas


n

La Ingeniera 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 diseo y distribucin de sistemas
n n

La Ingeniera de Software es solo parte de este proceso Los ingenieros de sistemas se encargan de especificar el sistema, definir su arquitectura, integrar sus partes
Estn menos relacionados con la ingeniera de los componentes del sistema (hw y sw)

Al ser el software muchas veces la parte ms importante del sistema, las tcnicas de ingeniera del software se aplican en el proceso de ingeniera de sistemas

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

10

Relevancia de la IS
n n

Las economas de TODOS los pases desarrollados dependen en gran medida del software Cada vez ms sistemas son controlados por software
n n n n n n n

Comunicaciones Seguridad Administracin Fbricas Comercio Agricultura Etc.

El gasto en La Ingeniera de Software, representa un alto porcentaje del PIB de los pases desarrollados

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

11

Coste del software


n

Los gastos del software dominan sobre los de sistema


n

Cuesta ms el software que hay en un PC que el PC En sistemas con una larga vida, los costes de manutencin llegan a multiplicar varias veces los costes de desarrollo

Cuesta ms mantener el software que desarrollarlo


n

La IS trata de mejorar el coste del desarrollo de software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

12

Cules son los costes de la IS?


n

Coste del software


n n

Gastos de desarrollo Gastos de mantenimiento y evolucin Tipo de sistema que se desarrolle y los requisitos de atributos del sistema como eficiencia y fiabilidad Modelo de desarrollo 60% en desarrollo 40% en pruebas

El coste vara dependiendo de


n

Generalmente, para el desarrollo del software


n n

En software hecho a medida los gastos de evolucin suelen ser mayores que los de desarrollo
n

En software genrico muchas veces no se considera la evolucin sino que cada nueva versin se trata como un nuevo producto (razones mercantiles)
Ingeniera del Software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

13

Retos de la IS
n

Sistemas heredados (legacy systems)


n

Mantenimiento, actualizacin, integracin Integracin y evolucin Y con menos recursos Proyectos web: 3 meses3 personas3 kilos Mtodos, lenguajes, ...

Heterogeneidad (sw y hw) de sistemas distribuidos


n

Tiempos de desarrollo cada vez ms cortos


n n

Modas
n

n n

Cultura de ingeniera Formalidad


n

Existe una gran demanda de que exista formalidad en el proceso de desarrollo de software

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

14

Responsabilidad y tica profesional


n

Confidencialidad
n

De los dems empleados y de los clientes Reconocer los lmites y capacidades para aceptar un trabajo Patentes, copyright Trabajo de otros colegas Juegos, virus, pirateo

Competencia
n

Derechos de propiedad intelectual


n n

Mal uso de los sistemas


n

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

15

Responsabilidad y tica profesional


n

Cdigo tico de ACM/IEEE


n

Principios que deben guiar el comportamiento y decisiones de ingenieros software profesionales (incluyendo gestores, estudiantes y profesores)
1. Actuar en bien del inters pblico 2. Actuar en el mejor inters del cliente y el empleador, siendo consistente con el inters pblico 3. Asegurar que los productos y modificaciones renen los mejores estndares profesionales posibles 4. Mantener la integridad e independencia en el juicio profesional 5. Suscribir y promocionar un comportamiento tico en la gestin y mantenimiento del desarrollo de software 6. Colaborar en el avance de la integridad y la reputacin de la profesin siendo consistente con el inters pblico 7. Ser justo y ayudar a los colegas 8. A lo largo de la vida, reciclarse en la prctica de la profesin y promocionar un comportamiento tico en la prctica de la profesin

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

16

Responsabilidad y tica profesional


n

Dilemas en el ejercicio de la profesin


n n

Desacuerdo con los principios y poltica de los superiores El empleador acta de manera no tica y libera un sistema crtico de seguridad sin haber acabado las pruebas del sistema Participacin en el desarrollo de sistemas militares

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

17

Bibliografa
n

Roger Pressman, Ingeniera del Software. Un enfoque prctico. Quinta edicin. McGraw Hill, 2001 Ian Sommerville, Ingeniera del Software, Sexta Edicin, Pearson Educacin, 2002 F. P. Brooks, The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition), Addison Wesley, 1995

Juan Pavn Mestras Facultad de Informtica UCM, 2004

Ingeniera del Software

18

También podría gustarte