Este es un curso introductorio de ingeniería de software, que abarca los fundamentos teóricos y prácticos de conceptualización, planificación, análisis, diseño, codificación y pruebas de una aplicación de software. El curso está diseñado para estudiantes de tercer año de la carrera de Bachillerato en Computación e Informática, que lleven simultáneamente los cursos Bases de Datos y Proyecto Integrador de Ingeniería de Software y Bases de datos. En particular, este curso ofrece los conocimientos y habilidades esenciales para el curso Proyecto Integrador, y a su vez el proyecto de dicho curso sirve para consolidar y motivar estos conocimientos y habilidades al proveer un contexto de aplicación integrado. Se espera que una vez concluido este curso y el de Proyecto Integrador de Ingeniería de Software y Bases de datos, el estudiante tenga capacidad para desarrollar software siguiendo metodologías y prácticas modernas de ingeniería de software.
El objetivo general del curso es que los estudiantes apliquen métodos, técnicas, herramientas y estándares modernos de ingeniería de software para desarrollar aplicaciones de software de calidad, mediante estrategias de aprendizaje que integren lo teórico y lo práctico, incluyendo un fuerte componente de actividades de laboratorio.
Durante este curso el estudiante desarrollará habilidades para:
- Describir y distinguir los métodos, técnicas y herramientas de conceptualización y planificación, mediante su discusión y aplicación en casos prácticos, para seleccionar los más apropiados según el dominio del problema y el contexto.
- Describir y distinguir los métodos, técnicas y herramientas de extracción y análisis de requerimientos, mediante su discusión y aplicación en casos prácticos, para seleccionar los más apropiados según el dominio del problema y el contexto.
- Describir y distinguir los métodos, técnicas y herramientas de diseño de software, mediante la implementación de los mismos en casos prácticos.
- Sistematizar su experiencia como diseñador y desarrollador de software mediante el uso de plantillas construidas con base en estándares internacionales de documentación, técnicas, procedimientos y herramientas.
- Utilizar herramientas para modelar el software, administrar las versiones del software y los proyectos, mediante su aplicación en prácticas guiadas de laboratorio.
Objetivo específico | Eje temático | Desglose |
---|---|---|
1 | Introducción a la Ingeniería de Software | Definición de ingeniería de software, de proceso de software, de actividades genéricas y de soporte del software. |
1 | Modelos de proceso de software | Cascada, Incremental, Evolutivo, Proceso Unificado, Scrum, Extreme Programming, entre otros. |
2 | Requerimientos | Conceptualización de proyectos de software, técnicas de obtención de requerimientos y modelado de requerimientos. |
2 | Planificación de proyectos de software | Técnicas de planificación de proyectos de software, estimación del tamaño y el esfuerzo. |
3 | Análisis de software orientado a objetos | Técnicas de modelado y especificación del análisis de un sistema de información. |
3 y 4 | Diseño de software orientado a objetos | Técnicas de modelado y especificación del diseño de un sistema de información. |
5 | Técnicas y herramientas para asegurar la calidad del software | Uso de plantillas construidas con base en estándares internacionales, revisiones técnicas formales y técnicas básicas de pruebas. |
6 | Uso de herramientas CASE | Uso de herramientas para modelar sistemas de información, administrar versiones de software, administrar proyectos de software y de pruebas. |
Libro de texto recomendado:
- Pressman, R. (2010). Ingeniería de Software: un enfoque práctico. Séptima Edición, México, D. F. McGraw-Hill Interamericana. ISBN: 978-607-15-0314-5.
Otra bibliografía de apoyo:
- Braude E. Ingeniería de Software Orientado a Objetos: Una perspectiva orientada a objetos. Editorial Alfaomega. 2003. ISBN 970-15-0851-3.
- Bruegge Bernd. Ingeniería de Software Orientado a Objetos. Prentice-Hall, 2002. (Caps. 3, 4 y 5).
- Cohn, Mike. Agile Estimating and Planning 1st edition, Prentice-Hall, ISBN 978-0131479418
- Cohn, Mike. User Stories Applied: For Agile Software Development 1st edition, Addison-Wesley, ISBN 978-0321205681
- Dean Leffingwell. Agile Software Requirements. Agile Software Development Series. Alistair Cockburn and Jim Highsmith, series Editors.
- Fran, B., Marriott, Phil, Warzusen, Ch. (2008), CSQE PRIMER. 4 ed. @Quality Council of Indiana. 2008 Extraído el 25 de Julio del 2011 de http://www.qualitycouncil.com/samples/csqe_p.pdf Fourth Edition.
- Henrik Kniberg. SCRUM y XP desde las trincheras. InforQ Enterprise Software Development Series.
- Karl E. Wiegers. Software Requirements. Second Edition. Microsoft Press
- Larman, C. (1999) UML Y PATRONES. Introducción al análisis y diseño orientado a objetos. México: Prentice Hall Hispanoamerica, S. A.. Segunda Edición. Caps 5- 9
- Schwaber, K; Sutherland, J. The 2020 Scrum Guide™ (2020) https://scrumguides.org/scrum-guide.html
- Rubin, K. (2013) Essential Scrum. Addison-Wesley.
- Sommerville. I. (2011). “Ingeniería de Software”. Novena edición. Addison Wesley. Caps. 1-3.
- Stphen R. Scharch. Ingeniería de Software Clásica y Orientada a Objetos. Sexta Edición. 2006 Mc Graw Hill.
- Martin, R. C. (2009). Clean code: a handbook of agile software craftsmanship. Pearson Education.
- Martin, R. C. (2018). Clean architecture: a craftsman's guide to software structure and design. Prentice Hall.
- Freeman, E., Robson, E., Bates, B., & Sierra, K. (2008). Head first design patterns. " O'Reilly Media, Inc.".
Recursos estudiantiles
Para información sobre recursos estudiantiles disponibles en la UCR, incluyendo el Sistema de bibliotecas y la normativa universitaria vigente, favor visitar la página: https://www.ecci.ucr.ac.cr/vida-estudiantil/servicios-institucionales-para-estudiantes/guia-de-recursos-estudiantiles-de-la-ucr
Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.