We present UMLtoCSP, a tool for the formal verification of UML/OCL models. Given a UML class diagram annotated with OCL constraints, UMLtoCSP is able to automatically check several correctness properties, such as the ...
详细信息
ISBN:
(纸本)9781595938824
We present UMLtoCSP, a tool for the formal verification of UML/OCL models. Given a UML class diagram annotated with OCL constraints, UMLtoCSP is able to automatically check several correctness properties, such as the strong and weak satisfiability of the model or the lack of redundant constraints. The tool uses Constraint logicprogramming as the underlying formalism and the constraint solver ECLiPSe as the verification engine.
Since the introduction of object-oriented programming few programming languages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively ...
详细信息
Since the introduction of object-oriented programming few programming languages have attempted to provide programmers with more than objects and classes, i.e., more than two levels. Those that did, almost exclusively aimed at describing language properties - i. e., their metaclasses exert linguistic control on language concepts and mechanisms often in order to make the language extensible. In terms of supporting logical domain classification levels, however, they are still limited to two levels. In this paper we conservatively extend the object-oriented programming paradigm to feature an unbounded number of domain classification levels. We can therefore avoid the introduction of accidental complexity into programs caused by accommodating multiple domain levels within only two programming levels. We present a corresponding language design featuring "deep instantiation" and demonstrate its features with a running example. Finally, we outline the implementation of our compiler prototype and discuss the potentials of further developing our language design.
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functiona...
详细信息
ISBN:
(纸本)9781595937865
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functionality, and an autopoietic part that is responsible for keeping the system alive by monitoring the application and adapting it to environmental changes. Practical application of the conscientious software paradigm requires solutions to two open problems: The design of suitable autopoietic programming languages and the proposal of concrete architectures for combining the autopoietic and allopoietic parts. In this paper, we tackle the second challenge, and propose a concrete, aspect-oriented architecture for realizing conscientious software. Here, we introduce epi-aspects, a construct for upgrading new and existing applications into conscientious software. This paper provides the architectural design of epi-aspects. an autopoietic simulator, and a concrete framework for developing epi-aspects in Java. The framework and the simulator are used to conduct a case Study in which we develop and test a conscientious Java application.
Rewriting logic semantics provides an environment for defining new and existing languages. These language definitions are formal and executable, providing language interpreters almost for free while also providing a f...
详细信息
ISBN:
(纸本)9781595938657
Rewriting logic semantics provides an environment for defining new and existing languages. These language definitions are formal and executable, providing language interpreters almost for free while also providing a framework for building analysis tools, such as type checkers, model checkers, and abstract interpreters. Large subsets of several existing object-oriented languages have been defined, while a new research language, KOOL, has been created as a platform for experimenting with language features and type systems. At the same time, new tools and formalisms aimed specifically at programming languages are being developed.
The proceedings contain 54 papers. The topics discussed include: on the prospects for building a working model of the visual cortex;model-lite planning for the web age masses: the challenges of planning with incomplet...
ISBN:
(纸本)9781577353232
The proceedings contain 54 papers. The topics discussed include: on the prospects for building a working model of the visual cortex;model-lite planning for the web age masses: the challenges of planning with incomplete and evolving domain models;learning by combining observations and user edits;using eye-tracking data for high-level user modeling in adaptive interfaces;an experimental comparison of constraint logicprogramming and answer set programming;efficient datalog abduction through bounded treewidth;the pyramid match: efficient learning with partial correspondences;a kernel approach to comparing distributions;manifold denoising as preprocessing for finding natural representations of data;near-optimal observation selection using submodular functions;dominance and equivalence for sensor-based agents;and modeling and learning vague event durations for temporal reasoning.
Objects often define usage protocols that clients must follow in order for these objects to work properly. Aliasing makes it notoriously difficult to check whether clients and implementations are compliant with such p...
详细信息
Objects often define usage protocols that clients must follow in order for these objects to work properly. Aliasing makes it notoriously difficult to check whether clients and implementations are compliant with such protocols. Accordingly, existing approaches either operate globally or severely restrict aliasing. We have developed a sound modular protocol checking approach, based on typestates, that allows a great deal of flexibility in aliasing while guaranteeing the absence of protocol violations at runtime. The main technical contribution is a novel abstraction, access permissions, that combines typestate and object aliasing information. In our methodology, developers express their protocol design intent through annotations based on access permissions. Our checking approach then tracks permissions through method implementations. For each object reference the checker keeps track of the degree of possible aliasing and is appropriately conservative in reasoning about that reference. This helps developers account for object manipulations that may occur through aliases. The checking approach handles inheritance in a novel way, giving subclasses more flexibility in method overriding. Case studies on Java iterators and streams provide evidence that access permissions can model realistic protocols, and protocol checking based on access permissions can be used to reason precisely about the protocols that arise in practice.
Interest in traditional computing has been in decline, especially among women and minorities. A revised introductory programming course, focused on objectoriented, event driven, programming using ALICE, a 3D graphics ...
详细信息
Interest in traditional computing has been in decline, especially among women and minorities. A revised introductory programming course, focused on objectoriented, event driven, programming using ALICE, a 3D graphics programming environment developed at Carnegie Mellon University and funded by the National Science Foundation (NSF) formed the core of a curriculum revision to broaden the appeal of the Computer Information Systems (CIS) major. While ALICE has been implemented in Computer Science (CS) programs, there is little evidence of alternative introductory programming environments in the CIS curricula. This case study addresses the rationale for selecting ALICE, the subsequent course design, the responses to a student survey, a critique, and the expectations for the future course developments.
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functiona...
详细信息
Conscientious software is a recently proposed paradigm for developing reliable, self-sustaining software systems. Conscientious software systems consist of an allopoietic part, which encapsulates application functionality, and an autopoietic part that is responsible for keeping the system alive by monitoring the application and adapting it to environmental changes. Practical application of the conscientious software paradigm requires solutions to two open problems: The design of suitable autopoietic programming languages and the proposal of concrete architectures for combining the autopoietic and allopoietic parts. In this paper, we tackle the second challenge, and propose a concrete, aspect-oriented architecture for realizing conscientious software. Here, we introduce epi-aspects, a construct for upgrading new and existing applications into conscientious software. This paper provides the architectural design of epi-aspects, an autopoietic simulator, and a concrete framework for developing epi-aspects in Java. The framework and the simulator are used to conduct a case study in which we develop and test a conscientious Java application.
In concurrent systems, an event can be enabled by different reasons. However, existing logics for event structures cannot be used to effectively describe the property. We propose a new partial order temporal logic, fl...
详细信息
This paper addresses a multi-stage flow shop scheduling problem with parallel machines. Restrictions defined are;considering no waiting time between stages and assigning a specified time window for each job that shoul...
详细信息
暂无评论