34 research outputs found

    Language Design for Reactive Systems: On Modal Models, Time, and Object Orientation in Lingua Franca and SCCharts

    Get PDF
    Reactive systems play a crucial role in the embedded domain. They continuously interact with their environment, handle concurrent operations, and are commonly expected to provide deterministic behavior to enable application in safety-critical systems. In this context, language design is a key aspect, since carefully tailored language constructs can aid in addressing the challenges faced in this domain, as illustrated by the various concurrency models that prevent the known pitfalls of regular threads. Today, many languages exist in this domain and often provide unique characteristics that make them specifically fit for certain use cases. This thesis evolves around two distinctive languages: the actor-oriented polyglot coordination language Lingua Franca and the synchronous statecharts dialect SCCharts. While they take different approaches in providing reactive modeling capabilities, they share clear similarities in their semantics and complement each other in design principles. This thesis analyzes and compares key design aspects in the context of these two languages. For three particularly relevant concepts, it provides and evaluates lean and seamless language extensions that are carefully aligned with the fundamental principles of the underlying language. Specifically, Lingua Franca is extended toward coordinating modal behavior, while SCCharts receives a timed automaton notation with an efficient execution model using dynamic ticks and an extension toward the object-oriented modeling paradigm

    Conferentie informatiewetenschap 1999 : Centrum voor Wiskunde en Informatica, 12 november 1999 : proceedings

    Get PDF

    Integrating measurement techniques in an Object-Orientedsystems design process.

    Get PDF
    The theme of this thesis is the assessment of quality in class hierarchies. In particular, the notion ofinheritance and the mechanism of redefinition from a modelling perspective are reviewed. It isshown that, in Object-Oriented languages, controversial uses of inheritance can be implementedand are subject of debate as they contradict the essence of inheritance. The discovery of anunexpected use of the method redefinition mechanism confirmed that potential designinconsistencies occur more often than expected in class hierarchies. To address such problems,design heuristics and measurement techniques are investigated as the main instrument tools for theevaluation "goodness" or "badness" in class hierarchies. Their benefits are demonstrated withinthe design process. After the identification of an obscure use of the method redefinition mechanism referred to as themultiple descendant redefinition (MDR) problem, a set of metrics based on the GQMlMEDEA[Bri&aI94] model is proposed. To enable a measurement programme to take place within a designprocess, the necessary design considerations are detailed and the technical issues involved in themeasurement process are presented. Both aspects form ~. methodological approach for classhierarchy assessment and especially concentrate on the use of the redefinition mechanism.. .As one of the main criticisms of the measure~ent science is the lack orgood design feedback, the, analysis and interpretation phase. of the metfics results is seen: as a crucial phase for inferring,meaningful conclusions. A novel· data interpretation framework is pr~posed' and includes the use ofvarious graphical data representations and detection techniques. Also, the notion of redefinitionprofiles suggested a, more generic approach whereby a pattern profile can be found for a metric.The benefits of the data interpretation method for the extraction of meaningful design feedbackfrom the metrics results are discussed.The implementation of a metric tool collector enabled a set of experiments to be carried out on theSmalltalk class hierarchy. Surprisingly, the analysis of metrics results showed that methodredefmition is heavily used compared to method extension. This suggested the existence ofpotential design inconsistencies in the class hierarchy and permitted the discovery of the MDRproblem on many occasions. In addition, a set of experiments demonstrates the benefits of examplegraphical representations together with detection techniques such as alarmers. In the light offacilitating the interpretation phase, the need for additional supporting tools is highlighted. This thesis illustrates the potential benefits of integration of measurement techniques within anObject-Oriented design process. Given the identification of the MDR problem, it is believed thatthe redefinition metrics are strong and simple candidates for detecting complex design problemsoccurring within a class hierarchy. An integrated design assessment model is proposed whichlogically fits into an incremental design development process. Benefits and disadvantages of theapproach are discussed together with future work

    Improving Object-Oriented Programming by Integrating Language Features to Support Immutability

    Get PDF
    Nowadays developers consider Object-Oriented Programming (OOP) the de-facto general programming paradigm. While successful, OOP is not without problems. In 1994, Gamma et al. published a book with a set of 23 design patterns addressing recurring problems found in OOP software. These patterns are well-known in the industry and are taught in universities as part of software engineering curricula. Despite their usefulness in solving recurring problems, these design patterns bring a certain complexity in their implementation. That complexity is influenced by the features available in the implementation language. In this thesis, we want to decrease this complexity by focusing on the problems that design patterns attempt to solve and the language features that can be used to solve them. Thus, we aim to investigate the impact of specific language features on OOP and contribute guidelines to improve OOP language design. We first perform a mapping study to catalogue the language features that have been proposed in the literature to improve design pattern implementations. From those features, we focus on investigating the impact of immutability-related features on OOP. We then perform an exploratory study measuring the impact of introducing immutability in OOP software with the objective of establishing the advantages and drawbacks of using immutability in the context of OOP. Results indicate that immutability may produce more granular and easier-to-understand programs. We also perform an experiment to measure the impact of new language features added into the C\# language for better immutability support. Results show that these specific language features facilitate developers' tasks when aiming to implement immutability in OOP. We finally present a new design pattern aimed at solving a problem with method overriding in the context of immutable hierarchies of objects. We discuss the impact of language features on the implementations of this pattern by comparing these implementations in different programming languages, including Clojure, Java, and Kotlin. Finally, we implement these language features as a language extension to Common Lisp and discuss their usage

    Theoretical and Practical Aspects of Typestate

    Get PDF
    The modelling and enforcement of typestate constraints in object oriented languages has the potential to eliminate a variety of common and difficult to diagnose errors. While the theoretical foundations of typestate are well established in the literature, less attention has been paid to the practical aspects: is the additional complexity justifiable? Can typestate be reasoned about effectively by "real" programmers? To what extent can typestate constraints be inferred, to reduce the burden of large type annotations? This thesis aims to answer these questions and provide a holistic treatment of the subject, with original contributions to both the theorical and practical aspects of typestate

    The Automated analysis of object-oriented designs

    Get PDF
    This thesis concerns the use of software measures to assess the quality of object-oriented designs. It examines the ways in which design assessment can be assisted by measurement and the areas in which it can't. Other work in software measurement looks at defining and validating measures,or building prediction systems. This work is distinctive in that it examines the use of measures to help improve design quality during design time. To evaluate a design based on measurement results requires a means of relating measurement values to particular design problems or quality levels. Design heuristics were used to make this connection between measurement and quality. A survey was carried out to find suggestions for guidelines, rules and heuristics from the 00 design literature. This survey resulted in a catalogue of 288 suggestions for 00 design heuristics. The catalogue was structured around the 00 constructs to which the heuristics relate, and includes information on various heuristic attributes. This scheme is intended to allow suitable heuristics to be quickly located and correctly applied. Automation requires tool support. A tool was built which augmented the functionality available in existing sets, and taking input from multiple sources of design information (e.g., CASE tools and source code) and the described so far presents a potential method for automated design assessment provides the means of automation. An empirical study was then required to consider the efficacy of the method and evaluate the novel features of the tool. A case study was used to explore the approach taken by, and evaluate the effectiveness of, 15 subjects using measures and heuristics to assess the design of a small 00 system(IS classes). This study showed that semantic heuristics tended to highlight significant problems, but where attempts were made to automate these it often led to false problems being identified. This result, along with a previous finding that around half of quality criteria are not automatically assessable at design time, strongly suggeststhat people are still a necessary part of design assessment. The main result of the case study was that the subjects correctly identified 90% of the major design problems and were very positive about their experience of using measurement to support design assessment
    corecore