Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Training software architects suiting software industry needs: A literature review

Published: 16 October 2023 Publication History

Abstract

The ability to define, evaluate, and implement software architectures is a fundamental skill for software engineers. However, teaching software architecture can be challenging as it requires students to be involved in real-context projects with high degrees of complexity. This involves making trade-off decisions among several quality attributes. Furthermore, the academic perception of software architecture differs from the industrial viewpoint. To address this issue, a study was conducted to identify and analyze the strategies, challenges, and course experiences used for teaching software architectures. The study analyzed 56 articles reporting on teaching experiences focused specifically on software architectures or focused on software engineering in general but discussing software architecture. The main contributions of this work include identifying strategies used in educating software architecture students aligned with the needs of the software industry. These strategies include short design projects, large development projects, and projects with actual clients. Additionally, the study compared curriculum contents in software development and architecture courses and identified recurring topics such as architecture patterns, quality attributes, and architectural views. This study also recognizes the set of skills that students of software architecture should develop during training, such as leadership and negotiation. The challenges in software architecture training were discussed, such as instructors’ lack of experience in actual projects, the abstract and fuzzy nature of software architectures, and the difficulty of involving clients and industry experts. Evaluation methods commonly used in training software architects, such as surveys, pre-test/post-test, and quality metrics on architectural artifacts, were identified and described. Overall, this study guides researchers and educators in improving their software architecture courses by incorporating strategies reported by the literature review. These strategies can bring architecture courses closer to the needs and conditions of the software industry.

References

