41 research outputs found

    A Pattern-Language for Self-Healing Internet-of-Things Systems

    Get PDF
    Internet-of-Things systems are assemblies of highly-distributed and heterogeneous parts that, in orchestration, work to provide valuable services to end-users in many scenarios. These systems depend on the correct operation of sensors, actuators, and third-party services, and the failure of a single one can hinder the proper functioning of the whole system, making error detection and recovery of paramount importance, but often overlooked. By drawing inspiration from other research areas, such as cloud, embedded, and mission-critical systems, we present a set of patterns for self-healing IoT systems. We discuss how their implementation can improve system reliability by providing error detection, error recovery, and health mechanisms maintenance. (c) 2020 ACM

    Designing Functional Safety Systems: A Pattern Language Approach

    Get PDF
    Human beings, at least most of us, want to feel and be safe. This is one of the fundamental needs of an organism. However, several of the processes and machines used in current societies introduce hazards that could and can harm us causing unnecessary pain and financial losses. Still, our modern societies need these processes and machines to operate so we cannot really be without them. Fortunately, there are ways to reduce risks introduced by systems around us to a tolerable level.This thesis considers the design and development of safety-related systems and safetyrelated parts of control systems referred to as functional safety systems. These systems implement safety functions that reduce risks introduced by machines, processes, and other systems. That is, the functions affect the system under control so that the likelihood of occurrence or severity of consequences are reduced.The design and development of safety systems is typically regulated by laws and standards. This increases the cost of safety system development and therefore eventually also the product in which it is incorporated. However, from a manufacturer viewpoint, safety in all its forms is also a potential asset for the companies developing, producing, and selling the systems. An increase in efficiency to develop and design safety systems offers the potential for a larger margin or increased sales due to the reduced price.One way to support design and development efficiency is to apply good design methods and solutions in form of design patterns. In this thesis, a design pattern language for the development and design of functional safety systems is introduced. The purpose of the language is to support the designers in their task to design and implement safety functions in machines and processes. The language considers various aspects of the development and design of safety systems starting from the initial phases of hazard and risk analysis, followed by the selection of the hazard and risk reduction methods, and concluding with the hardware and software structure, functionality, and design principles considerations. Finally, a functional safety system may, and often does, co-exist and co-operate with a control system. Therefore, a part of the pattern language takes this aspect into account.To compile the design pattern language and the included patterns a design science research approach complemented with grounded theory approach is applied The data to identify the patterns is collected from literature, personal experience, interviews, and discussions with industry representatives and people engaged with the design or use of systems including safety systems or functionality. Like the patterns have evolved during the research, so has the approach to identify, document, and process the patterns

    A mapping study on documentation in Continuous Software Development

    Get PDF
    Context: With an increase in Agile, Lean, and DevOps software methodologies over the last years (collectively referred to as Continuous Software Development (CSD)), we have observed that documentation is often poor. Objective: This work aims at collecting studies on documentation challenges, documentation practices, and tools that can support documentation in CSD. Method: A systematic mapping study was conducted to identify and analyze research on documentation in CSD, covering publications between 2001 and 2019. Results: A total of 63 studies were selected. We found 40 studies related to documentation practices and challenges, and 23 studies related to tools used in CSD. The challenges include: informal documentation is hard to understand, documentation is considered as waste, productivity is measured by working software only, documentation is out-of-sync with the software and there is a short-term focus. The practices include: non-written and informal communication, the usage of development artifacts for documentation, and the use of architecture frameworks. We also made an inventory of numerous tools that can be used for documentation purposes in CSD. Overall, we recommend the usage of executable documentation, modern tools and technologies to retrieve information and transform it into documentation, and the practice of minimal documentation upfront combined with detailed design for knowledge transfer afterwards. Conclusion: It is of paramount importance to increase the quantity and quality of documentation in CSD. While this remains challenging, practitioners will benefit from applying the identified practices and tools in order to mitigate the stated challenges

    The video game asset pipeline - A pattern approach to visualization

    Get PDF
    Video games consist of virtual worlds modelled as an approximation of either a real or imaginary environment. The amount of content required to populate the environments for Triple-A (AAA) video games doubles every few years to satisfy the expectations of the end-users. For this reason, the art and design discipline now constitute the majority of those employed in a video game studio. The artists use Digital Content Creation (DCC) tools to design and create their content; tools not originally designed for video game asset creation. Ultimately the artists require to preview their content in the form of source assets in the runtime environment, the game engine, to ensure they provide an accurate rendering of their original vision. However, there exists a barrier to achieve this workflow; the original source assets are persisted in a proprietary format, information rich to handle future edits, and the final runtime environment requires the assets to be lightweight ready for fast and efficient loading into the game engine. The video game industry has solved this problem by introducing a fast and efficient workflow known as the asset pipeline. The asset pipeline is recognized within video games technology as a general reusable solution to the common problem of converting source assets into their final runtime form as expected by the runtime game engine. Although the asset pipeline defines a series of stages that all content must follow from inception to their final realization a single solution does not exist to satisfy all projects. Likewise, within the discourse of patterns, a pattern is defined as a general reusable solution to a problem operating under a certain context. Originating in the field of architecture (Alexander, 1979) patterns have now been discovered and mined in numerous domains including software engineering (Gamma et al., 1995). Within the field of software engineering patterns exists at several levels of abstraction including architectural, design-level and low-level idioms. The world of video games technology and patterns intersects in the form of one set of patterns identified by Nystrom (2014), although these are very much low-level idioms and certainly do not encompass the challenge of the asset pipeline as found in video game production. This research addresses this shortfall and formalizes the asset pipeline into a catalogue of patterns for use both within the video game industry and to satisfy the wider audience of interactive real-time visualization in general. Interactive real-time visualizations consist of both the navigation and viewing application, executing in a runtime environment, and the digital content providing the data source for the visualization. Their workflow production draws parallels with that of the video game industry. The designers of such visualizations use the iterative process of create, review and modify. Creation of the source asset within the DCC tool, preview within the visualization runtime and subsequent modification in the DCC tool. However, the video game industry is tempered by a number of problems hindering proliferation of the asset pipeline as a general reusable solution. The video game industry is shrouded in secrecy preventing the natural dissemination of information. Software developers operating within the industry are subject to Non-Disclosure Agreements (NDAs) protecting intellectual property invested in software tools such as the asset pipeline. The video game industry is relatively young, being fifty years old, and as such a set of agreed-upon terms and their definition has been slow to develop. This is compounded by the asset pipeline technology operating at the fault line of two disciplines: the engineers developing the runtime and the artists creating digital content. In such an interdisciplinary field language barriers exist. The characteristics and properties of patterns address these problems. They identify, name and provide a common vocabulary for specific problem-solution abstractions. They capture expertise and make knowledge accessible to non-experts. The communication of which enables domain independent solutions.This novel research formalizes the asset pipeline into a catalogue of patterns consisting of an architectural pattern named the ASSET PIPELINE and the component patterns of DCC EXPORT, INTERMEDIATE FILE FORMAT and ASSET BUILD PROCESS. Under the iterative spiral model methodology aligned to the framework of the Pattern Languages of Programs(PLoP) workflow. This involves the unique approach of shepherding, pattern mining, a writers’ workshop and pattern writing. All of which culminated in the publication of the pattern catalogue in the Association for Computing Machinery (ACM) for wider consumption and use in further domains of visualization.The asset pipeline catalogue was instantiated and applied in two domains: architectural visualization (ArchViz) and graph visualization (GraphViz) under the process of sequential application of the pattern components. This resulted in real-time exploratory visualizations that not only validate the pattern application but serve for wider research opportunities in the future. Such opportunities include expansion of the pattern language, refinement of the instantiated visualizations, development of a software framework and further pattern mining in other avenues of games technology

    Contribution Barriers to Open Source Projects

    Get PDF
    Contribution barriers are properties of Free/Libre and Open Source Software (FLOSS) projects that may prevent newcomers from contributing. Contribution barriers can be seen as forces that oppose the motivations of newcomers. While there is extensive research on the motivation of FLOSS developers, little is known about contribution barriers. However, a steady influx of new developers is connected to the success of a FLOSS project. The first part of this thesis adds two surveys to the existing research that target contribution barriers and motivations of newcomers. The first exploratory survey provides the indications to formulate research hypotheses for the second main survey with 117 responses from newcomers in the two FLOSS projects Mozilla and GNOME. The results lead to an assessment of the importance of the identified contribution barriers and to a new model of the joining process that allows the identification of subgroups of newcomers affected by specific contribution barriers. The second part of the thesis uses the pattern concept to externalize knowledge about techniques lowering contribution barriers. This includes a complete categorization of the existing work on FLOSS patterns and the first empirical evaluation of these FLOSS patterns and their relationships. The thesis contains six FLOSS patterns that lower specific important contribution barriers identified in the surveys. Wikis are web-based systems that allow its users to modify the wiki's contents. They found on wiki principles with which they minimize contribution barriers. The last part of the thesis explores whether a wiki, whose content is usually natural text, can also be used for software development. Such a Wiki Development Environment (WikiDE) must fulfill the requirements of both an Integrated Development Environment (IDE) and a wiki. The simultaneous compliance of both sets of requirements imposes special challenges. The thesis describes an adapted contribution process supported by an architecture concept that solves these challenges. Two components of a WikiDE are discussed in detail. Each of them helps to lower a contribution barrier. A Proof of Concept (PoC) realization demonstrates the feasibility of the concept

    Architecture decisions:the next step

    Get PDF

    21st Annual Fulbright Symposium - Harmony and Dissonance in International Law

    Get PDF
    Conference proceedings from The 21st Annual Fulbright Symposium on International Legal Problems
    corecore