17 research outputs found

    A Formal Model For Declarative Workflows:Dynamic Condition Response Graphs

    Get PDF
    C ur re nt bu si ne ss pr oc es st ec hn ol og y is pr et ty go od in su pp or tin g w el l-s tru ct ur ed bu si ne ss pr oc es se s an d ai m at ac hi ev in g a fix ed go al by ca rr yi ng ou ta n ex ac t s

    Flexible Process Notations for Cross-organizational Case Management Systems

    Get PDF
    In recent times western economies have become increasingly focussed on knowl-edge work. Knowledge work processes depend heavily on the expert knowledge of workers and therefore tend to require more flexibility then the processes seen in traditional production work. Over-constrained processes cause frustration and inefficiency because they do not allow workers to use their expert experience to make the best judgements on how to solve the unique challenges they are faced with. However some structuring of their work is still required to en-sure that laws and business rules are being followed. IT Systems for process control have a large role to play in structuring and organizing such processes, however most of these systems have been developed with a focus on produc-tion work and fail to support the more flexible processes required by knowledge workers. The problem arises at the core of these systems: the notations in which the processes are defined. Traditional process notations are flow-based: control of the process flows from one activity to the next. This paradigm in

    Behavioural Types: from Theory to Tools

    Get PDF
    This book presents research produced by members of COST Action IC1201: Behavioural Types for Reliable Large-Scale Software Systems (BETTY), a European research network that was funded from October 2012 to October 2016. The technical theme of BETTY was the use of behavioural type systems in programming languages, to specify and verify properties of programs beyond the traditional use of type systems to describe data processing. A significant area within behavioural types is session types, which concerns the use of type-theoretic techniques to describe communication protocols so that static typechecking or dynamic monitoring can verify that protocols are implemented correctly. This is closely related to the topic of choreography, in which system design starts from a description of the overall communication flows. Another area is behavioural contracts, which describe the obligations of interacting agents in a way that enables blame to be attributed to the agent responsible for failed interaction. Type-theoretic techniques can also be used to analyse potential deadlocks due to cyclic dependencies between inter-process interactions. BETTY was organised into four Working Groups: (1) Foundations; (2) Security; (3) Programming Languages; (4) Tools and Applications. Working Groups 1–3 produced “state-of-the-art reports”, which originally intended to take snapshots of the field at the time the network started, but grew into substantial survey articles including much research carried out during the network [1–3]. The situation for Working Group 4 was different. When the network started, the community had produced relatively few implementations of programming languages or tools. One of the aims of the network was to encourage more implementation work, and this was a great success. The community as a whole has developed a greater interest in putting theoretical ideas into practice. The sixteen chapters in this book describe systems that were either completely developed, or substantially extended, during BETTY. The total of 41 co-authors represents a significant proportion of the active participants in the network (around 120 people who attended at least one meeting). The book is a report on the new state of the art created by BETTY in xv xvi Preface the area of Working Group 4, and the title “Behavioural Types: from Theory to Tools” summarises the trajectory of the community during the last four years. The book begins with two tutorials by Atzei et al. on contract-oriented design of distributed systems. Chapter 1 introduces the CO2 contract specifi- cation language and the Diogenes toolchain. Chapter 2 describes how timing constraints can be incorporated into the framework and checked with the CO2 middleware. Part of the CO2 middleware is a monitoring system, and the theme of monitoring continues in the next two chapters. In Chapter 3, Attard et al. present detectEr, a runtime monitoring tool for Erlang programs that allows correctness properties to be expressed in Hennessy-Milner logic. In Chapter 4, which is the first chapter about session types, Neykova and Yoshida describe a runtime verification framework for Python programs. Communication protocols are specified in the Scribble language, which is based on multiparty session types. The next three chapters deal with choreographic programming. In Chap- ter 5, Debois and Hildebrandt present a toolset for working with dynamic condition response (DCR) graphs, which are a graphical formalism for choreography. Chapter 6, by Lange et al., continues the graphical theme with ChorGram, a tool for synthesising global graphical choreographies from collections of communicating finite-state automata. Giallorenzo et al., in Chapter 7, consider runtime adaptation. They describe AIOCJ, a choreographic programming language in which runtime adaptation is supported with a guarantee that it doesn’t introduce deadlocks or races. Deadlock analysis is important in other settings too, and there are two more chapters about it. In Chapter 8, Padovani describes the Hypha tool, which uses a type-based approach to check deadlock-freedom and lock-freedom of systems modelled in a form of pi-calculus. In Chapter 9, Garcia and Laneve present a tool for analysing deadlocks in Java programs; this tool, called JaDA, is based on a behavioural type system. The next three chapters report on projects that have added session types to functional programming languages in order to support typechecking of communication-based code. In Chapter 10, Orchard and Yoshida describe an implementation of session types in Haskell, and survey several approaches to typechecking the linearity conditions required for safe session implemen- tation. In Chapter 11, Melgratti and Padovani describe an implementation of session types in OCaml. Their system uses runtime linearity checking. In Chapter 12, Lindley and Morris describe an extension of the web programming language Links with session types; their work contrasts with the previous two chapters in being less constrained by an existing language design. Continuing the theme of session types in programming languages, the next two chapters describe two approaches based on Java. Hu’s work, presented in Chapter 13, starts with the Scribble description of a multiparty session type and generates an API in the form of a collection of Java classes, each class containing the communication methods that are available in a particular state of the protocol. Dardha et al., in Chapter 14, also start with a Scribble specification. Their StMungo tool generates an API as a single class with an associated typestate specification to constrain sequences of method calls. Code that uses the API can be checked for correctness with the Mungo typechecker. Finally, there are two chapters about programming with the MPI libraries. Chapter 15, by Ng and Yoshida, uses an extension of Scribble, called Pabble, to describe protocols that parametric in the number of runtime roles. From a Pabble specification they generate C code that uses MPI for communication and is guaranteed correct by construction. Chapter 16, by Ng et al., describes the ParTypes framework for analysing existing C+MPI programs with respect to protocols defined in an extension of Scribble. We hope that the book will serve a useful purpose as a report on the activities of COST Action IC1201 and as a survey of programming languages and tools based on behavioural types

    Behavioural Types: from Theory to Tools

    Get PDF
    This book presents research produced by members of COST Action IC1201: Behavioural Types for Reliable Large-Scale Software Systems (BETTY), a European research network that was funded from October 2012 to October 2016. The technical theme of BETTY was the use of behavioural type systems in programming languages, to specify and verify properties of programs beyond the traditional use of type systems to describe data processing. A significant area within behavioural types is session types, which concerns the use of type-theoretic techniques to describe communication protocols so that static typechecking or dynamic monitoring can verify that protocols are implemented correctly. This is closely related to the topic of choreography, in which system design starts from a description of the overall communication flows. Another area is behavioural contracts, which describe the obligations of interacting agents in a way that enables blame to be attributed to the agent responsible for failed interaction. Type-theoretic techniques can also be used to analyse potential deadlocks due to cyclic dependencies between inter-process interactions. BETTY was organised into four Working Groups: (1) Foundations; (2) Security; (3) Programming Languages; (4) Tools and Applications. Working Groups 1–3 produced “state-of-the-art reports”, which originally intended to take snapshots of the field at the time the network started, but grew into substantial survey articles including much research carried out during the network [1–3]. The situation for Working Group 4 was different. When the network started, the community had produced relatively few implementations of programming languages or tools. One of the aims of the network was to encourage more implementation work, and this was a great success. The community as a whole has developed a greater interest in putting theoretical ideas into practice. The sixteen chapters in this book describe systems that were either completely developed, or substantially extended, during BETTY. The total of 41 co-authors represents a significant proportion of the active participants in the network (around 120 people who attended at least one meeting). The book is a report on the new state of the art created by BETTY in xv xvi Preface the area of Working Group 4, and the title “Behavioural Types: from Theory to Tools” summarises the trajectory of the community during the last four years. The book begins with two tutorials by Atzei et al. on contract-oriented design of distributed systems. Chapter 1 introduces the CO2 contract specifi- cation language and the Diogenes toolchain. Chapter 2 describes how timing constraints can be incorporated into the framework and checked with the CO2 middleware. Part of the CO2 middleware is a monitoring system, and the theme of monitoring continues in the next two chapters. In Chapter 3, Attard et al. present detectEr, a runtime monitoring tool for Erlang programs that allows correctness properties to be expressed in Hennessy-Milner logic. In Chapter 4, which is the first chapter about session types, Neykova and Yoshida describe a runtime verification framework for Python programs. Communication protocols are specified in the Scribble language, which is based on multiparty session types. The next three chapters deal with choreographic programming. In Chap- ter 5, Debois and Hildebrandt present a toolset for working with dynamic condition response (DCR) graphs, which are a graphical formalism for choreography. Chapter 6, by Lange et al., continues the graphical theme with ChorGram, a tool for synthesising global graphical choreographies from collections of communicating finite-state automata. Giallorenzo et al., in Chapter 7, consider runtime adaptation. They describe AIOCJ, a choreographic programming language in which runtime adaptation is supported with a guarantee that it doesn’t introduce deadlocks or races. Deadlock analysis is important in other settings too, and there are two more chapters about it. In Chapter 8, Padovani describes the Hypha tool, which uses a type-based approach to check deadlock-freedom and lock-freedom of systems modelled in a form of pi-calculus. In Chapter 9, Garcia and Laneve present a tool for analysing deadlocks in Java programs; this tool, called JaDA, is based on a behavioural type system. The next three chapters report on projects that have added session types to functional programming languages in order to support typechecking of communication-based code. In Chapter 10, Orchard and Yoshida describe an implementation of session types in Haskell, and survey several approaches to typechecking the linearity conditions required for safe session implemen- tation. In Chapter 11, Melgratti and Padovani describe an implementation of session types in OCaml. Their system uses runtime linearity checking. In Chapter 12, Lindley and Morris describe an extension of the web programming language Links with session types; their work contrasts with the previous two chapters in being less constrained by an existing language design. Continuing the theme of session types in programming languages, the next two chapters describe two approaches based on Java. Hu’s work, presented in Chapter 13, starts with the Scribble description of a multiparty session type and generates an API in the form of a collection of Java classes, each class containing the communication methods that are available in a particular state of the protocol. Dardha et al., in Chapter 14, also start with a Scribble specification. Their StMungo tool generates an API as a single class with an associated typestate specification to constrain sequences of method calls. Code that uses the API can be checked for correctness with the Mungo typechecker. Finally, there are two chapters about programming with the MPI libraries. Chapter 15, by Ng and Yoshida, uses an extension of Scribble, called Pabble, to describe protocols that parametric in the number of runtime roles. From a Pabble specification they generate C code that uses MPI for communication and is guaranteed correct by construction. Chapter 16, by Ng et al., describes the ParTypes framework for analysing existing C+MPI programs with respect to protocols defined in an extension of Scribble. We hope that the book will serve a useful purpose as a report on the activities of COST Action IC1201 and as a survey of programming languages and tools based on behavioural types

    Deriving consistent GSM schemas from DCR graphs

    No full text

    A bottom-up process management environment dedicated to process actors

    Get PDF
    Les organisations adoptent de plus en plus les environnements de gestion des processus car ils offrent des perspectives prometteuses d'exécution en termes de flexibilité et d'efficacité. Les environnements traditionnels proposent cependant une approche descendante qui nécessite, de la part de concepteurs, l'élaboration d'un modèle avant sa mise en oeuvre par les acteurs qui le déploient tout au long du cycle d'ingénierie. En raison de cette divergence, un différentiel important est souvent constaté entre les modèles de processus et leur mise en oeuvre. De par l'absence de prise directe avec les acteurs de terrain, le niveau opérationnel des environnements de processus est trop faiblement exploité, en particulier en ingénierie des systèmes et des logiciels. Afin de faciliter l'utilisation des environnements de processus, cette thèse présente une approche ascendante mettant les acteurs du processus au coeur de la problématique. L'approche proposée autorise conjointement la modélisation et la mise en oeuvre de leurs activités quotidiennes. Dans cet objectif, notre approche s'appuie sur la description des artéfacts produits et consommés durant l'exécution d'une activité. Cette description permet à chaque acteur du processus de décrire le fragment de processus exprimant les activités dictées par son rôle. Le processus global se décompose ainsi en plusieurs fragments appartenant à différents rôles. Chaque fragment est modélisé indépendamment des autres fragments ; il peut aussi être greffé progressivement au modèle de processus initial. La modélisation des processus devient ainsi moins complexe et plus parcellaire. En outre, un fragment de processus ne modélise que l'aspect structurel des activités d'un rôle sans anticiper sur le comportement des activités ; il est moins prescriptif qu'un ordonnancement des activités de l'acteur. Un moteur de processus basé sur la production et la consommation d'artéfacts a été développé pour promulguer des activités provenant de différents fragments de processus. Ce moteur ne requiert pas de relations prédéfinies d'ordonnancement entre les activités pour les synchroniser, mais déduit leur dépendance à partir de leurs artéfacts échangés. Les dépendances sont représentées et actualisées au sein d'un graphe appelé Process Dependency Graph (PDG) qui reflète à tout instant l'état courant de l'exécution du processus. Cet environnement a été étendu afin de gérer les changements imprévus qui se produisent inévitablement lors de la mise en oeuvre des processus. Ce dispositif permet aux acteurs de signaler des changements émergents, d'analyser les impacts possibles et de notifier les personnes affectées par les modifications. En résumé, notre approche préconise de répartir les tâches d'un processus en plusieurs fragments, modélisés et adoptés séparément par les acteurs du processus. Le moteur de processus, qui s'appuie sur la disponibilité des artéfacts pour synchroniser les activités, permet d'exécuter indépendamment les fragments des processus. Il permet aussi l'exécution d'un processus partiellement défini pour lequel certains fragments seraient manquants. La vision globale de l'état d'avancement des différents acteurs concernés émerge au fur et à mesure de l'exécution des fragments. Cette nouvelle approche vise à intégrer au mieux les acteurs du processus dans le cycle de vie de la gestion des processus, ce qui rend ces systèmes plus attractifs et plus proches de leurs préoccupations.Companies increasingly adopt process management environments, which offer promising perspectives for a more flexible and efficient process execution. Traditional process management environments embodies a top-down approach in which process modeling is performed by process designers and process enacting is performed by process actors. Due to this separation, there is often a gap between process models and their real enactments. As a consequence, the operational level of top down process environments has stayed low, especially in system and software industry, because they are not directly relevant to process actors' needs. In order to facilitate the usage of process environments for process actors, this thesis presents a user-centric and bottom-up approach that enables integration of process actors into process management life cycle by allowing them to perform both the modeling and enacting of their real processes. To this end, first, a bottom-up approach based on the artifact-centric modeling paradigm was proposed to allow each process actor to easily describe the process fragment containing the activities carried out by his role. The global process is thus decomposed into several fragments belonging to different roles. Each fragment can be modeled independently of other fragments and can be added progressively to the process model; therefore the process modeling becomes less complex and more partial. Moreover, a process fragment models only the structural aspect of a role's activities without anticipating the behavior of these activities; therefore the process model is less prescriptive. Second, a data-driven process engine was developed to enact activities coming from different process fragments. Our process engine does not require predefined work-sequence relations among these activities to synchronize them, but deduces such dependencies from their enactment-time exchanged artifacts. We used a graph structure name Process Dependency Graph (PDG) to store enactment-time process information and establish the dependencies among process elements. Third, we extend our process environment in order to handle unforeseen changes occurring during process enactment. This results in a Change-Aware Process Environment that allows process actors reporting emergent changes, analyzing possible impacts and notifying people affected by the changes. In our bottom-up approach, a process is split into several fragments separately modeled and enacted by process actors. Our data-driven process engine, which uses the availability of working artifacts to synchronize activities, enables enacting independently process fragments, and even a partially modeled process where some fragments are missing. The global process progressively emerges only at enactment time from the execution of process fragments. This new approach, with its simpler modeling and more flexible enactment, integrates better process actors into process management life cycle, and hence makes process management systems more attractive and useful for them

    A study of student teachers' performance and psychological characteristics in learning introductory statistics

    Get PDF
    The research study for this thesis was carried out in three stages. In the first stage, factors that might affect the learning of introductory statistics for student teachers were investigated. The factors were attitudes related to learning statistics, and the effects of the limitation of the student teachers’ psychological characteristics (namely, perceptual fields or the degree of field dependency and working memory space). In addition to these factors, student teachers’ performances in a test to identify misconceptions in basic descriptive statistics concepts and probability and also in their final statistics examination were scrutinised. The results from the first stage indicated that student teaches generally had positive attitudes toward learning statistics but not toward the introductory statistics course which was described as dull or uninspiring and too mathematical. The student teachers appeared not to cope with the task of taking down the lecture notes and simultaneously trying to understand the statistical concepts to be learned. Student teachers’ performance in the statistics examination revealed a significant correlation with their working memory although not with their degree of field dependency. From the test, misconceptions about certain concepts in basic descriptive statistics and probability were identified. These correlations may reflect the nature of the test materials as much as the nature of statistics. Based on the findings from the first stage, interactive statistics learning materials employing the cooperative learning method were developed in the second stage and given to an experimental group of student teachers from five teacher training colleges. Another group of student teachers (called the comparison group) from the same colleges were taught the same materials but through the traditional lecture method. A post-questionnaire and a test based on the materials learned were given to both groups after the completion of the second stage study. The degree of field dependency for the student teacher in both groups was also measured. Results from the post-questionnaire revealed that the experimental group overwhelmingly favoured the learning units that were based on the interactive and cooperative learning while the comparison group regarded the lecture method as being dull and uninspiring. It also appeared that learning statistics based on the cooperative learning method was more favoured by the male student teachers, the Non-Mathematics Education group and the field dependent student teachers. Perhaps, not surprisingly, the experimental group performed better than the comparison group in the test based on the learning materials. In the third stage, opinions were sought from the student teachers in their final semester of study, concerning their readiness to teach statistics in school. They also sat a multiple-choice test about basic concepts in descriptive statistics and probability. In addition, the working memory capacity and the degree of field dependency of the student teachers were also measured. The findings revealed that a majority of the student teacher did not have confidence in teaching statistics. This probably stemmed from the difficulty in understanding certain statistical concepts and perhaps the statistic courses that they had attended did not provide them with a good training. The findings from the test also revealed that misconceptions in some statistical concepts still persisted and that the student teachers appeared to have forgotten some, if not all, statistical subject matter that they had previously learned in the statistics lectures. Generally, these findings indicated the weaknesses of the traditional format of teaching introductory statistics course through the lecture method
    corecore