Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 10,000 papers for “Software Engineering and Design Patterns”

Supply of engineering techniques and software design patterns in psychoanalysis and psychometrics sciences

Omid Shokrollahi · arXiv (Cornell University) · 2021

The purpose of this study is to introduce software technologies and models and artificial intelligence algorithms to improve the weaknesses of CBT (Cognitive Behavior Therapy) method in psychotherapy. The presentation method for this purpose is the implementation of psychometric experiments in which the hidden human variables are inferred from the answers of tests. In this report, we describe the various models of Item Response Theory and measure the hidden components of ability and complementary parameters of the reality of the individual's situation. Psychometrics, selecting the appropriate model and estimating its parameters have been introduced and implemented using R language developed libraries. Due to the high flexibility of the Multi variant Rasch mixture Model, machine learning has been applied to this method of data modeling. BIC and CML were used to determine the number of hidden classes of the model and its parameters respectively, to obtain Measurement Invariance. The sensitivity of items to hidden attributes varies between groups (DIF), so methods for detecting it are introduced. This simulation is done based on the Verbal Aggression Dataset. We also analyze and compile a reference model based on this certificate based on the discovered patterns of software engineering. Other achievements of this study are related to providing a solution to explain the reengineering problems of the mind, by preparing an identity card for the clients by an ontology. Finally, applying the developed knowledge in the form of system thinking and recommended patterns in software engineering during the treatment process is pointed out.

Cited by 0Open access

Designing LLM-based Multi-Agent Systems for Software Engineering Tasks: Quality Attributes, Design Patterns and Rationale

Yangxiao Cai, Ruiyin Li, Peng Liang et al. · ArXiv.org · 2025

As the complexity of Software Engineering (SE) tasks continues to escalate, Multi-Agent Systems (MASs) have emerged as a focal point of research and practice due to their autonomy and scalability. Furthermore, through leveraging the reasoning and planning capabilities of Large Language Models (LLMs), the application of LLM-based MASs in the field of SE is garnering increasing attention. However, there is no dedicated study that systematically explores the design of LLM-based MASs, including the Quality Attributes (QAs) on which designers mainly focus, the design patterns used by designers, and the rationale guiding the design of LLM-based MASs for SE tasks. To this end, we conducted a study to identify the QAs that LLM-based MASs for SE tasks focus on, the design patterns used in the MASs, and the design rationale for the MASs. We collected 94 papers on LLM-based MASs for SE tasks as the source. Our study shows that: (1) Code Generation is the most common SE task solved by LLM-based MASs among ten identified SE tasks, (2) Functional Suitability is the QA on which designers of LLM-based MASs pay the most attention, (3) Role-Based Cooperation is the design pattern most frequently employed among 16 patterns used to construct LLM-based MASs, and (4) Improving the Quality of Generated Code is the most common rationale behind the design of LLM-based MASs. Based on the study results, we presented the implications for the design of LLM-based MASs to support SE tasks.

Cited by 0Open access

Work in Progress: Design and implementation of a microservices architecture for project-based learning of software engineering patterns

Hiram Maximiliano Muñoz Ramirez, Carlos Vázquez Hurtado · 2023

Industry 4.0 has revolutionized how factories operate, integrating new advanced technologies. This progress must be matched with innovation in engineering education, as these new technologies demand engineers with multidisciplinary skills. Microservices architecture offers a chance to implement project-based learning courses that cater to an individual's skills while exposing them to other disciplines' concepts and methods. This paper explores the implementation of such a project while implementing a security camera system for a Smart Factory, serving as a showcase of the strengths that project-based learning offers. Three microservices were successfully developed, with another three microservices pending further development. Project-based learning offered multidisciplinary learning opportunities during the construction of the services.

Cited by 0

Towards a Catalog of OWL-based Ontology Design Patterns

Aldo Gangemi, Asuncíon Gómez-Pérez, Valentina Presutti et al. · UPM Digital Archive (Technical University of Madrid) · 2007

Taking in consideration the works on software patterns in Software Engineering and with the aim of introducing ontology design patterns in the Ontology Engineering field for helping software engineers and ontology practicioners to develop ontologies faster, cheaper and better, in this paper we propose a general template for describing ontology design patterns (based on the well-accepted format for software engineering patterns). We also provide a first version of a catalog of ontology design patterns (exemplified with an OWL DL implementation) organized into three different categories: logical patterns, architectural patterns and content patterns.

Cited by 22Open access

Software Engineering Design Issues

Accenture ,India, Soma Akhil, Soma Anvesh · International Journal of Engineering Trends and Technology · 2014

Research in software engineering is concerned with the automation and the enhancement of the processes of building some computer related application systems.In this paper, we mentioned some significant software engineering problems from the context of developing very large information systems.The aim of the paper is to investigate applicability of object-oriented software design patterns in the context of aspect-oriented design.The main assumption is that there exist design patterns that solve software engineering paradigm independent design problems and that such patterns, in the contrast to the patterns solving paradigm-specific design problems, can be expressed in terms of any software engineering paradigm.

