21,887 research outputs found
Graphs and Graph Transformations for Object-Oriented and Service-Oriented Systems
Theories of graphs and graph transformations form an important part of the mathematical foundations
of computing, and have been applied in a wide range of areas from the design and analysis
of algorithms to the formalization of various computer systems and programs. In this thesis, we
study how graphs and graph transformations can be used to model the static structure and dynamic
behavior of object-orientated and service-oriented systems.
Our work is mainly motivated by the difficulty in understanding and reasoning about objectorientated
and service-oriented programs, which have more sophisticated features compared with
traditional procedural programs. We show that the use of graphs and graphs transformations provides
both an intuitive visualization and a formal representation of object-orientated and serviceoriented
programs with these features, improving peopleâs understanding of the execution states
and behaviors of these programs.
We provide a graph-based type system, operational semantics and refinement calculus for an
object-oriented language. In this framework, we define class structures and execution states of oo
programs as directed and labeled graphs, called class graphs and state graphs, respectively. The
type system checks whether a program is well-typed based on its class graph, while the operational
semantics defines each step of program execution as a simple graph transformations between state
graphs. We show the operational semantics is type-safe in that the execution of a well-typed
program does not âgo wrongâ. Based on the operational semantics, we study the notion of structure
refinement of oo programs as graph transformations between their class graphs. We provide a
few groups of refinement rules for various purposes such as class expansion and polymorphism
elimination and prove their soundness and relative completeness.
We also propose a graph-based representation of service-oriented systems specified in a serviceoriented
process calculus. In this framework, we define states of service-oriented systems as hier-
archical graphs that naturally capture the hierarchical nature of service structures. For this, we
exploit a suitable graph algebra and set up a hierarchical graph model, in which graph transformations
are studied following the well-known Double-Pushout approach. Based on this model, we
provide a graph transformation system with a few sets of graph transformation rules for various
purposes such as process copy and process reduction. We prove that the graph transformation
system is sound and complete with respect to the reduction semantics of the calculus
Ontology-based patterns for the integration of business processes and enterprise application architectures
Increasingly, enterprises are using Service-Oriented Architecture (SOA) as an approach to Enterprise Application Integration (EAI). SOA has the potential to bridge
the gap between business and technology and to improve the reuse of existing applications and the interoperability with new ones. In addition to service architecture
descriptions, architecture abstractions like patterns and styles capture design knowledge and allow the reuse of successfully applied designs, thus improving the quality of
software. Knowledge gained from integration projects can be captured to build a repository of semantically enriched, experience-based solutions. Business patterns identify the interaction and structure between users, business processes, and data.
Specific integration and composition patterns at a more technical level address enterprise application integration and capture reliable architecture solutions. We use an
ontology-based approach to capture architecture and process patterns. Ontology techniques for pattern definition, extension and composition are developed and their
applicability in business process-driven application integration is demonstrated
Structured Knowledge Representation for Image Retrieval
We propose a structured approach to the problem of retrieval of images by
content and present a description logic that has been devised for the semantic
indexing and retrieval of images containing complex objects. As other
approaches do, we start from low-level features extracted with image analysis
to detect and characterize regions in an image. However, in contrast with
feature-based approaches, we provide a syntax to describe segmented regions as
basic objects and complex objects as compositions of basic ones. Then we
introduce a companion extensional semantics for defining reasoning services,
such as retrieval, classification, and subsumption. These services can be used
for both exact and approximate matching, using similarity measures. Using our
logical approach as a formal specification, we implemented a complete
client-server image retrieval system, which allows a user to pose both queries
by sketch and queries by example. A set of experiments has been carried out on
a testbed of images to assess the retrieval capabilities of the system in
comparison with expert users ranking. Results are presented adopting a
well-established measure of quality borrowed from textual information
retrieval
SAGA: A project to automate the management of software production systems
The Software Automation, Generation and Administration (SAGA) project is investigating the design and construction of practical software engineering environments for developing and maintaining aerospace systems and applications software. The research includes the practical organization of the software lifecycle, configuration management, software requirements specifications, executable specifications, design methodologies, programming, verification, validation and testing, version control, maintenance, the reuse of software, software libraries, documentation, and automated management
A correspondence between rooted planar maps and normal planar lambda terms
A rooted planar map is a connected graph embedded in the 2-sphere, with one
edge marked and assigned an orientation. A term of the pure lambda calculus is
said to be linear if every variable is used exactly once, normal if it contains
no beta-redexes, and planar if it is linear and the use of variables moreover
follows a deterministic stack discipline. We begin by showing that the sequence
counting normal planar lambda terms by a natural notion of size coincides with
the sequence (originally computed by Tutte) counting rooted planar maps by
number of edges. Next, we explain how to apply the machinery of string diagrams
to derive a graphical language for normal planar lambda terms, extracted from
the semantics of linear lambda calculus in symmetric monoidal closed categories
equipped with a linear reflexive object or a linear reflexive pair. Finally,
our main result is a size-preserving bijection between rooted planar maps and
normal planar lambda terms, which we establish by explaining how Tutte
decomposition of rooted planar maps (into vertex maps, maps with an isthmic
root, and maps with a non-isthmic root) may be naturally replayed in linear
lambda calculus, as certain surgeries on the string diagrams of normal planar
lambda terms.Comment: Corrected title field in metadat
Formal Derivation of Concurrent Garbage Collectors
Concurrent garbage collectors are notoriously difficult to implement
correctly. Previous approaches to the issue of producing correct collectors
have mainly been based on posit-and-prove verification or on the application of
domain-specific templates and transformations. We show how to derive the upper
reaches of a family of concurrent garbage collectors by refinement from a
formal specification, emphasizing the application of domain-independent design
theories and transformations. A key contribution is an extension to the
classical lattice-theoretic fixpoint theorems to account for the dynamics of
concurrent mutation and collection.Comment: 38 pages, 21 figures. The short version of this paper appeared in the
Proceedings of MPC 201
A heuristic-based approach to code-smell detection
Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together â data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache
- âŠ