Pragmatic Evaluation of Software Architectures

Pragmatic Evaluation of Software Architectures
Author: Jens Knodel
Publisher: Springer
Total Pages: 170
Release: 2016-06-07
Genre: Computers
ISBN: 3319341774

Thorough and continuous architecting is the key to overall success in software engineering, and architecture evaluation is a crucial part of it. This book presents a pragmatic architecture evaluation approach and insights gained from its application in more than 75 projects with industrial customers in the past decade. It presents context factors, empirical data, and example cases, as well as lessons learned on mitigating the risk of change through architecture evaluation. By providing comprehensive answers to more than 100 typical questions and discussing more than 60 frequent mistakes and lessons learned, the book allows readers to not only learn how to conduct architecture evaluations and interpret its results, but also to become aware of risks such as false conclusions, manipulating data, and unsound lines of argument. It equips readers to become confident in assessing quantitative measurement results and recognize when it is better to rely on qualitative expertise. The target readership includes both practitioners and researchers. By demonstrating its impact and providing clear guidelines, data, and examples, it encourages practitioners to conduct architecture evaluations. At the same time, it offers researchers insights into industrial architecture evaluations, which serve as the basis for guiding research in this area and will inspire future research directions.

Evaluating Software Architectures

Evaluating Software Architectures
Author: Paul Clements
Publisher: Addison-Wesley Professional
Total Pages: 376
Release: 2002
Genre: Computers
ISBN:

The foundation of any software system is its architecture. Using this book, you can evaluate every aspect of architecture in advance, at remarkably low cost -- identifying improvements that can dramatically improve any system's performance, security, reliability, and maintainability. As the practice of software architecture has matured, it has become possible to identify causal connections between architectural design decisions and the qualities and properties that result downstream in the systems that follow from them. This book shows how, offering step-by-step guidance, as well as detailed practical examples -- complete with sample artifacts reflective of those that evaluators will encounter. The techniques presented here are applicable not only to software architectures, but also to system architectures encompassing computing hardware, networking equipment, and other elements. For all software architects, software engineers, developers, IT managers, and others responsible for creating, evaluating, or implementing software architectures.

Design It!

Design It!
Author: Michael Keeling
Publisher: Pragmatic Bookshelf
Total Pages: 449
Release: 2017-10-18
Genre: Computers
ISBN: 1680503448

Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Lead your team as a software architect, ask the right stakeholders the right questions, explore design options, and help your team implement a system that promotes the right -ilities. Share your design decisions, facilitate collaborative design workshops that are fast, effective, and fun-and develop more awesome software! With dozens of design methods, examples, and practical know-how, Design It! shows you how to become a software architect. Walk through the core concepts every architect must know, discover how to apply them, and learn a variety of skills that will make you a better programmer, leader, and designer. Uncover the big ideas behind software architecture and gain confidence working on projects big and small. Plan, design, implement, and evaluate software architectures and collaborate with your team, stakeholders, and other architects. Identify the right stakeholders and understand their needs, dig for architecturally significant requirements, write amazing quality attribute scenarios, and make confident decisions. Choose technologies based on their architectural impact, facilitate architecture-centric design workshops, and evaluate architectures using lightweight, effective methods. Write lean architecture descriptions people love to read. Run an architecture design studio, implement the architecture you've designed, and grow your team's architectural knowledge. Good design requires good communication. Talk about your software architecture with stakeholders using whiteboards, documents, and code, and apply architecture-focused design methods in your day-to-day practice. Hands-on exercises, real-world scenarios, and practical team-based decision-making tools will get everyone on board and give you the experience you need to become a confident software architect.

Development and Evolution of Software Architectures for Product Families

Development and Evolution of Software Architectures for Product Families
Author: Frank van der Linden
Publisher: Springer
Total Pages: 267
Release: 2003-08-06
Genre: Computers
ISBN: 3540683836

This book originates from a workshop organised by ESPRIT project 20 477, ARES in Las Palmas de Gran Canaria, Spain, February 1998. ARES is an acronym for Architectural Reasoning for Embedded Systems. Within this project we investigate techniques to deal with problems of software architecture of families of embedded systems. It is the second workshop organised by this project. Its predecessor was held in Las Navas de Marques, Spain, November 1996. The proceedings of the first workshop are only available in electronic format at "http://www.dit.upm.es/~ares/". The second workshop succeeded, even more than the first one, in gathering many of the most prominent people working in the area of software architecture for product families or product lines. This second workshop consisted of six sessions. The first session was meant to report the ARES results, according to the topics of the next five sessions. The remaining sessions dealt with different aspects of software architecture, focussed on applications for product families or product lines. Because there will be a separate book covering all ARES results, the first session is not included in this book. The workshop was chaired by Henk Obbink from Philips Research and Paul Clements from the Software Engineering Institute at Carnegie Mellon University. They prepared and presented an overall conclusion at the end of the workshop. This conclusion was used in the introduction to this book.

Evaluating Software Architecture Based on Their Implemented Patterns and Tactics

Evaluating Software Architecture Based on Their Implemented Patterns and Tactics
Author: Hind Ahmad Ismail Bani Milhem
Publisher:
Total Pages:
Release: 2020
Genre:
ISBN:

