English
Related papers

Related papers: Design Obligations for Software, with Examples fro…

200 papers

Decision-making is a key software engineering skill. Developers constantly make choices throughout the software development process, from requirements to implementation. While prior work has studied developer decision-making, the choices…

Software Engineering · Computer Science 2023-01-25 Jenny T. Liang , Maryam Arab , Minhyuk Ko , Amy J. Ko , Thomas D. LaToza

Modern software-based systems operate under rapidly changing conditions and face ever-increasing uncertainty. In response, systems are increasingly adaptive and reliant on artificial-intelligence methods. In addition to the ubiquity of…

Software Engineering · Computer Science 2024-08-27 Nelly Bencomo , Jordi Cabot , Marsha Chechik , Betty H. C. Cheng , Benoit Combemale , Andrzej Wąsowski , Steffen Zschaler

Computer systems are so complex, so they are usually designed and analyzed in terms of layers of abstraction. Complexity is still a challenge facing logical reasoning tools that are used to find software design flaws and implementation…

Software Engineering · Computer Science 2021-06-18 Ramy Shahin

Software architecture knowledge transfer is essential for software development, but related documentation is often incomplete or ambiguous, making oral explanations a common means. Our broader aim is to explore how such explanations might…

Software Engineering · Computer Science 2025-09-03 Satrio Adi Rukmono , Filip Zamfirov , Lina Ochoa , Floris Pex , Michel Chaudron

Current dark pattern research tells designers what not to do, but how do they know what to do? In contrast to prior approaches that focus on patterns to avoid and their underlying principles, we present a framework grounded in positive…

Human-Computer Interaction · Computer Science 2024-03-05 Evan Caragay , Katherine Xiong , Jonathan Zong , Daniel Jackson

Context: Software architecture is a knowledge-intensive field. One mechanism for storing architecture knowledge is the recognition and description of architectural patterns. Selecting architectural patterns is a challenging task for…

Software Engineering · Computer Science 2020-05-19 Siamak Farshidi , Slinger Jansen , Jan Martijn van der Werf}

The traditional understanding of stakeholders requirements is that they express desirable relationships among phenomena in the relevant environment. Historically, software engineering research has tended to focus more on the problems of…

Software Engineering · Computer Science 2012-09-10 Amit K. Chopra

Software systems are increasingly making decisions on behalf of humans, raising concerns about the fairness of such decisions. Such concerns are usually attributed to flaws in algorithmic design or biased data, but we argue that they are…

Software Engineering · Computer Science 2021-04-09 Ali Farahani , Liliana Pasquale , Amel Bennaceur , Thomas Welsh , Bashar Nuseibeh

Changes, they use to say, are the only constant in life. Everything changes rapidly around us, and more and more key to survival is the ability to rapidly adapt to changes. This consideration applies to many aspects of our lives. Strangely…

Software Engineering · Computer Science 2015-04-16 Vincenzo De Florio , Chris Blondia

The dominant view of design in information systems and software engineering, the Rational Design Paradigm, views software development as a methodical, plan-centered, approximately rational process of optimizing a design candidate for known…

Software Engineering · Computer Science 2013-03-26 Paul Ralph

Software development comprises complex tasks which are performed by humans. It involves problem solving, domain understanding and communication skills as well as knowledge of a broad variety of technologies, architectures, and solution…

Software Engineering · Computer Science 2019-10-22 Christoph Matthies , Guenter Hesse

The main problems of Software Engineering appear as a result of incompatibilities. For example, the quality of organization of the production process depends on correspondence with existent resources and on a common understanding of project…

Software Engineering · Computer Science 2009-03-13 Kirill A Sorudeykin

This paper is based on and advocates the trend in software engineering of extending the use of software patterns as means of structuring solutions to software development problems (be they motivated by best practice or by company interests…

Software Engineering · Computer Science 2007-05-23 Jean-Marc Rosengard , Marian Ursu

Discussions of software design often refer to using "design spaces" to describe the spectrum of available design alternatives. This supports design thinking in many ways: to capture domain knowledge, to support a wide variety of design…

Software Engineering · Computer Science 2024-07-29 Mary Shaw , Marian Petre

Defining process standards by integrating, harmonizing, and standardizing heterogeneous and often implicit processes is an important task, especially for large development organizations. However, many challenges exist, such as limiting the…

Software Engineering · Computer Science 2014-02-03 Ove Armbrust , Masafumi Katahira , Yuko Miyamoto , Jürgen Münch , Haruka Nakao , Alexis Ocampo

Interfaces are recognized as an important mechanism to define contracts governing interactions between semi-independent software modules. Well-designed interfaces significantly reduce software complexity and ease maintainability by…

Software Engineering · Computer Science 2013-10-01 Hani Abdeen , Osama Shata , Abdelkarim Erradi

Writing parallel codes is difficult and exhibits a fundamental trade-off between abstraction and performance. The high level language abstractions designed to simplify the complexities of parallelism make certain assumptions that impacts…

Programming Languages · Computer Science 2020-10-28 Nick Brown , Ludovic Capelli , J. Mark Bull

Object Oriented Design methodology is an emerging software development approach for complex systems with huge set of requirements. Unlike procedural approach, it captures the requirements as a set of data rather than services, encapsulated…

Software Engineering · Computer Science 2014-02-12 Poornima. U. S. , Suma. V , Vasanth Kumar. H

Requirements engineering plays a critical role in developing software systems. One of the most difficult tasks in this process is identifying functional requirements. A critical problem in many projects is missing requirements until late in…

Software Engineering · Computer Science 2020-04-02 Sabah Al-Fedaghi

The principle of abstraction guides the design of interactive systems, yet we lack a conceptual framework to understand how it shapes interaction design. Existing models, such as the gulfs of execution and evaluation, do not explicitly…

Human-Computer Interaction · Computer Science 2026-05-13 Bryan Min , Sangho Suh , Jim Hollan , Haijun Xia