Many languages for modeling various aspects of software systems' architectures have been proposed over the past three decades. In the late 1990s, we provided the first systematic foundation for understanding, clas...
详细信息
Many languages for modeling various aspects of software systems' architectures have been proposed over the past three decades. In the late 1990s, we provided the first systematic foundation for understanding, classifying, and comparing the quickly emerging architecture description languages (ADLs). This culminated in a 2000 IEEE TSE publication, which has subsequently been referenced widely. In this paper, we revisit the 2000 framework, consider how it influenced a foundational study of the suitability of the Unified Modeling Language (UML) as an ADL and influenced the development of an extensible ADL (xADL) with a set of highly innovative features. We show how further work with modeling efforts led to a new and deeper understanding of software architecture itself. We conclude by analyzing a series of recent developments that have reshaped the software architecture landscape, posing new questions about the nature of architecture description.
In the development of modern software solutions, architecture plays a crucial role in the success of the solution, as it comprises structural and behavioral features of the system, along with critical decisions about ...
详细信息
In the development of modern software solutions, architecture plays a crucial role in the success of the solution, as it comprises structural and behavioral features of the system, along with critical decisions about the system. Given this, several studies have been conducted in the literature about architecture decision-making process, but these studies are normally conducted with professionals outside of the Brazilian perspective or restricted to a specific company. Although architecture knowledge is the same, differences, like cultural behaviors, professional experiences and academic background, may arise. For this reason, this study presents the architecture decision-making from the view of Brazilian software practitioners. The results are a compilation of findings from 12 semi-structured interviews with senior practitioners from different companies and provide insights about the decision-making process. Regarding the context in which decisions are made, it is found that practitioners often guide and influence decisions and use experience as their main foundation, and the process is normally influenced by features of the company, like its domain and size. Concerning the decision-making process, practitioners in most cases use PoCs, organizational patterns or requirements to define the architecture. Group decision-making is often followed, although no systematic approach is used. Also, no tools are employed to support decision-making, and the decisions are documented and revised frequently.
Context: Robotics software architecture-based self-adaptive systems (RSASSs) are robotics systems made robust to runtime uncertainty by adapting their software architectures. The research landscape of RSASS approaches...
详细信息
Context: Robotics software architecture-based self-adaptive systems (RSASSs) are robotics systems made robust to runtime uncertainty by adapting their software architectures. The research landscape of RSASS approaches is multidisciplinary and fragmented, with many aspects still unexplored or ineffectively shared among communities involved. Objective: We aim at identifying, classifying, and analyzing the state of the art of existing approaches for RSASSs from the following perspectives: (i) the key characteristics of approaches and (ii) the evaluation strategies applied by researchers. Method: We apply the systematic mapping research method. We selected 37 primary studies via automatic, manual, and snowballing-based search and selection procedures. We rigorously defined and applied a classification framework composed of 32 parameters and synthesize the obtained data to produce a comprehensive overview of the state of the art. Results: This work contributes (i) a rigorously defined classification framework for studies on RSASSs, (ii) a systematic map of the research efforts on RSASSs, (iii) a discussion of emerging findings and implications for future research, and (iv) a publicly available replication package. Conclusion: This study provides a solid evidence-based overview of the state of the art in RSASS approaches. Its results can benefit RSASS researchers at different levels of seniority and involvement in RSASS research.
software architecture assists developers in addressing non-functional requirements and in maintaining, debugging, and upgrading their software systems. Consequently, consistency between the designed architecture and t...
详细信息
software architecture assists developers in addressing non-functional requirements and in maintaining, debugging, and upgrading their software systems. Consequently, consistency between the designed architecture and the implemented software system itself is important;without this consistency the non-functional requirements targeted may not be addressed and architectural documentation may mis-direct maintenance efforts that target the associated code-base. But often, when software is initially implemented or subsequently evolved, the designed architecture and software architecture become inconsistent, with the implemented structure degraded due to issues like developer time-pressures, or ambiguous communication of the designed architecture. In such cases, software architecture Recovery (SAR) or consistency approaches can be applied to reconstruct the architecture of the software system and possibly to compare it to/re-align it with the designed architecture. Many SAR approaches have been proposed in the research. However, choosing an appropriate architecture recovery approach for software systems is still an open issue. Consequently, this research aims to conduct a tertiary-mapping study based on available secondary studies of architecture recovery approaches, to uncover important characteristics, towards the selection of appropriate SAR approaches. This research has aggregated 13 secondary studies and 10 primary studies beyond 2020 from 5 databases and, in doing so, identified 111 architecture recovery approaches. Based on these approaches, a taxonomy, containing nine main SAR-selection categories is proposed and a framework (in the form of a supporting tool to help developers select an appropriate SAR approach) has been developed. Finally, this research identifies six potential open research gaps related to the underlying research that could be helpful for guiding research in the future.
Smart mobile distributed systems (SMDSs) oriented to managing emergency cases (ECs) have become a helpful support tool in case of earthquakes at government and higher education institutions (GHEIs). This fact has moti...
详细信息
Smart mobile distributed systems (SMDSs) oriented to managing emergency cases (ECs) have become a helpful support tool in case of earthquakes at government and higher education institutions (GHEIs). This fact has motivated various works to propose SMDSs that are focused on managing ECs;however, many fail to address all essential requirements for effective managing and streamlining of the activities that must be carried out before, during, and after an earthquake occurs at GHEIs, resulting in suboptimal design decisions. In addition, none of these works proposes a reference software architecture that guides the development of these systems. That has given rise to issues, such as lack of standardization and low quality of the developed systems. This work presents a software architecture to develop SMDSs focused on managing the activities of people and members of the brigades in case of earthquakes at GHEIs. The proposed software architecture was evaluated based on four main aspects: correctness and coverage of desirable requirements, functional suitability, usability assessment, and validation and verification of the reference architecture elements. The results show that our software architecture provides suitable architectural support for developing SMDSs oriented to managing ECs, which meets the needed requirements.
Context: A growing number of researchers are investigating how Mining software Repositories (MSR) approaches can support software architecture activities, such as architecture recovery, tactics identification, archite...
详细信息
Context: A growing number of researchers are investigating how Mining software Repositories (MSR) approaches can support software architecture activities, such as architecture recovery, tactics identification, architectural smell detection, and others. However, as of today, it is difficult to have a clear view of existing research on MSR for software architecture. Objectives: The objective of this study is to identify, classify, and summarize the state-of-the-art MSR approaches applied to software architecture (MSR4SA). Methods: This study is designed according to the systematic mapping study research method. Specifically, out of 2442 potentially relevant studies, we systematically identify 151 primary studies where MSR approaches are applied to perform software architecture activities. Then, we rigorously extract relevant data from each primary study and synthesize the obtained results to produce a clear map of reasons for adopting MSR approaches to support architecting activities, used data sources, applied MSR techniques, and captured architectural information. Results: The major reasons to adopt MSR4SA techniques are about addressing industrial concerns like achieving quality attributes and minimizing practitioners' efforts. Most MSR4SA studies support architectural analysis, while architectural synthesis and evaluation are not commonly supported in MSR4SA studies. The most frequently mined data sources are source code repositories and issue trackers, which are also commonly mined together. Most of the MSR4SA studies apply more than one mining technique, where the most common MSR techniques are: (source code analysis, model analysis, statistical analysis), (machine learning, NLP). Architectural quality issues and components are the mostly mined type of information. Conclusion: Our results give a solid foundation for researchers and practitioners towards future research and applications of MSR approaches for software architecture.
Uncertainty is present in software architecture decisions due to a lack of knowledge about the requirements and the solutions involved. However, this uncertainty is usually not made explicit, and decisions can be made...
详细信息
Uncertainty is present in software architecture decisions due to a lack of knowledge about the requirements and the solutions involved. However, this uncertainty is usually not made explicit, and decisions can be made based on unproven premises or false assumptions. This paper focuses on a technique called ArchHypo that uses hypotheses engineering to manage uncertainties related to software architecture. It proposes formulating a technical plan based on each hypothesis' assessment, incorporating measures able to mitigate its impact and reduce uncertainty. To evaluate the proposed technique, this paper reports an application of the technique in a mission-critical project that faced several technical challenges. Conclusions were based on data extracted from the project documentation and a questionnaire answered by all team members. As a result, the application of ArchHypo provided a structured approach to dividing the architectural work through iterations, which facilitated architectural decision-making. However, further research is needed to fully understand its impact across different contexts. On the other hand, the team identified the learning curve and process adjustments required for ArchHypo's adoption as significant challenges that could hinder its widespread adoption. In conclusion, the evidence found in this study indicates that the technique has the potential to provide a suitable way to manage the uncertainties related to software architecture, facilitating the strategic postponement of decisions while addressing their potential impact.
Creativity is crucial for software practitioners who solve complex problems daily. To explore creativity in software architecture and help practitioners enhance their companies' creative architecting, we conducted...
详细信息
Creativity is crucial for software practitioners who solve complex problems daily. To explore creativity in software architecture and help practitioners enhance their companies' creative architecting, we conducted 12 semistructured interviews, through which we found various limiters and enablers of creativity.
The increasing demand for accurate and real-time weather data has highlighted the limitations of traditional weather stations, which often lack the flexibility and scalability required for modern applications. This pa...
详细信息
The increasing demand for accurate and real-time weather data has highlighted the limitations of traditional weather stations, which often lack the flexibility and scalability required for modern applications. This paper introduces a real-time and modular weather station software architecture based on microservices, designed to address these challenges. The proposed system leverages microservices to offer a scalable, flexible, and easily maintainable solution for weather data collection and dissemination. Its modular architecture allows seamless integration of various sensors and data sources, facilitating customization and the addition of new functionalities without disrupting existing operations. Real-time data processing is a critical feature, ensuring timely and accurate weather information. The use of microservices guarantees data accessibility from any location, supporting both local and remote applications. A case study at the Plataforma Solar de Almeria (PSA) demonstrates the benefits of the proposed architecture, highlighting its effectiveness in integrating multiple weather stations and providing real-time weather data.
The mid-1990s saw the design of programming languages for software architectures, which define the high-level aspects of software systems including how code components were composed to form full systems. Our paper Abs...
详细信息
The mid-1990s saw the design of programming languages for software architectures, which define the high-level aspects of software systems including how code components were composed to form full systems. Our paper Abstractions for software architecture and Tools to Support Them presented a conceptual view of software architecture based on abstractions used in practice to organize software systems, a language that supported these abstractions, and a prototype implementation of this language (Shaw et al., 1995). By invitation, we reflect on the paper's principal ideas about system-level abstractions, place the work in a historical context of steadily increasing abstraction power in software development languages and infrastructure, and reflect on how progress since the paper's 1995 publication has been influenced, directly or indirectly, by this work. We describe current manifestations of architectural ideas and current challenges. We suggest how the strategy we used to identify and reify architectural abstractions may apply to current opportunities.
暂无评论