software design

Designs and specifies the structure and behavior of software systems by defining modules, components, interfaces, data structures, and their interactions; produces design artifacts (diagrams, models, API specs) that capture responsibilities and constraints. Analyzes and documents trade-offs among performance, scalability, maintainability, security, and usability to guide implementation and evolution.

softwaredesign

Recent Skill Trend

Momentum and market value over time
Trending
Score
No comparison yet
-0.06
Oct 01, 2026Oct 01, 2026
Career
Value
No comparison yet
$228K/year
Oct 01, 2026Oct 01, 2026

Recommended Survey Paper

Quick overview of the field
View more

Must-Read Papers

Most classic and influential ideas
View more

In software design, paradigm-implied semantic expectations—such as data abstraction consistency and feedback-control closed-loop behavior—are often left implicit, leading to design deviations and verification challenges. To address this, we introduce the concept of *design obligations*: explicit, logically formalizable, and verifiable specifications that codify such implicit constraints inherent to design paradigms. Leveraging formal modeling and paradigm semantics analysis, we establish two obligation frameworks—one for data-abstraction-based systems and another for feedback-driven adaptive systems—precisely capturing their core semantic requirements. We demonstrate that common design flaws stem from obligation violations and show how these obligations enable rigorous compliance verification and pedagogical application. This work bridges the semantic gap between design intent and implementation, providing both theoretical foundations and a methodological framework for paradigm-driven design assurance.

Addressing implicit or informal design expectations in software paradigms.Ensuring software designs meet semantic expectations beyond syntax.Introducing 'design obligations' to enforce proper paradigm use.

How to Define Design in Industrial Control and Automation Software

Jul 13, 2025
AH
Aydin Homay
🏛️ Technische Universität Dresden

Industrial Control and Automation Software (iCAS) suffers from ambiguous design concepts and a lack of foundational design theory, leading to empiricism and inconsistent engineering practices. Method: This study systematically introduces design theory to iCAS for the first time, establishing a scientifically grounded design-definition framework. Through interdisciplinary literature review and theoretical analysis, it clarifies the ontological boundaries, core semantics, and quality criteria of design; rigorously distinguishes “design activity” from “design language”; and proposes a novel design balance mechanism reconciling system evolvability with real-time operational constraints. Contribution/Results: The work yields a reusable design metatheory for iCAS software engineering, enhancing design process standardization, traceability, and innovation capacity. It advances the field from experience-driven practice toward theory-guided development, providing principled foundations for systematic design methodology and implementation pathways.

Balance operational and evolutionary concerns in designDefine design scientifically in industrial control softwareDistinguish ad-hoc vs systematic design approaches

A Systematic Mapping Study on Contract-based Software Design for Dependable Systems

May 12, 2025
FF
Fazli Faruk Okumus
🏛️ AImotion Bavaria | Technische Hochschule Ingolstadt

Contract-based design (CbD) lacks systematic empirical evidence supporting its application in trustworthy software systems. Method: This study conducts the first systematic mapping study (SMS) of CbD across the full lifecycle and multiple dimensions for trustworthy systems, employing tri-database collaborative retrieval, collaborative review, and voting-based screening to analyze 288 primary studies via thematic coding and evidence aggregation. Contribution/Results: The study clarifies the breadth and depth of CbD adoption across domains, quantitatively assesses domain maturity distributions, and identifies critical gaps among theoretical modeling, automated verification, and industrial practice. It proposes six empirically grounded, verifiable research directions and delivers the first evidence-based CbD methodology framework and practical guidelines for trustworthy software engineering.

Conducting a systematic mapping study on Contract-based Design for dependable systemsIdentifying research gaps and future directions in CbD for software dependabilityProviding an evidence-based overview of CbD's practical feasibility

This study addresses the lack of systematic, large-scale analyses of structural properties in software feature models, which has hindered the understanding and evolution of variability models. For the first time, it systematically applies large-scale network analysis to 5,709 variability models drawn from 20 repositories. By constructing graphs capturing transitive dependencies and conflicts among features, and integrating graph modeling with network-theoretic and statistical analyses, the work uncovers cross-domain structural commonalities—such as dependency dominance, high centralization, and characteristic degree distributions—as well as domain-specific deviations. These findings provide novel empirical insights and a foundation for identifying pivotal features, guiding modular decomposition, and assessing structural fragility in variability-intensive systems.

feature modelsnetwork analysissoftware configuration

Establishing tool support for a concept DSL

