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.
Read full abstract