scholarly journals Software Engineering Paradigm Independent Design Problems, GoF 23 Design Patterns, and Aspect Design

Informatica ◽  
2011 ◽  
Vol 22 (2) ◽  
pp. 289-317
Author(s):  
Žilvinas Vaira ◽  
Albertas Čaplinskas
Author(s):  
Swaroop S. Vattam ◽  
Michael Helms ◽  
Ashok K. Goel

Biologically inspired engineering design is an approach to design that espouses the adaptation of functions and mechanisms in biological sciences to solve engineering design problems. We have conducted an in situ study of designers engaged in biologically inspired design. Based on this study we develop here a macrocognitive information-processing model of biologically inspired design. We also compare and contrast the model with other information-processing models of analogical design such as TRIZ, case-based design, and design patterns.


Author(s):  
Erhan Sezerer ◽  
Samet Tenekeci ◽  
Ali Acar ◽  
Bora Baloğlu ◽  
Selma Tekir

In the field of software engineering, practitioners’ share in the constructed knowledge cannot be underestimated and is mostly in the form of grey literature (GL). GL is a valuable resource though it is subjective and lacks an objective quality assurance methodology. In this paper, a quality assessment scheme is proposed for question and answer (Q&A) sites. In particular, we target stack overflow (SO) and stack exchange (SE) sites. We model the problem of author reputation measurement as a classification task on the author-provided answers. The authors’ mean, median, and total answer scores are used as inputs for class labeling. State-of-the-art language models (BERT and DistilBERT) with a softmax layer on top are utilized as classifiers and compared to SVM and random baselines. Our best model achieves [Formula: see text] accuracy in binary classification in SO design patterns tag and [Formula: see text] accuracy in SE software engineering category. Superior performance in SE software engineering can be explained by its larger dataset size. In addition to quantitative evaluation, we provide qualitative evidence, which supports that the system’s predicted reputation labels match the quality of provided answers.


i-com ◽  
2018 ◽  
Vol 17 (1) ◽  
pp. 91-98
Author(s):  
Dominick Madden ◽  
Horst Schneider ◽  
Kirstin Kohler

Abstract Design patterns are solutions for common design problems used in a number of fields including architecture, software development and user experience design. We compiled a pattern library for the usage of gesture-enabled interactions between different devices with screens, the so called multiscreen context. This library provides simple and intuitive gestures for connecting and disconnecting devices wirelessly as well as gestures for the exchange of data between these devices, like swiping a document from one’s tablet to the tablets of the surrounding colleagues in the same room. The library is the result of a 2.5 years running project in cooperation with three small and medium companies. We compiled the library by conducting an intense literature survey in parallel with several iterations of practical software projects in the multiscreen context. The literature survey inspired the practice-oriented project work. Being involved in software projects enabled us to identify challenges in the design and implementation of the gesture set. Therefore, we generated valuable insight for a comprehensive description of gestural interactions. With our set of patterns, we aim to support interaction designers to choose the appropriate gesture for their given context. The patterns serve as inspiration by showing the different possibilities but also provide guidance how to design and implement a selected gesture for a given context. They help designing the details of an interaction by breaking it down into its smallest parts. To support the developers of these interactions our pattern descriptions are enriched with an Android library containing lifecycle events and the necessary gesture recognition logic. This paper provides an overview of the pattern library. In addition, the structure and the usage of the library is described in more detail with the means of one sample pattern. The pattern library is openly accessible.


2020 ◽  
Author(s):  
Willian N. Oizumi ◽  
Alessandro F. Garcia

Design problems affect most software projects and make their maintenance expensive and impeditive. Thus, the identification of potential design problems in the source code – which is very often the only available and upto-date artifact in a project – becomes essential in long-living software systems. This identification task is challenging as the reification of design problems in the source code tend to be scattered through several code elements. However, stateof-the-art techniques do not provide enough information to effectively help developers in this task. In this work, we address this challenge by proposing a new technique to support developers in revealing design problems. This technique synthesizes information about potential design problems, which are materialized in the implementation under the form of syntactic and semantic anomaly agglomerations. Our evaluation shows that the proposed synthesis technique helps to reveal more than 1200 design problems across 7 industry-strength systems, with a median precision of 71% and a median recall of 78%. The relevance of our work has been widely recognized by the software engineering community through 2 awards and 7 publications in international and national venues.


Author(s):  
Liguo Yu ◽  
Srini Ramaswamy

