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

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

ISSN: 2531-0607

Year of publication: 2023

Issue: 8

Pages: 89-96

Type: Article

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

Abstract

Teaching software architecture is a challenge. Theoretical concepts are often very abstract and architectural problems are only clearly visible in applications of a certain magnitude. The challenge is even greater when these concepts are taught in the early stages of the bachelor’s degree when the students’ knowledge of design and programming is still limited. To address this challenge, inspired by a proposal carried out at Delft University, we decided to adopt a novel approach: teaching software architecture by analysing, evaluating and documenting the architecture of existing projects hosted on the GitHub platform. To do so, it was necessary to adapt the original method, used in a master course, to the course under study, taught during the second year of the bachelor’s degree. To evaluate this approach we conducted a total of 258 student surveys in two consecutive years. The results of the study, supported by a robust statistical analysis of the data, demonstrate the suitability of this method for teaching software architecture in the first years of the bachelor’s degree.

Bibliographic References

  • 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.