In this part . . .
In the old days, when life was simple, you worried about software applications that ran on one computer. Today, your systems and software are far more complex. Your software is loaded on a server machine but run on a client machine. You may have multiple servers — each performing an important task in support of the whole system. Your data resides everywhere. Your software must account for network outages and system crashes. The life of a developer — your life — is not simple anymore.
This part helps you rein in your complex systems by providing you with proven system-design steps. We show you how to use UML to explore different architectures and document your design decisions. You want maintainable, flexible, and modular systems and software. We show you the techniques that we use to reach those goals — assembling components, decomposing systems, applying architecture patterns, and realizing subsystems — when we’re faced with designing today’s complex applications.