Cited by 0

An empirical study of the impact of software design patterns on code quality

Vihanga Piyawardhana, Tharaka Madhuwantha, Lahiru Chandika et al. · 2023

<p>Software design patterns are commonly used in software engineering to provide standardized solutions for common design problems. Despite their popularity, there is limited empirical research on the impact of using these patterns on the quality of software code. This study aims to investigate the relationship between software design patterns and code quality through an empirical study. A quantitative approach is used to collect data from a sample of experienced software developers. The study found that the use of software design patterns is positively associated with code quality, as reported by the developers. Specifically, the use of design patterns reduces the complexity of software code and improves its maintainability, which contributes to higher levels of code quality. The study also highlights the importance of experience with software design patterns in improving code quality. These findings have implications for software engineering practice and education and suggest that software developers should consider using software design patterns to improve code quality. </p>

Cited by 0Open access

An empirical study of the impact of software design patterns on code quality

Vihanga Piyawardhana, Tharaka Madhuwantha, Lahiru Chandika et al. · 2023

<p>Software design patterns are commonly used in software engineering to provide standardized solutions for common design problems. Despite their popularity, there is limited empirical research on the impact of using these patterns on the quality of software code. This study aims to investigate the relationship between software design patterns and code quality through an empirical study. A quantitative approach is used to collect data from a sample of experienced software developers. The study found that the use of software design patterns is positively associated with code quality, as reported by the developers. Specifically, the use of design patterns reduces the complexity of software code and improves its maintainability, which contributes to higher levels of code quality. The study also highlights the importance of experience with software design patterns in improving code quality. These findings have implications for software engineering practice and education and suggest that software developers should consider using software design patterns to improve code quality. </p>

Cited by 1Open access

A Review of Approaches to Detecting Software Design Patterns

Jameleh Asaad, Elena Аvksentieva · SHILAP Revista de lepidopterología · 2024

Design patterns play a crucial role in modern software engineering, providing reusable solutions to common design challenges. Among the most influential collections of design patterns is the Gang of Four (GoF) patterns, which offer a timeless framework for addressing recurring design problems. This article investigates the enduring impact of GoF design patterns on software development practices, examining their utilization in contemporary software projects and frameworks. Additionally, this study conducts a thorough analysis of various design pattern detection approaches, evaluating their effectiveness and implications in real-world software development contexts. By combining theoretical frameworks with empirical studies, we aim to provide valuable insights into the role of design patterns in software engineering and offer guidance on selecting appropriate detection methods for software project.

Cited by 6Open access

Design patterns. Between programming and software design

Denzler, Christoph, Gruntz, Dominik · Institutional Repository (IHS Vienna) · 2008

In computer science curricula the two areas programming and software engineering are usually separated. In programming students learn an object oriented language and then deepen their knowledge in other languages, algorithms and data structures. On the other hand software engineering starts with discussing processes and then addresses topics like requirements engineering, software design and software architectures. Design patterns are on the border of these two areas and can be covered from both sides: either as an advanced programming course or as an application of software design and micro architectures. In this paper we present courses on design patterns and on software design which try to bridge this gap.

Cited by 0Open access

Sustainable software design with design patterns

Adelino R. F. Silva · 1997

Researchers in software engineering and information engineering have been struggling to modernize software life-cycle processes and to improve the quality of software. Recently, several methodologies and organizational changes have been put forward to improve systematic software specification and reuse. Design patterns offer a broader view helping us think at the architectural level. In this paper, several architectural abstractions guiding the development and reuse cycle in the production of complex software systems are introduced. We follow the design patterns methodology in the description and presentation of domain specific patterns taking the open distributed processing domain as reference. Several design patterns illustrating the mechanisms used for capturing design discipline knowledge are presented.

Cited by 0Open access

[Title pages]

2016

The following topics are dealt with: software engineering research, management and applications; component-based software engineering; communication systems and networks; data mining and knowledge recovery; design patterns and frameworks; requirements engineering; middleware design techniques; mobile/wireless computing; reengineering, reverse engineering; reliability modeling and analysis; computer & software engineering; process management & improvement; distributed intelligent systems; software architecture; image processing; and economic and financial systems.

Cited by 0

ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design

Jules White, Sam Hays, Quchen Fu et al. · arXiv (Cornell University) · 2023

This paper presents prompt design techniques for software engineering, in the form of patterns, to solve common problems when using large language models (LLMs), such as ChatGPT to automate common software engineering activities, such as ensuring code is decoupled from third-party libraries and simulating a web application API before it is implemented. This paper provides two contributions to research on using LLMs for software engineering. First, it provides a catalog of patterns for software engineering that classifies patterns according to the types of problems they solve. Second, it explores several prompt patterns that have been applied to improve requirements elicitation, rapid prototyping, code quality, refactoring, and system design.

Cited by 39Open access

A Boxology of Design Patterns forHybrid Learningand Reasoning Systems

Frank van Harmelen, Annette ten Teije · Journal of Web Engineering · 2019

