There are many structured questioning methods. For example, the Software Architecture Review Board SARB process developed at Bell Labs uses experts from within the organization and leverages their deep domain expertise in telecommunications and related applications Maranzano et al.
What is Architecture?
Another variation of the questioning approach is the Architecture Trade-off Analysis Method ATAM Clements, Kazman, and Klein , which looks for risks that the architecture will not satisfy quality concerns. The architects then explain how the architecture supports each of the scenarios. Active reviews are another type of questioning approach that turns the process on its head, requiring the architects to provide the reviewers with the questions that the architects think are important to answer Hoffman and Weiss , chap.
The reviewers then use the existing architecture documents and descriptions to answer the questions. There are many good architectures in systems that we use every day. But what about architectures that are more than good enough? Which architectures would line the walls of that gallery?
The idea is not as far-fetched as you might think—in the field of software product lines, just such a Hall of Fame exists. First, we should recognize that this is a gallery of software systems, not art, and our systems are built to be used. So, perhaps we should begin by looking at the Utility of the architecture: it should be used every day by many people. But before an architecture can be used, it must be built, and so we should look at the Buildability of the architecture.
We would look for architectures with a well-defined Uses Structure that would support incremental construction, so that at each iteration of construction we would have a useful, testable system. We would also look for architectures that have well-defined module interfaces and that are inherently testable, so that the construction progress is transparent and visible.
Next, we want architectures that demonstrate Persistence—that is, architectures that have stood the test of time. We work in an era when the technical environment is changing at an ever-increasing rate. A beautiful architecture should anticipate the need for change, and allow expected changes to be made easily and efficiently. Finally, we would want to include architectures that have features that delight the developers and testers who use the architecture and build it and maintain it, as well as the users of the system s built from it. Why delight developers? It makes their job easier and is more likely to result in a high-quality system.
Why delight testers? They are the ones who have to attempt to emulate what the users will do as part of the testing process. If they are delighted, it is likely that the users will be, too. Think of the chef who is unhappy with his culinary creations. His customers, who consume those creations, are likely to be unhappy, too. Different systems and application domains offer opportunities for architectures to exhibit specific delightful features, but Conceptual Integrity is a feature that cuts across all domains and that always delights.
A consistent architecture is easier and faster to learn, and once you know a little, you can begin to predict the rest. Without the need to remember and handle special cases, code is cleaner and test sets are smaller. A consistent architecture does not offer two or more ways to do the same thing, forcing the user to waste time choosing. Although this particular system never went into production, it meets every other criterion for inclusion.
This architecture has had tremendous influence on the practice of software architecture by demonstrating in a real-world system the separation of a design-time Information Hiding Module and Uses structures from the runtime Process Structures. It showed that information hiding could be used as a primary decomposition principle for a complex system. Since the U.
Architects: Jobs, Career, Salary and Education Information
Finally, the Information Hiding Module structure provided clear and consistent criteria for decomposing the system, resulting in strong Conceptual Integrity. As an exemplar of embedded system software architecture, the A-7E OFP certainly belongs in our gallery. Another architecture that we would want to include in our gallery is the software architecture for the Lucent 5ESS telephone switch Carney et al. The 5ESS has been a global commercial success, providing core telephone network switching for networks in countries around the world. It has set the standard for performance and availability, with each unit capable of handling over one million call connections per hour with less than 10 seconds of unplanned downtime per year Alcatel-Lucent In addition to keeping the number of call types that must be handled to 2 n , where n is the number of call protocols, the half call pattern links the operating system concept of process to the telephony concept of call type, thereby providing a simple design rule and introducing a beautiful Conceptual Integrity.
A development team of up to 3, people has evolved and enhanced the system over the past 25 years.
Based on success, persistence, and influence, the 5ESS architecture is a fine addition to our gallery. The WWW has certainly been commercially successful, transforming the way that people use the Internet. The architecture has remained intact, even as new applications are created and new capabilities introduced. The overall simplicity of the architecture contributes to its Conceptual Integrity, but decisions such as using a single library for both clients and servers and creating a layered architecture to separate concerns have ensured that the integrity of the architecture remains intact.
The persistence of the core WWW architecture and its ability to continue to support new extensions and features certainly qualify it for inclusion in our gallery. Our last example is the Unix system, which exhibits conceptual integrity, is widely used, and has had great influence. The pipe and filters design is a lovely abstraction that permits rapid construction of new applications. A stranger is traveling down a road on a hot summer day. As he progresses, he comes upon a man working by the side of the road breaking rocks.
The man looks up at him. Now get out of my way and let me get back to it. The stranger continues down the road and soon comes upon a second man breaking rocks in the hot sun. The man is working hard and sweating freely.
Maybe you have a better job for me? The stranger shakes his head and moves on. Pretty soon he comes on a third man breaking rocks. The sun is at its zenith now, the man is straining, and sweat is pouring off him. The man pauses, takes a drink of water, smiles, and raises his arms to the sky. How would you like to be our chief architect?
- What is Architecture.
- Abjectly Boundless!
- SECOND REIGN?
- What Does an Architect Do?.
- The Art of The Double Close - A new guide to buying real estate foreclosures, Bank REO property, short sales and investing while working from home;
- You are here?
- WIA - What is architecture?.
We have gone to considerable length to describe architectures, the role of architects, and considerations that go into creating architectures, and we have offered several brief examples of beautiful architectures. We invite you now to read more detailed examples from accomplished architects in the following chapters as they describe the beautiful architectures that they have created and used.
Jon Bentley was an inspiration in this work and he, Deborah Hill, and Mark Klein made many useful suggestions on earlier drafts. June 2. Bass, L. Clements, and R. Software Architecture in Practice , Second Edition.
- What is Architecture ??
- Applied Numerical Methods Using MATLAB.
- Pain Pigs Progress Book One.
- Exploring Construction of the Built Environment?
- Where did we get as society ?!
Boston, MA: Addison-Wesley. Blaauw, G.
Computer Architecture: Concepts and Evolution. Booch, G. Rumbaugh, and I. Brooks, F. The Mythical Man-Month. Carney, D. Clements, P. Documenting Software Architectures: Views and Beyond. Kazman, and M. Evaluating Software Architectures. Boston: Addison-Wesley. Conway, M. Courtois, P. Decomposability: Queuing and Computer Systems. Dijkstra, E. Garlan, D. Grinter, R. San Francisco, CA.
Hanmer, R. Monticello, IL. Hoffman, D. Klein, John. Maranzano, J. Parnas, David L. Amsterdam, North Holland. Waldo, J. October 22— Portland, OR. Weiss, D. Software Product Line Engineering. Stay ahead with the world's most comprehensive technology and business learning platform. With Safari, you learn the way you learn best.
Related What is Architecture?
Copyright 2019 - All Right Reserved