user warning: Got error 28 from storage engine query: SELECT DISTINCT t.* FROM drupal_term_node r INNER JOIN drupal_term_data t ON r.tid = t.tid INNER JOIN drupal_vocabulary v ON t.vid = v.vid LEFT JOIN drupal_forum_access fa ON t.tid = fa.tid LEFT JOIN drupal_acl acl_fa ON acl_fa.name = t.tid AND acl_fa.module = 'forum_access' LEFT JOIN drupal_acl_user aclu_fa ON aclu_fa.acl_id = acl_fa.acl_id AND aclu_fa.uid = 0 WHERE ((fa.grant_view >= 1 AND fa.rid IN (1)) OR fa.tid IS NULL OR aclu_fa.uid = 0) AND ( r.vid = 16204 )ORDER BY v.weight, t.weight, t.name in /var/www/dikutal.dk/modules/taxonomy/taxonomy.module on line 632.
Dato: 
2. Marts 2012 - 13:15 - 15:00

Place: DIKU, Small UP1, Universitetsparken 1, 2100 København Ø

Abstract

Enterprise resource planning (ERP) systems are comprehensive and business-critical software systems. We propose a novel software architecture for ERP systems based on domain-specific languages (DSLs) and an event-based accounting model, in contrast to the traditional use of general-purpose imperative programming

languages, relational database systems, and double-entry bookkeeping. Our proposed architecture extends and generalises previous work by Henglein et al., and we demonstrate the validity of our approach by implementing a small ERP system from scratch. Underlying our practical work on ERP systems, we make independent

theoretical contributions to the areas of contract formalisation and DSL implementation.

Our contributions to the area of contract formalisation are a formal model of legally binding contracts and a

fundamentally new generalisation of Meyer's design-by-contract (DbC) to distributed computing. The novel

feature of our legally binding contracts model is blame assignment. That is, our contract model takes into

account that a breach of contract must be attributable to one or more of the contract participants. We furthermore present a DSL for specifying contracts that is amenable to run-time monitoring, and which inherits the property of blame assignment by virtue of our abstract contract model. Contracts for distributed programming bare

surprisingly many similarities with legally binding contracts. We propose a fundamentally new generalisation of DbC to distributed computing that, in contrast to previous work, is based on an adversarial model of system

integration.

Our contribution to the area of DSL implementation is a Haskell library for constructing data types, and functions on them, in a modular and extendable fashion. Based on Swierstra's data types à la carte, our library enables full modularity and extensibility, as well as seamless support for abstract syntax tree (AST) annotations and run-time optimisation in the vein of deforestation. Additionally, we present a new approach to representing variable

binders in ASTs based on Chlipala's parametric higher-order abstract syntax, while maintaining modularity and extensibility. We use our library in the implementation of our ERP architecture; not only do we benefit from the modularity in the implementation of each DSL, we also benefit from the modularity across the DSLs.

Assessment committee:

Chairman: Associate Professor Torben Ægidius Mogensen, Department of Computer Science, University of Copenhagen, Denmark

Dr. Nobuko Yoshida, Department of Computing, Imperial College, London, United Kingdom

Professor Graham Hutton, University of Nottingham, United Kingdom

Academic supervisors:

Professor Fritz Henglein, Department of Computer Science, University of Copenhagen, Denmark

Associate Professor Andrzej Filinski, Department of Computer Science, University of Copenhagen, Denmark

For an electronic copy of the thesis, please contact Jette Giovanni Møller, jettegm@diku.dk