Handbook of Software Architecture

  • Presentations

For almost eight years I wrote the column “On Architecture” for IEEE Software , a journal of the IEEE Computer Society , wherein I explored themes associated with the Handbook of Software Architecture . You can listen to the podcast of each column here.

Journal of Software Engineering Research and Development Cover Image

  • Search by keyword
  • Search by citation

Page 1 of 2

Metric-centered and technology-independent architectural views for software comprehension

The maintenance of applications is a crucial activity in the software industry. The high cost of this process is due to the effort invested on software comprehension since, in most of cases, there is no up-to-...

Back to the future: origins and directions of the “Agile Manifesto” – views of the originators

In 2001, seventeen professionals set up the manifesto for agile software development. They wanted to define values and basic principles for better software development. On top of being brought into focus, the ...

Investigating the effectiveness of peer code review in distributed software development based on objective and subjective data

Code review is a potential means of improving software quality. To be effective, it depends on different factors, and many have been investigated in the literature to identify the scenarios in which it adds qu...

On the benefits and challenges of using kanban in software engineering: a structured synthesis study

Kanban is increasingly being used in diverse software organizations. There is extensive research regarding its benefits and challenges in Software Engineering, reported in both primary and secondary studies. H...

Challenges on applying genetic improvement in JavaScript using a high-performance computer

Genetic Improvement is an area of Search Based Software Engineering that aims to apply evolutionary computing operators to the software source code to improve it according to one or more quality metrics. This ...

Actor’s social complexity: a proposal for managing the iStar model

Complex systems are inherent to modern society, in which individuals, organizations, and computational elements relate with each other to achieve a predefined purpose, which transcends individual goals. In thi...

Investigating measures for applying statistical process control in software organizations

The growing interest in improving software processes has led organizations to aim for high maturity, where statistical process control (SPC) is required. SPC makes it possible to analyze process behavior, pred...

An approach for applying Test-Driven Development (TDD) in the development of randomized algorithms

TDD is a technique traditionally applied in applications with deterministic algorithms, in which the input and the expected result are known. However, the application of TDD with randomized algorithms have bee...

Supporting governance of mobile application developers from mining and analyzing technical questions in stack overflow

There is a need to improve the direct communication between large organizations that maintain mobile platforms (e.g. Apple, Google, and Microsoft) and third-party developers to solve technical questions that e...

Working software over comprehensive documentation – Rationales of agile teams for artefacts usage

Agile software development (ASD) promotes working software over comprehensive documentation. Still, recent research has shown agile teams to use quite a number of artefacts. Whereas some artefacts may be adopt...

Development as a journey: factors supporting the adoption and use of software frameworks

From the point of view of the software framework owner, attracting new and supporting existing application developers is crucial for the long-term success of the framework. This mixed-methods study explores th...

Applying user-centered techniques to analyze and design a mobile application

Techniques that help in understanding and designing user needs are increasingly being used in Software Engineering to improve the acceptance of applications. Among these techniques we can cite personas, scenar...

A measurement model to analyze the effect of agile enterprise architecture on geographically distributed agile development

Efficient and effective communication (active communication) among stakeholders is thought to be central to agile development. However, in geographically distributed agile development (GDAD) environments, it c...

A survey of search-based refactoring for software maintenance

This survey reviews published materials related to the specific area of Search-Based Software Engineering that concerns software maintenance and, in particular, refactoring. The survey aims to give a comprehen...

Guest editorial foreword for the special issue on automated software testing: trends and evidence

Similarity testing for role-based access control systems.

Access control systems demand rigorous verification and validation approaches, otherwise, they can end up with security breaches. Finite state machines based testing has been successfully applied to RBAC syste...

An algorithm for combinatorial interaction testing: definitions and rigorous evaluations

Combinatorial Interaction Testing (CIT) approaches have drawn attention of the software testing community to generate sets of smaller, efficient, and effective test cases where they have been successful in det...

