Conceptos bsicos
1 / 23
Objetivos
Objetivos
Denir la Ingeniera de Software y explicar su importancia Discutir los conceptos de producto de software y proceso de software Introducir la nocin de responsabilidad profesional
Conceptos bsicos
2 / 23
Ingeniera de Software
Ingeniera de Software
La economa de todos los pases desarrollados es dependiente del software Actualmente cada vez mas sistemas son controlados por software La Ingeniera de Software concierne a teoras, mtodos y herramientas para el desarrollo profesional de software El gasto en la Ingeniera de Software, representa un alto porcentaje del PIB de los pases desarrollados
Conceptos bsicos
3 / 23
Conceptos bsicos
Conceptos bsicos
Qu es software? Qu es la Ingeniera de Software? Cul es la diferencia entre Ingeniera de Software y Ciencias Computacionales? 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?
Conceptos bsicos
4 / 23
Conceptos bsicos
Conceptos bsicos...
Cules son los costos de la Ingeniera de Software? Qu son los mtodos de Ingeniera de Software? Qu es CASE? Cules son los atributos del software de calidad? Cules son los retos de la Ingeniera de Software?
Conceptos bsicos
5 / 23
Conceptos bsicos
Software
Qu es software?
Programas de cmputo y su documentacin asociada: requerimientos, modelos de diseo y manuales de usuario El software puede ser desarrollado para un cliente en particular o para un mercado general El software puede ser:
Genrico: desarrollado para venderse a mltiples clientes (Excel, Word, etc.) A la medida: desarrollado bajo demanda del cliente a un desarrollador especco
El software nuevo puede ser creado desarrollando nuevos programas, congurando sistemas de software genrico o reutilizando software existente
Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 6 / 23
Conceptos bsicos
Ing. de Software
Qu es la Ingeniera de Software?
Una disciplina de la Ingeniera que concierne a todos los aspectos de la produccin de software Los Ingenieros de Software deben:
Adoptar un enfoque sistemtico para llevar a cabo su trabajo Utilizar las herramientas y tcnicas apropiadas para resolver el problema planteado, de acuerdo a las restricciones de desarrollo y a los recursos disponibles
Conceptos bsicos
7 / 23
Conceptos bsicos
Las Ciencias Computacionales conciernen a la teora y fundamentos de cualquier sistema de cmputo (hardware o software) La Ingeniera de software concierne los aspectos prcticos del desarrollo y puesta en marcha de productos tiles de software La Ingeniera de Software an est lejos de ser considerada una ciencia como los son la qumica o la fsica
Conceptos bsicos
8 / 23
Conceptos bsicos
La Ingeniera de Sistemas concierne a todos los aspectos del desarrollo de sistemas basados en cmputo incluyendo hardware, software y la ingeniera de procesos. La Ingeniera de Software es una parte de este proceso que comprende el desarrollo de software, control, aplicaciones y bases de datos del sistema Los ingenieros de software son los encargados de la especicacin del sistema, del diseo de la arquitectura, la integracin y la puesta en marcha.
Conceptos bsicos
9 / 23
Conceptos bsicos
Proceso de software
Qu es un proceso de software?
Un conjunto estructurado de actividades cuya meta es el desarrollo o evolucin de un software Algunas actividades genricas en todos los procesos de software son:
Especicacin, qu debe hacer el software y cules son sus especicaciones de desarrollo Desarrollo, produccin del sistema de software Validacin, vericar que el software cumple con lo solicitado por el cliente Evolucin, cambiar/adaptar el software a las nuevas demandas
Conceptos bsicos
10 / 23
Conceptos bsicos
Modelos Genricos:
Cascada, separar en distintas fases de especicacin y desarrollo Desarrollo Iterativo, la especicacin, desarrollo y validacin estn interrelacionados Prototipado, un modelo sirve de prototipo para la construccin del sistema nal Basado en componentes, asume que partes del sistema ya existen y se enfoca a su integracin
Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 11 / 23
Conceptos bsicos
Conceptos bsicos
12 / 23
Conceptos bsicos
Conceptos bsicos
13 / 23
Conceptos bsicos
En el software a la medida los costos de evolucin a menudo exceden los costos de desarrollo Los costos dependen del tipo de sistema que se desarrolla y de los requerimientos del mismo tales como desempeo y conabilidad La distribucin de los costos depende del modelo de desarrollo empleado
Conceptos bsicos
14 / 23
Conceptos bsicos
Imagen tomada de [Sommerville, 2006] Dr. Eduardo R ODRGUEZ T. (C INVESTAV) Conceptos bsicos 5 de septiembre del 2012 15 / 23
Conceptos bsicos
Conceptos bsicos
16 / 23
Conceptos bsicos
Conceptos bsicos
17 / 23
Conceptos bsicos
CASE
Qu es CASE?
CASE es Computer-Aided Software Engineering Programas que son usados para dar soporte automatizado a las actividades del proceso de software:
Anlisis de requerimientos, modelado del sistema, pruebas y depuracin (debugging)
Las herramientas CASE son comnmente usadas para dar soporte a los mtodos de software
Editores para la notacin del mtodo Mdulos de anlisis que verican que las reglas del mtodo se cumplan Generadores de reportes que facilitan la creacin de la documentacin del sistema Generadores de cdigo a partir del modelo del sistema
Conceptos bsicos
18 / 23
Conceptos bsicos
El software debe proveer la funcionalidad y desempeo requeridos por el usuario y debe ser mantenible, conable y aceptable
Mantenible, el software debe poder evolucionar para continuar cumpliendo con las especicaciones Conable, el software no debe causar daos fsicos o econmicos en el caso de que falle Eciente, el software no debe desperdiciar los recursos del sistema Aceptable, el software debe ser aceptado por los usuarios para los que fue diseado. Debe ser entendible, utilizable y compatible con otros sistemas
Conceptos bsicos
19 / 23
Conceptos bsicos
Heterogeneidad
Desarrollar tcnicas para construir software que pueda hacer frente a plataformas y ambientes de ejecucin heterogneos (diferentes tipos de Hw y Sw)
Tiempos de entrega
Desarrollar tcnicas que permitan reducir los tiempos de entrega del software sin comprometer la calidad
Conanza
Desarrollar tcnicas que permitan que los usuarios confen plenamente en el software
Conceptos bsicos
20 / 23
La Ingeniera de Software comprende responsabilidades que van ms all de la simple aplicacin de habilidades tcnicas Los ingenieros de Software deben actuar de manera honesta y tica si desean ser respetados como profesionales Una conducta tica es ms que slo respetar la ley
Conceptos bsicos
21 / 23
Responsabilidad profesional
Conceptos bsicos
22 / 23
Tarea
Investigar y analizar el cdigo de tica profesional de los ingenieros de software desarrollado por ACM/IEEE (Software Engineering Code of Ethics and Professional Practice)
Conceptos bsicos
23 / 23