Modeling software processes from different domains using SPEM and BPMN notations: An experience report of teaching software processes
DOI:
https://doi.org/10.5753/jserd.2023.3186Keywords:
Software Process, Systems Domain, EducationAbstract
In a current application development scenario in different environments, technologies and contexts, such as IoT, Blockchain, Machine Learning and Cloud Computing, there is a need for particular solutions for domain-specific software development processes. The proper definition of software processes requires the understanding for the involved teams and organization’s particularities and specialized technical knowledge in Software Engineering. Although it is an essential part of Software Engineering, many university curricula do not dedicate as much effort to teaching software processes, focusing more on the basic principles of Software Engineering, such as requirements, architecture and programming languages. Another important aspect of software processes is modeling. The modeling of a software process provides a basis for managing, automating and supporting the software process improvement. In this context, teaching software process modeling becomes challenging, mainly due to the great emphasis on theory and few practices. This work presents an experience report teaching the definition and modeling of software processes in different domains. In the discipline of software processes, we applied a practice for defining and modeling processes in various application domains, such as: IoT, cloud, mobile, critical systems, self-adaptive systems, machine learning, blockchain and games. The processes were modeled in the Software Systems Process Engineering Metamodel (SPEM) and Business Process Model and Notation (BPMN) notations based on references from the literature for each domain. We evaluated the process modeling practice with the SPEM and BPMN in two classes of the software processes discipline, and we had discussions about the use of the two notations applied to the different domains. In general, students reported good experiences in defining processes, highlighting the importance of practical modeling applications for professional life. As the main results of the study in teaching process modeling, we have that: (i) students accepted HEFLO tool better than EPF Composer tool; (ii) most students are not aware of specific domains and that anticipating the study of these domains in the discipline is a good strategy; and, (iii) the students also highlighted the need for more support for the two notation tools.
Downloads
References
Abdelaziz, A. A., El-Tahir, Y., and Osman, R. (2015). Adaptive software development for developing safety critical software. In 2015 International Conference on Computing, Control, Networking, Electronics and Embedded Systems Engineering (ICCNEEE), pages 41–46.
Aleem, S., Capretz, L. F., and Ahmed, F. (2016). Game development software engineering process life cycle: a systematic review. Journal of Software Engineering Research and Development, 4(1):6.
Alencar, I. R., Coutinho, E. F., Moreira, L. O., and Bezerra, C. I. M. (2020). A tool for software ecosystem models: An analysis on their implications in education. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering, SBES ’20, page 405–414, New York, NY, USA. Association for Computing Machinery.
Amershi, S., Begel, A., Bird, C., DeLine, R., Gall, H., Kamar, E., Nagappan, N., Nushi, B., and Zimmermann, T. (2019). Software engineering for machine learning: A case study. In 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP), pages 291–300.
Andersson, J., Baresi, L., Bencomo, N., de Lemos, R., Gorla, A., Inverardi, P., and Vogel, T. (2013). Software Engineering Processes for Self-Adaptive Systems, pages 51–75. Springer Berlin Heidelberg, Berlin, Heidelberg.
Bezerra, C. I. M. and Coutinho, E. F. (2022). Teaching software processes from different application domains. In Canedo, E. D., Viana, D., Garcia, V., Bezerra, C. I. M., de Sousa Santos, I., Gadelha, B., Machado, I., Soares, S., Kulesza, U., de França, B., Conte, T., Maldonado, J. C., Reinehr, S. S., Malucelli, A., Albuquerque, A. B., Santos, G., Barcellos, M. P., dos Santos, R. P., Lima, C., Monteiro, D., Damian, A., and Rocha, L., editors, Proceedings of the XXI Brazilian Symposium on Software Quality, SBQS 2022, Curitiba, Brazil, November 7-10, 2022, pages 29:1–29:10. ACM.
Biesialska, K., Franch, X., and Muntés-Mulero, V. (2021). Big data analytics in agile software development: A systematic mapping study. Information and Software Technology, 132:106448.
Calderón, A., Trinidad, M., Ruiz, M., and O’Connor, R. V. (2018). Teaching software processes and standards: a review of serious games approaches. In International Conference on Software Process Improvement and Capability Determination, pages 154–166. Springer.
Calderón, A., Trinidad, M., Ruiz, M., and O’Connor, R. V. (2019). An experience of use a serious game for teaching software process improvement. In European Conference on Software Process Improvement, pages 249–259. Springer.
Calderón, A., Ruiz, M., and O’Connor, R. V. (2018). A multivocal literature review on serious games for software process standards education. Computer Standards & Interfaces, 57:36 – 48.
Carrozza, G., Pietrantuono, R., and Russo, S. (2018). A software quality framework for large-scale mission-critical systems engineering. Information and Software Technology, 102:100–116.
Castellanos Ardila, J. P., Gallina, B., and Ul Muram, F. (2022). Compliance checking of software processes: A systematic literature review. Journal of Software: Evolution and Process, 34(5):e2440.
Chakraborty, P., Shahriyar, R., Iqbal, A., and Bosu, A. (2018). Understanding the software development practices of blockchain projects: A survey. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’18, New York, NY, USA. Association for Computing Machinery.
Chaves, R. O., von Wangenheim, C. G., Furtado, J. C. C., Oliveira, S. R. B., Santos, A., and Favero, E. L. (2015). Experimental evaluation of a serious game for teaching software process modeling. IEEE Transactions on Education, 58(4):289–296.
Cheng, B. H., Sawyer, P., Bencomo, N., and Whittle, J. (2009). A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty. In International Conference on Model Driven Engineering Languages and Systems, pages 468–483. Springer.
Cito, J., Leitner, P., Fritz, T., and Gall, H. C. (2015). The making of cloud applications: An empirical study on software development for the cloud. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, pages 393–403.
Corbin, J. and Strauss, A. (2014). Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory. SAGE Publications, 4 edition.
Coutinho, E. F., Viana, D., and dos Santos, R. P. (2017). An exploratory study on the need for modeling software ecosystems: The case of solar seco. In 9th International Workshop on Modelling in Software Engineering (MISE), MISE ’17, pages 47–53, Piscataway, NJ, USA. IEEE Press.
de la Vara, J. L., Marín, B., Ayora, C., and Giachetti, G. (2020). An empirical evaluation of the use of models to improve the understanding of safety compliance needs. Information and Software Technology, 126:106351.
De Lemos, R., Giese, H., Müller, H. A., Shaw, M., Andersson, J., Litoiu, M., Schmerl, B., Tamura, G., Villegas, N. M., Vogel, T., et al. (2013). Software engineering for self-adaptive systems: A second research roadmap. In Software Engineering for Self-Adaptive Systems II, pages 1–32. Springer.
De Sena Quaresma, J. A. and Oliveira, S. R. B. (2021). Teaching and learning strategies for software process subject. In 2021 IEEE Frontiers in Education Conference (FIE), pages 1–7.
Enríquez, F., Troyano, J. A., and Romero-Moreno, L. M. (2019). Using a business process management system to model dynamic teaching methods. The Journal of Strategic Information Systems, 28(3):275–291.
Fernandes, E., Oliveira, J., and Figueiredo, E. (2016). Investigating how features of online learning support software process education. In 2016 IEEE Frontiers in Education Conference (FIE), pages 1–8.
Ferreira, T., Viana, D., Fernandes, J., and Santos, R. (2018). Identifying emerging topics and difficulties in software engineering education in brazil. In Proceedings of the XXXII Brazilian Symposium on Software Engineering, SBES ’18.
Fontão, A., Santos, R., Dias-Neto, A., et al. (2016). Msecodev: Application development process in mobile software ecosystems. In Proceedings of the international conference on software engineering and knowledge engineering (SEKE2016), pages 317–322.
Fredericks, E. M., DeVries, B., and Cheng, B. H. (2014). Towards run-time adaptation of test cases for self-adaptive systems in the face of uncertainty. In Proceedings of the 9th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, pages 17–26.
García-Borgoñon, L., Barcelona, M. A., García-García, J. A., Alba, M., and Escalona, M. J. (2014). Software process modeling languages: A systematic literature review. Information and Software Technology, 56(2):103–116.
Giray, G. (2021). A software engineering perspective on engineering machine learning systems: State of the art and challenges. Journal of Systems and Software, 180:111031.
Hasić, F., Serral, E., and Snoeck, M. (2020). Comparing bpmn to bpmn + dmn for iot process modelling: A casebased inquiry. In Proceedings of the 35th Annual ACM Symposium on Applied Computing, SAC ’20, page 53–60, New York, NY, USA. Association for Computing Machinery.
Jabangwe, R., Edison, H., and Duc, A. N. (2018). Software engineering process models for mobile app development: A systematic literature review. Journal of Systems and Software, 145:98–111.
Johansen, J., Colomo-Palacios, R., and O’Connor, R. V. (2016). Towards a manifesto for software process education, training and professionalism. In International Conference on Software Process Improvement and Capability Determination, pages 98–105. Springer.
Kemell, K.-K., Ravaska, V., Nguyen-Duc, A., and Abrahamsson, P. (2020a). Software startup practices–software development in startups through the lens of the essence theory of software engineering. In Product-Focused Software Process Improvement: 21st International Conference, PROFES 2020, Turin, Italy, November 25–27, 2020, Proceedings 21, pages 402–418. Springer.
Kemell, K.-K., Risku, J., Strandjord, K. E., Nguyen-Duc, A., Wang, X., and Abrahamsson, P. (2020b). Internal software startups – a multiple case study on practices, methods, and success factors. In 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 326–333.
Koscianski, A. and dos Santos Soares, M. (2007). Qualidade de Software-2ª Edição: Aprenda as metodologias e técnicas mais modernas para o desenvolvimento de software. Novatec Editora.
Kratzke, N. and Quint, P.-C. (2017). Understanding cloudnative applications after 10 years of cloud computing-a systematic mapping study. Journal of Systems and Software, 126:1–16.
Kuhrmann, M., Fernández, D. M., and Münch, J. (2013). Teaching software process modeling. In Proceedings of the 2013 International Conference on Software Engineering, ICSE ’13, page 1138–1147. IEEE Press.
Laigner, R., Kalinowski, M., Lifschitz, S., Salvador Monteiro, R., and de Oliveira, D. (2018). A systematic mapping of software engineering approaches to develop big data systems. In 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 446–453.
Larrucea, X., Combelles, A., Favaro, J., and Taneja, K. (2017). Software engineering for the internet of things. IEEE Software, 34(1):24–28.
Liu, H., Eksmo, S., Risberg, J., and Hebig, R. (2020b). Emerging and changing tasks in the development process for machine learning systems. In Proceedings of the International Conference on Software and System Processes, ICSSP ’20, page 125–134, New York, NY, USA. Association for Computing Machinery.
Marin, J., Hurtado, J., Bastarrica, M., and Silvestre, L. (2023). Tailoring hybrid software processes in a medium-size software company. In Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, SAC ’23, page 1042– 1050, New York, NY, USA. Association for Computing Machinery.
Mascardi, V., Weyns, D., Ricci, A., Earle, C. B., Casals, A., Challenger, M., Chopra, A., Ciortea, A., Dennis, L. A., Díaz, Á. F., et al. (2019). Engineering multi-agent systems: State of affairs and the road ahead. ACM SIGSOFT Software Engineering Notes, 44(1):18–28.
Medoh, C. and Telukdarie, A. (2017). Business process modelling tool selection: A review. In 2017 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM), pages 524–528.
Motta, R. C., de Oliveira, K. M., and Travassos, G. H. (2023). An evidence-based roadmap for iot software systems engineering. Journal of Systems and Software, 201:111680.
Moura, V. and Santos, G. (2018). Procsoft: A board game to teach software processes based on iso/iec 29110 standard. In Proceedings of the 17th Brazilian Symposium on Software Quality, SBQS, page 363–372, New York, NY, USA. Association for Computing Machinery.
Moyón, F., Soares, R., Pinto-Albuquerque, M., Mendez, D., and Beckers, K. (2020). Integration of security standards in devops pipelines: An industry case study. In Product-Focused Software Process Improvement: 21st International Conference, PROFES 2020, Turin, Italy, November 25–27, 2020, Proceedings 21, pages 434–452. Springer.
Nascimento, E. d. S., Ahmed, I., Oliveira, E., Palheta, M. P., Steinmacher, I., and Conte, T. (2019). Understanding development process of machine learning systems: Challenges and solutions. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), pages 1–6.
OMG (2008). Software & systems process engineering meta-model specification - version 2.0. Technical report, Object Management Group (OMG). [link]
Omg, O., Parida, R., and Mahapatra, S. (2011). Business process model and notation (bpmn) version 2.0. Object Management Group, 1(4):18.
Osborne O’Hagan, A., Coleman, G., and O’Connor, R. V. (2014). Software development processes for games: A systematic literature review. In Barafort, B., O’Connor, R. V., Poth, A., and Messnarz, R., editors, Systems, Software and Services Process Improvement, pages 182–193, Berlin, Heidelberg. Springer Berlin Heidelberg.
Oshana, R. and Kraeling, M. (2019). Software engineering for embedded systems: Methods, practical techniques, and applications. Newnes.
Patel, P. and Cassou, D. (2015). Enabling high-level application development for the internet of things. Journal of Systems and Software, 103:62–84.
Pazin, M., Dias, J., OliveiraJr, E., Aleixo, F. A., Kulesza, U., and Teixeira, E. N. (2022). Variability representation in software process with the smartyspem approach. In UMLBased Software Product Line Engineering with SMarty, pages 369–391. Springer.
Pillat, R. M. and Oliveira, T. C. (2016). A representation structure for software process tailoring based on bpmn high-level operations. In Proceedings of the 31st Annual ACM Symposium on Applied Computing, SAC ’16, page 1576–1579, New York, NY, USA. Association for Computing Machinery.
Pinheiro, F. V. S., Coutinho, E. F., Santos, I., and Bezerra, C. I. M. (2022). A tool for supporting the teaching and modeling of software ecosystems using ssn notation. Journal on Interactive Systems, 13(1):192–204.
Pizzini, A., Bortolo Vieira, R., Deda Gomes, R., Santos, G., Malucelli, A., and Reinehr, S. (2021). Software quality practices in growing startups: A qualitative study. In XX Brazilian Symposium on Software Quality, pages 1–10.
Singer, R. (2019). In Shape Up: Stop Running in Circles and Ship Work that Matters. 37signals LLC.
Sommerville, I. (2011). Engenharia de software. Pearson Brasil.
Tiwari, S. and Singh Rathore, S. (2019). Teaching software process models to software engineering students: An exploratory study. In 2019 26th Asia-Pacific Software Engineering Conference (APSEC), pages 308–315.
Üstünel, H. (2020). A project based innovative approach to an embedded systems course laboratory in software engineering education. Computer applications in engineering education, 28(1):160–166.
Vacca, A., Di Sorbo, A., Visaggio, C. A., and Canfora, G. (2021). A systematic literature review of blockchain and smart contract development: Techniques, tools, and open challenges. Journal of Systems and Software, 174:110891.
Valente, M. T. (2020). In Engenharia de Software Moderna. Independent publisher.
von Rosing, M., White, S., Cummins, F., and de Man, H. (2015). Business process model and notation—bpmn. In von Rosing, M., Scheer, A.-W., and von Scheel, H., editors, The Complete Business Process Handbook, pages 433–457. Morgan Kaufmann, Boston.
Weyns, D., Mascardi, V., and Ricci, A. (2019). Engineering multi-agent systems. Lecture notes in computer science, 11375.
Yilmaz, M., Tasel, S., Tuzun, E., Gulec, U., O’Connor, R. V., and Clarke, P. M. (2019). Applying blockchain to improve the integrity of the software development process. In Walker, A., O’Connor, R. V., and Messnarz, R., editors, Systems, Software and Services Process Improvement, pages 260–271, Cham. Springer International Publishing.
Younas, M., Jawawi, D. N. A., Mahmood, A. K., Ahmad, M. N., Sarwar, M. U., and Idris, M. Y. (2020). Agile software development using cloud computing: A case study. IEEE Access, 8:4475–4484.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2023 Carla Bezerra, Emanuel Coutinho
This work is licensed under a Creative Commons Attribution 4.0 International License.