software architecture

Designs, evaluates, and documents the high-level structure of software systems, including components, modules, connectors, interfaces, and their interactions to satisfy functional requirements and quality attributes (e.g., performance, reliability, modifiability). Builds and analyzes architectural models, views, patterns, deployment decisions, and rationale to guide implementation, integration, and evolution of the system.

softwarearchitecture

Recent Skill Trend

Momentum and market value over time
Trending
Score
No comparison yet
2.71
Oct 01, 2026Oct 01, 2026
Career
Value
No comparison yet
$210K/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

Software architecture documentation (SAD) is frequently missing, outdated, or inconsistent with implementation, leading to high comprehension costs and maintenance challenges. To address this, we propose a semi-automated approach integrating reverse engineering with large language models (LLMs). Our method first extracts component structure via static analysis, then leverages prompt engineering and few-shot learning to guide LLMs in generating architectural artifacts—specifically, static views (component diagrams) and dynamic views (state machine diagrams). Crucially, it requires minimal expert annotation, substantially reducing manual effort while enabling scalable, abstraction-aware documentation. Evaluated on an industrial C++ system, our approach accurately reconstructs complex component structures and behavioral logic. Results demonstrate significant improvements in both the accuracy of generated architecture documentation and the efficiency of its maintenance, thereby enhancing system comprehensibility and long-term maintainability.

Automatically generating software architecture descriptions from source code to address outdated documentationImproving system understanding and maintainability by recovering static and behavioral architectural viewsReducing manual effort in deriving architectural insights through reverse engineering and LLMs

Revisiting Abstractions for Software Architecture and Tools to Support Them

Mar 06, 2025
MS
Mary Shaw
🏛️ Carnegie Mellon University | Google | Red Hat Inc

Software architecture suffers from ambiguous abstraction concepts and inadequate tool support. Method: This work systematically reconstructs the seminal 1995 architectural model and proposes, for the first time, a practice-grounded conceptual framework for architectural abstraction—elevating component composition relationships to system-level abstractions that are formally modelable and verifiable. It integrates architectural description language (ADL) design, abstract modeling, prototype tool development, and diachronic historical analysis. Contribution/Results: The study establishes software architecture as an independent concern with rigorous theoretical foundations. Its outcomes catalyzed a surge in ADL research, laid the groundwork for model-based systems engineering (MBSE), and continue to inform the design of cloud-native, microservice, and AI-driven architectures. The framework significantly enhances the expressiveness, formal verifiability, and engineering applicability of architectural abstractions.

Assesses impact of 1995 paper on modern software development.Develops a language supporting architectural abstractions in software.Explores abstractions for organizing software systems effectively.

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

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.

Legacy systems written in COBOL, PL/I, or Assembly—common in banking and telecommunications—are often undocumented and lack original developers, hindering comprehension and modernization. Method: This paper proposes a multi-language, cross-platform, customizable framework for constructing software knowledge graphs and interactively defining architectural boundaries. It integrates static code analysis, data schema parsing, and custom ontology modeling to enable expert-guided, incremental analysis of source code and data architecture, automatically identifying business- and data-driven logical boundaries and visualizing cross-boundary dependencies. Contribution/Results: The framework introduces the first knowledge-graph-driven approach for progressive modernization path planning and impact analysis. Evaluated on two real-world industrial systems, it significantly improves system understanding efficiency and enhances the accuracy of modernization strategy design.

Analyzing legacy systems for modernization using knowledge graphsIdentifying logical boundaries in large, undocumented software systemsUnderstanding dependencies to assess impact of incremental changes

Latest Papers

What's happening recently
View more

This work addresses the limitation of existing large language model (LLM) approaches, which are often confined to local code snippets and struggle to produce system-level architectural documentation. The authors propose the CIAO pipeline, which uniquely integrates standardized architecture frameworks—including ISO/IEC/IEEE 42010, SEI Views & Beyond, and the C4 model—with LLMs through structured prompt engineering and automated parsing of GitHub repositories to enable end-to-end, low-cost generation of system architecture documentation. In evaluations involving 22 developers, the generated documents were consistently rated as valuable, comprehensible, and largely accurate, with the entire process taking only minutes. Although improvements are still needed in diagram quality and deployment views, the approach effectively bridges the gap between source code and holistic architectural understanding.

automated documentationGitHub repositorieslarge language models

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 proposes a systematic approach to derive task effectiveness requirements in the absence of explicit user needs. The method deconstructs task intent into context, functionality, constraints, critical dimensions, performance attributes, and architectural solutions, and introduces a task complexity factor to quantify the impact of external challenges and technology maturity. By integrating Best-Worst Scaling, it prioritizes critical dimensions based on stakeholder judgments. Through task decomposition modeling and quantitative complexity analysis, the framework supports integration with UAF/SysML artifacts and establishes a traceable mechanism for generating Tier 1 and Tier 2 requirements. The approach is validated using a close air support mission case study, effectively addressing a critical gap in requirements engineering when clear initial inputs are unavailable.

adaptive methodmission complexitymission effectiveness

This study addresses the lack of systematic guidance for enterprise software teams in choosing between monolithic and microservices architectures. The work proposes a decision-making framework that integrates technical and organizational factors, evaluating the trade-offs of each architecture across dimensions such as scalability, reliability, deployment efficiency, and organizational complexity. The assessment is grounded in system scale, business requirements, operational maturity, and long-term maintainability. Through architectural pattern analysis, a structured evaluation model, and multiple case studies, the authors develop a practical selection methodology tailored to real-world engineering contexts. This approach offers enterprises clear architectural evolution pathways and actionable guidelines aligned with their developmental stages, thereby significantly enhancing the rationality and sustainability of system design decisions.

MicroservicesMonolithic ArchitectureOrganizational Complexity

Hot Scholars

PL

Peng Liang

School of Computer Science, Wuhan University
Software EngineeringSoftware ArchitectureEmpirical Software Engineering
AK

Anne Koziolek

Professor, Karlsruhe Institute of Technology, Germany
Software ArchitecturePerformance EngineeringContinuous Software EngineeringAI4SE
JK

Jan Keim

Researcher, Karlsruher Institute of Technology (KIT)
Natural Language ProcessingSoftware ArchitectureDocumentationTraceability
GN

Graham Neubig

Carnegie Mellon University, All Hands AI
Natural Language ProcessingMachine LearningArtificial Intelligence
WS

Weisong Sun

Nanyang Technological University
Trustworthy Intelligent SE (Software Engineering)