Kung-Kiu Lau
University of Manchester
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Kung-Kiu Lau.
IEEE Transactions on Software Engineering | 2007
Kung-Kiu Lau; Zheng Wang
Component-based development (CBD) is an important emerging topic in software engineering, promising long-sought-after benefits like increased reuse, reduced time to market, and, hence, reduced software production cost. The cornerstone of a CBD technology is its underlying software component model, which defines components and their composition mechanisms. Current models use objects or architectural units as components. These are not ideal for component reuse or systematic composition. In this paper, we survey and analyze current component models and classify them into a taxonomy based on commonly accepted desiderata for CBD. For each category in the taxonomy, we describe its key characteristics and evaluate them with respect to these desiderata.
Archive | 2000
John W. Lloyd; Veronica Dahl; Ulrich Furbach; Manfred Kerber; Kung-Kiu Lau; Catuscia Palamidessi; Luís Moniz Pereira; Yehoshua Sagiv; Peter J. Stuckey
Syntax for Variable Binders: An Overview . . . . . . . . . . . . . . . . . . . . 239 Dale Miller Goal-Directed Proof Search in Multiple-Conclusioned Intuitionistic Logic . . 254 James Harland, Tatjana Lutovac, and Michael Winikoff Efficient EM Learning with Tabulation for Parameterized Logic Programs . 269 Yoshitaka Kameya and Taisuke Sato Model Generation Theorem Proving with Finite Interval Constraints . . . . . 285 Reiner Hähnle, Ryuzo Hasegawa, and Yasuyuki Shirai Combining Mobile Processes and Declarative Programming . . . . . . . . . . . . . 300 Rachid Echahed and Wendelin Serwe
software engineering and advanced applications | 2005
Kung-Kiu Lau; Zheng Wang
CBSE currently lacks a universally accepted terminology. Existing component models adopt different component definitions and composition operators. We believe that for future research it would be crucial to clarify and unify the CBSE terminology, and that the starting point for this endeavour should be a study of current component models. In this paper, we take this first step and present and discuss a taxonomy of these models. The purpose of this taxonomy is to identify the similarities and differences between them with respect to commonly accepted criteria, with a view to clarification and/or potential unification.
component-based software engineering | 2005
Kung-Kiu Lau; Perla Velasco Elizondo; Zheng Wang
In existing component models, control originates in components, and connectors are channels for passing on the control to other components. This provides a mechanism for message passing, which allows components to invoke one anothers operations by method calls (or remote procedure calls) either directly or indirectly via a channel such as a bus. Thus components in these models mix computation with control, since in performing their computation they also initiate method calls and manage their returns, via connectors. Consequently, in terms of control, components are not loosely coupled. In this paper, we propose exogenous connectors, and demonstrate their use in a small example. In contrast to connectors in existing component models, exogenous connectors initiate calls and manage their returns, and are used to encapsulate control in a component model we are working on. In the example, we demonstrate the feasibility of exogenous connectors, and compare them with connectors in closely related architecture description languages.
Journal of Logic Programming | 1994
Yves Deville; Kung-Kiu Lau
This paper presents an overview and a survey of logic program synthesis. Logic program synthesis is interpreted here in a broad way; it is concerned with the following question: given a specification, how do we get a logic program satisfying the specification? Logic programming provides a uniquely nice and uniform framework for program synthesis since the specification, the synthesis process, and the resulting program can all be expressed in logic. Three main approaches to logic program synthesis by formal methods are described: constructive synthesis, deductive synthesis, and inductive synthesis. Related issues such as correctness and verification, as well as synthesis by informal methods, are briefly presented. Our presentation is made coherent by employing a unified framework of terminology and notation, and by using the same running example for all the approaches covered. This paper thus intends to provide an assessment of existing work and a framework for future research in logic program synthesis.
international conference on software engineering | 2006
Kung-Kiu Lau
Component-based development (CBD) is an important emerging topic in software engineering, promising long-sought-after benefits like increased reuse, reduced time to market, and, hence, reduced software production cost. The cornerstone of a CBD technology is its underlying software component model, which defines components and their composition mechanisms. Current models use objects or architectural units as components. These are not ideal for component reuse or systematic composition. In this paper, we survey and analyze current component models and classify them into a taxonomy based on commonly accepted desiderata for CBD. For each category in the taxonomy, we describe its key characteristics and evaluate them with respect to these desiderata.
Archive | 2004
Maurice Bruynooghe; Kung-Kiu Lau
In order to provide a formalism for defining program correctness and to reason about program development in Computational Logic, we believe that it is better to distinguish between specifications and programs. To this end, we have developed a general approach to specification that is based on a model-theoretic semantics. In our previous work, we have shown how to define specifications and program correctness for open logic programs. In particular we have defined a notion of correctness called steadfastness, that captures at once modularity, reusability and correctness. In this paper, we review our past work and we show how it can be used to define compositional units that can be correctly reused in modular or component-based software development.
formal methods | 2005
Kung-Kiu Lau; Mario Ornaghi; Zheng Wang
A software component model should define what components are, and how they can be composed. That is, it should define a theory of components and their composition. Current software component models tend to use objects or port-connector type architectural units as components, with method calls and port-to-port connections as composition mechanisms. However, these models do not provide a proper composition theory, in particular for key underlying concepts such as encapsulation and compositionality. In this paper, we outline our notion of these concepts, and give a preliminary formalisation of a software component model that embodies these concepts.
Journal of Symbolic Computation | 2000
Pierre Flener; Kung-Kiu Lau; Mario Ornaghi; Julian Richardson
Program schemas should capture not only structured program design principles, but also domain knowledge, both of which are of crucial importance for hierarchical program synthesis. However, most researchers represent schemas as purely syntactic constructs, which can provide only a program template, but not the domain knowledge. In this paper, we take a semantic approach and show that a schema S consists of a syntactic part, namely a template T, and a semantic part. Template T is formalized as an open (first-order) logic program in the context of the problem domain, characterized as a first-order axiomatization, called a specification frameworkF, which is the semantic part. F endows the schema S with a formal semantics, and enables us to define and reason about its correctness. Naturally, correct schemas can be used to guide the synthesis of correct programs.
Archive | 2004
Kung-Kiu Lau
Component-based software development (CBD) is an emerging discipline that promises to take software engineering into a new era. Building on the achievements of object-oriented software construction, CBD aims to deliver software engineering from a cottage industry into an industrial age for Information Technology, wherein software can be assembled from components, in the manner that hardware systems are currently constructed from kits of parts. This volume provides a survey of the current state of CBD, as reflected by activities that have been taking place recently under the banner of CBD, with a view to giving pointers to future trends. The contributions report case studies - self-contained, fixed-term investigations with a finite set of clearly defined objectives and measurable outcomes - on a sample of the myriad aspects of CBD. The book includes chapters dealing with COTS (commercial off-the-shelf) components; methodologies for CBD; compositionality, i.e. how to calculate or predict properties of a composite from those of its constituents; component software testing; and grid computing.