28  April - 10  May  of  2008
Guiyang, China
 

Main Menu
Home
Overview
Course Abstracts
Lecturers
Programme
Registration
Travel Info
Accommodations


In cooperation with:


Course Abstracts




Foundations Course


The incremental approach to Information Engineering

by: J W Sanders


The space of programs is closed under various operations including sequential composition, iteration, conditional and invocation. With respect to such program operations, programs satisfy many algebraic laws, some of them equalities but some only inequalities with respect to the refinement relation.

This course begins by studying the laws of programs. The two basic models of sequential systems are studied and shown to form (partially-ordered) domains. It is shown how one domain is more detailed than the other (by containing specification constructs more general than code), and how the laws may be lifted from the simpler (binary-relation) model to the other (predicate-transformer) model using a Galois connection. The theory of Galois connections is presented. It is applied not only to the semantic models just described, but also to the theory of data representation, that enables a program to be derived by representing its data structures. The theory is also applied to show more generally how complicated computational behavior may be described incrementally, by a hierarchy of simple extensions. Applications of the approach are also given to probabilistic computations, quantum computing and rCOS.

Outline of topics:

  • Introduction. The laws satisfied by programs.
  • The theory of Galois connections.
  • Computable functions (i.e. predeterministic computations).
  • Nondeterministic computations. The binary relation and predicate transformer models. Lifting laws from the former to the latter.
  • Data representations. Complete rules for data refinement. Refinement calculi.
  • Unbounded nondeterminism, angelic nondeterminism, unenabled computations. The relation and transformer models.
  • Extra topics; a choice from: the refinement calculus, rCOS, probability, concurrency, hardware design.

 



Advances Course


The rCOS method for component-based and modeldriven development

 by:  Zhiming Liu


Model-driven development is a most promising approach to separation of concerns in design of complex software systems. It employs a UML-like multiview and multi-notational language for describing the models of the system at different stages in the development. It also supports component-based design and allows developers to design systems at a higher level of abstraction using models or specifications of components which will be produced and integrated at a later implementation, assembly and deployment stage.

However, a major challenge in the practice of model-based software development is to ensure correctness and dependability of the software product. To deal with this challenge, we need a common semantics for the multiview modeling approach, and a method for verification and reasoning about models of different views, correct refinement of models, and consistently relating the models of different views. Tool support for such a method needs to integrate sophisticated drawing and editing tools for model construction, transformers for correctness preserving model transformations, and checkers and provers for verification of properties of models. The method, techniques and tools have to be incorporated (or be able to be incorporated) into existing software development processes and environments.

The rCOS method includes a formal notation and a calculus of refinement for specifying, verifying and transforming (refining) models of component-based and object-oriented designs at different levels of abstraction. It has a UML profile for tool support of building and transforming models and allows the application of verification tools for analysing models.

Outline of topics: 

  • Introduction: the state of the art in practical software engineering, the current status of formal methods, motivation and theme of rCOS.
  • Semantic root in Unified Theories of Programming (UTP, as studied in the Foundations Course).
  • Theory of rCOS: component-based modelling and refinement — interfaces, contracts, components, composition (connectors), coordination and glue. Object-oriented modeling and refinement – classes, objects, references, polymorphism, subtyping, dynamic binding, OO refinement.
  • Development process and case study.
  • Tool: UML profile for rCOS, model transformations and model verification and analysis.

References are available from http://rcos.iist.unu.edu.

 


 

Guizhou Spring School on Foundations and Advances in Information Science and Engineering
Guizhou Academy of Sciences (www.gzas.org)