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