Table Of ContentSoftware Architect
Bootcamp
Software Architect
Bootcamp
Second Edition
Raphael Malveau
Thomas J. Mowbray, Ph.D.
PRENTICE HALL
Professional Technical Reference
Upper Saddle River, NJ 07458
www.phptr.com
A CIP catalog record for this book can be obtained from the Library of Congress.
Editorial/production supervision: BooksCraft, Inc., Indianapolis, IN
Cover design director: Jerry Votta
Cover design: Talar A. Boorujy
Art director: Gail Cocker-Bogusz
Manufacturing manager: Alexis R. Heydt-Long
Executive editor: Paul Petralia
Editorial assistant: Michelle Vincenti
Marketing manager: Chris Guzikowski
Full-service production manager: Anne R. Garcia
©2004 by Pearson Education, Inc.
Publishing as Prentice Hall Professional Technical Reference
Upper Saddle River, New Jersey 07458
Company and product names mentioned herein are the trademarks or registered trademarks of their respective owners.
Prentice Hall books are widely used by corporations and government agencies for training, marketing, and resale.
Prentice Hall PTR offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales.
For more information,
please contact:
U.S. Corporate and Government Sales
1-800-382-3419
corpsales@pearsontechgroup.com
For sales outside of the U.S., please contact:
International Sales
1-317-581-3793
international@pearsontechgroup.com
All rights reserved. No part of this book may be reproduced, in any form or by any means, without permission in writing
from the publisher.
Printed in the United States of America
2nd printing
ISBN 0-13-141227-2
Pearson Education LTD.
Pearson Education Australia PTY, Limited
Pearson Education Singapore, Pte. Ltd.
Pearson Education North Asia Ltd.
Pearson Education Canada, Ltd.
Pearson Educación de Mexico, S.A. de C.V.
Pearson Education—Japan
Pearson Education Malaysia, Pte. Ltd.
Contents
Preface xiii
O Introduction 1
NE
1.1 Defining Software Architecture 2
1.2 The Need for the Software Architect 3
1.3 Goals 3
Industry Background and History 4
Technology Trends and Architectural Styles 4
Tactics 5
Strategies 5
Tools 6
Mindset 6
T Military History 7
WO
2.1 Software Architecture Approaches 8
Architectural Approaches 8
Common Principles 9
Architectural Controversies 10
v
vi Contents
2.2 The Architectural Paradigm Shift 11
2.3 The Need for Software Architecture 14
2.4 Zachman Framework 15
2.5 Reference Model for Open Distributed Processing 17
2.6 Enterprise Architecture Standards 24
Federal Enterprise Architecture Framework 25
2.7 Design Patterns 27
2.8 AntiPatterns 35
2.9 Software Design-Level Model 37
2.10 Conclusions 40
Exercises 41
T Software Architecture:
HREE
Basic Training 45
3.1 Object-Oriented Technology 47
Databases and Objects 49
Object in the Mainstream 49
Scripting Languages 50
3.2 Component-Oriented Technology 50
Components versus Objects 50
Component Infrastructures 52
Component Software Design Patterns 53
Component Software Architecture 54
3.3 Technology Ownership 55
Proprietary Software 55
Open Systems Software 56
3.4 Client-Server Technology 59
History 61
Distributed Components 64
Contents vii
3.5 Internet Technology 70
eXtensible Markup Language (XML) 70
Sun Microsystems J2EE and Microsoft’s .Net 72
Web Services 73
3.6 Architectural Layers and When to Use Them 74
3.7 Software Application Experience 79
3.8 Technology and Application Architecture 81
3.9 Applying Standards to Application Systems 84
3.10 Distributed Infrastructures 88
3.11 Conclusions 98
Exercises 99
F Software Architecture:
OUR
Going to War 103
4.1 Software Architecture Paradigm Shift 103
Traditional System Assumptions 104
Distribution Reverses Assumptions 104
Multiorganizational Systems 105
Making the Paradigm Shift 105
4.2 Doing Software Incorrectly 106
This Old Software 106
An Example: Doing Software Incorrectly 107
Enter the Knight: Heroic Programmers 108
4.3 Doing Software Correctly:
Enterprise Architecture Development 109
Architecture-Centered Process 110
Step 1: System Envisioning 112
Step 2: Requirements Analysis 112
Step 3: Mockup Prototype 113
Step 4: Architectural Planning 113
viii Contents
Step 5: Architectural Prototype 118
Step 6: Project Planning 118
Step 7: Parallel Development 119
Step 8: System Transition 120
Step 9: Operations and Maintenance 120
Step 10: System Migration 121
4.4 Bottom Line: Time, People, and Money 121
4.5 Conclusions 122
Exercises 123
F Software Architecture:
IVE
Drill School 125
5.1 Architecture Versus Programming 126
The Fractal Model of Software 126
Major Design Forces 126
The Effect of Scale on Forces 127
Software Design Levels 127
Using Design Levels 128
5.2 Managing Complexity Using Architecture 128
Creating Complexity 128
Option 1: Sweep It under a Rug 129
Option 2: Hide It in a Crowd 130
Option 3: Ignore It 130
Option 4: Slice It 131
Option 5: Dice It 131
5.3 Systems Integration 131
5.4 Making the Business Case 137
5.5 Architectural Linkage to Software Development 141
5.6 Conclusions 147
Exercises 148
Contents ix
S Leadership Training 151
IX
6.1 Leadership Is a Necessary, Learnable Skill 152
6.2 The Architect as Team Builder 153
6.3 Always Insist on Excellence in Deliverables 154
6.4 Architect’s Walkthrough 160
6.5 Project Management Basics 164
Planning Phase 165
Analysis Phase 165
Implementation Phase 165
6.6 Architect’s Role Versus Project Management 166
Planning Phase 168
Analysis Phase 168
Implementation Phase 168
6.7 Conclusions 169
Exercises 169
S Software Architecture:
EVEN
Jump School 171
7.1 Process 171
Process Prerequisites 172
A Basic Component Framework Software Design Process 174
7.2 Creating New Processes 179
7.3 Teamwork 180
7.4 Conclusions 187
Exercises 187