Preface |
|
xiii | |
Acknowledgments |
|
xxi | |
About the Author |
|
xxiii | |
|
Chapter 1 Introduction to Context-Driven Design |
|
|
1 | (22) |
|
|
2 | (7) |
|
|
9 | (10) |
|
|
12 | (2) |
|
|
14 | (1) |
|
|
14 | (4) |
|
Summary of Design Approaches |
|
|
18 | (1) |
|
Making IT Application Development More of an Engineering Discipline |
|
|
19 | (1) |
|
Taking IT Architecture into Account |
|
|
20 | (1) |
|
|
21 | (2) |
|
Chapter 2 A Hierarchy of Designs |
|
|
23 | (30) |
|
Justifying the Hierarchy of Designs |
|
|
23 | (5) |
|
|
28 | (7) |
|
|
28 | (2) |
|
|
30 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
|
31 | (1) |
|
|
32 | (2) |
|
Analysis of the Context Design |
|
|
34 | (1) |
|
|
35 | (6) |
|
|
41 | (3) |
|
|
44 | (2) |
|
|
46 | (1) |
|
|
47 | (1) |
|
Is It Really Engineering? |
|
|
48 | (3) |
|
|
51 | (2) |
|
Chapter 3 Reusing Existing Methods and Practices |
|
|
53 | (30) |
|
|
54 | (6) |
|
Individuals and Interactions over Processes and Tools |
|
|
55 | (1) |
|
Working Software over Comprehensive Documentation |
|
|
56 | (2) |
|
Customer Collaboration over Contract Negotiations |
|
|
58 | (1) |
|
Responding to Change over Following a Plan |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
60 | (2) |
|
|
62 | (6) |
|
|
63 | (1) |
|
Confusion of Design Layers |
|
|
64 | (2) |
|
|
66 | (1) |
|
Large Use Case Documents Are Hard to Understand |
|
|
67 | (1) |
|
Use Cases Do Not Assist Engineered Design |
|
|
67 | (1) |
|
|
68 | (1) |
|
The Problem with Estimating Cost |
|
|
68 | (4) |
|
|
72 | (2) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
76 | (2) |
|
Using Existing Practices in Context-Driven Design |
|
|
78 | (2) |
|
|
80 | (1) |
|
|
80 | (3) |
|
Chapter 4 The Problem of Large Applications |
|
|
83 | (22) |
|
|
84 | (4) |
|
Problems with Large Projects |
|
|
88 | (12) |
|
|
88 | (3) |
|
|
91 | (2) |
|
Technical Design Problems |
|
|
93 | (3) |
|
Procurement and Outsourcing |
|
|
96 | (4) |
|
Can Large Projects Be Avoided? |
|
|
100 | (3) |
|
|
103 | (2) |
|
Chapter 5 The Relationship with the Business |
|
|
105 | (24) |
|
Understanding Business Processes |
|
|
106 | (6) |
|
|
112 | (3) |
|
|
112 | (1) |
|
|
113 | (2) |
|
|
115 | (1) |
|
The Need for a Wider View |
|
|
115 | (3) |
|
Applying the Business Strategy to Application Development |
|
|
118 | (5) |
|
|
119 | (1) |
|
Cost versus Performance and Availability |
|
|
119 | (1) |
|
Experimental Business Programs |
|
|
120 | (1) |
|
How Long Before the Benefits |
|
|
120 | (1) |
|
|
120 | (1) |
|
Designing for the Existing Culture |
|
|
120 | (1) |
|
Design for a Culture to Which the Organization Aspires |
|
|
121 | (1) |
|
|
122 | (1) |
|
Support a Learning Organization |
|
|
122 | (1) |
|
Non-Business Applications |
|
|
122 | (1) |
|
|
123 | (5) |
|
Is the Process Well Formed? |
|
|
123 | (1) |
|
|
123 | (4) |
|
|
127 | (1) |
|
|
128 | (1) |
|
Chapter 6 The Relationship with the Users |
|
|
129 | (30) |
|
|
129 | (12) |
|
|
131 | (4) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
137 | (1) |
|
Nonfunctional Requirements |
|
|
138 | (2) |
|
Who Uses the Context Design? |
|
|
140 | (1) |
|
|
141 | (10) |
|
Business Process Operations |
|
|
142 | (1) |
|
|
143 | (4) |
|
Data Used by Other Applications |
|
|
147 | (1) |
|
|
148 | (1) |
|
Application Administration |
|
|
149 | (2) |
|
Analyzing the Context Design |
|
|
151 | (5) |
|
|
151 | (2) |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (1) |
|
Reviewing the Context Design |
|
|
156 | (2) |
|
|
158 | (1) |
|
Chapter 7 The Relationship to Other IT Projects |
|
|
159 | (30) |
|
|
161 | (9) |
|
|
161 | (1) |
|
|
162 | (3) |
|
|
165 | (5) |
|
Services Interface Design |
|
|
170 | (8) |
|
Service Interface Definition |
|
|
172 | (4) |
|
Designing Reusable Services |
|
|
176 | (2) |
|
|
178 | (8) |
|
|
178 | (2) |
|
Replacing Existing Applications |
|
|
180 | (4) |
|
Fashioning Services from Existing Applications |
|
|
184 | (2) |
|
Looking Back at the Design Process |
|
|
186 | (2) |
|
|
188 | (1) |
|
Chapter 8 User Interface Design and Ease of Use |
|
|
189 | (26) |
|
|
191 | (3) |
|
|
194 | (5) |
|
|
199 | (9) |
|
|
200 | (1) |
|
|
201 | (1) |
|
|
202 | (1) |
|
|
202 | (1) |
|
|
203 | (1) |
|
Intuitive and Likable Applications |
|
|
203 | (2) |
|
|
205 | (3) |
|
|
208 | (1) |
|
Transaction and Task Integrity |
|
|
208 | (4) |
|
The User Interface Design and the Other Detailed Designs |
|
|
212 | (1) |
|
|
212 | (3) |
|
Chapter 9 Database Design |
|
|
215 | (28) |
|
|
215 | (8) |
|
|
223 | (10) |
|
Programmers versus the Database Designer |
|
|
233 | (3) |
|
|
236 | (2) |
|
|
238 | (4) |
|
|
242 | (1) |
|
Chapter 10 Technical Design---Principles |
|
|
243 | (28) |
|
Principles of High Performance on a Single Machine |
|
|
244 | (8) |
|
|
245 | (3) |
|
Multithreading and Multiprocessing |
|
|
248 | (4) |
|
Principles of High Performance on Many Servers |
|
|
252 | (8) |
|
|
252 | (4) |
|
|
256 | (4) |
|
Principles of High Resiliency |
|
|
260 | (3) |
|
The Need for Testing and Benchmarking |
|
|
263 | (2) |
|
The Technical Design Process |
|
|
265 | (3) |
|
|
268 | (3) |
|
Chapter 11 Technical Design---Structure |
|
|
271 | (26) |
|
|
272 | (4) |
|
|
276 | (5) |
|
The Variety of Programming Languages |
|
|
281 | (5) |
|
Choosing a Programming Language and Framework |
|
|
286 | (4) |
|
Choose a Language that Fits Your Organization's Skill Set |
|
|
287 | (1) |
|
Choose a Language that Is Appropriate for Your Application's Performance Goals |
|
|
287 | (1) |
|
Choose a Language that Can Meet Your Integration Requirements |
|
|
287 | (1) |
|
Choose a Language that Supports Group Working If Needed |
|
|
287 | (1) |
|
Choose Version Control Software and Project Management Software as Well as a Language |
|
|
288 | (1) |
|
Choose a Language that Chimes with Your Development Methodology |
|
|
289 | (1) |
|
|
290 | (3) |
|
Implementing Common Functionality |
|
|
293 | (2) |
|
|
295 | (2) |
|
Chapter 12 Security Design |
|
|
297 | (26) |
|
IT Application Security Principles |
|
|
299 | (8) |
|
|
300 | (2) |
|
|
302 | (1) |
|
|
303 | (1) |
|
|
304 | (2) |
|
|
306 | (1) |
|
The Security Elements of Each Design |
|
|
307 | (9) |
|
|
307 | (4) |
|
|
311 | (1) |
|
|
312 | (1) |
|
|
312 | (2) |
|
|
314 | (2) |
|
|
316 | (3) |
|
|
319 | (4) |
|
Chapter 13 The Future of Application Development |
|
|
323 | (18) |
|
How Context-Driven Design Changes Application Development |
|
|
323 | (2) |
|
Context-Driven Design Opportunities |
|
|
325 | (7) |
|
|
326 | (2) |
|
Context and Integration Design |
|
|
328 | (1) |
|
User Interface and Database Design |
|
|
328 | (1) |
|
|
329 | (3) |
|
The Application Development Challenges |
|
|
332 | (7) |
|
|
332 | (2) |
|
|
334 | (1) |
|
|
335 | (1) |
|
|
336 | (1) |
|
|
337 | (2) |
|
|
339 | (2) |
|
Appendix A Context Design Checklist |
|
|
341 | (8) |
|
|
341 | (8) |
|
|
344 | (1) |
|
|
344 | (5) |
References |
|
349 | (4) |
Index |
|
353 | |