Preface
Acknowledgments
ONE INTRODUCTION
1.1 Advice for Software Architects
1.2 Software Architecture as a Discipline
1.3 Design Patterns and Software Architecture
1.4 Conclusions
1.5 Exercises
TWO SOFTWARE ARCHITECTURE:BASIC TRAINNG
2.1 Software Paradigms
2.2 Open Systems Technology
2.3 Client Server Technology
2.4 Software Application Experience
2.5 Technology and Application Architecture
2.6 Applying Standards to Application Systems
2.7 Distributed Infrastructures
2.8 Conclusions
2.9 Exercises
THREE SOFTWARE ARCHITECTURE:GOING TO WAR
3.1 Software Architecture Paradigm Shift
3.2 Doing Software Wrong
3.3 Doing Software Right:Enterprise Architecture Development
3.4 Bottom Line:Time,People,and Money
3.5 Conclusions
3.6 Exercises
FOUR SOFTWARE ARCHITECTURE;DRILL SCHOOL
4.1 Architecture versus Programming
4.2 Managing Complexity Using Architecture
4.3 Systems Integration
4.4 Making the Business Case
4.5 Architecture Linkage to Software Development
4.6 Architectural Software Notation
4.7 Conclustions
4.8 Exercises
FIVE LEADERSHIP TRAINING
5.1 Leadership Is a Necessary,Learnable Skill
5.2 The Architect as Team Builder
5.3 Always Insist on Excellence in Deliverables
5.4 Architect's Walkthrough
5.5 Conclusions
5.6 Exercises
SIX SOFTWARE ARCHITECTURE:JUMP SCHOOL
6.1 Process
6.2 Creating New Processes
6.3 Teamwork
6.4 Conclusions
6.5 Exercises
SEVEN COMMUNICATIONS TRAINING
7.1 Communications Challenges
7.2 Responsibility-Driven Development
7.3 Communication Responsibilities
7.4 Handling Feedback
7.5 Exercises
EIGHT SOFTWARE ARCHITECTURE:INTELLIGENCE OPERATIONS
8.1 Architecture Mining
8.2 Architecture Iteration
8.3 Architecture Judgment
8.4 Conclusions
8.5 Exercises
NINE SOFTWARE ARCHITECTURE:PSYCHOLOGICAL WARFARE
9.1 Alternative Learning
9.2 Internal Control
9.3 Expectation Management
9.4 Psychology of Truth
9.5 Perception Is Not Reality
9.6 Exploiting Human Weaknesses
9.7 Example:Reference Selling
9.8 Psychology of Ownership
9.9 Psychological Akido
9.10 Intellectual Akido
9.11 Conclusions
9.12 Exercises
Appendix A Architecture Example:Test Results Reporting System
Appendix B Design Templates and Examples
Appendix C Glossary of Software Architecture Terminology
Appendix D Acronyms
Appendix E Bibliography
Index