- Paperback: 432 pages
- Publisher: Addison-Wesley Professional; 1 edition (November 14, 1999)
- Language: English
- ISBN-10: 0321643348
- ISBN-13: 978-0321643346
- Product Dimensions: 7.5 x 0.9 x 9.4 inches
- Shipping Weight: 1.6 pounds (View shipping rates and policies)
- Average Customer Review: 5 customer reviews
- Amazon Best Sellers Rank: #7,289,866 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Applied Software Architecture (paperback) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
What other items do customers buy after viewing this item?
From the Back Cover
"Designing a large software system is an extremely complicated undertaking that requires juggling differing perspectives and differing goals, and evaluating differing options. Applied Software Architecture is the best book yet that gives guidance as to how to sort out and organize the conflicting pressures and produce a successful design." -- Len Bass, author of Software Architecture in Practice.
Quality software architecture design has always been important, but in today's fast-paced, rapidly changing, and complex development environment, it is essential. A solid, well-thought-out design helps to manage complexity, to resolve trade-offs among conflicting requirements, and, in general, to bring quality software to market in a more timely fashion.
Applied Software Architecture provides practical guidelines and techniques for producing quality software designs. It gives an overview of software architecture basics and a detailed guide to architecture design tasks, focusing on four fundamental views of architecture--conceptual, module, execution, and code. Through four real-life case studies, this book reveals the insights and best practices of the most skilled software architects in designing software architecture. These case studies, written with the masters who created them, demonstrate how the book's concepts and techniques are embodied in state-of-the-art architecture design. You will learn how to:
- create designs flexible enough to incorporate tomorrow's technology;
- use architecture as the basis for meeting performance, modifiability, reliability, and safety requirements;
- determine priorities among conflicting requirements and arrive at a successful solution; and
- use software architecture to help integrate system components.
Anyone involved in software architecture will find this book a valuable compendium of best practices and an insightful look at the critical role of architecture in software development.
About the Author
Christine Hofmeister is a project manager at Siemens Corporate Research (SCR) in Princeton, New Jersey. Since joining Siemens, Dr. Hofmeister has balanced research in software architecture with design and development of industrial applications, focusing in particular on applications for the power generation industry. Her other research interests are distributed programming environments, software reconfigurability, and re-engineering software architectures.
Robert L. Nord, a member of the software architecture program at SCR, designs and evaluates software architectures for large-scale industrial systems. Dr. Nord, currently the Siemens industrial resident affiliate at the Software Engineering Institute (SEI) in Pittsburgh, is working on methods for architecture trade-off analysis and product-line practices. His other interests include transitioning software design practices, improving architecture practices using software architecture improvement groups, and architecture-based development.
Dilip Soni holds the position of Distinguished Member of Technical Staff at SCR where he designs and evaluates software architectures for industrial systems. His focus of interest has been medical, power generation and distribution, and industrial automation systems. Dr. Soni is currently working on design and verification of component-based control systems and architectures for integrated enterprises. His other interests include traditional music, folk dancing, and nonviolent communication.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
It gives a systematic introduction to several high-level notations, describing the conceptual, executable, structural (or module), and code views. Most of the notation is well-formed UML, and the authors take care to add semantic notes to every part of the graphical notation. They supplement the standard notations with a few text-based extensions. These capture requirements, archtiectural decisions, risks and risk mitigation, and other operating features of a living software project.
One real asset is the related set of brief case studies at the end of the book, three separate products with a common conceptual base. This book is aging, it dates back to 1999 - five years, as I write this. That's old in the "architecture" literature, and the authors fail to apply the "product line" notion. I take this book for its good, though, and lack of one buzzword is a small enough fault.
The book uses a process-and-pipe model pervasively for architectural description. It's a good tool, but other tools are good for other purposes, and their omission is a problem here.
Still, the book is competent on the whole. Its sustained product-line example ties the whole together, and it focusses on practice intead of mainfestos and brand-name methodologies. There's a lot of good here, and you can pick out out easily.
This book answers your questions by proposing both a technique and a language (UML extended), that will help you list the different factors affecting your project, infer the right design decisions, and document them throughout the project. For those with an analytical mind, the architecture process itself is decomposed and re-engineered. No consultant talk here : everything is explained, both in words and figures, using real world examples.
Some will regret that the application field used for the demonstration is too narrow, since only real time applications are used, and there is no reference to database architecture or e-business ! But for those of the embedded world, such a book was awaited, and browsing (too) quickly through various application fields would have contented no one, anyhow.
It is still a long reading, if you want to study all examples in depth - fortunately, you can start your own design after the first case study.
Lastly, using UML throughout the project eases the communication with the development engineers, and it really helps when your team tackles detailed design.
The organisational, product and technical factors affecting the development of a product are called out and the authors provide a means to systematically identify and classify each of these factors. The attempt to satisfy each factor inevitably leads to issues which must be addressed. By providing an issue card format that records the general solution and associated strategies, each issue can be comprehensively addressed. In fact new issues may be raised as a result of the adoption of a strategy and these new issues can be addressed in the same way.
To me this clear linkage between the factors that affect the product development, the issues that arise, and the strategies that address them, is the most outstanding attribute of this book. My only quibble is that the examples given do not encompass business sofware development.
Overall I heartily recommend this book as an excellent way of making sure that you are addressing the issues in your projects.