How diverse is your team? Investigating gender and nationality diversity in GitHub teams

Building an effective team of developers is a complex task faced by both software companies and open source communities. The problem of forming a “dream”

Investigating factors that affect the human perception on god class detection: an analysis based on a family of four controlled experiments

Evaluation of design problems in object oriented systems, which we call code smells, is mostly a human-based task. Several studies have investigated the impact of code smells in practice. Studies focusing on h...

On the evaluation of code smells and detection tools

Code smells refer to any symptom in the source code of a program that possibly indicates a deeper problem, hindering software maintenance and evolution. Detection of code smells is challenging for developers a...

On the influence of program constructs on bug localization effectiveness

Software projects often reach hundreds or thousands of files. Therefore, manually searching for code elements that should be changed to fix a failure is a difficult task. Static bug localization techniques pro...

DyeVC: an approach for monitoring and visualizing distributed repositories

Software development using distributed version control systems has become more frequent recently. Such systems bring more flexibility, but also greater complexity to manage and monitor multiple existing reposi...

A genetic algorithm based framework for software effort prediction

Several prediction models have been proposed in the literature using different techniques obtaining different results in different contexts. The need for accurate effort predictions for projects is one of the ...

Elaboration of software requirements documents by means of patterns instantiation

Studies show that problems associated with the requirements specifications are widely recognized for affecting software quality and impacting effectiveness of its development process. The reuse of knowledge ob...

ArchReco: a software tool to assist software design based on context aware recommendations of design patterns

This work describes the design, development and evaluation of a software Prototype, named ArchReco, an educational tool that employs two types of Context-aware Recommendations of Design Patterns, to support us...

On multi-language software development, cross-language links and accompanying tools: a survey of professional software developers

Non-trivial software systems are written using multiple (programming) languages, which are connected by cross-language links. The existence of such links may lead to various problems during software developmen...

SoftCoDeR approach: promoting Software Engineering Academia-Industry partnership using CMD, DSR and ESE

The Academia-Industry partnership has been increasingly encouraged in the software development field. The main focus of the initiatives is driven by the collaborative work where the scientific research work me...

Issues on developing interoperable cloud applications: definitions, concepts, approaches, requirements, characteristics and evaluation models

Among research opportunities in software engineering for cloud computing model, interoperability stands out. We found that the dynamic nature of cloud technologies and the battle for market domination make clo...

Game development software engineering process life cycle: a systematic review

Software game is a kind of application that is used not only for entertainment, but also for serious purposes that can be applicable to different domains such as education, business, and health care. Multidisc...

Correlating automatic static analysis and mutation testing: towards incremental strategies

Traditionally, mutation testing is used as test set generation and/or test evaluation criteria once it is considered a good fault model. This paper uses mutation testing for evaluating an automated static anal...

A multi-objective test data generation approach for mutation testing of feature models

Mutation approaches have been recently applied for feature testing of Software Product Lines (SPLs). The idea is to select products, associated to mutation operators that describe possible faults in the Featur...

An extended global software engineering taxonomy

In Global Software Engineering (GSE), the need for a common terminology and knowledge classification has been identified to facilitate the sharing and combination of knowledge by GSE researchers and practition...

A systematic process for obtaining the behavior of context-sensitive systems

Context-sensitive systems use contextual information in order to adapt to the user’s current needs or requirements failure. Therefore, they need to dynamically adapt their behavior. It is of paramount importan...

Distinguishing extended finite state machine configurations using predicate abstraction

Extended Finite State Machines (EFSMs) provide a powerful model for the derivation of functional tests for software systems and protocols. Many EFSM based testing problems, such as mutation testing, fault diag...

Extending statecharts to model system interactions

Statecharts are diagrams comprised of visual elements that can improve the modeling of reactive system behaviors. They extend conventional state diagrams with the notions of hierarchy, concurrency and communic...

On the relationship of code-anomaly agglomerations and architectural problems