Context: Software architecture plays a critical role in achieving system quality attributes. Therefore, evaluating a system's architecture with regard to desired quality requirements is very important. Architecture evaluation is an approach for assessing whether a software architecture can support the system needs, especially its quality attributes. Software architecture evaluation methods have been developed based on various characteristics and criteria such as the previous experience and domain knowledge of architects or developers, mathematical methods, features and scenarios, and testing. However, these methods may not be sufficient to reliably analyze certain quality attributes (i.e. performance, availability, and reliability). These methods also put little consideration on the architectural patterns and tactics used in the implementation, and the importance values of the desired quality attributes. Objectives: This thesis proposes an architecture evaluation approach that considers satisfaction values of the quality attributes (Non-Functional Requirements) by the implemented patterns and tactics. The main objectives of this thesis are to provide: • A way to connect a software implementation to quality attributes to support a software architecture evaluation based on its implemented architectural patterns and tactics. The evaluation considers the importance values of the quality attributes. • Software architectures model in terms of their implemented architectural patterns and tactics taking into consideration the overlaps between the architectural patterns and tactics, and the importance values of the quality attributes. Such a model would provide a rationale about the satisfaction levels of given quality attributes and their trade-offs. Method: In this thesis, I extract the implemented architectural patterns and tactics from a software architecture's source code and document them to connect the software architecture to quality requirements. I use a tool called Archie to extract the implemented architectural patterns/tactics from software. I then document and model the patterns/tactics implemented by a software architecture and their impact on quality attributes using the Goal-oriented Requirements Language (GRL). Furthermore, I evaluate the GRL model of a software architecture by applying GRL/jUCMNav evaluation strategies to get the satisfaction values of the quality attributes. I validate the applicability and feasibility of our approach by applying it to different case studies from different contexts (big data systems, the healthcare system of systems, and build-automation systems). I compare the inferred quality attributes such as reliability, availability, performance, etc. to benchmark comparison results from the literature, and existing evaluation approaches. Results: The satisfaction levels of the quality requirements by a set of architectural patterns and tactics of a software architecture, integrated with other criteria such as the importance values of the quality requirements, provide architects with a tool for evaluating different software architectures and documenting their rationale for assessing a software architecture. The three case studies show that our approach can be used to evaluate multiple software architectures and therefore, to identify strengths and weaknesses in different alternatives (i.e. alternative architectures, frameworks) and choose among them during the early design stages (i.e. cyber fusion center case study). Furthermore, it can be used to analyze, understand, and evaluate an existing implementation before future maintenance (i.e. HSH-SoS architecture case study). Additionally, our approach can be used to compare several implementations, based on specific quality attributes (i.e. Gradle and Maven case study). Finally, the modeling artifact should also enable faster evaluation with less efforts compared to the manual inspection of the source code and documentation of a software architecture.

Agile Software Architecture

Agile Software Architecture
Author: Michael Stal
Publisher: Elsevier Inc. Chapters
Total Pages: 38
Release: 2013-11-27
Genre: Computers
ISBN: 0128070234

This chapter describes how to systematically prevent software architecture erosion by applying refactoring techniques. Software architecture modifications are common rather than the exception in software development. Modifications come in different flavors, such as redefining or adding requirements, changing infrastructure and technology, or causing changes by bugs and incorrect decisions. But no matter where these changes originate, they need special attention from software architects. Otherwise, if software architects merely focus on adding new features—(changes or extensions that by themselves might not be adequate), design erosion will be the final result. In a systematic approach, software architects evaluate the existing software design before adding new artifacts or changing existing ones. Whenever they identify architecture problems, they immediately resolve architectural issues, thus assuring high quality and sustainability. Software architecture refactoring enables such iterative architecture improvement. It consists of indentifying problems, applying the right refactorings, and testing the results. Architecture refactoring is often combined with code refactoring activities to add the best value. Refactoring patterns offer proven solutions for recurring architectural problems, hence providing a toolset to software engineers.

Software Architecture

Software Architecture
Author: Henry Muccini
Publisher: Springer Nature
Total Pages: 560
Release: 2020-09-10
Genre: Computers
ISBN: 3030591557

This book constitutes the refereed proceedings of the tracks and workshops which complemented the 14th European Conference on Software Architecture, ECSA 2020, held in L'Aquila, Italy*, in September 2020. The 30 full papers and 9 short papers presented in this volume were carefully reviewed and selected from 72 submissions. Papers presented were accepted into the following tracks and workshops: ECSA 2020 Doctoral Symposium track; ECSA 2020 Tool Demos track; ECSA 2020 Gender Diversity in Software Architecture &Software Engineering track; CASA - 3rd International Workshop on Context-aware, Autonomous and Smart Architecture; CSE/QUDOS - Joint Workshop on Continuous Software Engineering and Quality-Aware DevOps; DETECT - 3rd International Workshop on Modeling, Verication and Testing of Dependable Critical Systems; FAACS-MDE4SA - Joint Workshop on Formal Approaches for Advanced Computing Systems and Model-Driven Engineering for Software Architecture; IoT-ASAP - 4th International Workshop on Engineering IoT Systems: Architectures, Services, Applications, and Platforms; SASI4 - 2nd Workshop on Systems, Architectures, and Solutions for Industry 4.0; WASA - 6th International Workshop on Automotive System/Software Architecture. *The conference was held virtually due to the COVID-19 pandemic.

Software Architecture

Software Architecture
Author: Carlos E. Cuesta
Publisher: Springer
Total Pages: 378
Release: 2018-09-19
Genre: Computers
ISBN: 3030007618

This book constitutes the refereed proceedings of the 12th European Conference on Software Architecture, ECSA 2018, held in Madrid, Spain, in September 2018. The 17 full papers presented together with 7 short papers were carefully reviewed and selected from 96 submissions. They are organized in topical sections as follows: Self-Adaptive Architectures, IoT Architectures, Embedded and Cyber-Physical Systems, Microservices Architectures, Service-Oriented Architectures, Architectural Design Decisions, Software Architecture in Practice.