[1]
Abad, Z.S.H., Bano, M., & Zowghi, D. (2019). How Much Authenticity Can Be Achieved in Software Engineering Project Based Courses?. In Proceedings of the 41st International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET ’19), 208–219. IEEE Press, Montreal Quebec Canada.
[2]
Abdool, A., & Pooransingh. A. (2014). An industry-mentored undergraduate software engineering project. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings, 1–4. IEEE, Madrid, Spain.
[3]
Angelov, S., & de Beer, P. (2017). Designing and Applying an Approach to Software Architecting in Agile Projects in Education. Journal of Systems and Software, 127(C), 78–90. 0164-1212,
[4]
Backert, M., Blum, T., Kreuter, R., Paulisch, F. & Zimmerer, P. (2020). Software Curriculum @ Siemens - The Architecture of a Training Program for Architects. In 2020 IEEE 32nd Conference on Software Engineering Education and Training (CSEE T), 1–6. IEEE, Munich, Germany.
[5]
Bass, L., Clements, P., & Kazman, R.(2012). Software architecture in practice, third Edition. Pearson Education, Massachusetts, USA. 978-0321815736, https://www.amazon.com/Software-Architecture-Practice-3rd-Engineering/dp/0321815734
[6]
Brito, M.S., Silva, F.G., von Flach, C., Chavez, G., Nascimento, D.C., & Bittencourt, R.A. (2018). FLOSS in Software Engineering Education: An Update of a Systematic Mapping Study. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES ’18), 250–259. Association for Computing Machinery, New York, NY, USA. 9781450365031.
[7]
Capilla, R., Zimmermann, O., Carrillo, C. & Astudillo. H. (2020). Teaching Students Software Architecture Decision Making. In A. Jansen, I. Malavolta H. Muccini, I. Ozkaya, & O. Zimmermann (Eds.), Software Architecture, 231–246. Springer International Publishing, Cham. 978-3-030-58923-3
[8]
Castelluccia, D., Aldo, B., Visaggio, G., Aldo, B., Castelluccia, D., & Visaggio, G. (2013). Teaching evidence-based software engineering: learning by a collaborative mapping study of open source software. In ACM SIGSOFT Software Engineering Notes, vol. 38, 1–4. ACM, Madrid, Spain. 0163-5948,
[9]
Chatley, R., & Field, T. (2017). Lean learning - Applying lean techniques to improve software engineering education. In Proceedings - 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering and Education Track, ICSE-SEET 2017, 117–126. IEEE Press, Buenos Aires. 9781538626719
[10]
Chauhan, M.A., Probst, C.W., & Babar, M.A. (2019). Agile Approaches for Teaching and Learning Software Architecture Design Processes and Methods. Springer Singapore, Singapore, 325–351. 978-981-13-2751-3.
[11]
Ciancarini, P., Russo, S., & Sabbatino, V. (2016). A Course on Software Architecture for Defense Applications. In P. Ciancarini, A. Sillitti, G. Succi, & A. Messina (Eds.), Proceedings of 4th International Conference in Software Engineering for Defence Applications, 321–330. Springer International Publishing, Cham. 978-3-319-27896-4
[12]
Clarke, P.J., Pava, J., Wu, Y., & King, T.M. (2011). Collaborative Web-Based Learning of Testing Tools in SE Courses. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education. (SIGCSE ’11), 147–152. Association for Computing Machinery, New York, NY, USA. 9781450305006.
[13]
Collins, G.J. (2020). Integrating Industry Seminars within a Software Engineering Module to Enhance Student Motivation. In 2020 43rd International Convention on Information, Communication and Electronic Technology (MIPRO), 1497–1502. IEEE, Opatija, Croatia.
[14]
da Cunha, J.A.O.G., Marques, G.A., Lemos, W.L., Câmara, U.D., & Vasconcellos, F.J.S. (2018). Software Engineering Education in Brazil: A Mapping Study. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES ’18), 348–356. Association for Computing Machinery, New York, NY, USA.9781450365031
[15]
de Beer, P., & Angelov, S. (2015). Fontys ICT, Partners in Education Program: Intensifying Collaborations Between Higher Education and Software Industry. In Proceedings of the 2015 European Conference on Software Architecture Workshops (ECSAW ’15), 4. Association for Computing Machinery, New York, NY, USA. 9781450333931.
[16]
De Boer, R.C., & Van Vliet, H. (2009). On the similarity between requirements and architecture. Journal of Systems and Software, 82(3), 544–550. 0164-1212.
[17]
Desai, P., Joshi, G. H., & Vijayalaskhmi, M. (2012). A novel approach to carrying out mini project in Computer Science Engineering. In 2012 IEEE International Conference on Engineering Education: Innovative Practices and Future Trends (AICERA), 1–4. IEEE, Kottayam, Kerala, India.
[18]
Dobrica, L., & Niemela, E. (2002). A survey on software architecture analysis methods. IEEE Transactions on Software Engineering, 28(7), 638–653. 2326-3881.
[19]
Fowler, M. (2003). Who Needs an Architect? IEEE Software, 20(5), 11–13. 0740-7459.
[20]
Galster, M., & Angelov, S. (2016). What makes teaching software architecture difficult?. In Proceedings - International Conference on Software Engineering, 356–359. Association for Computing MachineryNew YorkNYUnited States, Austin Texas. 9781450341615. 02705257.
[21]
Garousi V, Giray G, Tüzün E, Catal C, and Felderer M Closing the gap between software engineering education and industrial needs IEEE Software 2020 37 68-77
[22]
Giraldo, F.D., Ochoa, S.F., Herrera, M., Neyem, A., Arciniegas, J.L., Clunie, C., Zapata, S. & Lizano, F. (2011). Applying a distributed CSCL activity for teaching software architecture. In International Conference on Information Society (i-Society 2011), 208–214. IEEE, London, United Kingdom.
[23]
Groeneveld, W., Vennekens, J., & Aerts, K. (2019). Software engineering education beyond the technical: A systematic literature review. arXiv:1910.09865
[24]
Harrison NB and Avgeriou P How do architecture patterns and tactics interact? A model and annotation Journal of Systems and Software 2010 83 10 1735-1758
[25]
Hjelsvold R and Mishra D Exploring and Expanding GSE Education with Open Source Software Development ACM Transactions on Computing Education 2019 19 2 23
[26]
Hu, Z., Song, Y., & Gehringer, E.F. (2018). Open-Source Software in Class: Students’ Common Mistakes. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET ’18), 40–48. Association for Computing Machinery, New York, NY, USA. 9781450356602.
[27]
Jansen, A., & Bosch, J. (2005). Software Architecture as a Set of Architectural Design Decisions. In 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05), 109–120. IEEE, Pittsburgh, PA, USA.
[28]
Jarzabek, S. (2013). Teaching advanced software design in team-based project course. In 2013 26th International Conference on Software Engineering Education and Training (CSEE T), 31–40. IEEE, San Francisco, CA, USA.
[29]
Ji, Z., & Song, J. (2015). Improved Teaching Model for Software Architecture Course. In Proceedings of the 2015 International Conference on Education, Management, Information and Medicine, 333–338. Atlantis Press, No City. 978-94-62520-68-4. 2352-5428.
[30]
Johns-Boast, L., & Flint, S. (2013). Simulating industry: An innovative software engineering capstone design course. In 2013 IEEE Frontiers in Education Conference (FIE), 1782–1788. IEEE, Oklahoma City, OK, USA.
[31]
Joy, J., & Renumol, V. G. (2018). Activity oriented teaching strategy for software engineering course: An experience report. Journal of Information Technology Education: Innovations in Practice, 17 181–200. 2165316X.
[32]
Khakurel, J., & Porras, J. (2020). The Effect of Real-World Capstone Project in an Acquisition of Soft Skills among Software Engineering Students. In 2020 IEEE 32nd Conference on Software Engineering Education and Training (CSEE T), 1–9. IEEE, Munich, Germany.
[33]
Kiwelekar, A.W. (2021). A Software Architecture Teacher’s Dilemmas. 10 pages. arXiv:2101.09434
[34]
Lee, J., Kotonya, G., Whittle, J., & Bull, C. (2015). Software Design Studio: A Practical Example. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 2, 389–397. IEEE, Florence, Italy.
[35]
Li, W. (2019). Teaching Reform and Practice of Software Architecture Design Course under the Background of Engineering Education. In Proceedings of the 2019 International Conference on Advanced Education, Management and Humanities (AEMH 2019), vol. 352, 17–21. Atlantis Press, Wuhan, China.
[36]
Li, Z. (2020). Using Public and Free Platform-as-a-Service (PaaS) based Lightweight Projects for Software Architecture Education. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Software Engineering Education and Training, 1–11. Association for Computing Machinery, Seoul South Korea.
[37]
Lieh, O.E., & Irawan, Y. (2018). Exploring Experiential Learning Model and Risk Management Process for an Undergraduate Software Architecture Course. In 2018 IEEE Frontiers in Education Conference (FIE), 1–9. IEEE, San Jose, CA, USA.
[38]
Lieh, O.E., & Irawan, Y. 2019. Teaching adult learners on software architecture design skills. In Proceedings - Frontiers in Education Conference, FIE, Vol. 2018-Octob, 1–9. IEEE, Uppsala, Sweden. 9781538611739. 15394565.
[39]
Lieh Ouh, E., Gan, Kok Siew, B., & Irawan, Y. (2020). Did our Course Design on Software Architecture meet our Student’s Learning Expectations?. In,. (2020). IEEE Frontiers in Education Conference (FIE), 1–9. IEEE, Uppsala, Sweden.
[40]
Lopes, A., Steinmacher, I., & Conte, T. (2019). UML Acceptance: Analyzing the Students’ Perception of UML Diagrams. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering (SBES 2019), 264–272. Association for Computing Machinery, New York, NY, USA. 9781450376518.
[41]
Luukkainen, M., Vihavainen, A., & Vikberg, T. (2012). Three Years of Design-Based Research to Reform a Software Engineering Curriculum. In Proceedings of the 13th Annual Conference on Information Technology Education (SIGITE ’12), 209–214. Association for Computing Machinery, New York, NY, USA. 9781450314640.
[42]
Matthies, C., Teusner, R., & Hesse, G. (2018). Beyond Surveys: Analyzing Software Development Artifacts to Assess Teaching Efforts. In 2018 IEEE Frontiers in Education Conference (FIE), 1–9. IEEE, San Jose, CA, USA.
[43]
May, K., Yang, B., Zhou, J., Lin, Y Zhang, K., & Yu, Z. (2018). Outcome-based school-enterprise cooperative software engineering training. In ACM International Conference Proceeding Series, 15–20. Association for Computing MachineryNew YorkNYUnited States, Shanghai China. 9781450364157.
[44]
Meneely, A., & Lucidi, S. 2013. Vulnerability of the Day: Concrete Demonstrations for Software Engineering Undergraduates. In Proceedings of the 2013 International Conference on Software Engineering (ICSE ’13), 1154–1157. IEEE Press, San Francisco CA USA. 9781467330763
[45]
Mohan, S., Chenoweth, S., & Bohner, S. (2012). Towards a Better Capstone Experience. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE ’12), 111–116. Association for Computing Machinery, New York, NY, USA. 9781450310987.
[46]
Oliveira, B.R.N., Garcés, L., Lyra, K.T., Santos, D.S., Isotani, S. & Nakagawa, E.Y. (2022). An Overview of Software Architecture Education. In Anais do XXV Congresso Ibero-Americano em Engenharia de Software, 76–90. SBC
[47]
Paez, N.M. (2017). A Flipped Classroom Experience Teaching Software Engineering. In 2017 IEEE/ACM 1st International Workshop on Software Engineering Curricula for Millennials (SECM), 16–20. IEEE, Buenos Aires, Argentina.
[48]
Palacin-Silva, M., Khakurel, J., Happonen, A., Hynninen, T., & Porras, J. (2017). Infusing Design Thinking into a Software Engineering Capstone Course. In 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE T), 212–221. IEEE, Savannah, Georgia, USA.
[49]
Péraire, C. (2019). Dual-Track Agile in Software Engineering Education. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET), 38–49. IEEE, Montreal, QC, Canada.
[50]
Petersen, K., Feldt, R., Mujtaba, S., & Mattsson, M. (2008). Systematic Mapping Studies in Software Engineering. In Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering (EASE’08), 68–77. BCS Learning & Development Ltd., Swindon, GBR.
[51]
Pillutla, R.S., & Alladi, A. (2013). Methodology to bridge the gaps between engineering education and the industry requirements. In Eurocon 2013, 926–932. IEEE, Zagreb, Croatia.
[52]
Pinto, G., Ferreira, C., Souza, C., Steinmacher, I., & Meirelles, P. (2019). Training software engineers using open-source software: The students’ perspective. In Proceedings - 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering Education and Training, ICSE-SEET 2019, 147–157. IEEE, Montreal Quebec Canada. 9781728110004.
[53]
Portela, C., Vasconcelos, A., Oliveira, S., & Souza, M. (2017). The Use of Industry Training Strategies in a Software Engineering Course: An Experience Report. In 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE T), 29–36. IEEE, Savannah, Georgia.
[54]
Pratheesh N and Devi T Assessment of student’s learning style and engagement in traditional based software engineering education 2013 International Conference on Intelligent Interactive Systems and Assistive Technologies 2013 Coimbatore, India IEEE 25-31
[55]
Qadir, M.M., & Usman, M. (2011). Software Engineering Curriculum: A systematic mapping study. In 2011 Malaysian Conference in Software Engineering, 269–274.
[56]
Richards, M., & Ford, N. (2020). Fundamentals of Software Architecture: An Engineering Approach 1st Edicion. O’Reilly Media, Inc., Canada. 383 pages. 978-1492043454 https://www.amazon.com/Fundamentals-Software-Architecture-Comprehensive-Characteristics/dp/1492043451
[57]
Rodrigues, C., & Werner, C. (2009). Software architecture teaching: A systematic review. In 9th IFIP World Conference on Computers in Education (WCCE), 1–10. Bento Gonçalves.
[58]
Ronchieri, E., & Canaparo. M. (2019). Metrics for software reliability: A systematic mapping study. Journal of Integrated Design and Process Science, 22(2), 5–25. 10920617.
[59]
Rupakheti, C.R., & Chenoweth, S.V. (2015). Teaching Software Architecture to Undergraduate Students: An Experience Report. In Proceedings - International Conference on Software Engineering, vol. 2, 445–454. IEEE Press, Florence Italy. 9781479919345. 02705257.
[60]
Sabry AE Decision model for software architectural tactics selection based on quality attributes requirements Procedia Computer Science 2015 65 422-431
[61]
Schmidt, D.C., & McCormick, Z. (2013). Producing and delivering a MOOC on pattern-oriented software architecture for concurrent and networked software. In SPLASH 2013 - Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, and Applications: Software for Humanity, 167–176. ACM, Indianapolis Indiana USA. 9781450319959.
[62]
Silva, F.G., dos Santos, P.E.D., & Chavez, C.v.F.G. (2019). FLOSS in Software Engineering Education: Supporting the Instructor in the Quest for Providing Real Experience for Students. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering, 234–243. ACM, Salvador Brazil. 9781450376518.
[63]
Silva, W., Gadelha, B., Steinmacher, I., & Conte, T. (2018). What Are the Differences between Group and Individual Modeling When Learning UML?. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES ’18), 308–317. Association for Computing Machinery, New York, NY, USA. 9781450365031
[64]
Souza, F.C., Santos, A., Andrade, S., Durelli, R., Durelli, V., & Oliveira, R. (2018). Automating Search Strings for Secondary Studies. In S. Latifi (Ed.), Information Technology - New Generations, 839–848. Springer International Publishing, Cham. 978-3-319-54978-1
[65]
Sun L, Lv T-Q, and Pan L Reinforcing practice teaching of Software Engineering for fostering the creative talent 2011 International Conference on Consumer Electronics, Communications and Networks (CECNet) 2011 Xianning, China IEEE 1548-1551
[66]
Thevathayan, C., & Hamilton, M. (2017). Imparting Software Engineering Design Skills. In Proceedings of the Nineteenth Australasian Computing Education Conference (ACE ’17), 95–102. Association for Computing Machinery, New York, NY, USA. 9781450348232
[67]
Van Deursen, A., Aniche, M., Aué, J., Slag, R., De Jong, M., Nederlof, A., & Bouwers, E. (2017). A Collaborative approach to teaching software architecture. In Proceedings of the Conference on Integrating Technology into Computer Science Education, ITiCSE, 591–596. ACM, Seattle Washington USA. 9781450346986
[68]
Wang AI Extensive Evaluation of Using a Game Project in a Software Architecture Course ACM Transactions on Computing Education (TOCE) 2011 11 1 28
[69]
Ward, A., Gbadebo, A., & Baruah, B. (2015). Using job advertisements to inform curricula design for the key global technical challenges. In 2015 International Conference on Information Technology Based Higher Education and Training (ITHET), 1–6. IEEE, Antalya, Turkey.
[70]
Weerawarana, S.M., Perera, A.S., & Nanayakkara, V. 2012. Promoting creativity, innovation and engineering excellence. In Proceedings of IEEE International Conference on Teaching, Assessment, and Learning for Engineering (TALE) 2012, T1C–12–T1C–17. IEEE, Wuhan, China.
[71]
Wei, B., Li, Y., Deng, L., & Visalli, N. (2020). Teaching Distributed Software Architecture by Building an Industrial Level E-Commerce Application, vol. 845. Springer International Publishing, Cham, 43–54. 978-3-030-24344-9 18609503
[72]
Wendt, K.D., Reily, K., & Heimdahl, M.P.E. (2016). First Steps towards Exporting Education: Software Engineering Education Delivered Online to Professionals. In 2016 IEEE 29th International Conference on Software Engineering Education and Training (CSEET), 241–245. IEEE, Dallas, TX, USA.
[73]
Zhang, L., Li, Y., & Ge, N.(2020). Exploration on theoretical and practical projects of software architecture course. In 15th International Conference on Computer Science and Education, ICCSE 2020, 391–395. IEEE, Delft, Netherlands. 9781728172675
[74]
Şerban, C., Niculescu, V., & Vescan, A. (2020). Attaining competences in software quality oriented design based on cyclic learning. In 2020 IEEE Frontiers in Education Conference (FIE), 1–9. IEEE, Uppsala, Sweden.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Education and Information Technologies
Education and Information Technologies  Volume 29, Issue 9
Jun 2024
1306 pages

Publisher

Kluwer Academic Publishers

United States

Publication History

Published: 16 October 2023
Accepted: 16 August 2023
Received: 15 November 2022

Author Tags

  1. Software architecture
  2. Training
  3. Systematic mapping
  4. Industry

Qualifiers

  • Research-article

Funding Sources

  • University of Cauca

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media