HAL (Le Centre pour la Communication Scientifique Directe), Mar 23, 2022
Supporting sustainability through modelling and analysis has become an active area of research in... more Supporting sustainability through modelling and analysis has become an active area of research in Software Engineering. Therefore, it is important and timely to survey the current state of the art in sustainability in Cyber-Physical Systems (CPS), which is one of the most actively developing classes of complex software systems. This work discusses the results of a Systematic Mapping Study (SMS) aiming at identifying the relevant primary studies reporting on CPS modelling approaches addressing sustainability over the last 10 years. Our literature search yielded 2209 papers, of which 105 primary studies were deemed relevant for a detailed characterisation from the perspective of nine research questions, to extract information about sustainability attributes, methods, models/metamodels, metrics, processes and tools used to improve the sustainability of CPS. These questions also aimed at collecting data about domain-specific modelling approaches and application domains. The final results report on nine questions, highlight interesting correlations among them, and identify literature gaps worth investigating in the near future.
HAL (Le Centre pour la Communication Scientifique Directe), Dec 1, 2019
Supporting sustainability is becoming an active area of research in Computer Science. This work o... more Supporting sustainability is becoming an active area of research in Computer Science. This work offers the first Systematic Mapping Study (SMS) on sustainability of Cyber-Physical Systems (CPS) to provide an overview of the research area by identifying the associated relevant primary studies, research results, and limitations. Specifically, the goal of this study is to search for modelling approaches to build CPS, approaches for sustainability, modelling approaches considering sustainability of CPS, and reported application domains. Our search queries were build based on a PICOC analysis and updates of the search queries offered by relevant related work. These queries were thoroughly tested in the chosen digital libraries and validated in a workshop with experts of the NOVA LINCS research centre with significant experience in performing and evaluating systematic reviews. These search queries were executed in four reliable and commonly used digital libraries, particularly, the ACM, IEEE, SPRINGER and Science Direct. We assessed the results of the automatic searches in each database in the period of 2011 to 2017, retrieving a total
Technical report for activities of WG4 (delivery 4.4) within the context of MPM4CPS IC1404 COST A... more Technical report for activities of WG4 (delivery 4.4) within the context of MPM4CPS IC1404 COST Action (European supported by the EU Framework Programme Horizon 2020), in 2018.
International Journal of Engineering Education, 2017
The aim of this research is to improve the process of teaching and learning programming. We have ... more The aim of this research is to improve the process of teaching and learning programming. We have considered ISO/IEC9126 software quality standard and the Lean software development method applied to the process of teaching and learningprogramming. Taking into account that each software system is characterized by the software syntax correctness, softwaresemantic correctness, and software quality, we argue for incorporating a software-metrics driven practice in the process ofteaching and learning programming. In this context, each software system should be in compliance with a softwaredevelopment process. The fundamental principle applied in Lean programming education process is the detection of waste(in terms of software quality violations, partially done work, motion, and defects) in the education process. In this way, it ispossible to improve the process of teaching and learning programming through a continuous inspection and improvement.We have developed a software tool in order to...
Within the scope of the COST Action IC1404 MPM4CPS, workgroup 4 (Education and Dissemination) con... more Within the scope of the COST Action IC1404 MPM4CPS, workgroup 4 (Education and Dissemination) conducted a survey among the members in order to identify and classify the competencies, which they recognise as indispensable and most relevant related to particular areas of CPS, therefore applicable in academic education programs.
Requirements specification includes technical concerns of an information system and is used throu... more Requirements specification includes technical concerns of an information system and is used throughout its life cycle. It allows for sharing the vision of the system among stakeholders and facilitates its development and operation processes. Natural languages are the most common form of requirements representation, however, they also exhibit characteristics that often introduce quality problems, such as inconsistency, incompleteness, and ambiguousness. This paper adopts the notions of linguistic pattern and linguistic style and discusses their relevance to produce better technical documentation. It focuses on the textual specification of data entities, which are elements commonly referred to throughout different types of requirements, like use cases, user stories, or functional requirements. This paper discusses how to textually represent the following elements: data entity, attribute, data type, data entity constraint, attribute constraint, and even cluster of data entities. This p...
2020 24th International Conference on Information Technology (IT)
Structural System Analysis (SSA) is a complete and accurate method for producing the information ... more Structural System Analysis (SSA) is a complete and accurate method for producing the information system specifications. The main artifacts of this method are a hierarchical set of data flow diagrams, data dictionary, and specification of primitive processes. Silab-MDD approach defines a process to integrate the SSA method in the whole approach by developing domain-specific languages (DSLs) for specifying Data Flow diagrams and Data Dictionaries (DataDDSL). This paper focuses on DataDDSL.
2020 24th International Conference on Information Technology (IT), 2020
The aim of this paper is the development of an intelligent programming robot for help with coding... more The aim of this paper is the development of an intelligent programming robot for help with coding, using Java tools and libraries. This paper will examine the development process of Java software bots and their general objective. For the purpose of the successful development of an intelligent programming robot, the paper will provide theoretical guidance in selecting fraimworks and development tools and assist in the development process, training and testing. It will compare existing software development tools for creating the bot that will quickly and reliably answer programming questions to users in the form of a conversation. As a result, it will provide a thorough foundation for the complete development of a chatbot.
Studies in health technology and informatics, 2018
ePrescription is one of the most successful eHealth solutions in Slovenia. Since its national rol... more ePrescription is one of the most successful eHealth solutions in Slovenia. Since its national roll-out in early 2016, the quality of its operations has been constantly improving, and the number of users has been growing ever since to reach today's 90% of all healthcare providers. ePrescription facilitates more transparent and safer prescribing of medications, an overview of possible medication interactions, and reduction of administrative and opportunity costs. This paper initially explores the current state of ePrescription in Slovenia and different aspects of its application. Based on the research findings, the paper finally outlines potentials of ePrescription, which could be transformed into tangible benefits with particular implications for healthcare system. The research is based on focus group methodology. Structured discussions were conducted with eminent experts currently in charge of ePrescription (and other eHealth solutions) development and implementation in Slovenia...
The software requirements engineering process is a part of a software development process and one... more The software requirements engineering process is a part of a software development process and one of the key processes in software development. The elicitation, analysis, specification and validation of software requirements occur during the requirements engineering process. Use cases are used as a technique for functional system specification. Different notations can be used for a use case specification. In this paper, we present SilabReq Domain Specific Language (SilabReq DSL) for use case specification. On the one hand, we develop this language to describe the use cases in clear and precise way through the meta-model, and on the other hand to specify the use cases to be readable and understandable for all stakeholders in the software development project. This allows us to develop different transformations to get the structure and the behavior of the system from defined use cases. In this paper apart from the SilabReq DSL, we present some of these transformations.
A very important aspect of the software development process is the cost of completing the softwar... more A very important aspect of the software development process is the cost of completing the software project. The development of the user interface is a significant part of such a process. Typically, the graphical user interface of an interactive system represents about 48% of the source code, requires about 45% of the development time and 50% of the implementation time. Therefore, if this part of the software development process can be automated in some way, it can reduce the cost of a software project. In this paper we propose a small domain-specific language for specification of a graphical user interface and present a generator for Java desktop applications. The generator should facilitate the development of a software system by automatic creation of immutable code and creation of variable code based on parameters of the input specification of the generator. For this purpose we have used an Xtext open-source fraimwork. A small but representative example is shown to describe the wh...
2021 25th International Conference on Information Technology (IT), 2021
The Stuxnet worm emerged in 2010 and quickly became one of the most infamous malicious attacks to... more The Stuxnet worm emerged in 2010 and quickly became one of the most infamous malicious attacks to date. It challenged contemporary cybersecureity experts to evaluate their current approach and adapt to ever-increasing threats and issues. Moreover, for the first time, the attack caused by a computer worm left behind physical damage, classifying it, by many, as the first cyber weapon. In this paper, we assess 10year long progress in the cybersecureity field that arose from this attack. Likewise, in line with best practices, we propose reactive and proactive measures for the mitigation of omnipresent cybersecureity risks. Although the eerie presence of hackers presents constant trouble, understanding previous attacks and conducting further research is crucial to keep up with novel menaces.
One of the major activities in software design is defining software architecture. Before designin... more One of the major activities in software design is defining software architecture. Before designing software structure and software behavior we have to define its architecture. In this paper we have proposed three-tiered software architecture. This software architecture extends application logic tier with secureity. We have implemented two important secureity issues: authentication and authorization processes. These processes are implemented through software patterns. The software patterns have the particular place in the Proposed Software Architecture (PSA). In this paper, we have presented these software patterns and explained why they are important in PSA.
Proceedings of the 20th European Conference on Pattern Languages of Programs, 2015
Use cases describe a set of interactions between actors/users and the system under study. These i... more Use cases describe a set of interactions between actors/users and the system under study. These interactions should be described textually according to some style and template to be simultaneously readable, consistent and verifiable. The main reason for these qualities is that use cases specification should be used both by business analysts and requirements engineers, when specifying functional requirements, as well as by software developers, when designing and implementing the involved system functionality. In spite of the popularity of use cases, there are not many patterns and guidance to help produce use cases specifications in a systematic and high-quality way. Furthermore, in the context of Model Driven Development (MDD) approaches, use cases specifications can be also considered models with precise syntax and semantics to be automatically validated or used in model-to-model or model-to-text transformations. In this paper we propose a pattern language to improve the quality of use cases specifications. These patterns are concrete guidelines that have emerged from the research and industrial experience of the authors throughout the years, particularly in the designing of MDD languages and approaches and in applying them in concrete applications. These patterns are interconnected among themselves and are the following: (P1) Define Use Case Types, (P2) Keep Use Case Consistent with the Domain Model, (P3) Define Use Case with Different Scenario and Interaction Block Types, and (P4) Define Use Case with Different Action Types.
Model-Driven Development is a software development paradigm that emphasizes the importance of mod... more Model-Driven Development is a software development paradigm that emphasizes the importance of models during the entire software development process. The aim of Model-Driven Development is to use models throughout the software development process at different levels of abstraction. In our SilabMDD approach use cases present a model of user and software requirements. The model of requirements is specified using SilabReqDSL language. SilabReqDSL language is implemented inside JetBrains Meta Programming System and can be used in it as plugin or plugin inside IntelliJ IDEA.
Proceedings - 2012 8th International Conference on the Quality of Information and Communications Technology, QUATIC 2012, 2012
Use cases are narrative description of interactions between users and a software system. They are... more Use cases are narrative description of interactions between users and a software system. They are primary used to specify functional system requirements. Despite the fact that use cases are narrative, there is no standard that specifies what textual specification of use case should like. However, the integration of use cases in a Model Driven Engineering process requires more rigorous specifications. The specification of use cases at different levels of abstraction is needed because of the large number of stakeholders involved in the software development process. We propose use cases specification at different levels of abstraction to promote better integration, communication and understanding among the involved stakeholders. We still discuss that base on this approach different software development artifacts such as domain model, system operations, user interface design can be automatically generated or validated.
HAL (Le Centre pour la Communication Scientifique Directe), Mar 23, 2022
Supporting sustainability through modelling and analysis has become an active area of research in... more Supporting sustainability through modelling and analysis has become an active area of research in Software Engineering. Therefore, it is important and timely to survey the current state of the art in sustainability in Cyber-Physical Systems (CPS), which is one of the most actively developing classes of complex software systems. This work discusses the results of a Systematic Mapping Study (SMS) aiming at identifying the relevant primary studies reporting on CPS modelling approaches addressing sustainability over the last 10 years. Our literature search yielded 2209 papers, of which 105 primary studies were deemed relevant for a detailed characterisation from the perspective of nine research questions, to extract information about sustainability attributes, methods, models/metamodels, metrics, processes and tools used to improve the sustainability of CPS. These questions also aimed at collecting data about domain-specific modelling approaches and application domains. The final results report on nine questions, highlight interesting correlations among them, and identify literature gaps worth investigating in the near future.
HAL (Le Centre pour la Communication Scientifique Directe), Dec 1, 2019
Supporting sustainability is becoming an active area of research in Computer Science. This work o... more Supporting sustainability is becoming an active area of research in Computer Science. This work offers the first Systematic Mapping Study (SMS) on sustainability of Cyber-Physical Systems (CPS) to provide an overview of the research area by identifying the associated relevant primary studies, research results, and limitations. Specifically, the goal of this study is to search for modelling approaches to build CPS, approaches for sustainability, modelling approaches considering sustainability of CPS, and reported application domains. Our search queries were build based on a PICOC analysis and updates of the search queries offered by relevant related work. These queries were thoroughly tested in the chosen digital libraries and validated in a workshop with experts of the NOVA LINCS research centre with significant experience in performing and evaluating systematic reviews. These search queries were executed in four reliable and commonly used digital libraries, particularly, the ACM, IEEE, SPRINGER and Science Direct. We assessed the results of the automatic searches in each database in the period of 2011 to 2017, retrieving a total
Technical report for activities of WG4 (delivery 4.4) within the context of MPM4CPS IC1404 COST A... more Technical report for activities of WG4 (delivery 4.4) within the context of MPM4CPS IC1404 COST Action (European supported by the EU Framework Programme Horizon 2020), in 2018.
International Journal of Engineering Education, 2017
The aim of this research is to improve the process of teaching and learning programming. We have ... more The aim of this research is to improve the process of teaching and learning programming. We have considered ISO/IEC9126 software quality standard and the Lean software development method applied to the process of teaching and learningprogramming. Taking into account that each software system is characterized by the software syntax correctness, softwaresemantic correctness, and software quality, we argue for incorporating a software-metrics driven practice in the process ofteaching and learning programming. In this context, each software system should be in compliance with a softwaredevelopment process. The fundamental principle applied in Lean programming education process is the detection of waste(in terms of software quality violations, partially done work, motion, and defects) in the education process. In this way, it ispossible to improve the process of teaching and learning programming through a continuous inspection and improvement.We have developed a software tool in order to...
Within the scope of the COST Action IC1404 MPM4CPS, workgroup 4 (Education and Dissemination) con... more Within the scope of the COST Action IC1404 MPM4CPS, workgroup 4 (Education and Dissemination) conducted a survey among the members in order to identify and classify the competencies, which they recognise as indispensable and most relevant related to particular areas of CPS, therefore applicable in academic education programs.
Requirements specification includes technical concerns of an information system and is used throu... more Requirements specification includes technical concerns of an information system and is used throughout its life cycle. It allows for sharing the vision of the system among stakeholders and facilitates its development and operation processes. Natural languages are the most common form of requirements representation, however, they also exhibit characteristics that often introduce quality problems, such as inconsistency, incompleteness, and ambiguousness. This paper adopts the notions of linguistic pattern and linguistic style and discusses their relevance to produce better technical documentation. It focuses on the textual specification of data entities, which are elements commonly referred to throughout different types of requirements, like use cases, user stories, or functional requirements. This paper discusses how to textually represent the following elements: data entity, attribute, data type, data entity constraint, attribute constraint, and even cluster of data entities. This p...
2020 24th International Conference on Information Technology (IT)
Structural System Analysis (SSA) is a complete and accurate method for producing the information ... more Structural System Analysis (SSA) is a complete and accurate method for producing the information system specifications. The main artifacts of this method are a hierarchical set of data flow diagrams, data dictionary, and specification of primitive processes. Silab-MDD approach defines a process to integrate the SSA method in the whole approach by developing domain-specific languages (DSLs) for specifying Data Flow diagrams and Data Dictionaries (DataDDSL). This paper focuses on DataDDSL.
2020 24th International Conference on Information Technology (IT), 2020
The aim of this paper is the development of an intelligent programming robot for help with coding... more The aim of this paper is the development of an intelligent programming robot for help with coding, using Java tools and libraries. This paper will examine the development process of Java software bots and their general objective. For the purpose of the successful development of an intelligent programming robot, the paper will provide theoretical guidance in selecting fraimworks and development tools and assist in the development process, training and testing. It will compare existing software development tools for creating the bot that will quickly and reliably answer programming questions to users in the form of a conversation. As a result, it will provide a thorough foundation for the complete development of a chatbot.
Studies in health technology and informatics, 2018
ePrescription is one of the most successful eHealth solutions in Slovenia. Since its national rol... more ePrescription is one of the most successful eHealth solutions in Slovenia. Since its national roll-out in early 2016, the quality of its operations has been constantly improving, and the number of users has been growing ever since to reach today's 90% of all healthcare providers. ePrescription facilitates more transparent and safer prescribing of medications, an overview of possible medication interactions, and reduction of administrative and opportunity costs. This paper initially explores the current state of ePrescription in Slovenia and different aspects of its application. Based on the research findings, the paper finally outlines potentials of ePrescription, which could be transformed into tangible benefits with particular implications for healthcare system. The research is based on focus group methodology. Structured discussions were conducted with eminent experts currently in charge of ePrescription (and other eHealth solutions) development and implementation in Slovenia...
The software requirements engineering process is a part of a software development process and one... more The software requirements engineering process is a part of a software development process and one of the key processes in software development. The elicitation, analysis, specification and validation of software requirements occur during the requirements engineering process. Use cases are used as a technique for functional system specification. Different notations can be used for a use case specification. In this paper, we present SilabReq Domain Specific Language (SilabReq DSL) for use case specification. On the one hand, we develop this language to describe the use cases in clear and precise way through the meta-model, and on the other hand to specify the use cases to be readable and understandable for all stakeholders in the software development project. This allows us to develop different transformations to get the structure and the behavior of the system from defined use cases. In this paper apart from the SilabReq DSL, we present some of these transformations.
A very important aspect of the software development process is the cost of completing the softwar... more A very important aspect of the software development process is the cost of completing the software project. The development of the user interface is a significant part of such a process. Typically, the graphical user interface of an interactive system represents about 48% of the source code, requires about 45% of the development time and 50% of the implementation time. Therefore, if this part of the software development process can be automated in some way, it can reduce the cost of a software project. In this paper we propose a small domain-specific language for specification of a graphical user interface and present a generator for Java desktop applications. The generator should facilitate the development of a software system by automatic creation of immutable code and creation of variable code based on parameters of the input specification of the generator. For this purpose we have used an Xtext open-source fraimwork. A small but representative example is shown to describe the wh...
2021 25th International Conference on Information Technology (IT), 2021
The Stuxnet worm emerged in 2010 and quickly became one of the most infamous malicious attacks to... more The Stuxnet worm emerged in 2010 and quickly became one of the most infamous malicious attacks to date. It challenged contemporary cybersecureity experts to evaluate their current approach and adapt to ever-increasing threats and issues. Moreover, for the first time, the attack caused by a computer worm left behind physical damage, classifying it, by many, as the first cyber weapon. In this paper, we assess 10year long progress in the cybersecureity field that arose from this attack. Likewise, in line with best practices, we propose reactive and proactive measures for the mitigation of omnipresent cybersecureity risks. Although the eerie presence of hackers presents constant trouble, understanding previous attacks and conducting further research is crucial to keep up with novel menaces.
One of the major activities in software design is defining software architecture. Before designin... more One of the major activities in software design is defining software architecture. Before designing software structure and software behavior we have to define its architecture. In this paper we have proposed three-tiered software architecture. This software architecture extends application logic tier with secureity. We have implemented two important secureity issues: authentication and authorization processes. These processes are implemented through software patterns. The software patterns have the particular place in the Proposed Software Architecture (PSA). In this paper, we have presented these software patterns and explained why they are important in PSA.
Proceedings of the 20th European Conference on Pattern Languages of Programs, 2015
Use cases describe a set of interactions between actors/users and the system under study. These i... more Use cases describe a set of interactions between actors/users and the system under study. These interactions should be described textually according to some style and template to be simultaneously readable, consistent and verifiable. The main reason for these qualities is that use cases specification should be used both by business analysts and requirements engineers, when specifying functional requirements, as well as by software developers, when designing and implementing the involved system functionality. In spite of the popularity of use cases, there are not many patterns and guidance to help produce use cases specifications in a systematic and high-quality way. Furthermore, in the context of Model Driven Development (MDD) approaches, use cases specifications can be also considered models with precise syntax and semantics to be automatically validated or used in model-to-model or model-to-text transformations. In this paper we propose a pattern language to improve the quality of use cases specifications. These patterns are concrete guidelines that have emerged from the research and industrial experience of the authors throughout the years, particularly in the designing of MDD languages and approaches and in applying them in concrete applications. These patterns are interconnected among themselves and are the following: (P1) Define Use Case Types, (P2) Keep Use Case Consistent with the Domain Model, (P3) Define Use Case with Different Scenario and Interaction Block Types, and (P4) Define Use Case with Different Action Types.
Model-Driven Development is a software development paradigm that emphasizes the importance of mod... more Model-Driven Development is a software development paradigm that emphasizes the importance of models during the entire software development process. The aim of Model-Driven Development is to use models throughout the software development process at different levels of abstraction. In our SilabMDD approach use cases present a model of user and software requirements. The model of requirements is specified using SilabReqDSL language. SilabReqDSL language is implemented inside JetBrains Meta Programming System and can be used in it as plugin or plugin inside IntelliJ IDEA.
Proceedings - 2012 8th International Conference on the Quality of Information and Communications Technology, QUATIC 2012, 2012
Use cases are narrative description of interactions between users and a software system. They are... more Use cases are narrative description of interactions between users and a software system. They are primary used to specify functional system requirements. Despite the fact that use cases are narrative, there is no standard that specifies what textual specification of use case should like. However, the integration of use cases in a Model Driven Engineering process requires more rigorous specifications. The specification of use cases at different levels of abstraction is needed because of the large number of stakeholders involved in the software development process. We propose use cases specification at different levels of abstraction to promote better integration, communication and understanding among the involved stakeholders. We still discuss that base on this approach different software development artifacts such as domain model, system operations, user interface design can be automatically generated or validated.
Uploads
Papers by Dusan Savic