Design patterns are standardized solutions to commonly encountered problems using the object-oriented programming paradigm. Applying design patterns can speed up software development processes through the reuse of tested, proven templates, or development paradigms. Accordingly, design patterns have been widely used in software industry to build modern software programs. However, as different design patterns are introduced to solve different design problems, they are not necessarily superior to alternative solutions, with respect to all aspects of software design. One major concern is that the inappropriate use of design patterns may unnecessarily increase program complexity, such as class structural quality. Theoretical analysis of the effect of design patterns on software complexity has been widely performed. However, little work is reported to empirically study how design patterns might affect class structural quality. This chapter studies six components from five open-source Java projects and empirically investigates if design patterns can affect class structural quality. The chapter finds that pattern-involved classes are more complex than pattern-free classes and recommends the cautious use of design patterns to avoid unnecessary increases in class complexity and decrease in class structural quality.


Author(s):  
K. Sridhar Patnaik ◽  
Itu Snigdh

Despite the rapid growth in IoT research, a general principled software engineering approach for the systematic development of IoT systems and applications is still missing. Software engineering as a discipline provides the necessary platform to carry on the underlying design, coding, implementation, as well as maintenance of such systems. UML diagrams present a visually comprehensible outlay of the construction of IoT systems. The chapter covers the modelling of IoT systems using UML diagrams. Starting with the architectural design of any IoT system to behavioral aspects is covered in this chapter using a case study of IoT-based remote patient health monitoring system. The diagrams shown in this chapter are the sample diagrams for understanding IoT-based complex systems. The chapter focuses on the work carried out by Franco Zambonelli in context of developing abstract model of an IoT system using software engineering concepts. The chapter also focus on the pioneer work carried by J. F. Peters in intelligent system design patterns for robotic devices using pattern classification.


Author(s):  
Sebastian Günther

Internal DSLs are a special kind of DSLs that use an existing programming language as their host. In this chapter, the author explains an iterative development process for internal DSLs. The goals of this process are: (1) to give developers a familiar environment in which they can use known and proven development steps, techniques, tools, and host languages, (2) to provide a set of repeatable, iterative steps that support the continuous adaptation and evolution of the domain knowledge and the DSL implementation, and (3) to apply design principles that help to develop DSLs with essential properties and to use host language independent design patterns to plan and communicate the design and implementation of the DSL. The process consists of three development steps (analysis, language design, and language implementation) and applies four principles: open form, agile and test-driven development, design pattern knowledge, and design principle knowledge.


Author(s):  
Youmna Bassiouny ◽  
Rimon Elias ◽  
Philipp Paulsen

Computational design takes a computer science view of design, applying both the science and art of computational approaches and methodologies to design problems. This article proposes to convert design methodologies studied by designers into rule-based computational design software and help them by providing suggestions for designs to build upon given a set of primitive shapes and geometrical rules. iPattern is a pattern-making software dedicated to designers to generate innovative design patterns that can be used in a decorative manner. They may be applied on wallpapers, carpets, fabric textiles, three-dimensional lanterns, tableware, etc. The purpose is to create a modern pattern design collection that adds a new essence to the place. In order to generate creative design patterns, primitive shapes and geometrical rules are used. The generated design pattern is constructed based on the grid of the Flower of Life of the sacred geometry or similar grids constructed using primitive shapes (rectangles, squares and triangles) combined in the layout of the Flower of Life.


2009 ◽  
pp. 773-796
Author(s):  
Manuel Kolp ◽  
Stéphane Faulkner ◽  
Yves Wautelet

Multi-agent systems (MAS) architectures are gaining popularity over traditional ones for building open, distributed, and evolving software required by today’s corporate IT applications such as e-business systems, Web services, or enterprise knowledge bases. Since the fundamental concepts of multi-agent systems are social and intentional rather than object, functional, or implementationoriented, the design of MAS architectures can be eased by using social patterns. They are detailed agent-oriented design idioms to describe MAS architectures composed of autonomous agents that interact and coordinate to achieve their intentions, like actors in human organizations. This article presents social patterns and focuses on a framework aimed to gain insight into these patterns. The framework can be integrated into agent-oriented software engineering methodologies used to build MAS. We consider the Broker social pattern to illustrate the framework. An overview of the mapping from system architectural design (through organizational architectural styles), to system detailed design (through social patterns), is presented with a data integration case study. The automation of creating design patterns is also discussed.


Author(s):  
Javier Garzas ◽  
Mario Piattini

In order to establish itself as a branch of engineering, a profession must understand its accumulated knowledge. In this regard, software engineering has advanced greatly in recent years, but it still suffers from the lack of a structured classification of its knowledge. In this sense, in the field of object-oriented micro-architectural design designers have accumulated a large body of knowledge and it is still have not organized or unified. Therefore, items such as design patterns are the most popular example of accumulated knowledge, but other elements of knowledge exist such as principles, heuristics, best practices, bad smells, refactorings, and so on, which are not clearly differentiated; indeed, many are synonymous and others are just vague concepts.


Sign in / Sign up

Export Citation Format

Share Document