Ing. Marco Aedo Lpez CALIFICACIN TEORA 1 Examen 20% 2 Examen 25% Trabajo Final 35% Evaluacion Permanente 20% Controles de lectura Prcticas en clase (individual y grupal) Prcticas calificadas Exposiciones
NOTA FINAL=TEORA*0.70+LAB*0.30 Ing. Marco Aedo Lpez Anlisis y Diseo de Sistemas Ingeniera de Software 1 Bases de Datos Lenguajes de Programacin Sistemas de Informacin Otros... Prerrequisitos Ing. Marco Aedo Lpez Temario del Curso 1. Puntos Clave de la Ingeniera de Software 2. Los problemas, la complejidad y la construccin de software correcto 3. Ingeniera de requerimientos, conociendo lo que el cliente desea 4. Gestin, planeamiento, organizacin y programacin exitosa de proyectos de software Ing. Marco Aedo Lpez Temario del Curso 5. Diseo Correcto aplicando tcnicas Orientado a Objetos e Implementacin 6. Interaccin Humano - Computador 7. Diseo de la Interfaz de Usuario 8. Control de Versiones Desarrollo Defensivo 9. Testing: Verificacin y Validacin Ing. Marco Aedo Lpez Sommerville, Ian. Software Engineering, Addison Wesley. Novena Ed, 2011 Pressman, Roger. Software Engineering. A Practitioners Approach, McGraw - Hill, Octava Ed, 2014 Pilone, Dan. Head First Software Development, OReally. Primera Ed, 2008 Leffingwell, D., Widrig, D. Managing Software Requirements, Addison Wesley, 2003 Booch, Grady. Object Oriented Analysis and Design with Applications. Addison Wesley, Tercera Ed. 2007 Abascal Julio, Aedo Ignacio, Caas Jos. La Interaccin Persona Ordenador, 2001 Dix, Alan. "Human-Computer Interaction". Prentice Hall, Tercera Ed. 2003 BIBLIOGRAFA Ing. Marco Aedo Lpez CAPTULO 1 Puntos clave de la Ingeniera de Software Ing. Marco Aedo Lpez Objetivos Responder a un conjunto de preguntas clave sobre la Ingeniera de Software Introducir a temas profesionales y de tica importantes para los ingenieros de software Ing. Marco Aedo Lpez Contenido Preguntas clave sobre la ingeniera de software Responsabilidad profesional y tica Ing. Marco Aedo Lpez Enfoque informal en el desarrollo de software lleva a: Tiempo de retraso Costo mayor que lo presupuestado Software difcil de mantener Desempeo pobre Incluso irrealizables Problemtica Ing. Marco Aedo Lpez Las economas de todas las naciones desarrolladas son cada vez ms dependientes del software Ms y ms sistemas son controlados por software La Ing. Sw tiene que ver con teoras, mtodos y herramientas para el desarrollo profesional de software El gasto en Software representa una fraccin importante del PBI en los pases desarrollados Ingeniera de Software Ing. Marco Aedo Lpez Ing. Marco Aedo Lpez 1. Qu es software? 2. Qu es Ingeniera de Software? 3. Cul es la diferencia entre Ing. Sw y CS? 4. Cul es la diferencia entre la Ing. Sw y la Ingeniera de Sistemas? 5. Qu es un proceso de software? 6. Qu es un modelo de proceso de software? 7. Qu conocimientos sern necesarios para hacer un buen desarrollo de software? Puntos Clave sobre el Desarrollo De Software Ing. Marco Aedo Lpez Puntos Clave sobre la Ing. De Software 8. Cules son las actividades fundamentales de cualquier proceso de software? 9. Cules son los mtodos de la Ingeniera de Software? 10. Qu es CASE? Ejemplos 11. Cules son los atributos de un buen software? 12. Cules son los desafos claves a los que se enfrenta la Ing. De Sw en la actualidad? 13. Son suficientes las habilidad tcnicas? 14. Qu opina de la afirmacin? El cientfico construye para aprender El ingeniero aprende para construir
Ing. Marco Aedo Lpez 1. Qu es software? Programas computacionales y su documentacin asociada Los productos de sw pueden ser desarrollados para un cliente particular o para un mercado generalizado Los productos de sw pueden ser: Genricos: desarrollados para ser vendidos a un grupo de clientes diferentes Personalizados: desarrollados para un cliente determinado de acuerdo a sus necesidades y especificaciones Ing. Marco Aedo Lpez 2. Qu es Ingeniera de Software? Es la disciplina de la Ingeniera que comprende todos los aspectos de la produccin de software Los ing. de sw deben adoptar enfoques sistemticos y organizados para su trabajo y usar herramientas y tcnicas apropiadas al: Problema a resolver Restricciones de desarrollo Recursos disponibles
Ing. Marco Aedo Lpez 3. Cul es la diferencia entre la Ingeniera de Software y las Ciencias de la Computacin? Ciencias de la Computacin: Comprende las teoras y fundamentos subyacentes a la computacin Ingeniera de Software: Comprende la prctica y los problemas asociados a la produccin de software (desarrollo y liberacin) Las teoras de la CS son actualmente insuficientes para actuar como una base metodolgica completa para la ingeniera de software Ing. Marco Aedo Lpez
INGENIEROS DE SOFTWARE CIENCIAS DE LA COMPUTACIN
INGENIEROS ELCTRICOS FSICA Ing. Marco Aedo Lpez 4. Cul es la diferencia entre la Ingeniera de Software y la Ingeniera de Sistemas? Ingeniera de Sistemas: comprende todos los aspectos del desarrollo de sistemas basados en computadoras. Tales como HW, SW, redes e ingeniera de procesos Ingeniera de Software: es parte de este proceso Los ingenieros de sistemas estn involucrados en la especificaicn del sistema, diseo arquitectnico, integracin e implementacin Ing. Marco Aedo Lpez
Ingeniera de sistemas es ms antigua que la de software El % de software en los sistemas ha aumentado notablemente
Ing. Marco Aedo Lpez ACTIVIDAD Visitar: http://www.incose.org/ Leer el pdf de los 12 roles de la Ingeniera de Sistemas Ing. Marco Aedo Lpez 5. Qu es un Proceso de Software? Es un conjunto de actividades cuya meta es el desarrollo o evolucin del software Incluyen las actividades de especificacin, desarrollo, validacin y evolucin Ing. Marco Aedo Lpez
Ejercicio: Cmo debera ser el proceso para el desarrollo de?
Software de tiempo real de un avin Sistema de Comercio Electrnico
Ing. Marco Aedo Lpez 6. Qu es un modelo de proceso de software? Una representacin abstracta de un proceso de software, presentada desde una perspectiva Modelos generales de procesos Cascada (Waterfall) Desarrollo iterativo Transformacin formal Integracin desde componentes reusables Ing. Marco Aedo Lpez
Ejercicio: Cundo usar cada modelo de proceso genrico?
Ing. Marco Aedo Lpez 7. Qu conocimientos sern necesarios para hacer un buen desarrollo de software? Ingeniera de Software Ciencias de la Computacin Gestin de proyectos Etc. Ing. Marco Aedo Lpez 8. Cules son las actividades fundamentales de cualquier proceso de software? Existen 4 actividades fundamentales: Especificacin: qu es lo que el sistema debe hacer y sus restricciones de desarrollo? Desarrollo: diseo y programacin de un sistema de software Validacin: chequeo de que el software es lo que el cliente desea Evolucin: cambios en el software en respuesta a demandas cambiantes Ing. Marco Aedo Lpez 9. Cules son los Mtodos de la Ingeniera de Software? Enfoques para el desarrollo de software que incluye guas de procesos, notaciones, reglas, gua de diseo y modelos de sistemas. Ejemplos: estructurado y OO COMPONENTES Gua de proceso Que actividades seguir Descripciones de Modelos Descripciones de modelos grficos que deben ser producidos Reglas Restricciones aplicadas a modelos de sistemas Recomendaciones Sugerencias sobre buenas prcticas de diseo
Ing. Marco Aedo Lpez 10. Qu es CASE? (Computer- Aided Software Engineering) Sistemas de sw destinados a dar soporte automatizado para las actividades de procesos de sw Frecuentemente son utilizados para soportar un mtodo Upper-CASE Herramientas que apoyan las actividades tempranas de un proceso (requerimientos/diseo) Lower-CASE Herramientas que apoyan las actividades tardas de un proceso (programacin, depuracin y pruebas) Ing. Marco Aedo Lpez 11. Cules son los atributos de un buen sw? El sw debera brindar la funcionalidad y desempeo requeridos por el usuario, y debera ser mantenible, confiable, eficiente y usable Mantenible Sw debe ser fcil de modificar para evolucionar a las nuevas necesidades requeridad Confiable Sw debe producir los resultados esperados Eficiente Sw debe hacer buen uso de los recursos del sistema Usable Sw debe ser de fcil uso para los usuarios finales Ing. Marco Aedo Lpez
No estn asociados directamente con lo que el sw hace
Se relacionan a su ejecucin, organizacin de cdigo fuente y documentacin asociada
Ing. Marco Aedo Lpez 12. Cules son los desafos que enfrenta la Ingeniera de Software? Tiene que lidiar con: Sistemas heredados Sistemas antiguos pero valiosos, deben ser mantenidos y actualizados Heterogeneidad Los sistemas estn distribuidos e incluyen diversos Hw y Sw Tiempo de Entrega Presin de tiempo para entregar el sw ms rpido Confianza Demostrar que el Sw puede ser confiable para los usuarios
Ing. Marco Aedo Lpez 13. Son suficientes las habilidades tcnicas? Tambin habilidades humanas!!!!!! Responsabilidad Profesional y tica Ing. Sw. NO involucra slo habilidades tcnicas, sino adems otras responsabilidades Para ser respetados como profesionales se debe actuar de manera honesta y tica El comportamiento tico es ms que simplemente cumplir con las leyes Hay compromisos con la SOCIEDAD Ing. Marco Aedo Lpez Aspectos de Responsabilidad Social Confidencialidad Competencia Derechos de la propiedad intelectual Uso inapropiado de las computadoras
Ing. Marco Aedo Lpez Cdigo de tica de ACM/IEEE Las sociedades profesionales en USA han cooperado para producir un cdigo de tica para la prctica de la disciplina Los miembros de estas organizaciones las aceptan cuando se incorporan a ellas Contiene 8 principios Ing. Marco Aedo Lpez Cdigo de tica - Principios 1. PBLICO Los ingenieros de software debern actuar consistentemente con el inters pblico 2. CLIENTE Y EMPLEADOS Actuarn de una manera que responda a los intereses de sus clientes y empleadores, consistentemente con el inters pblico 3. PRODUCTO Asegurarn que sus productos cumplen con los ms altos estndares profesionales posibles Ing. Marco Aedo Lpez Cdigo de tica - Principios 4. JUICIO Mantendrn integridad e independencia en sus juicios profesionales 5. ADMINISTRACIN Los ingenieros de software administradores y lderes suscribirn y promovern un enfoque tico en la administracin del desarrollo y mantenimiento del sw 6. PROFESIN Promovern la integridad y reputacin de la profesin, acord al inters pblico
Ing. Marco Aedo Lpez Cdigo de tica - Principios 7. COLEGAS Debern ser justos, imparciales y apoyar a sus colegas 8. PERSONAL Participarn en un aprendizaje continuo durante toda su vida sobre las prcticas de la profesin y promovern un enfoque tico sobre la misma Ing. Marco Aedo Lpez Dilemas ticos Desacuerdo en los principios con las polticas de urgencia del administrador del proyecto El empleador acta de una manera no tica al liberar un sistema de seguridad crtica sin finalizar la prueba del sistema Participacin en el desarrollo de sistemas de armas militares o nucleares
Ing. Marco Aedo Lpez 14. Qu opina de la afirmacin?
El cientfico construye para aprender El ingeniero aprende para construir Ing. Marco Aedo Lpez CONCLUSIONES La Ingeniera de Software es una disciplina de ingeniera que comprende todos los aspectos de la produccin del sw Los productos de software consisten de los programas desarrollados y de su documentacin asociada Atributos escenciales del producto son mantenibilidad, confiabilidad, eficiencia y usabilidad El proceso de sw consiste de actividades involucradas en el desarrollo de productos de software. Activididades bsicas: Especificacin, desarrollo, validacin y evolucin Ing. Marco Aedo Lpez CONCLUSIONES Los mtodos son formas organizadas de producir sw. Incluyen sugerencias del proceso, de la notacin, reglas que dirigen la descripcin del sistema y lineamientos de diseo Las herramientas CASE son sistemas de sw que sirven para ayudar en las actividades del proceso de sw Los ingenieros de software tienen responsabilidades, tanto con la profesin como con la sociedad, NO es slo su capacidad tcnica lo importante Las sociedades profesionales publican cdigos de conducta que definen los estndares de comportamiento esperados de sus miembros Ing. Marco Aedo Lpez CUESTIONARIO 1. Considerando la distribucin de costos, por qu es apropiado considerar al sw como ms que programas ejecutables? 2. Analice las diferencias entre el desarrollo de software genrico y personalizado 3. Enumere otros 4 atributos importantes que deba tener el sw. Justifique 4. Por qu los costos de las pruebas son altos para el desarrollo de sw genrico? Ing. Marco Aedo Lpez ENLACES Online Ethics Center for Engineering and Science http://onlineethics.org/ Software Engineering Ethics Research Institute http://seeri.etsu.edu/