title: A domain-specific language for coordinating collaboration
Creators: name: Laaber, Christoph
Publisher: name: TU Wien
Year: 2016
Subjects: subject: Kollaborationsmodel
subject: Kollaborationsmanagement
subject: domänen-spezifische Sprache
subject: hADL
subject: Software Entwickler Unterstützung
subject: menschen-bezogenes System
subject: menschen-konzentriertes System
subject: collaboration model
subject: collaboration management
subject: domain-specific language
subject: hADL
subject: software developer support
subject: human-centric system
subject: human-intensive system

description: Seit einigen Jahrzehnten ist Software Design und Architektur im Fokus der Wissenschaft und der Industrie. Eine neuere Entwicklung in diesem Bereich ist die Einbeziehung von Menschen als integraler Bestandteil von Software Architektur. Eine solche Architekturbeschreibungssprache mit Fokus auf Menschen als Komponenten ist die Human Architecture Description Language (hADL). hADL gehört zu den struktur-orientierten Sprachen, die detaillierte, nicht restriktive Beschreibungen von Kollaborationen erlauben. Die Instanziierung von Kollaborationen ist jedoch komplex und brüchig. Prozess-orientierte Sprachen erlauben, im Vergleich zu struktur-orientierten Sprachen, bessere Unterstützung für Workflow-Modellierung und Ausführung von Kollaborationen. Der Nachteil von prozess-orientierten Sprachen ist die fehlende Flexibilität im Entwurf von Kollaborationen, welche struktur-orientierte Sprachen mit sich bringen. Eine Kombination dieser beider Paradigmen wird als überlegener Ansatz angesehen. Diese Diplomarbeit untersucht eine Methode, um gültige hADL Programme spezifizieren zu können, die den Aufwand von Entwicklern reduziert. Eine weiteres Ziel ist, die beiden Architekturbeschreibungsparadigmen näher zusammen zu bringen. Eine domänen-spezifische Sprache (DSL) wird mit Xtext, einem Framework zur Entwicklung von DSLs, entwickelt, welche es erlaubt Kollaborationsinstanzen in einer prägnanten Form zu spezifizieren. Der Funktionsumfang der DSL beinhaltet Verknüpfungs- (linkage) und Beobachtungsgrundfunktionalitäten (monitor) von hADL, Kontrollflussanweisungen, Variablen und einen Abstraktionsmechanismus. Mit Hilfe von automatischen überprüfungen wird die Gültigkeit von DSL-Programmen zur übersetzungszeit sichergestellt. Nur gültige Programme werden in Java/hADL-Client Programmcode übersetzt. Weiters wird der Entwicklungskomfort durch IDE Vorschläge und AutöVervollständigungen erhöht. Die DSL wird anhand eines einfachem Scrum Prozesses evaluiert. Die Evaluierung zeigt auf, wie sehr sich der Aufwand eines Entwicklers reduziert, der die DSL statt Java zum Definieren von Kollaborationsinstanzen verwendet. Zwei Szenarien werden implementiert, die die notwendigen Kollaborationsstrukturen auf- und abbauen. Die Ergebnisse zeigen, dass ein signifikant geringerer geistiger (überprüfungen im Kopf) und physischer (Tippen von Zeilen Code) Aufwand nötig ist, um Kollaborationsinstanzen mit der DSL zu definieren. Im Evaluierungsszenario führt die DSL 70 automatische Gültigkeits- und Konsistenzüberprüfungen durch und das DSL-Skript ist um einen Faktor 7,3 kürzer als der automatisch generierte hADL-Client Programmcode.
description: Software design and architecture has been a focus of research and industry for a couple of decades. A more recent development in terms of software architecture is the inclusion of humans into software systems. A human-centered architecture description language that belongs to the structure-centric paradigm is the Human Architecture Description Language (hADL). Structure-centric languages and therefore hADL enable descriptions of detailed, non-restrictive collaboration mechanisms. Nevertheless instantiating collaborations described in hADL is brittle and verbose. Compared to structure-centric languages, process-centric languages offer better support for executing collaborative workflows, but do not have the flexibility for defining collaborations. A combination of those is considered being a superior solution compared to either paradigm on its own. A method for specifying valid hADL programs is examined, that decreases the programmer-s effort drastically. Furthermore the aim is narrowing the gap between process-centric and structure-centric languages. This thesis introduces a Domain-Specific Language (DSL) developed with Xtext (a framework for language engineering), which allows developers to specify hADL collaboration instances in a concise way. The feature set of the DSL includes linkage and monitor primitives of hADL, control flow statements, variables and an abstraction mechanism. Validity and consistency of DSL programs is ensured by compile-time checks . Only valid programs are transformed into Java/hADL client code. Moreover development convenience is increased through IDE suggestions and auto-completions. The DSL is evaluated with a simplified Scrum process. The evaluation highlights the effort a developer saves when using the DSL compared to defining collaborations with plain Java. Collaborations of two distinct scenarios of Scrum are implemented with the DSL. Required collaboration structures are set up and torn down later on. The results show that a significantly lower amount of mental work by the developer and Lines of Code (LOC) are necessary to define collaborations with the DSL compared to Java. The DSL performs 70 validity and consistency checks and the generated hADL client code is by a factor of 7.3 longer.