Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Documenting Software Architectures: Views and Beyond
 
 

Documenting Software Architectures: Views and Beyond [Hardcover]

Paul Clements , Felix Bachmann , Len Bass , David Garlan , James Ivers , Reed Little , Robert Nord , Judith Stafford
4.5 out of 5 stars  See all reviews (4 customer reviews)
List Price: CDN$ 78.99
Price: CDN$ 63.54 & this item ships for FREE with Super Saver Shipping. Details
You Save: CDN$ 15.45 (20%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.ca. Gift-wrap available.
Only 1 left in stock--order soon (more on the way).
Want it delivered Tuesday, May 29? Choose One-Day Shipping at checkout.

Formats

Amazon Price New from Used from
Hardcover CDN $45.98  
Hardcover, Oct 6 2002 CDN $63.54  
There is a newer edition of this item:
Documenting Software Architectures: Views and Beyond Documenting Software Architectures: Views and Beyond 4.5 out of 5 stars (4)
CDN$ 45.98
In Stock.

Frequently Bought Together

Documenting Software Architectures: Views and Beyond + Software Architecture in Practice + Beyond Software Architecture: Creating and Sustaining Winning Solutions
Price For All Three: CDN$ 156.13

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details

  • Software Architecture in Practice CDN$ 52.91

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details

  • Beyond Software Architecture: Creating and Sustaining Winning Solutions CDN$ 39.68

    In Stock.
    Ships from and sold by Amazon.ca.
    This item ships for FREE with Super Saver Shipping. Details



Product Details


Product Description

Book Description

Architecture is crucial to the success of any large software system -- but even a superb architecture will fail if it isnt communicated well. Now, theres a language- and notation-independent guide to capturing architecture so it can be used successfully by every analyst, software designer, and developer. KEY TOPICS-The authors review the diverse goals and uses of software architecture documentation, providing documentation strategies for several common scenarios. They identify the basic unit of software architecture documentation- the viewtype, which specifies the type of information to be provided in an architectural view. For each viewtype -- Modules, Component-and-Connectors, and Allocation -- they offer detailed guidance on documenting what really matters. Next, they demonstrate how to package architecture documentation in coherent, usable form- augmenting architectural views with documentation of interfaces and behavior; accounting for architectural variability and dynamic systems; and more. MARKET-For everyone involved in producing or using software architecture documentation- architects, analysts, designers, programmers, IT managers, and other software development project participants.

From the Inside Flap

For all but the most trivial software system, success will be elusive if you fail to pay careful attention to its architecture: the way the system is decomposed into constituent parts and the ways those parts interact. Without an architecture that is appropriate for the problem being solved, the project will fail. Even with a superb architecture, if it is not well understood and well communicated—in other words, well documented—the project is likely to flounder.

Accordingly, software architecture is at the center of a frenzy of attention these days. A new book about it seems to pop out monthly. In response to industrial need, universities are adding software architecture to their software engineering curricula. It's now common for "software architect" to be a defined position in organizations, and professional practice groups for software architects are emerging. Software architecture has been the subject of major international conferences and workshops. The purveyors of the Unified Modeling Language (UML) promote their product by calling it "the standard notationfor software architecture," a claim that may say at least as much about the pervasiveness of architecture as about UML. The Software Engineering Institute of Carnegie Mellon University (SEI) maintains a bibliography of about 1,000 journal and conference papers on software architecture.

Rather surprisingly, practical guidance that is independent of language or notation for how to capture an architecture is lacking. To be sure, piles of books exist about how to use a particular language—again, UML comes to mind—but what an architect really needs is guidance in which architecture is a first-class citizen, with language relegated more appropriately to a supporting role.

First, let's agree on some basic context. The field has not anointed a single definition of software architecture, and so there are many, but we can specify the one we'll use, which is adapted from Bass, Clements, and Kazman (1998). Although much of this book is about the meaning of elements and relationships, we use this definition now to emphasize the plurality of structures that exist in architectures. Each structure is characterized by various kinds of elements and relationships, and each structure provides a view that imparts a particular kind of understanding of the architecture.

Definition: A software architecture for a system is the structure or structures of the system, which consist of elements, their externally visible properties, and the relationships among them.

"Externally visible properties" are those assumptions other components can make of a component, such as its provided services, quality attribute properties, shared resource usage, and so on.

The architecture serves as the blueprint for both the system and the project developing it, defining the work assignments that must be carried out by design and implementation teams. The architecture is the primary carrier of system qualities, such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision. Architecture is an artifact for early analysis to make sure that the design approach will yield an acceptable system. Architecture holds the key to post-deployment system understanding, maintenance, and mining efforts. In short, architecture is the conceptual glue that holds every phase of the project together for all its many stakeholders.

Documenting the architecture is the crowning step to crafting it. The perfect architecture is useless if it has not been expressed understandably. If you go to the trouble of creating a strong architecture, you must go to the trouble of describing it in enough detail, without ambiguity, and organized so that others can quickly find needed information. Otherwise, your effort will have been wasted, because the architecture will be unusable.

The audience for this book includes the people involved in the production and consumption of architectural documentation: the community of software developers. The goal of this book is to help you decide what information about an architecture is important to capture and to provide guidelines, notations, and examples for capturing it. We intend this book to be a practitioner-oriented guide to the various kinds of information that constitute an architecture. We give practical guidance for choosing what information should be documented and show—with examples in various notations, including but not limited to UML—how to describe that information in writing so that others can use it to carry out their architecture-based work: implementation, analysis, recovery, and so on. Therefore, we cover

  • Uses of software architecture documentation. How one documents depends on how one wishes to use the documentation. We lay out possible end goals for architecture documentation and provide documentation strategies for each.
  • Architectural views. We hold that documenting software architecture is primarily about documenting the relevant views and then augmenting this information with relevant information that applies beyond views. The heart of the book is an introduction to the most relevant architectural views, grouped into three major families, which we call viewtypes, along with practical guidance about how to write them down. Examples are included for each.
  • Packaging the information. Once the views have been understood, the problem remains of choosing the relevant views, including information not contained in a view, and packaging all the information as a coherent whole. We give practical advice for all these facets.

We believe strongly in the importance of architecture in building successful systems. But no architecture can achieve this if it is not effectively communicated, and documentation is the key to successful communication. We hope that we have provided a useful handbook for practitioners in the field.

—P.C.C.,
Austin, Texas
—F.B., L.B., D.G., J.I., R.L., R.N., J.S.,
Pittsburgh, Pennsylvania



0201703726P08302002

Inside This Book (Learn More)
Browse and search another edition of this book.
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Suggested Tags from Similar Products

 (What's this?)
Be the first one to add a relevant tag (keyword that's strongly related to this product)
 

Your tags: Add your first tag
 

What Other Items Do Customers Buy After Viewing This Item?


 

Customer Reviews

4 Reviews
5 star:
 (3)
4 star:    (0)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.5 out of 5 stars (4 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most helpful customer reviews

5.0 out of 5 stars The best to date, Jun 22 2004
By 
wiredweird "wiredweird" (Earth, or somewhere nearby) - See all my reviews
(TOP 1000 REVIEWER)   
This review is from: Documenting Software Architectures: Views and Beyond (Hardcover)
Software architecture really is unlike any other aspect of its design. The architecture has deeper meaning and larger scale than any other aspect, and can't be discussed in the same ways.

This book opens that discussion. Among the "architecture" books I've read lately, this is the only one to offer concrete advice on describing, presenting, and analyzing archtiectural features of a system. It identifies a number of documentation types and variations. It also identifies a number of different readers - developers, future architects, users, etc. - and addresses their different documentation needs.

The authors use a little UML, but not a lot. For one thing, standard UML works at too low a level for architectural discussion. Classes, and even hierarchies of class inheritance are such fine-grained entities that architecture gernerally won't address them. Instead, the authors offer a number of diagramming styles of their own. For once, I agree with the need for non-standard notation.

Even so, I think they under-utilize the existing standards in favor of their own terminology and notation. They could have used a UML profile for lots of the discussion. It would have had to be a new profile, however, not just a force-fit of the real-time profile. They also under-used the existing architecture standards (IEEE/ANSI, DoD, NASA, and more) in favor of their own discussion. Maybe their approach can be used in any of those frameworks, but that should have been more explicit.

I see only one major flaw in this book, the assumption that a software system's architecture describes the program delivered to a customer. That's way too narrow. A large system includes things like test harnesses, debug instrumentation, application-specific QA tools, and user documentation of many kinds. Those can be major undertakings of their own. They are intimately tied to the delivered software, and may constrain the actual product.

On the postivie side, this book offer an extensive real-world case study. That probably doubles the book's value, by putting a concrete face on the otherwise abstract discussion.

There are two ways to use this book: you can agree with it, or think about it and disagree with it. If you really think about it, though, you get it's full value whether you agree or not.

In other words, you can't lose by reading this book.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3.0 out of 5 stars Quite skimpy, May 23 2003
By 
"utseng2002" (Sydney, Australia) - See all my reviews
This review is from: Documenting Software Architectures: Views and Beyond (Hardcover)
This is not a bad introductory documentation book, but quite skimpy in the amount of information and examples it contains.
Not sure it is worth buying at that price. I bought it after reading the previous reviews - I think they overrated it!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars The only technical documentation book you'll need, Oct 27 2002
This review is from: Documenting Software Architectures: Views and Beyond (Hardcover)
After reading my colleague's comments I rushed out and purchased this book. I, too, am trained and certified in Information Mapping© and was impressed at how closely the approach in this book is aligned to that method. However, what I like most is the fact that this book can be used as guidance for a wider scope than just documenting software architectures because it shows how to organize your documentation requirements, develop clear documentation and manage the entire process from start to finish.

I also like the clearly articulated and illustrated advice about how to augment text with graphics, and how to select the views and associated graphics to document requirements, specifications and the finished architecture. An example of how this book goes beyond documenting just architectures is a project in which I was engaged two years ago. One of the major deliverables was a set of operations guides. While this is related to architecture with respect to how its used after it's in production, there were no books that fully described how to go about it in a coherent way. Using the advice and techniques in this book I could have greatly improved upon what I did produce. While I cannot change the past, you can be sure that I'll use this book to its fullest the next time I need to write ops guides, especially when it comes to showing component and connector views, and elements and relations.

If you do technical writing either professionally or as a part of your job get this book and keep it nearby. If you read and use the material you're ability to communicate will surely improve, and you'll be able to tailor your documentation to each segment of your audience (business and technical), as well as to clearly communicate information. You'll also learn much about managing the documentation process itself.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
Want to see more reviews on this item?
 Go to Amazon.com to see all 17 reviews  4.5 out of 5 stars 
 
 
Most recent customer reviews


Only search this product's reviews



Listmania!


Look for similar items by category


Look for similar items by subject


Feedback


Amazon.ca Privacy Statement Amazon.ca Shipping Information Amazon.ca Returns & Exchanges