Results 1 - 10
of
23
Translating the Object Constraint Language into First-order Predicate Logic
- In Proceedings, VERIFY, Workshop at Federated Logic Conferences (FLoC
, 2002
"... In this paper, we define a translation of UML class diagrams with OCL constraints into first-order predicate logic. The goal is logical reasoning about UML models, realized by an interactive theorem prover. We put an emphasis on usability of the formulas resulting from the translation, and we hav ..."
Abstract
-
Cited by 28 (5 self)
- Add to MetaCart
In this paper, we define a translation of UML class diagrams with OCL constraints into first-order predicate logic. The goal is logical reasoning about UML models, realized by an interactive theorem prover. We put an emphasis on usability of the formulas resulting from the translation, and we have developed optimisations and heuristics to enhance the e#ciency of the theorem proving process.
Software Verification with Integrated Data Type Refinement for Integer Arithmetic
, 2004
"... We present an approach to integrating the refinement relation between infinite integer types (used in specification languages) and finite integer types (used in programming languages) into software verification calculi. Since integer types in programming languages have finite ranges, in general they ..."
Abstract
-
Cited by 16 (3 self)
- Add to MetaCart
We present an approach to integrating the refinement relation between infinite integer types (used in specification languages) and finite integer types (used in programming languages) into software verification calculi. Since integer types in programming languages have finite ranges, in general they are not a correct data refinement of the mathematical integers usually used in specification languages. Ensuring the correctness of such a refinement requires generating and verifying additional proof obligations. We tackle this problem considering Java and UML/OCL as example. We present a sequent calculus for Java integer arithmetic with integrated generation of refinement proof obligations. Thus, there is no explicit...
A Graph-Based Metamodel for Object-Oriented Software Metrics
, 2002
"... Metrics are essential in object-oriented software engineering for several reasons, among which quality assessment and improvement of development team productivity. While the mathematical nature of metrics calls for clear definitions, frequently there exist many contradicting definitions of the same ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
Metrics are essential in object-oriented software engineering for several reasons, among which quality assessment and improvement of development team productivity. While the mathematical nature of metrics calls for clear definitions, frequently there exist many contradicting definitions of the same metric depending on the implementation language. We suggest to express and define metrics using a languageindependent metamodel based on graphs. This graph-based approach allows for an unambiguous definition of generic object-oriented metrics and higher-order metrics. We also report on some prototype tools that implement these ideas.
Columbus Schema for C/C++ Preprocessing
"... File inclusion, conditional compilation and macro processing has made the C/C++ preprocessor a powerful tool for programmers. However, program code with lots of directives often causes difficulties in program understanding and maintenance. The main source of the problem is the difference between the ..."
Abstract
-
Cited by 10 (4 self)
- Add to MetaCart
File inclusion, conditional compilation and macro processing has made the C/C++ preprocessor a powerful tool for programmers. However, program code with lots of directives often causes difficulties in program understanding and maintenance. The main source of the problem is the difference between the code that the programmer sees and the preprocessed code that the compiler gets. To aid program comprehension we designed a C/C++ preprocessor schema (supplementing the Columbus Schema for C++) and implemented a preprocessor which produces both preprocessed files and schema instances. The instances of the schema may be used to model: (1) preprocessor constructs in the original source code, (2) the preprocessed compilation unit, and (3) the transformations made by the preprocessor.
Developing Software Metrics Applicable to UML Models
- 6th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering (QAOOSE
, 2002
"... Abstract. This paper proposes some new software metrics that can be applied to UML modelling elements like classes and messages. These metrics can be used to predict various characteristics at the earlier stages of the software life cycle. A CASE tool is developed on top of Rational Rose 1 using its ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Abstract. This paper proposes some new software metrics that can be applied to UML modelling elements like classes and messages. These metrics can be used to predict various characteristics at the earlier stages of the software life cycle. A CASE tool is developed on top of Rational Rose 1 using its BasicScript language and we provide some examples using it. 1
Model-Driven Design of Web Applications with Client-Side Adaptation
- ICWE 2004 - International Conference on Web Engineering, volume 3140 of LNCS
, 2004
"... In this paper, we integrate WebML, a high-level model and technology for building server-side Web applications, with UML-Guide, a UML-based system that generates client-side guides for the adaptation of Web applications. ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
In this paper, we integrate WebML, a high-level model and technology for building server-side Web applications, with UML-Guide, a UML-based system that generates client-side guides for the adaptation of Web applications.
Concepts and Language Mechanisms in Software Modelling
, 2000
"... Software is a complex artefact. Complexity can be re d subsequent el formation. However, while current research proposes various concepts techniques ucing complexity, the focus on the general notion of software elling has been result is an unclarified role of mo d ls of software in relation ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Software is a complex artefact. Complexity can be re d subsequent el formation. However, while current research proposes various concepts techniques ucing complexity, the focus on the general notion of software elling has been result is an unclarified role of mo d ls of software in relation to software velopment.
Automating Support for Software Evolution in UML
, 2000
"... Disciplined support for evolution of software artifacts is important in all phases of the software life-cycle. In order to achieve this support, a uniform underlying foundation for software evolution is necessary. While, in the past, reuse contracts have been proposed as such a formalism in a number ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
Disciplined support for evolution of software artifacts is important in all phases of the software life-cycle. In order to achieve this support, a uniform underlying foundation for software evolution is necessary. While, in the past, reuse contracts have been proposed as such a formalism in a number of different domains, this paper generalises the formalism, and integrates it into the UML metamodel. As such, support for evolution becomes readily available for many kinds of UML models, ranging from requirements to the implementation phase.
Formal test-case generation for uml statecharts
- Proc. 9th IEEE Int. Conf. on Engineering of Complex Computer Systems
, 2004
"... The Unified Modeling Language has been introduced as a notation for modeling and reasoning about large and complex systems, and their design, across a wide range of application domains. System modeling and analysis techniques, especially those based on formal methods, are more and more used for enha ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
The Unified Modeling Language has been introduced as a notation for modeling and reasoning about large and complex systems, and their design, across a wide range of application domains. System modeling and analysis techniques, especially those based on formal methods, are more and more used for enhancing traditional System Engineering techniques for improving system quality. In particular this holds for model-based formal test case derivation using formal conformance testing. The contribution of the present paper is to provide a solid mathematical basis for conformance testing and automatic test case generation for UML Statecharts (UMLSCs). We propose a formal conformancetesting relation for input-enabled transition systems with transitions labeled by input/output-pairs (IOLTSs). IOLTSs provide a suitable semantic model for a behavioral subset of UMLSCs. We also provide an algorithm which, for a UMLSC specification and the alphabet of implementations, generates a test suite. The algorithm is proven exhaustive and sound w.r.t. the conformance relation. 1. Introduction and Related
The KEY Approach: Integrating Design and Formal Verification of Java Card Programs
, 2000
"... This paper reports on the ongoing KeY project aimed at bridging the gap between (a) object-oriented software engineering methods and tools and (b) deductive verification for the development of JAVA CARD programs. In particular, we describe a Dynamic Logic for JAVA CARD and outline a sequent calculus ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
This paper reports on the ongoing KeY project aimed at bridging the gap between (a) object-oriented software engineering methods and tools and (b) deductive verification for the development of JAVA CARD programs. In particular, we describe a Dynamic Logic for JAVA CARD and outline a sequent calculus for this logic that axiomatises JAVA CARD and is used in the verification component of the KeY system. 1 Introduction The goal of the project 1 (read "key") is to enhance a commercial CASE tool with functionality for formal specification and deductive verification and, thus, to integrate formal methods into real-world software development processes. Accordingly, the design principles for the software verification component of the KeY system are: The programs to be verified should be written in a "real" object-oriented (OO) programming language. The logical formalism should be as easy as possible to use for software developers (that do not have years of training in formal methods). ...

