Aprendiendo arquitectura software a partir de proyectos de código abierto en GitHub

  1. Ana B. Sánchez 1
  2. José Antonio Parejo 1
  3. Bedilia Estrada-Torres 1
  4. Alfonso E. Márquez-Chamorro 1
  5. Adela del-Río-Ortega 1
  6. Sergio Segura 1
  1. 1 Universidad de Sevilla
    info

    Universidad de Sevilla

    Sevilla, España

    ROR https://ror.org/03yxnpp24

Revista:
Actas de las Jornadas sobre la Enseñanza Universitaria de la Informática (JENUI)

ISSN: 2531-0607

Año de publicación: 2023

Número: 8

Páginas: 89-96

Tipo: Artículo

Otras publicaciones en: Actas de las Jornadas sobre la Enseñanza Universitaria de la Informática (JENUI)

Resumen

La enseñanza de arquitectura del software supone todo un reto. Los conceptos teóricos son a menudo muy abstractos y los problemas arquitectónicos sólo son claramente visibles en aplicaciones de cierta envergadura. El reto es aún mayor cuando estos conceptos se enseñan en las primeras etapas del grado cuando los conocimientos de diseño y programación del alumnado aún son limitados. Para abordar este reto, inspirados por una propuesta llevada a cabo en la Delft University, decidimos adoptar un enfoque novedoso: enseñar arquitectura del software a través del análisis, evaluación y documentación de la arquitectura de proyectos existentes alojados en la plataforma GitHub. Para ello, fue necesario adaptar el método original, empleado a nivel de máster, a la asignatura objeto del estudio impartida durante el segundo curso de grado. Para evaluar este enfoque realizamos un total de 258 encuestas a estudiantes de dos cursos consecutivos. Los resultados del estudio, respaldados por un sólido análisis estadístico de los datos, demuestran la idoneidad de este método para la enseñanza de arquitectura del software en los primeros cursos de grado.

Referencias bibliográficas

  • Len Bass, Paul Clements, y Rick Kazman. Software Architecture In Practice. Addison-Wesley Professional. 3rd edition, 01 2003.
  • Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, y Judith Stafford. Documenting Software Architectures: Views and Beyond. Addison-Wesley. 2ª edition, 2010.
  • Cristobal Costa-Soria, Manuel Llavador, y Maria del Carmen Penades. An approach for teaching software engineering through reverse engineering. En EAEEIE Conf., pp. 1–6, 06 2009.
  • Cristóbal Costa-Soria y Jennifer Pérez. Teaching software architectures and aspect-oriented software development using open-source projects. En SIGCSE-ITiCSE, volumen 41, p. 385, 2009.
  • Mohsen Dorodchi, Erfan Al-Hossami, Mohammad Nagahisarchoghaei, Rohit Diwadkar, y Aileen Benedict. Teaching an undergraduate software engineering course using active learning and open source projects. En , pp. 1–5, 10 2019.
  • Patricia Lago y Hans Vliet. Teaching a course on software architecture. En CSEET Conf., pp. 35 – 42, 05 2005.
  • John Mcgregor, Felix Bachmann, Len Bass, Philip Bianco, y Mark Klein. Using an architecture reasoning tool to teach software architecture. En CSEET Conf., pp. 275–282, 07 2007.
  • Tomi Männistö, Juha Savolainen, y Varvana Myllärniemi. Teaching software architecture design. En WICSA Conf., pp. 117 – 124, 03 2008.
  • Naomi B. Robbins y Richard M. Heiberger. Plotting likert and other rating scales. En 2011 joint statistical meeting, volumen 1. American Statistical Association, 2011.
  • Claudia Rodrigues. Visar3d: an approach to software architecture teaching based on virtual and augmented reality. En ICSE, pp. 351–352, 2010.
  • Nick Rozanski y Eóin Woods. Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional, 2005.
  • Chandan R. Rupakheti y Stephen V. Chenoweth. Teaching software architecture to undergraduate students: An experience report. En IEEE International Conference on Software Engineering, volumen 2, pp. 445–454, 2015.
  • Javier Troya, José A Parejo, Sergio Segura, Antonio Gámez-Díaz, Alfonso E Márquez-Chamorro, y Adela del Río-Ortega. Flipping laboratory sessions in a computer science course: An experience report. IEEE Transactions on Education, 64(2):139–146, 2020.
  • Juan Urrego y Dario Correal. Archinotes: A tool for assisting software architecture courses. En CSEE&T Conf., pp. 80–88, 05 2013.
  • Arie Van Deursen, Maurício Aniche, Joop Aué, Rogier Slag, Michael De Jong, Alex Nederlof, y Eric Bouwers. A collaborative approach to teaching software architecture. En ACM SIGCSE Technical Symposium, p. 591–596, 2017.
  • Alf Wang. Extensive evaluation of using a game project in a software architecture course. TOCE, 11:5, 02 2011.
  • Gero Wedemann. Scrum as a method of teaching software architecture. En ECSEE Conf., p. 108–112, 2018.