Birger Møller-pedersen - Academia.edu (original) (raw)
Papers by Birger Møller-pedersen
This paper presents an approach for automatically generating a testing oracle for train stations.... more This paper presents an approach for automatically generating a testing oracle for train stations. Based on a model of a train station and a formal definition of the behavior of the station, Alloy is used to generate all positive traces from a given situation. By specifying the precondition (test input), a simulation of the station model gives all legal train
ABSTRACT This paper presents a generic approach for automating the augmentation of product lines ... more ABSTRACT This paper presents a generic approach for automating the augmentation of product lines using model comparison and variability modeling techniques. Product lines are subject to frequent augmentation to include more products. Our approach aims to reduce manual effort involved in this process by automatically suggesting a tentative augmented product line model, which can serve as a baseline for the final product line. The Common Variability Language (CVL), a generic variability modeling language, is used to specify product lines in this approach. The approach applies CVL Compare, a generic approach for automating the synthesis of a CVL-based product line from a set of existing product models. The approach is illustrated with an example from a train control product line.
We show how the effort needed to verify a transformed base model can be reduced by analyzing the ... more We show how the effort needed to verify a transformed base model can be reduced by analyzing the definition of the modification. The Common Variability Language (CVL) is a generic language for modeling variability, where a CVL model describes the increment from one base model to another (transformed) base model. Assuming that a property of the base model has been
Lecture Notes in Computer Science, 2006
Compared to UML 1.x, UML 2.x has improved the mechanisms for describing the architecture of syste... more Compared to UML 1.x, UML 2.x has improved the mechanisms for describing the architecture of systems. We show how to make UML 2.x describe configurations, not only in terms of setting values of system properties but also in terms of rearranging elements of the architecture. We also argue that the instance model of UML 2.x can be replaced by our notion of configurations and that this may imply a generalization of the notions of snapshot and constructor.
Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
Object-oriented programming has been around for more than 50 years and is now the most dominant s... more Object-oriented programming has been around for more than 50 years and is now the most dominant style of programming. In recent years there has been an increasing criticism of object-oriented programming. Some people argue that the mainstream object-oriented languages do not capture the intentions of object-orientation as intended by its founding fathers. There are indeed issues with objectorientation as practiced by mainstream. In this essay, we identify a number of issues that we think are problematic. We argue that the primary reason for these issues is that reuse is considered the main advantage of objectorientation at the expense of modeling. We argue that modeling should be the main focus, that programming is modeling, and we describe a number of principles to follow when practicing object-oriented modeling. CCS Concepts: • Software and its engineering → Software notations and tools → General programming languages → Language types → Object oriented languages.
Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings
The Model-Driven Architecture (MDA) uses a metadata hierarchy with several layers that are placed... more The Model-Driven Architecture (MDA) uses a metadata hierarchy with several layers that are placed on top of each other. The traditional view is that the layers provide abstractions related to models in languages defined by meta-models. Over the years, it has been difficult to define a consistent understanding of the layers. In this paper, we propose such a consistent understanding by clarifying the relations between the different elements in the hierarchy. This is done based on the Scandinavian approach to modelling that distinguishes between systems and system descriptions. Systems can be physical, digital, or even mental, while descriptions can be programs, language descriptions, specifications, and diagrams. We relate descriptions and systems by explaining where semantics of objects originate and how they apply in the hierarchy.
-This paper presents three possible optimizations of Alloy models, including how and when to impl... more -This paper presents three possible optimizations of Alloy models, including how and when to implement these optimizations. Alloy is a formal light-weight language for performing incremental and automatic analysis. Analysis is performed within a user-defined scope, which limits the number of model elements that are considered. When this scope increases, the number of possible combinations of model elements increases exponentially. Thus the analysis time escalates rapidly caused by this state-space explosion. Implementing the optimizations presented in this paper will decrease the analysis time, and thus make analysis suitable for larger models. We give concrete examples showing the decrease in analyzation effort and time given these optimizations. Oppdragsgiver: Research Council of Norwa
In order to provide for reuse of methods independent of and across different class/subclass hiera... more In order to provide for reuse of methods independent of and across different class/subclass hierarchies, the notion of trait has recently been proposed. A trait is a set of methods that a class may have in addition to a superclass and in addition to properties defined for the class: the class will get the methods of the trait as if they were defined in the class. Traits were in the first place introduced for Squeak/Smalltalk, and recently there have been some efforts introducing traits in typed languages like Java and C#. This paper describes a prototype implementation of traits for Java with a trait syntax that is more intuitive than ordinary trait syntax. As part of this work a brand new idea emerged: while it is common to let traits have interfaces (with the obvious implication that a class that gets this trait will also implement these interfaces), the paper introduces the opposite facility: that an interface may have traits. It is shown that this has interesting possibilities, ...
Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, 2015
Most modelling languages support full state machine modelling, including especially composite sta... more Most modelling languages support full state machine modelling, including especially composite states. Existing approaches to programming with states (state design patterns) either represent composite states by means of inheritance between state classes, or do not support composite states, and instead use inheritance for specialization of extensible state machines. In this paper, we present 1) a state design pattern using delegation to support composite states and inheritance together with virtual classes to support extensible state machines, and 2) a framework, implemented in Java, which also supports history and entry/exit actions. Together, these form the basis for developing support for state machines in a combined modelling and programming language.
2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), 2014
In model-driven engineering, models are considered first-class entities. Model-driven engineering... more In model-driven engineering, models are considered first-class entities. Model-driven engineering has been around for over a decade. Still, there has not been much work on how to type models or metamodels, which is important to realise true model-driven software development. In this paper, we discuss how a metamodel can be typed by means of an enclosing class whose state can be utilised by tools such as editors and interpreters. This allows using established object-oriented mechanisms on the metamodel level and supports specialisation of metamodels.
Modelling to Program, 2021
In the development of computer-based systems, modelling is often advocated in addition to program... more In the development of computer-based systems, modelling is often advocated in addition to programming, in that it helps in reflecting the application domain and that it makes the design and experiment activities of development more efficient. However, there is disagreement about what models are and how they can be used in software systems development. In this paper, we present the Scandinavian approach to modelling, which makes a clear distinction between models and model descriptions. This paper explains the connections between models, descriptions, systems, and executions. Combining the Scandinavian approach with the Kiel notion of model, we establish that both descriptions and executions are closely connected instruments with different roles. The paper argues that (program) executions are the models of dynamic systems, not their descriptions in terms of diagrams and text. So in a general sense programming is about writing descriptions for systems. In particular the paper clarifies when programming is also modelling.
Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development, 2021
In this paper, we present research on CoPI4P (Community of Practice & Interest for Purpose) commu... more In this paper, we present research on CoPI4P (Community of Practice & Interest for Purpose) communities that consist of knowledge and creative workers in domains such as education, environmentalism, inter-disciplinary research, engaged art, and practice F2V (face-to-virtual) processes, i.e. processes that consist of both face-toface and virtual (online) activities. Standards and methods for modeling business processes have successfully solved various crucial problems, such as providing boundary objects (or a common language) between business analysts, domain experts, process performers and business solutions developers. Performers can execute business processes with standards that support the execution of such processes. However, for CoPI4P communities, BPM standards 1) require additional domain specialization and 2) are either too imperative, or fail to provide enough guidance. This paper identifies these challenges and provides partial solutions applicable to modeling and supporting CoPI4P communities and the corresponding F2V business processes. In addition, results of focus groups interviews and surveys are provided that shed light, notably, on the way CoPI4P communities have been impacted by COVID-19 and how they have coped with digital disruptions to their working models. Our contribution to business processes management lies in researching and identifying the peculiarities of such communities and their workflows, followed by interventions in the BPM, and particularly the BPMN, domain. We then propose a toolset of BPMN extensions required to match the observed F2V workflows and thus to digitalize CoPI4P business models. In this context, we introduce the notion of sub-process palettes as a means to reduce the rigidity, and introduce personalization, of processes.
Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, 2016
Modelling and Programming are often used together in system development. However, typically there... more Modelling and Programming are often used together in system development. However, typically there is a large difference between the handling of modelling parts and the handling of programming parts. This leads to the fact that the transition between the two is not easy, and important information is lost as well as extra information has to be provided when combining modelling and programming. This paper shows how modelling and programming could work together in system development.
Programming languages provide users with a rich palette of advanced mechanisms. Languages for met... more Programming languages provide users with a rich palette of advanced mechanisms. Languages for metamodelling, on the other hand, usually provide simple mechanisms for making class models, i.e. classes with relations like specialisation, composition and associations. A metamodel defines the abstract syntax (and to some degree semantics) of Domain Specific Languages (DSLs), and with the increased interest in making more and more complex DSLs there is a need for advanced mechanisms for metamodelling. This paper investigates what can be achieved by applying advanced language mechanisms to metamodelling, and how such mechanisms may increase the capabilities of DSL design.
models . Emphasis on abstract models and descriptions: Abstract descriptions leave out implementa... more models . Emphasis on abstract models and descriptions: Abstract descriptions leave out implementation specific details and let the developers focus on functionality. Domain Descriptions System Family descriptions Instance Descriptions Figure 1: IM activities, descriptions and languages Analysis Domain Analysis Requirements analysis Design Application design Framework design Architecture design Implementation Instantiation Configuration Building Testing Object Models Property Models Object Models Property Models Concrete system Specifications Implementation Instance configuration MSC, OMT/UML MSC, OMT/UML MSC, SDL SDL Design Models Introduction SISU Integrated Methodology - at a glance SISU report L-2001-7 SISU Modified: 1996-11-18 SISU 6 Property models . Focus on (external) properties: Objects are the building material from which systems and components are constructed. Property descriptions are used at an early stage of development to express the properties required from a sys...
A domain may be represented either by a Domain Specific Language (DSL) or by a framework. While p... more A domain may be represented either by a Domain Specific Language (DSL) or by a framework. While programs made in a DSL may be subject to static-semantic analysis and thereby ensured to be in accordance with the constraints of the domain, programs made on the basis of a corresponding framework cannot be analyzed with the same simplicity. Constraints of a domain are identified during domain analysis, and they are independent of whether a DSL or a framework is constructed. The reason that static-semantic analysis is harder for frameworks is that frameworks are implemented in general purpose implementation languages. The paper illustrates why Java is unsuited to support some static-semantic analysis for frameworks in Java, and it identifies which features a framework implementation language should have in order to support static-semantic analysis: An individual static constraint has an associated canonical form; therefore the implementation language must be able to implement this canonical form accurately, while the framework remains easy to use, in order to support static-semantic analysis.
Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '83, 1983
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2011
Lecture Notes in Electrical Engineering, 2011
This paper presents an approach for automatically generating a testing oracle for train stations.... more This paper presents an approach for automatically generating a testing oracle for train stations. Based on a model of a train station and a formal definition of the behavior of the station, Alloy is used to generate all positive traces from a given situation. By specifying the precondition (test input), a simulation of the station model gives all legal train
ABSTRACT This paper presents a generic approach for automating the augmentation of product lines ... more ABSTRACT This paper presents a generic approach for automating the augmentation of product lines using model comparison and variability modeling techniques. Product lines are subject to frequent augmentation to include more products. Our approach aims to reduce manual effort involved in this process by automatically suggesting a tentative augmented product line model, which can serve as a baseline for the final product line. The Common Variability Language (CVL), a generic variability modeling language, is used to specify product lines in this approach. The approach applies CVL Compare, a generic approach for automating the synthesis of a CVL-based product line from a set of existing product models. The approach is illustrated with an example from a train control product line.
We show how the effort needed to verify a transformed base model can be reduced by analyzing the ... more We show how the effort needed to verify a transformed base model can be reduced by analyzing the definition of the modification. The Common Variability Language (CVL) is a generic language for modeling variability, where a CVL model describes the increment from one base model to another (transformed) base model. Assuming that a property of the base model has been
Lecture Notes in Computer Science, 2006
Compared to UML 1.x, UML 2.x has improved the mechanisms for describing the architecture of syste... more Compared to UML 1.x, UML 2.x has improved the mechanisms for describing the architecture of systems. We show how to make UML 2.x describe configurations, not only in terms of setting values of system properties but also in terms of rearranging elements of the architecture. We also argue that the instance model of UML 2.x can be replaced by our notion of configurations and that this may imply a generalization of the notions of snapshot and constructor.
Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software
Object-oriented programming has been around for more than 50 years and is now the most dominant s... more Object-oriented programming has been around for more than 50 years and is now the most dominant style of programming. In recent years there has been an increasing criticism of object-oriented programming. Some people argue that the mainstream object-oriented languages do not capture the intentions of object-orientation as intended by its founding fathers. There are indeed issues with objectorientation as practiced by mainstream. In this essay, we identify a number of issues that we think are problematic. We argue that the primary reason for these issues is that reuse is considered the main advantage of objectorientation at the expense of modeling. We argue that modeling should be the main focus, that programming is modeling, and we describe a number of principles to follow when practicing object-oriented modeling. CCS Concepts: • Software and its engineering → Software notations and tools → General programming languages → Language types → Object oriented languages.
Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings
The Model-Driven Architecture (MDA) uses a metadata hierarchy with several layers that are placed... more The Model-Driven Architecture (MDA) uses a metadata hierarchy with several layers that are placed on top of each other. The traditional view is that the layers provide abstractions related to models in languages defined by meta-models. Over the years, it has been difficult to define a consistent understanding of the layers. In this paper, we propose such a consistent understanding by clarifying the relations between the different elements in the hierarchy. This is done based on the Scandinavian approach to modelling that distinguishes between systems and system descriptions. Systems can be physical, digital, or even mental, while descriptions can be programs, language descriptions, specifications, and diagrams. We relate descriptions and systems by explaining where semantics of objects originate and how they apply in the hierarchy.
-This paper presents three possible optimizations of Alloy models, including how and when to impl... more -This paper presents three possible optimizations of Alloy models, including how and when to implement these optimizations. Alloy is a formal light-weight language for performing incremental and automatic analysis. Analysis is performed within a user-defined scope, which limits the number of model elements that are considered. When this scope increases, the number of possible combinations of model elements increases exponentially. Thus the analysis time escalates rapidly caused by this state-space explosion. Implementing the optimizations presented in this paper will decrease the analysis time, and thus make analysis suitable for larger models. We give concrete examples showing the decrease in analyzation effort and time given these optimizations. Oppdragsgiver: Research Council of Norwa
In order to provide for reuse of methods independent of and across different class/subclass hiera... more In order to provide for reuse of methods independent of and across different class/subclass hierarchies, the notion of trait has recently been proposed. A trait is a set of methods that a class may have in addition to a superclass and in addition to properties defined for the class: the class will get the methods of the trait as if they were defined in the class. Traits were in the first place introduced for Squeak/Smalltalk, and recently there have been some efforts introducing traits in typed languages like Java and C#. This paper describes a prototype implementation of traits for Java with a trait syntax that is more intuitive than ordinary trait syntax. As part of this work a brand new idea emerged: while it is common to let traits have interfaces (with the obvious implication that a class that gets this trait will also implement these interfaces), the paper introduces the opposite facility: that an interface may have traits. It is shown that this has interesting possibilities, ...
Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, 2015
Most modelling languages support full state machine modelling, including especially composite sta... more Most modelling languages support full state machine modelling, including especially composite states. Existing approaches to programming with states (state design patterns) either represent composite states by means of inheritance between state classes, or do not support composite states, and instead use inheritance for specialization of extensible state machines. In this paper, we present 1) a state design pattern using delegation to support composite states and inheritance together with virtual classes to support extensible state machines, and 2) a framework, implemented in Java, which also supports history and entry/exit actions. Together, these form the basis for developing support for state machines in a combined modelling and programming language.
2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), 2014
In model-driven engineering, models are considered first-class entities. Model-driven engineering... more In model-driven engineering, models are considered first-class entities. Model-driven engineering has been around for over a decade. Still, there has not been much work on how to type models or metamodels, which is important to realise true model-driven software development. In this paper, we discuss how a metamodel can be typed by means of an enclosing class whose state can be utilised by tools such as editors and interpreters. This allows using established object-oriented mechanisms on the metamodel level and supports specialisation of metamodels.
Modelling to Program, 2021
In the development of computer-based systems, modelling is often advocated in addition to program... more In the development of computer-based systems, modelling is often advocated in addition to programming, in that it helps in reflecting the application domain and that it makes the design and experiment activities of development more efficient. However, there is disagreement about what models are and how they can be used in software systems development. In this paper, we present the Scandinavian approach to modelling, which makes a clear distinction between models and model descriptions. This paper explains the connections between models, descriptions, systems, and executions. Combining the Scandinavian approach with the Kiel notion of model, we establish that both descriptions and executions are closely connected instruments with different roles. The paper argues that (program) executions are the models of dynamic systems, not their descriptions in terms of diagrams and text. So in a general sense programming is about writing descriptions for systems. In particular the paper clarifies when programming is also modelling.
Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development, 2021
In this paper, we present research on CoPI4P (Community of Practice & Interest for Purpose) commu... more In this paper, we present research on CoPI4P (Community of Practice & Interest for Purpose) communities that consist of knowledge and creative workers in domains such as education, environmentalism, inter-disciplinary research, engaged art, and practice F2V (face-to-virtual) processes, i.e. processes that consist of both face-toface and virtual (online) activities. Standards and methods for modeling business processes have successfully solved various crucial problems, such as providing boundary objects (or a common language) between business analysts, domain experts, process performers and business solutions developers. Performers can execute business processes with standards that support the execution of such processes. However, for CoPI4P communities, BPM standards 1) require additional domain specialization and 2) are either too imperative, or fail to provide enough guidance. This paper identifies these challenges and provides partial solutions applicable to modeling and supporting CoPI4P communities and the corresponding F2V business processes. In addition, results of focus groups interviews and surveys are provided that shed light, notably, on the way CoPI4P communities have been impacted by COVID-19 and how they have coped with digital disruptions to their working models. Our contribution to business processes management lies in researching and identifying the peculiarities of such communities and their workflows, followed by interventions in the BPM, and particularly the BPMN, domain. We then propose a toolset of BPMN extensions required to match the observed F2V workflows and thus to digitalize CoPI4P business models. In this context, we introduce the notion of sub-process palettes as a means to reduce the rigidity, and introduce personalization, of processes.
Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, 2016
Modelling and Programming are often used together in system development. However, typically there... more Modelling and Programming are often used together in system development. However, typically there is a large difference between the handling of modelling parts and the handling of programming parts. This leads to the fact that the transition between the two is not easy, and important information is lost as well as extra information has to be provided when combining modelling and programming. This paper shows how modelling and programming could work together in system development.
Programming languages provide users with a rich palette of advanced mechanisms. Languages for met... more Programming languages provide users with a rich palette of advanced mechanisms. Languages for metamodelling, on the other hand, usually provide simple mechanisms for making class models, i.e. classes with relations like specialisation, composition and associations. A metamodel defines the abstract syntax (and to some degree semantics) of Domain Specific Languages (DSLs), and with the increased interest in making more and more complex DSLs there is a need for advanced mechanisms for metamodelling. This paper investigates what can be achieved by applying advanced language mechanisms to metamodelling, and how such mechanisms may increase the capabilities of DSL design.
models . Emphasis on abstract models and descriptions: Abstract descriptions leave out implementa... more models . Emphasis on abstract models and descriptions: Abstract descriptions leave out implementation specific details and let the developers focus on functionality. Domain Descriptions System Family descriptions Instance Descriptions Figure 1: IM activities, descriptions and languages Analysis Domain Analysis Requirements analysis Design Application design Framework design Architecture design Implementation Instantiation Configuration Building Testing Object Models Property Models Object Models Property Models Concrete system Specifications Implementation Instance configuration MSC, OMT/UML MSC, OMT/UML MSC, SDL SDL Design Models Introduction SISU Integrated Methodology - at a glance SISU report L-2001-7 SISU Modified: 1996-11-18 SISU 6 Property models . Focus on (external) properties: Objects are the building material from which systems and components are constructed. Property descriptions are used at an early stage of development to express the properties required from a sys...
A domain may be represented either by a Domain Specific Language (DSL) or by a framework. While p... more A domain may be represented either by a Domain Specific Language (DSL) or by a framework. While programs made in a DSL may be subject to static-semantic analysis and thereby ensured to be in accordance with the constraints of the domain, programs made on the basis of a corresponding framework cannot be analyzed with the same simplicity. Constraints of a domain are identified during domain analysis, and they are independent of whether a DSL or a framework is constructed. The reason that static-semantic analysis is harder for frameworks is that frameworks are implemented in general purpose implementation languages. The paper illustrates why Java is unsuited to support some static-semantic analysis for frameworks in Java, and it identifies which features a framework implementation language should have in order to support static-semantic analysis: An individual static constraint has an associated canonical form; therefore the implementation language must be able to implement this canonical form accurately, while the framework remains easy to use, in order to support static-semantic analysis.
Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages - POPL '83, 1983
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, 2011
Lecture Notes in Electrical Engineering, 2011