Several projects have been discontinued in the history of the software industry due to the presence of software architecture problems. The identification of such problems in source code is often required in re...

An approach based on feature models and quality criteria for adapting component-based systems

Feature modeling has been widely used in domain engineering for the development and configuration of software product lines. A feature model represents the set of possible products or configurations to apply i...

Patch rejection in Firefox: negative reviews, backouts, and issue reopening

Writing patches to fix bugs or implement new features is an important software development task, as it contributes to raise the quality of a software system. Not all patches are accepted in the first attempt, ...

Investigating probabilistic sampling approaches for large-scale surveys in software engineering

Establishing representative samples for Software Engineering surveys is still considered a challenge. Specialized literature often presents limitations on interpreting surveys’ results, mainly due to the use o...

Characterising the state of the practice in software testing through a TMMi-based process

The software testing phase, despite its importance, is usually compromised by the lack of planning and resources in industry. This can risk the quality of the derived products. The identification of mandatory ...

Self-adaptation by coordination-targeted reconfigurations

A software system is self-adaptive when it is able to dynamically and autonomously respond to changes detected either in its internal components or in its deployment environment. This response is expected to ensu...

Templates for textual use cases of software product lines: results from a systematic mapping study and a controlled experiment

Use case templates can be used to describe functional requirements of a Software Product Line. However, to the best of our knowledge, no efforts have been made to collect and summarize these existing templates...

F3T: a tool to support the F3 approach on the development and reuse of frameworks

Frameworks are used to enhance the quality of applications and the productivity of the development process, since applications may be designed and implemented by reusing framework classes. However, frameworks ...

NextBug: a Bugzilla extension for recommending similar bugs

Due to the characteristics of the maintenance process followed in open source systems, developers are usually overwhelmed with a great amount of bugs. For instance, in 2012, approximately 7,600 bugs/month were...

Assessing the benefits of search-based approaches when designing self-adaptive systems: a controlled experiment

The well-orchestrated use of distilled experience, domain-specific knowledge, and well-informed trade-off decisions is imperative if we are to design effective architectures for complex software-intensive syst...

Revealing influence of model structure and test case profile on the prioritization of test cases in the context of model-based testing

Test case prioritization techniques aim at defining an order of test cases that favor the achievement of a goal during test execution, such as revealing failures as earlier as possible. A number of techniques ...

A metrics suite for JUnit test code: a multiple case study on open source software

The code of JUnit test cases is commonly used to characterize software testing effort. Different metrics have been proposed in literature to measure various perspectives of the size of JUnit test cases. Unfort...

Designing fault-tolerant SOA based on design diversity

Over recent years, software developers have been evaluating the benefits of both Service-Oriented Architecture (SOA) and software fault tolerance techniques based on design diversity. This is achieved by creat...

Method-level code clone detection through LWH (Light Weight Hybrid) approach

Many researchers have investigated different techniques to automatically detect duplicate code in programs exceeding thousand lines of code. These techniques have limitations in finding either the structural o...

The problem of conceptualization in god class detection: agreement, strategies and decision drivers

The concept of code smells is widespread in Software Engineering. Despite the empirical studies addressing the topic, the set of context-dependent issues that impacts the human perception of what is a code sme...

Software architecture: a roadmap

Figures from this paper

figure 1

451 Citations

Software architecture: a travelogue.

Architects in Practice

Handbook of Software Engineering and Knowledge Engineering 1 Software Architecture

Progress of research on software architecture.

The Golden Age of Software Architecture: A Comprehensive Survey. Technical Report CMU-ISRI-06-101

Software Architects in Practice

A brief survey of software architecture concepts and service oriented architecture

Architectural Stability

Towards A Process-Oriented Software Architecture Reconstruction Taxonomy

Software Architecture Reconstruction: A Process-Oriented Taxonomy


Introduction to the Special Issue on Software Architecture

Assessing the Suitability of a Standard Design Method for Modeling Software Architectures

