H. 1/6 Carga Horaria: Objetivos: Problemas Problemas Proyecto y Teoría Laboratorio Total Tipo/Rutinarios Abiertos Diseño 30 30 15 15 30 120 Que el estudiante tome conocimiento de conceptos básicos de ingeniería de software desde un punto de vista gerencial, transversal al desarrollo en sí, así como también la automatización de procesos de desarrollo de software. Para cubrir dichos objetivos se emplearán conceptos, modelos y métodos en un proyecto integrador. Principios de IS. Modelos de proceso (tradicionales y nuevos modelos). Planificación y administración de Proyectos de Software. Modelos de Estimación. Análisis y gestión de riesgo. Validación y verificación. Gestión de configuración de Software. CASE - Automatización de Procesos de Software. Contenidos Mínimos:
H. 2/6 Programa Analítico: Unidad 1: Ingeniería de Software. Principios. Modelos. Software. Ingeniería de software. Conceptos. Evolución del software. Características del software. Crisis del software. Modelos de procesos de producción de software. Proceso, metodologías y herramientas. Evolución de las metodologías de desarrollo de sistemas de software. Unidad 2: Ingeniería de la Información El modelado de información en el contexto de sistemas. Modelado de datos vs. modelado de información. Las entidades de negocio y las relaciones entre entidades. Naturaleza de las relaciones entre entidades. Las relaciones entre entidades como reglas del negocio. El modelo de información como modelo de la organización. Unidad 3: Gestión de Proyectos de Software Conceptos. Producto. Proceso. Proyecto. Recursos humanos. Coordinación y comunicación. Ámbito del Software. Descomposición del proceso. Medidas, métricas e indicadores. Estimaciones. Modelos empíricos de estimación. Herramientas automáticas de estimación. Unidad 4: Metodologías Ágiles Conceptos. Principios. Manifiesto. Estudio comparativo de metodologías ágiles: XP, Cristal, Scrum, UML. Ventajas y desventajas de las metodologías ágiles. Estudio de utilización concreta de las metodologías ágiles en la industria del software. Unidad 5: Análisis y Gestión del Riesgo Estrategias de riesgo proactivas vs. reactivas. Riesgo del software. Identificación y evaluación global del riesgo del proyecto. Proyección del riesgo y evaluación del impacto. Seguridad. Unidad 6: Planeamiento del Proyecto Principios básicos. Distribución del esfuerzo. Definición y selección de tareas de ingeniería de software. Planificación temporal. Análisis de valor agregado. Plan de proyecto. Unidad 7: Calidad del Software. Gestión de Configuración del Software. Conceptos. Control. Garantía. Costos. Aseguramiento de la calidad del software. Pruebas de errores del software. Medidas de fiabilidad y disponibilidad. Líneas base, elementos y objetos en la configuración del software. Versiones.
H. 3/6 Descripción de las actividades teóricas y prácticas: Trabajo Práctico 1: Desarrollo de una monografía sobre la ingeniería de software. Trabajo Práctico 2: Modelado de información utilizando tecnología CASE. Trabajo Práctico 3: Desarrollo de un prototipo de una aplicación utilizando: un entorno visual de alta productividad, planeamiento del proyecto, metodologías ágiles, técnicas de aseguramiento de calidad del software, en una práctica de campo, en un entorno real, en una aplicación industrial. Trabajo Práctico 4: Análisis del esfuerzo de producción de software mediante herramientas automáticas de estimación. Metodología de Enseñanza: La asignatura Ingeniería de Software I, como su propio nombre lo indica, es la aplicación de los aspectos teóricos y los métodos científicos en el campo de la industria del software, utilizando los medios tecnológicos más avanzados. Para ello es necesario brindar los aspectos conceptuales a los alumnos, para que ellos los apliquen, con un marco de aseguramiento de calidad en lo que respecta a sus procesos, métodos y herramientas, en prácticas de laboratorio y de campo. En lo que hace a cada unidad, se expondrán los conceptos, se discutirán los fundamentos correspondientes y luego se consolidarán los aspectos tratados mediante la presentación de ejemplos prácticos y resolución de prácticos acorde a la temática tratada. En razón que es meritorio que los alumnos tengan una experiencia real, se trasciende la práctica de laboratorio para incurrir en una práctica de campo, desarrollando un prototipo funcional en la industria del software en un cliente real. Forma de Evaluación: Esta materia es de naturaleza teórico-práctica. En particular, con énfasis en el aspecto práctico, para lo cual se desarrolla un práctico de campo. La evaluación consiste en: - la presentación del trabajo monográfico realizado en el Trabajo Práctico 1, con su correspondiente coloquio para aquellos alumnos que no lo hayan aprobado en primera instancia, - la aprobación de un examen parcial teórico-práctico, o su recuperación, - la aprobación del práctico de campo, - la aprobación del Trabajo Práctico 4, - un examen final integrador basado en un esquema de coloquio.
H. 4/6 Bibliografía Básica: - Roger S. Pressman, Software Engineering: A Practitioner's Approach (Sixth Edition), McGraw-Hill, 2006 - Ian Sommerville, Software Engineering (Fifth Edition), Addison-Wesley, 1996 - Ghezzi, Carlo y otros "Fundamentals of Software Engineering", Prentice Hall, 1991 - Martin, James, "Information Engineering", Prentice Hall, 1991 - Hammer M., Champy, J. Reingeniería, Norma, 1993 - Paul Jorgensen, "Software Testing- A Craftsman's approach", CRC Press, 1995 - Bruce T., Designing High Quality Data Bases, Dorset House, 1991 - CTR, Information Systems Strategic Planning, Computer Technology Research Corp., 4th Edition, 1994 - Alianza Ágil, http://www.agilealliance.org - Patricio Letelier, Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia, letelier@dsic.upv.es - Manifiesto para el Desarrollo de Software Ágil, http://www.agilemanifesto.org - Martín Fowler, La Nueva Metodología, http://www.programacion.net - Kent Beck, Extreme Programming Explained, http://www.amazon.com/exec/obidos/asin/0201616416/programacione-20 - Manuales Técnicos de Lenguajes Visuales - Manuales de Herramientas CASE. Bibliografía Complementaria: - Página Web del Instituto de Ingeniería de Software (CMU), http://www.cmu.edu, - Página Web del Dr. Roger Pressman, http://www.rspa.com - Ron Jeffries http://www.xprogramming.com - Don Wells http://www.extremeprogramming.org - Ward Cunningham, página wiki, http://c2.com/cgi/wiki?extremeprogrammingroadmap - Grupo de Discusión XP, http://www.egroups.com/group/extremeprogramming - Mark Paulk, XP desde la Perspectiva del CMM, http://www.sei.cmu.edu/cmm/papers/xp-cmm-paper.pdf - Alistair Cockburn, http://members.aol.com/acockburn - Crystal, http://members.aol.com/acockburn/ - Raymond La Catedral y el Bazar.http://es.tldp.org/Otros/catedral-bazar/cathedral-es-paper-00.html - Karl Fogel, Desarrollo de Código Abierto con CVS, Coriolis Group Books; 1st edition, 1999. - Fundación Sidar, http://www.sidar.org/recur/desdi/cvs.
H. 5/6 Bibliografía Complementaria (continuación): - Jim Highsmith, http://www.adaptivesd.com. - Jim Highsmith, Adaptive Software Development, Dorset House Publishing Company, Inc., 1999. - Stephen R Palmer, John M. Felsing, A Practical Guide to Feature-Driven Development (The Coad Series), Prentice Hall PTR, 2002. - Jeff De Luca, FDD, http://www.featuredrivendevelopment.com - Peter Coad, Java Modeling In Color With UML, Prentice Hall, 1999. - Alistair, Desarrollo de Software Ágil, Addison-Wesley Professional; 1st edition, 2001. - Ken Schwaber y Mike Beedle, Agile Software Development with Scrum, Prentice Hall; 1st ed., 2001. - Ken Schwaber, http://www.controlchaos.com - Jeff Sutherland, http://jeffsutherland.com/scrum/index.html - Scrum, http://groups.yahoo.com/group/scrumdevelopment. - TogetherSoft, http://www.togethersoft.com - DSDM, http://www.dsdm.org - Jennifer Stapleton, Peter Constable, DSDM, Addison-Wesley Professional; 1st edition, 1997 - Carlos Reynoso, Métodos Heterodoxos en Desarrollo de Software, http://www.microsoft.com/spanish/msdn/arquitectura/roadmap_arq/heterodox.asp - Jim Highsmith, Agile Software Development Ecosystems, Boston, Addison Wesley, 2002. - Scott Ambler, Agile Modeling: Effective practices for Extreme Programming and the Unified Process, John Wiley & Sons, 2002. - Scott Ambler, Agile Modeling and the Unified. Process.http://www.agilemodeling.com/essays/agileModelingRUP.htm, 2002. - Pekka Abrahamsson, Outi Salo, Jussi Ronkainen & Juhani Warsta, Agile Software Development Methods: Review and Analysis, VTT, 2002 - http://www.biblioteca.secyt.gov.ar. Journal Environmental Modelling and Software - http://www.biblioteca.secyt.gov.ar. Book. Editorial Elseiver. Book Systems Analysis and Design - http://www.springerlink.com/. Annals of Software Engineering. - http://www.springerlink.com/. Software and Systems Modeling. - http://www.springerlink.com/. International Journal on Software Tools for Technology Transfer (STTT). - http://www.springerlink.com/. Innovations in Systems and Software Engineering. - http://www.ieee.org/. Journals and Conferences in IEEE Xplore.
H. 6/6 Bibliografía Complementaria (continuación): - Fenton, N.E., Pfleeger, S.L., 1997, Software Metrics: a Rigorous and Practical Approach, 2nd Ed., PWS Publishing Company. - Arthur, Lowell Jay, Rapid Evolutionary Development, Wiley, 1992. - Uzal, R. et al Rapid Evolutionary Prototyping of Data Base Applications, Software Engineering IASTED Software Engineering Conference, Las Vegas, 1998. - Connell, J. and L. Shafer, Object-Oriented Rapid Prototyping. Yourdon Press / Prentice Hall, 1995. - Rational Software, SQA Suite. http://www.rational.com/products/sqa/prodinfo/index.jtmpl - Rational Software, ClearCase. http://www.rational.com/products/clearcase/prodinfo/index.jtmpl - Rational Software, Performance Studio. http://www.rational.com/products/pstudio/prodinfo/index.jtmpl - Peterson J., Petri Net Theory and the Modelling of Systems, Prentice Hall, Englewood Cliffs, New Jersey, 1981. - Ghezzi, Mandrioli, Morascas and Pezze, A general way to put time in Petri nets. Proceeding 5th International Workshop on Software Specification and Design, Pittsburgh, May 89, pages 60-67, IEEE Computer Society Press, 1989. - Ghezzi, Mandrioli, Morascas and Pezze, A unified high-level Petri Net model for time critical system. IEEE Transactions on Software Ingeniering 17(2), 160-172. 1991. - Jackson, Michael, Software Requirement & Specifications, Addison Wesley, 1995. - Jacobson, Ivar, Booch, Grady, Rumbaugh, James, "El Proceso Unificado de Desarrollo de Software", Addison- Wesley, 2000. VIGENCIA DE ESTE PROGRAMA AÑO PROFESOR RESPONSABLE FIRMA 2012 MONTEJANO, Germán Antonio VISADO JEFE DEPARTAMENTO SECRETARIO ACADÉMICO DECANO