Software Architecture Essential Bookshelf
The following are entries for the software architect's essential
bookshelf, as nominated by visitors to this site. The entries are listed in
alphabetical order by the first author's last name. Click on the "details" link
to see each entry's full nomination.
What papers or books do you think should be on the architect's essential bookshelf?
Collection
-
Alexander, Christopher. The Timeless Way of Building, ISBN 0-19-502402-8. (details)
-
Alexander, Christopher; Ishikawa, Sara; & Silverstein, Murray. A Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977. (details)
-
M. Aksit (Ed.). Software Architectures and Component Technology: The State of the Art in Research and Practice, Boston: Kluwer Academic Publishers, 2001. (details)
-
Ambler, Scott W. Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process, John Wiley & Sons, ISBN: 047127190X, 2002. (details)
-
Baldwin, Carliss Y. & Clark, Kim B. Design Rules - Vol. 1 : The Power of Modularity, MIT Press, 2000. (details)
-
Bass, Len; Clements, Paul; & Kazman, Rick. Software Architecture in Practice, Addison-Wesley, 1997. (details, 2nd nomination)
-
Booch, Grady. Handbook of Software Architecture. (details)
-
Resources for Software Architects, Bredemeyer Consulting. (details)
-
Buschmann, Meunier, Rohnert, Sommerlad, & Stal. Pattern-Oriented Software Architecture A System of Patterns, Wiley, 1996. (details)
-
Coplien, James O. & Harrison, Neil B. Organizational Patterns of Agile Software Development, Prentice Hall, 2004. (details)
-
Fowler, Martin. et al. Patterns of Enterprise Application Architecture, Addison-Wesley Professional, 2002. (details)
-
Garland, Jeff & Anthony, Richard. Large-Scale Software Architecture, A practical guide using UML, John Wiley & Sons, ISBN: 0470848499, 2002. (details)
-
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, ISBN-10: 0201633612, ISBN-13: 978-0201633610, 1995. (details)
-
Gorton, Ian. Essential Software Architecture, Springer, ISBN: 3540287132, 2006. (details)
-
Hofmeister, Christine; Nord, Robert; Soni, Dilip; & Hoffmeister, Christine. Applied Software Architecture, Addison-Wesley, 1999. (details)
-
Johnson, Rod. Expert One-on-One J2EE Design and
Development, Peer Information, 1st edition (October 2002). (details) -
Kruchten, P. "The 4+1 View Model of Architecture", IEEE Software, Vol 12, No. 6, November 1995. (details)
-
Larman, Craig. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition), Prentice Hall PTR, 2004. (details)
-
Maier, Mark W. & Rechtin, Eberhardt. The Art of Systems Architecting, 2nd Edition, ISBN 0-8493-0440-7.(details)
-
"Recommended Practice for Architectural Description of Software Intensive Systems", IEEE Std. 1471-2000. (details)
-
Rozansksi, Nick & Woods, Eoin. Software Systems Architecture Working With Stakeholders Using Viewpoints and Perspectives, Addison-Wesley 2005. (details)
-
Software Fundamentals: Collected Papers by David L. Parnas. Ed. by Daniel M. Hoffman and David M. Weiss. Addison Wesley, 2001. (details)
-
Shaw, M. & Garlan, D. Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, April 1996. (details)
-
Simon, H. The Sciences of the Artificial, MIT Press, 1981. (details)
-
Whitmire, Scot. Object Oriented Design Measurement, John Wiley & Sons, Inc, 1997, ISDN 0-471-13417-1. (details)
Date: December 10, 2007
Last name, first name:
Abatzis, Nikolaos
Organization/company: Merlin
International
City/state/country: Vienna, VA, US
Title: Sr.
SW Architect
e-mail address: nikolaos@abatzis.com
Nomination:
Johnson, Rod. Expert One-on-One J2EE Design and Development, Peer
Information, 1st edition (October 2002), ISBN-10: 0764543857, ISBN-13:
978-0764543852
Reason for nomination: WARNING!!! This book contains
much more than Design and Implementation info. Rob Johnson spends a lot of time
explaining choices he made from an architectural perspective and "simply"
demonstrates how these architectural choices propagate down the abstraction
levels to become concrete choices of patterns to use and implement in classes.
Although it is not a "pure" architecture book by title, the contents have been
far more instrumental in driving architectural thinking than other books that I
have come across. By making concrete examples in code he just reinforces and
clarifies, due to experience of real life projects not just theory, concepts
and choices he makes.
It is no concidence that in Amazon he gets 5 stars from 32 reviews!
Date: January 26, 2007
Last name, first name:
Nakhre, Manish
Organization/company: Fitch
Ratings
City/state/country: New York, New York, USA
Title:
Sr. Consultant
e-mail address:
manish.nakhre@gmail.com
Nomination:
Larman, Craig. Applying UML and Patterns: An Introduction to Object-Oriented
Analysis and Design and Iterative Development (3rd Edition), Prentice Hall
PTR, Hardcover: 736 pages. 3rd edition (October 20, 2004), Language: English
ISBN-10: 0131489062, ISBN-13: 978-0131489066.
Reason for nomination:
This book lucidly explains the application of patterns to different types of
scenarios using a case study approach. It is a must have for any architect.
Date: January 26, 2007
Last name, first name:
Mukherjee, Shibaji
Organization/company: SUN
Microsystems
City/state/country: Bangalore, KA,
India
Title: Engineering Manager
e-mail address:
mukher@yahoo.com
Nomination:
Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John.Design
Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley
Professional Computing Series), Hardcover: 395 pages, Addison-Wesley
Professional; 1st edition (January 15, 1995). Language: English ISBN-10:
0201633612 ISBN-13: 978-0201633610.
Reason for nomination: This is
the book which created the subject in its proper perspective and is a must in
any architecture book list.
Date: September 26, 2006
Last name, first name:
Bass, Len
Organization/company: Software Engineering
Institute
City/state/country:
Pittsburgh/Pennsylvania/USA
Title: Sr. Member of the Technical
Staff
e-mail address:
Nomination: Gorton, Ian.
Essential Software Architecture, Springer, ISBN: 3540287132,
2006.
Reason for nomination: This book covers, among other things,
the use and evaluation of middleware. This is an important skill for architects
to have.
Date: April 1, 2006
Last name, first name:
Mukherjee, Joyjit
Organization/company:
Microsoft
City/state/country: Hyderabad/AP/India
Title:
Consultant
e-mail address: joyjitm@gmail.com
Nomination:
Martin Fowler et al.,Patterns of Enterprise Application Architecture,
Addison-Wesley Professional, 2002.
Reason for nomination: A great
pattern oriented book which gives a new dimension to Software Architecture.
Domain Model, Identity Map, Value Object, Table Inheritance etc. are practical
patterns and being implemented by many Frameworks already. A must have for all
Software Architects developing large scale enterprise applications.
Date: December 14, 2005
Last name, first name:
Tekinerdogan, Bedir
Organization/company: University of
Twente
City/state/country: Enschede, The Netherlands
Title:
Assistant professor, Software Architect
e-mail address:
bedir@cs.utwente.nl
Nomination:
M. Aksit (Ed.). Software Architectures and Component Technology: The State
of the Art in Research and Practice, Boston: Kluwer Academic Publishers,
2001.
Reason for nomination: The book is a collection of nice papers
including alternative insights in the software architecture design process. One
of the important concepts that is addressed in some of the chapters of the book
is the concept of analysis-synthesis-evaluation, which is a well-known problem
solving concept in mature engineering disciplines. A broad overview on the
application of this concept to software architecture can be found in the PhD
thesis, "B. Tekinerdogan, Synthesis-based Software Architecture Design,
University of Twente, The Netherlands, 2000".
Date: December 12, 2005
Last name, first name:
van Schelven, Richard
Organization/company:
Marconi
City/state/country: Dun Laoghaire/Co.
Dublin/Ireland
Title: Principal Engineer
e-mail address:
Nomination: Rozansksi, Nick & Woods, Eoin. Software Systems
Architecture Working With Stakeholders Using Viewpoints and Perspectives,
Addison-Wesley 2005.
Reason for nomination: This book is essential
since it puts process on architecture. It also introduces the concept of
perspectives which is very powerful to further focus on achieving quality
attributes. It also helps gives people a start on viewpoints. Together with
Software Architecture in Practice one of the best books I've read in years.
Date: June 28, 2005
Last name, first name:
Panduranga, Sathyanarayana
Organization/company: Flextronics Software
Systems
City/state/country: Bangalore/India
Title: Solution
Architect
e-mail address: sathyap@gmail.com
Nomination:
Garland, Jeff & Anthony, Richard. Large-Scale Software Architecture, A
practical guide using UML, John Wiley & Sons, ISBN: 0470848499, 2002.
Reason for nomination: This book provides guidelines to handle the
intricacies of building large-scale software systems.
Date: June 15, 2005
Last name, first name:
Louzado, Dario
Organization/company: Independent
Consultant
City/state/country: Manaus/AM/Brazil
Title:
Software Architect
e-mail address:
dlouzado@yahoo.com.br
Nomination:
Coplien, James O. & Harrison, Neil B. Organizational Patterns of Agile
Software Development, Prentice Hall, 2004, ISBN: 0131467409.
Reason
for nomination: Components, connectors and interfaces shape the
communication paths in the organization. People relationships, information
flow. This book is about architecture, organization, culture and the set of
forces among all these elements.
Date: March 16, 2005
Last name, first name:
Clements, Paul
Organization/company: Software Engineering
Institute
City/state/country: Pittsburgh, PA
Title: Sr.
Member of the Technical Staff
e-mail address:
Nomination:
Grady Booch. Handbook
of Software Architecture
Reason for nomination: While not a
book or paper, I think Grady's handbook should be in every architect's bookmark
list. He has produced a comprehensive, thoughtful, insightful, yet concise
treatment of a complicated subject. It makes a splendid introduction, as well
as an introduction to deeper concepts.
Date: March 1, 2005
Last name, first name:
Steinbach, Christian
Organization/company:
City/state/country: Luxembourg/Luxembourg
Title: Software
developer
e-mail address:
Nomination: Ambler, Scott W.
Agile Modeling: Effective Practices for eXtreme Programming and the Unified
Process, John Wiley & Sons, ISBN: 047127190X, 2002.
Reason for
nomination: This is the first comprehensive attempt at tying together two
opposing software development cultures. On the one hand the Agile/Extreme
Programming camp with its essentially people-based approach to development, and
what is most often referred to as 'traditional' software development. Each
culture is caricatured negatively by the other. Scott Amber shows how
architecture (through modeling) becomes an activity that involves people and
how that activity benefits software development.
Date: March 21, 2004
Last name, first name:
Midha, Amit
Organization/company: Carnegie Mellon University-West
Coast Campus
City/state/country: Mountain View, CA,
USA
Title: Research Scholar
e-mail address:
midha@andrew.cmu.edu
Nomination: Web Site:
http://www.bredemeyer.com/
Reason for nomination: This is a
knowledgeble site dedicated exclusively to software architecture.
Date: March 10, 2004
Last name, first name: Asif,
Muhammad
Organization/company: PICS
City/state/country:
Islamabad, Punjab, Pakistan
Title: Developer
e-mail
address:
Nomination: Bass, Len; Clements, Paul; & Kazman,
Rick. Software Architecture in Practice, Addison-Wesley,
1997.
Reason for nomination: Because of its contents regarding
architecture evaluation.
Date: January 26, 2004
Last name, first name:
Jackson, David
Organization/company:
IBM
City/state/country: Palisades, NY US
Title: Senior
Software Architect
e-mail address:
Nomination: The
Timeless Way of Building, Christopher Alexander. ISBN
0-19-502402-8
Reason for nomination: No other book captures the soul
of architectural thinking the way that Alexander does in this volume. I re-read
it occasionally to remind me what I am really doing.
Date: January 26, 2004
Last name, first name:
Jackson, David
Organization/company:
IBM
City/state/country: Palisades, NY USA
Title: Senior
Software Architect
e-mail address:
Nomination: The Art
of Systems Architecting, 2nd Edition, Mark W. Maier and Eberhardt Rechtin.
ISBN 0-8493-0440-7
Reason for nomination: This is a comprehensive
look at the current architectural thinking in software architecture and other
domains. This is a complete look at the profession.
Date: December 20, 2003
Last name, first name:
Uzuncaova, Engin
Organization/company: Turkish Navy Research Center
Command
City/state/country: Istanbul/Turkey
Title: Software
Engineer
e-mail address:
euzuncaova@armerk.tsk.mil.tr
Nomination:
Shaw, M. and Garlan, D., Software Architecture: Perspectives on an Emerging
Discipline, Prentice Hall, April 1996
Reason for nomination: From
a graduate student's perspective, this book is good in putting it simple and as
comprehensive as possible. That is an important quality that you want to have,
if you are just a beginner.
Date: August 8, 2003
Last name, first name:
Ryberg, Richard
Organization/company: Titan
Corp
City/state/country: Annapolis Junction, MD, USA
Title:
Chief Systems Engineer
e-mail address: rryberg@titan.com
Nomination:
Object Oriented Design Measurement by Scot Whitmire, John Wiley
& Sons, Inc, 1997, ISDN 0-471-13417-1.
Reason for nomination:
Excellent review of measurement theory and practice particularly as it
applies to software engineering. This book should be in every software
engineering and performance measurement library.
Date: March 30, 2003
Last name, first name: Risi,
Walter
Organization/company: LIFIA
City/state/country:
Capital Federal/Buenos Aires/Argentina
Title: Software Architect
e-mail address: walter@lifia.info.unlp.edu.ar
Nomination: Applied Software Architecture by Christine Hofmeister,
Robert Nord, Dilip Soni, Christine Hoffmeister Published by Addison-Wesley Pub
Co. 1999. ISBN: 0201325713
Reason for nomination: This is possibly
the first book on software architecture that presents practices that are almost
immediately applicable to day-to-day practice. It provides a method for
developing architectures that is aligned to accepted best-practices from
industry and academia, and packages it in a form so that it can be used almost
out-of-the-box. Another interesting aspect of this book is that it presents an
UML-based notation for software architectures that is both descriptive and easy
to use in industrial practice. Finally, it has a strong "how-to" feeling often
lacking in software architecture books.
Date: December 5, 2002
Last name, first name:
Kabealo, Craig
Organization/company: Development Consultants
Incorporated
City/state/country: Columbus, OH, USA
Title:
Enterprise Java Architect
e-mail address:
craig@devconinc.com
Nomination: Alexander, Christopher; Ishikawa,
Sara; & Silverstein, Murray. A Pattern Language: Towns, Buildings,
Construction, Oxford University Press, 1977.
Reason for
nomination: While this book does not deal with software architecture per
se, it does clearly articulate the millennia of cumulative experience of
pattern-based architectural reasoning. It is an essential reference that
provides a historical foundation for the integration of patterns in
architectural problem solving. This is the quintessential guide to the
discipline of architectural design and forms the philosophical basis for all
architectural reasoning.
Date: November 27, 2002
Last name, first name:
Mjema, Fredrick
Organization/company: iPath
Solutions
City/state/country: Houston/TX/USA
Title:
Technical Consultant
e-mail address:
Nomination: Bass,
Len; Clements, Paul; & Kazman, Rick. Software Architecture in
Practice, Addison-Wesley, 1997.
Reason for nomination: This book
is a must have for any architect's bookshelf. The authors goes in great details
to discuss the importance of architecture business cycle, quality attributes,
unit operations and much more. The book not only introduce you to architecture
styles but also how the quality attributes can be achieved by these styles. It
gives you the tools on how to derive these styles from first principle. This
book lays foundation for an ever increasing importance in architecture analysis
methods, Attribute Based Architecture Styles (ABASs) and reuse with
product-line architectures.
Date: September 30, 2002
Last name, first name:
Organization/company:
City/state/country:
Title:
e-mail address:
Nomination: Baldwin,
Carliss Y. & Clark, Kim B. Design Rules - Vol. 1 : The Power of
Modularity, MIT Press, 2000.
Reason for nomination: An essential
text as architects scale software up from "components" to "systems". The
authors make compelling arguments for the necessity of design rules as the
backplane of any complex system. The examples, especially that of the
development and architecture behind the IBM 370, are persuasive and compelling.
In addition, concrete techniques, such as the design structure matrix, are
described and used throughout the text.
Date: September 10, 2002
Last name, first name:
Emery, David
Organization/company: MITRE
Corporation
City/state/country: Mclean, VA USA
Title:
e-mail address: emery@mitre.org
Nomination: IEEE
Std 1471-2000 Recommended Practice for Architectural Description of Software
Intensive Systems
Reason for nomination: This is the first standard
to explicitly address how to describe architectures. It provides a reference
model for describing architectures and normative requirements on the contents
of an architectural description.
Date: August 2, 2002
Last name, first name:
Clements, Paul
Organization/company: Software Engineering
Institute
City/state/country: Pittsburgh, PA USA
Title: Sr.
Member, Technical Staff
e-mail address:
clements@sei.cmu.edu
Nomination:
Buschmann, Meunier, Rohnert, Sommerlad, Stal. Pattern-Oriented Software
Architecture A System of Patterns, Wiley, 1996.
Reason for
nomination: This is the first widely used architectural pattern (also
called "architectural style" in many circles) catalog. As such, it represents a
watershed for those in the architecture field who have been pushing for making
architectural design more systematic, more repeatable, and more predictable by
using a known set of patterns/styles. Patterns have known quality attributes,
are more analyzable, decrease learning time and training time for a system, and
bring to the table their own style-specific vocabulary that makes the design
and development process more effective. The book by Buschmann et al. represents
a turning point in architectural design.
Date: August 2, 2002
Last name, first name:
Clements, Paul
Organization/company: Software Engineering
Institute
City/state/country: Pittsburgh, PA USA
Title: Sr.
Member, Technical Staff
e-mail address:
clements@sei.cmu.edu
Nomination:
Software Fundamentals: Collected Papers by David L. Parnas. Ed. by Daniel M.
Hoffman and David M. Weiss. Addison Wesley, 2001.
Reason for
nomination: Parnas laid the foundations for what we call today "software
architecture". It is a bit too strong to say that he did so single-handedly,
but that is not far from the truth. This book includes all of his important
papers on the subject (as well as many others), and should be required reading
for anyone interested in architectural "first principles." Among the best best:
"On the Criteria to be Used in Decomposing Systems into Modules" (1972) which
for the first time articulated the principle of information-hiding, the
encapsulation idea without which object-oriented design and component-based
development would be impossible; "On a 'Buzzward': Hierarchical Structures",
which teaches us that software systems are composed simultaneously of many
structures, both static and dynamic, which is the basis for the multi-view
approach such as 4+1 and others; "Design Software for Ease of Extension and
Contraction", which details the "uses" relation in software, a vastly
under-utilized relation that is behind our ability to extract useful subsets of
systems and to practice incremental development; "On the Design and Development
of Program Families," which lays out the first principles behind developing
software as a family of systems, giving us the very powerful software product
line approach; "Response to Undesired Events in Software Systems," which lays
out the now-taken-for-granted scheme of separating the detection of an error
from its handling, and of bubbling errors back up to the callers who are best
equipped to remedy them; "A Procedure for Designing Abstract Interfaces for
Device Interface Modules," a wonderful paper that teaches design principles for
interface specification and provides a very useful template; and many others.
Date: August 1, 2002
Last name, first name:
Kazman, Rick
Organization/company: Software Engineering
Institute
City/state/country: Pittsburgh, PA USA
Title: Sr.
Member, Technical Staff
e-mail address:
rkazman@sei.cmu.edu
Nomination:
Kruchten, P. "The 4+1 View Model of Architecture", IEEE Software, Vol 12, No.
6, November 1995.
Reason for nomination: This paper sets out a
sensible list of architectural views that you should consider when creating an
architecture, and justifies why each one is necessary. This paper lays out a
minimal set of requirements for architectural documentation.
Date: August 1, 2002
Last name, first name:
Kazman, Rick
Organization/company: Software Engineering
Institute
City/state/country: Pittsburgh, PA USA
Title: Sr.
Member, Technical Staff
e-mail address:
rkazman@sei.cmu.edu
Nomination:
Simon, H., The Sciences of the Artificial, MIT Press, 1981.
Reason
for nomination: This book is a must reading for any architect, particularly
the chapter on the architecture of complexity. Herb Simon, 20 years ago,
already thought of almost every important issue regarding the way that humans
think about the design and analysis of complex artifacts.