Propósito: La capacidad de definir, evaluar e implementar arquitecturas de software es
una habilidad fundamental para los ingenieros de software. Sin embargo, enseñar Arquitecturas
de Software (AS) puede suponer un reto, requiere que los estudiantes participen en
proyectos de contexto real con altos grados de complejidad. El propósito de este documento
es presentar un catálogo de patrones de formación (reportados por la literatura y evaluados
por la industria) de arquitectura de software para estudiantes de pregrado, que orienten al
docente sobre el qué y el cómo enseñar, permitirán lograr significativamente el desarrollo de
las competencias más relevantes para la industria de software actual y futura, relacionadas
con la creación, evaluación y documentación de una arquitectura software, en potenciales
egresados de programas de ingeniería de sistemas y afines.
Métodos: La primera versión del catálogo fue extraído de las estrategias recurrentes a partir
de un mapeo sistemático de la literatura. Las competencias de referencia fueron establecidas
a través de grupos focales con profesores y profesionales de la industria. El catálogo fue
validado a través de dos estudios de caso exploratorios, un experimento controlado y un
estudio de caso confirmatorio.
Resultados: Como resultado tenemos un catálogo de siete patrones de formación en AS,
articulados bajo una metodología que permitiría a los docentes proponer y mejorar cursos
de AS que desarrollan competencias más cercanas a las necesidades de la industria.
Conclusión: Un curso de AS acorde a las necesidades de la industria es algo esencial en los
planes de estudio de programas de informática, ingeniería de sistemas y afines. Para diseñar
y ejecutar un curso de AS de alta calidad, proponemos un catálogo de patrones de formación
que permiten recrear los problemas y la forma de trabajo en el aula similares a los ambientes
utilizados por la industria, y por otro lado, organizar el conocimiento arquitectónico
para que las actividades de clase se puedan estructurar y facilitar el aprendizaje incremental.
Purpose: The ability to define, evaluate and implement software architectures is a fundamental
skill for software engineers. However, teaching Software Architectures (SA) can be
challenging, requiring students to participate in real context projects with high degrees of
complexity. The purpose of this paper is to present a catalog of training patterns (reported
by the literature and evaluated by the industry) of software architecture for undergraduate students to guide the teacher on what and how to teach AS. The purpose of this document
is to present a catalog of training patterns (reported by the literature and evaluated by the
industry) of software architecture for undergraduate students, that will guide the teacher
on what and how to teach, will allow to significantly achieve the development of the most
relevant competencies for the current and future software industry, related to the creation,
evaluation and documentation of a software architecture, in potential graduates of systems
engineering and related programs.
Methods: The first version of the catalog was extracted from the recurrent strategies based
on a systematic mapping of the literature. Benchmark competencies were established through
focus groups with teachers and industry professionals. The catalog was validated through
two exploratory case studies, a controlled experiment and a confirmatory case study.
Results: As a result, we have a catalog of seven AS training patterns articulated under
a methodology that would allow teachers to propose and improve AS courses that develop
competencies closer to industry needs.
Conclusion: An AS course according to the needs of the industry is essential in the curricula
of computer science, systems engineering and related programs. To design and execute a
high quality AS course, we propose a catalog of training patterns that allow to recreate the
problems and the way of working in the classroom similar to the environments used by the
industry, and on the other hand, to organize the architectural knowledge so that the class
activities can be structured and facilitate incremental learning.