Slide 1
Objetivos
Introducir y comprender la Ingeniera de Software y explicar su importancia. Establecer respuestas a preguntas clave acerca de la Ingeniera de Software.
Slide 2
Ingeniera de Software
Las economas de TODAS las naciones desarrolladas son dependientes de software y sistemas informticos. Cada vez ms sistemas son controlados por software. La Ingeniera de Software concierne teoras, mtodos y herramientas para el desarrollo profesional de software. Los gastos en software representan una fraccin significativa del PIB en todos los pases desarrollados.
Software Engineering, 7th edition. Chapter 1 Slide 3
Los costos del software a menudo dominan en los costos de un sistema computacional o informtico. Los costos de software en una PC son a menudo mayores que el costo del hardware. Cuesta ms el mantenimiento del software que el desarrollo del mismo. Para sistemas de larga vida, los costos de mantenimiento se multiplican con respecto a los costos de desarrollo. A la Ingeniera de Software le compete el desarrollo de software rentable.
Software Engineering, 7th edition. Chapter 1 Slide 4
Qu es Software? Qu es la Ingeniera de Software? Cul es la diferencia entre Ingeniera de Software y Computacin? Cul es la diferencia entre Ingeniera de Software e Ingeniera de Sistemas? Qu es un proceso de software? Qu es un modelo de proceso de software?
Slide 5
Cules son los costos que implica la Ingeniera de Software? Cules son las metodologas de desarrollo de Software? Qu son las herramientas CASE (ComputerAided Software Engineering) Cules son los atributos de un buen software? Cules son los desafos primordiales frente a la Ingeniera de Software?
Software Engineering, 7th edition. Chapter 1 Slide 6
Qu es software?
Programas de cmputo y documentacin asociada, como ser documentos de requerimientos, arquitectura y modelos de diseo y manuales de usuario. Los productos software pueden ser desarrollados para un cliente particular o bien para el mercado en general. Los productos software pueden ser:
Genricos desarrollados para ser vendidos a una gama de diversos clientes, ejemplo: software como Excel o Word. Hecho a medida desarrollado para un cliente particular acorde a sus requerimientos y especificaciones.
Nuevo software puede ser creado desarrollando nuevos programas, configurando sistemas de software genrico o reutilizando software existente.
Software Engineering, 7th edition. Chapter 1 Slide 7
Qu es la Ingeniera de Software?
La Ingeniera de Software es una disciplina de la ingeniera que concierne a todo lo referente con produccin de software. Los ingenieros de software deberan adoptar un enfoque sistemtico y organizado con respecto a su trabajo, utilizar herramientas y tcnicas apropiadas con relacin al problema planteado, las restricciones del desarrollo y los recursos disponibles.
Slide 8
La computacin comprende teoras y fundamentos de cualquier sistema de cmputo; a la Ingeniera de Software le concierne los aspectos prcticos del desarrollo y entrega de software til. Las teoras de la computacin an son insuficientes para respaldar completamente a la Ingeniera de Software (indistintamente a, ejemplo, la fsica y la ingeniera elctrica).
Slide 9
A la ingeniera de sistemas le competen todos los aspectos de desarrollo de sistemas basados en cmputos, incluyendo hardware, software y procesos de ingeniera. La Ingeniera de Software es parte de este proceso, haciendo referencia al desarrollo de la infraestructura del software, aplicaciones y bases de datos en el sistema. Los ingenieros de sistemas estn involucrados con la especificacin del sistema, diseo arquitectnico, integracin y despliegue del mismo.
Software Engineering, 7th edition. Chapter 1 Slide 10
Qu es un proceso de software?
Un conjunto sistemtico de actividades cuya meta es el desarrollo o la evolucin del software. Actividades genricas en todos los procesos de software son:
Especificacin lo que el sistema debera hacer y sus restricciones de desarrollo Desarrollo produccin del sistema software Validacin comprobando que el software es lo que el cliente quiere Evolucin cambios y mantenimiento en el software con relacin a los cambios en los requerimientos y demandas.
Software Engineering, 7th edition. Chapter 1 Slide 11
Una representacin simplificada de un proceso de software, presentada desde una perspectiva especfica. Ejemplos de perspectivas de proceso son:
Perspectiva de flujo de trabajo secuencia de actividades; Perspectiva de flujo de datos flujo de informacin; Perspectiva de Casos de Uso quin hace qu (funcionalidad). Modelo en Cascada; Desarrollo iterativo; Ingeniera de Software basada en componentes.
Slide 12
Rigurosamente, 60% de los costos son de desarrollo, 40% son costos de prueba. Para software hecho a medida, los costos de evolucin a menudo exceden los costos de desarrollo. Varan acorde al tipo de sistema a desarrollar y a los requerimientos con respecto a los atributos del mismo, como ser el funcionamiento y la confiabilidad del sistema. La distribucin de los costos depende del modelo empleado para el desarrollo del software
Software Engineering, 7th edition. Chapter 1 Slide 13
Specification
Iterative development
System testing
Specification
Development
Development and evolution costs for long-lifetime syst ems 0 10 200 30 400
System development
System evolution
Slide 14
Slide 15
Acercamientos estructurados al desarrollo de software que incluyen modelos del sistema, notaciones, reglas, pautas de diseo y pasos a seguir. Descripciones del modelo
Descripciones de modelos grficos que deben ser producidos; Restricciones aplicadas a los modelos del sistema; Pautas para un buen diseo en la prctica; Qu actividades deben seguirse.
Reglas
Recomendaciones
Pasos a seguir
Slide 16
El software debe entregar la funcionalidad y el funcionamiento requeridos por el usuario al l mismo, y debe ser mantenible, confiable y aceptable. Mantenibilidad
El software debe evolucionar para cubrir necesidades cambiantes; El software debe ser confiable; El software no debera hacer mal uso de los recursos del sistema; El software debe aceptar las necesidades de los usuarios para los cuales fue diseado. Esto significa que debe ser entendible, de utilidad y compatible con otros sistemas.
Software Engineering, 7th edition. Chapter 1 Slide 17
Confiabilidad
Eficiencia
Aceptabilidad
Entrega
Confianza
Slide 18
Puntos Clave
La Ingeniera de Software es una disciplina de la ingeniera concerniente a todos los aspectos de la produccin de software. Los productos software estn consistidos de programas desarrollados y su documentacin asociada. Atributos esenciales del producto son la mantenibilidad, formalidad, eficiencia y utilidad. El proceso de software consiste en actividades involucradas en el desarrollo de productos software. Actividades bsicas son la especificacin del software, desarrollo, validacin y evolucin. Las metodologas son maneras organizadas de producir software. Estas incluyen sugerencias para el proceso a seguir, notaciones a usar, reglas que rigen las descripciones del sistema que son pautas para el desarrollo.
Software Engineering, 7th edition. Chapter 1 Slide 19