Mar 07, 2025
NK
Nikolaj Kuhne Jakobsen
🏛️ Aarhus University

To address the challenge in software design where abstract models struggle to simultaneously achieve intuitiveness, integrability, and code translatability, this paper introduces Conceptual—a novel behavioral modeling domain-specific language (DSL) grounded in self-contained, highly reusable “concepts.” Methodologically, it formalizes the DSL’s semantics based on concepts, establishes a rigorous semantic mapping from Conceptual to Alloy to leverage Alloy’s formal verification capabilities, and implements a VS Code–based prototype toolchain supporting syntax highlighting, parsing, and model transformation. Contributions include: (1) the first formal semantics for a concept-based DSL; (2) a sound, executable translation to Alloy enabling automated consistency checking; and (3) an integrated development environment demonstrating practical usability. Empirical evaluation shows that Conceptual accurately captures design intent across diverse domains; its prototype compiler has successfully detected multiple specification errors reported in prior literature, thereby validating its expressive power, logical consistency, and engineering feasibility.

Develops a DSL for modeling software system behavior.Implements compiler for Alloy analysis tool integration.Proposes mapping strategy from Conceptual to Alloy language.

Latest Papers

What's happening recently
View more

This study addresses the challenge of quantifying the complexity and cost induced by external requirement changes when detailed knowledge of a system’s internal logic is unavailable. To this end, the authors propose a black-box assessment method based on a directed graph of component coupling. By analyzing component interfaces and integrating multi-view modeling—graphical, algebraic, and tabular—the approach uniquely links interface characteristics to cost factors, enabling computable bounded estimates of change-induced complexity and associated costs. The method was validated through a large-scale integration case in a retail banking platform, demonstrating its effectiveness and providing architects and operations teams with actionable, quantitative insights for system design and maintenance.

component interfacecost estimationexternal requirements

This work addresses the challenge of reliably conveying intent, requirements, and constraints in human–AI–tool collaborative software development by proposing a specification-centric Bosque API (BAPI) ecosystem. The system introduces a highly expressive specification language that, for the first time, enables cross-language interoperability, automated test generation, formal verification, and execution sandboxing across the entire API lifecycle—from requirement definition and implementation to invocation and validation. By providing end-to-end specification guarantees, BAPI significantly enhances system correctness, security, and the efficiency of human–AI collaboration, offering a novel infrastructure for software development in the era of AI agents.

agentic AI systemscollaborationsecurity

This work addresses the limitations of traditional code-centric development paradigms in ensuring correctness and maintainability, particularly in the era of widespread AI coding assistants. The paper proposes Specification-Driven Development (SDD), a methodology that treats specifications as the primary artifact, with code derived as a secondary product. It introduces a three-tier rigor model—“spec-first,” “spec-anchored,” and “spec-as-source”—to accommodate diverse application contexts. By integrating Behavior-Driven Development (BDD) with AI-assisted tools such as GitHub Spec Kit, SDD redefines the relationship between specifications and code, positioning specs as authoritative anchors. The approach supports multi-domain modeling and automated verification. Empirical studies across API design, enterprise systems, and embedded software demonstrate that SDD significantly enhances software quality and provides a practical decision framework for engineering adoption.

AI coding assistantscode generationdevelopment workflow

This work addresses the inefficiency and lack of guidance faced by front-end developers when manually selecting plausible and natural attribute values for instantiating reusable UI components within a vast design space. To tackle this challenge, the paper introduces the concept of “discriminative variants,” which uniquely integrates symbolic reasoning with large language models (LLMs). Symbolic reasoning identifies visually salient attributes, while the LLM leverages real-world knowledge to generate component instances that balance fidelity to exemplars with meaningful differentiation. This approach shifts the paradigm from ad hoc manual configuration to structured exploration of the design space. A user study (n=12) demonstrates that the generated variants effectively aid developers in comprehending the design space, significantly improving both instantiation efficiency and user experience, while maintaining strong domain relevance.

component instantiationdesign spacefront-end development

Hot Scholars

KB

Katrien Beuls

Faculté d'informatique, Université de Namur
Computational LinguisticsEmergent Communication
YZ

Yuhan Zhou

Ph.D. student, University of North Texas
Data QualityHealth InformaticsData Science
YZ

Yibo Zhu

StepFun
Machine Learning SystemsComputer NetworksDistributed Systems
SU

Sennur Ulukus

Professor of Electrical and Computer Engineering, University of Maryland
information theorywireless communicationsquantum informationmachine learning