Software architecture in practice

Using Dependence Analysis to Support Software Architecture Understanding

Applied Software Architecture

Foundations for the study of software architecture

An Introduction to Software Architecture

Software architecture - perspectives on an emerging discipline

Exploiting style in architectural design environments

The Domain-Specific Software Architecture Program

Related Papers

Showing 1 through 3 of 0 Related Papers

Go to journal home page - Journal of Systems and Software

Journal of Systems and Software

About the journal, aims & scope.

For JSS's full CfP including information on Special Issues, Industry, Trends, and Journal First tracks please continue to read for further details. The Journal of Systems and Software publishes papers covering all aspects of software engineering. All articles should provide evidence to support …


P. avgeriou.

University of Groningen, Groningen, the Netherlands

D. Shepherd

Virginia Commonwealth University, Richmond, Virginia, United States of America

Latest published

Articles in press, most downloaded, most popular, self-supervised log parsing using semantic contribution difference, distributed state model inference for scriptless gui testing, a model-based mode-switching framework based on security vulnerability scores, php code smells in web apps: evolution, survival and anomalies, mstil: multi-cue shape-aware transferable imbalance learning for effective graphic api recommendation, can gamification help in software testing education findings from an empirical study, towards a cognitive engineering of transactional services in iot based systems, people want reassurance when making privacy-related decisions — not technicalities, more from journal of systems and software, announcements, guidelines for submitting proposals for journal special issues, editor of the year 2020, mip finalists for 2020, calls for papers, software engineering for hybrid quantum computing systems, software engineering and advanced applications conference 2022 - selected papers, software language engineering, special issues and article collections, special issue on software-intensive autonomous systems: methods and applications, special issue on dependable systems and applications (dsa), special issue on metamorphic testing, special issue on software architecture and artificial intelligence.

