Software Archeology and the Handbook of Software Architecture
نویسنده
چکیده
Software is invisible to most of the world. Although individuals, organizations, and nations rely on a multitude of software-intensive systems every day, most software lives in the interstitial spaces of society, hidden from view except insofar as it does something tangible or useful. Furthermore, most interesting software is continuously evolving: it is never turned off, but rather is adapted, integrated, extended, and reused. As such, while greenfield software development persists, most software development is brownfield, requiring teams to conduct archeological digs in order to understand, reason about, and transmogrify those systems. It is a sign of maturity for any given engineering discipline when we can name, study, and apply the patterns relevant to that domain. In civil engineering, one can study the fundamental elements of architecture in works that expose and compare common architectural styles. Similarly, in chemical engineering, mechanical engineering, electrical engineering, and now even genomic engineering, there exist libraries of common patterns that have proven themselves useful in practice. Unfortunately, no such architectural reference yet exists for software-intensive systems. Although the patterns community has pioneered the vocabulary of design patterns through the work of the Hillside Group and the Gang of Four (in their seminal book, Design Patterns), our industry has no parallel to the architecture handbooks found in more mature design disciplines. The primary goal of the Handbook of Software Architecture (http://www.booch.com/architecture) is to fill this void in software engineering by codifying the architecture of a large collection of interesting software-intensive systems, presenting them in a manner that exposes their essential pattern and that permits comparisons across domains and architectural styles. In this presentation, we will examine the nature of software archeology and some of the systems under study in the Handbook.
منابع مشابه
A Quantitative Evaluation of Maintainability of Software Architecture Styles
Proper decisions play a crucial role in any software architecture design process. An important decision of design stage is the selection of a suitable software architecture style. Lack of investigation on the quantitative impact of architecture styles on software quality attributes is the main problem in using such styles. Consequently, the use of architecture styles in designing is based on th...
متن کاملAvailability evaluation of Software architecture of object oriented Style using coloured Petri nets
Software architecture is one of the most fundamental products in the process of software development in the areas of behavioral or non- behavioral features like availability or transformability change. There are different ways to evaluate software architecture one of which is the creation of application model. An executable model of software architecture is an official description of architectu...
متن کاملA New Architecture Based on Artificial Neural Network and PSO Algorithm for Estimating Software Development Effort
Software project management has always faced challenges that have often had a great impact on the outcome of projects in future. For this, Managers of software projects always seek solutions against challenges. The implementation of unguaranteed approaches or mere personal experiences by managers does not necessarily suffice for solving the problems. Therefore, the management area of software p...
متن کاملA New Algorithm for Performance Evaluation of Homogeneous Architectural Styles
Software architecture is considered one of the most important indices of software engineering today. Software Architecture is a technical description of a system indicating its component structures and their relationships, and is the principles and rules governing designing. The success of the software depends on whether the system can satisfy the quality attributes. One of the most critical as...
متن کاملA BASis (or ABASs) for Reasoning About Software Architectures
This paper discusses the use of Attribute-Based Architectural Styles (ABASs)—architectural styles accompanied by explicit analysis reasoning frameworks—in design. The paper has two main objectives: to convince readers that ABASs provide a basis for insightful reasoning about a software architecture’s ability to meet its quality attribute goals; and to demonstrate the utility of ABASs by showing...
متن کامل