We propose a set of compositional design patterns to describe a large variety of systems that combine statistical techniques from machine learning with symbolic techniques from knowledge representation. As in other areas of computer science (knowledge engineering, software engineering, ontology engineering, process mining and others), such design patterns help to systematize the literature, clarify which combinations of techniques serve which purposes, and encourage re-use of software components. We have validated our set of compositional design patterns against a large body of recent literature.

Cited by 58Open access

Hierarchical Clustering Based Design Patterns Identification

István Gergely Czibula · 2015

Abstract: Design patterns have attracted significant attention in software engineering in the last period. An important reason behind this is that design patterns are potentially useful in both development of new, and comprehension of existing object-oriented design, especially for large legacy systems without sufficient documentation. That is why the problem of design patterns identification is very important. Automating the detection of design pattern instances could be of significant help to the process of reverse engineering large software systems. In this paper we aim at introducing a search based approach for identifying instances of design patterns in a software system. An experimental evaluation of our approach is also provided.

Cited by 5

On the Role of Design Patterns in Quality-Driven Re-engineering £

2008

Design patterns have been widely adopted and well investigated by the software engineering community over the past decade. However, their primary use is still associated with forward engineering and the design phase of the software life-cycle. In this paper, we would like to examine design patterns from a different perspective namely, their classification and usage for software re-engineering and restructuring. Specifically, twenty three design patterns originally presented in the “Gang of Four ” book are reclassified for re-engineering purposes into two major categories, primitive and complex. Moreover, their relationships and their impact to specific re-engineering objectives are presented in terms of a layered model that is denoted by six different relations namely: uses, refines, conflicts, is-similar-to, combines-with, and requires. The paper also discusses how the classification scheme can be applied for the re-engineering and restructuring of object-oriented systems. 1

Cited by 0

Design Patterns for Generic Object-Oriented Scientific Software

Trevor Cickovski Cse, Trevor Cickovski · 2005

Design patterns in software engineering have been proven to offer great benefits, and scientific software is no exception. Especially as scientific software becomes more object-oriented, the importance of design patterns cannot be underestimated. We present a set of design patterns for scientific computing implemented in C++, apply them to two example object-oriented frameworks, and demonstrate their application benefits in terms of speed, memory consumption, flexibility, and software maintenance.

Cited by 0

G: Reusable Idioms and Patterns in Graph Transformation Languages 2004

Aditya Agrawal, Attila Vizhanyo, Zsolt Kalmar et al. · 2004

Abstract. Software engineering tools based on Graph Transformation techniques are becoming available, but their practical applicability is somewhat reduced by the lack of idioms and design patterns. Idioms and design patterns provide prototypical solutions for recurring design problems in software engineering, but their use can be easily extended into the graph transformation systems. In this paper we briefly present a simple graph transformations language: GREAT, and show how typical design problems that arise in the context of model transformations can be solved using its constructs. These solutions are similar to software design patterns, and intend to serve as the starting point for a more complete collection. 1

Cited by 0

From Theory to Practice: Applying Design Patterns in Real-World Software Projects

Ashok Lama · Zenodo (CERN European Organization for Nuclear Research) · 2025

ABSTRACT In the field of software engineering, design patterns serve as reusable solutions to common challenges encountered in software architecture and design. Developers can use these patterns to address challenges with software maintainability, scalability, and reusability because they contain best practices that have been improved over time. Design patterns improve communication among developers by standardizing the approach to problem-solving and facilitating the creation of reliable and effective software solutions. This study offers a thorough examination of the most well-known design patterns, classifying them into three main categories: structural, behavioral, and creational patterns. Creational patterns guarantee that systems are adaptable and reusable by concentrating on object creation procedures. By addressing the makeup of classes and objects, structural patterns facilitate effective integration and organization. In software systems, behavioral patterns promote efficient communication and teamwork by highlighting the connection and accountability among objects. The paper also addresses the important role that design patterns play in creating high-performing and flexible applications. It illustrates best practices for putting these patterns into effect and provides examples of their use in other fields to show how adaptable and useful they are. By warning developers against over-engineering solutions or using patterns incorrectly, the paper also discusses the possible dangers of misusing design patterns. In order to enable practitioners to make well-informed architectural choices that improve the caliber and durability of their software projects, this article offers insights and recommendations for both inexperienced and seasoned developers. Keywords Software Design, Design Patterns, Software Architecture, Object-Oriented Programming, Creational Patterns, Structural Patterns, Behavioral Patterns, Reusability, Maintainability, Best Practices

Cited by 0Open access

Teaching object-oriented development with emphasis on pattern application

Lew Della, David Clark · 2000

One of the most significant recent developments in software engineering has been the widespread adoption of design patterns. Design patterns enable software developers to incorporate well proven solutions to design problems in their software. This makes their software more flexible and reusable. Design patterns, however, are not easy to learn. They are often presented in complex contexts with partially coded examples. Further, there is no standard naming convention, with designers using very different names for quite similar patterns. These problems limit the accessibility of design patterns to beginning students.

Cited by 20Open access