Copyright © 2023 Elsevier Inc. All rights reserved


  1. Architecture Sample Paper With Solution

    software architecture research papers pdf

  2. Software Architecture And Design Patterns Previous Question Papers

    software architecture research papers pdf

  3. Software architecture

    software architecture research papers pdf

  4. Architecture research paper by ear44timmpitt

    software architecture research papers pdf

  5. Software Architecture And Design Patterns Previous Question Papers

    software architecture research papers pdf

  6. Research Paper On Architecture Pdf

    software architecture research papers pdf


  1. Эмир Кашоков про Что Было Дальше

  2. FireSim / Chipyard: Tutorial on End-to-End Architecture Research Platform


  4. Introduction To Software Architect 2 and Course Content

  5. Mai Pahle Brailvi tha (Engineer Muhammad Ali Mirza)#shorts

  6. Software Architecture lecture 5 part 1


  1. PDF A Design for Evidence-based Software Architecture Research

    research done by Graaf et al. on the state of practice of requirements engineering and architectural design processes in the embedded software domain [10]. However, a num-ber of independent empirical studies have been done in re-quirements and architecture separately. An interview-based research of real world influence on software architecture by

  2. Papers

    Architecting a software-intensive system encompasses technical elements and social considerations; most interesting systems start small and focus on technical concerns, but once they become economically significant, social issues begin looming large Soul Of A New Watson

  3. PDF Architecture of a Database System

    that make a DBMS work. This paper presents an architectural dis-cussion of DBMS design principles, including process models, parallel architecture, storage system design, transaction system implementa-tion, query processor and optimizer architectures, and typical shared components and utilities. Successful commercial and open-source sys-

  4. (PDF) Software architectural patterns in practice: an empirical study

    Software Architecture (SA 1 ) is the backbone of any well-succeeded software system and plays an important role in software quality assurance [14]. According to survey results with IT...

  5. [PDF] Software Design and Architecture The once and future focus of

    [PDF] Software Design and Architecture The once and future focus of software engineering | Semantic Scholar DOI: 10.1109/FOSE.2007.21 Corpus ID: 15794628 Software Design and Architecture The once and future focus of software engineering R. Taylor, A. Hoek Published 23 May 2007 Computer Science, Art Future of Software Engineering (FOSE '07)

  6. PDF Software Design and Architecture

    The design of software has been a focus of software engineering research since the field's beginning. This paper explores key aspects of this research focus and shows why design will remain a principal focus. The intrinsic elements of software design, both process and product, are discussed: concept formation, use of ex-

  7. PDF An Introduction to Software Architecture

    understanding of software architectures allows the engineer to make principled choices among design alternatives. Fourth, an architectural system representation is often essential to the analysis and description of the high-level properties of a complex system. In this paper we provide an introduction to the field of software architecture.

  8. (PDF) Software Architecture: The Next Step

    This position paper makes the following claims that, in our opinion, are worthwhile to discuss at the workshop. 1) The first phase of software architecture research, where the key concepts are ...

  9. (PDF) Serverless Architectures Review, Future Trend and the Solutions

    Common software architectures [30] [31] Layered (n-tier) architecture [32] [33] Event-driven architecture [34] [35] Serverless architecture [36] [37] Microservices architecture ......

  10. PDF Arch2030: A Vision of Computer Architecture Research over the Next 15 Years

    applications. Indeed, the computer architecture research community has recognized and embraced specialization: of 175 papers in the 2016 computer architecture conferences (ISCA, HPCA, MICRO), 38 papers address specialization with GPUs or application-specific accelerators, while another 17 address specialized designs for machine learning.

  11. Journal of Software Engineering Research and Development

    Philipp Hohl, Jil Klünder, Arie van Bennekum, Ryan Lockard, James Gifford, Jürgen Münch, Michael Stupperich and Kurt Schneider. Journal of Software Engineering Research and Development 2018 6 :15. Research Published on: 9 November 2018. Full Text. PDF.

  12. [PDF] Software architecture: a roadmap

    This paper presents a state of the art in software architecture reconstruction approaches and presents a plethora of approaches and techniques supporting architecture reconstruction. 332 PDF View 2 excerpts, cites methods and background ... 1 2 3 4 5 ... References SHOWING 1-10 OF 52 REFERENCES SORT BY

  13. PDF Software Architecture

    ware. The objection implies that software architecture is an artifact and that it could be coded, although scattered, into source code. 1.2 Components & connectors In a paper about software architecture by Garlan & Shaw [28] we find the following definition: Software architecture is the computational components, or sim-

  14. An Analysis of Research in Software Engineering: Assessment and ...

    of 7638 research papers published in 36 different publications during this period. (2) In consideration of the different roles of authors of a paper, this paper proposeda new ... specific research topics in software engineering. The series of such studies does have practical limitations, despite its success and profound . 4 . impact. Since ...

  15. PDF Software Engineering for Machine Learning: A Case Study

    assessing the progress of software teams towards excel-lence in building AI applications. 4)A discussion of three fundamental differences in how software engineering applies to machine-learning-centric components vs. previous application domains. II. BACKGROUND A. Software Engineering Processes The changing application domain trends in the ...

  16. Journal of Systems and Software

    Ethical/societal aspects of Software Engineering. Software Engineering for AI systems. The journal welcomes reports of practical experience for all of these topics, as well as replication studies and studies with negative results. The journal appreciates the submission of systematic literature reviews, mapping studies and meta-analyses.

  17. PDF Software Architecture Evaluation Methods

    Early software architecture evaluation methods are applied to software architecture before its implementation. Quality goals can primarily be achieved if the software architecture is evaluated with respect to its specific quality requirements at the early stage of software development. Late software architecture evaluation methods

  18. Systematic literature review on software architecture of educational

    The research presented in herein reviewed papers on software architecture of educational websites. This research focuses on the studies that present empirical results, as we want to discover whether software architecture is considered a significant angle in the improvement of programming on educational websites.