An enterprise application is a business application, obviously. As most people use the term, it is a big business application. In today’s corporate environment, enterprise applications are complex, scalable, distributed, component-based, and mission-critical. They may be deployed on a variety of platforms across corporate networks, intranets, or the Internet. They are data-centric, user-friendly, and must meet stringent requirements for security, administration, and maintenance. In short, they are highly complex systems.
Designing and developing such enterprise applications means satisfying hundreds or thousands of separate requirements. What’s more, every development decision you make to satisfy each requirement affects many other requirements, often in ways that are difficult to understand or predict — and the failure to meet any of these requirements can mean the failure of the entire project!
The Enterprise Application Model introduced in this chapter gives you a way to look at the enterprise application "whole cloth," to bring some order out of this complexity. It organizes an application’s requirements into a small set of distinct but interdependent categories, and shows how each requirement interacts with the others. By balancing the effects of each design choice against all the other requirements, you can avoid the nasty shock of discovering too late that you’ve overlooked or underestimated some important design consideration. Later chapters will use this model to break up the complex task of enterprise development into a small set of more manageable sub-tasks.
This chapter includes the following sections:
|Enterprise Application Requirements||Defines three primary attributes of an enterprise application and summarizes requirements all enterprise applications must meet.|
|Enterprise Application Model||Presents the Enterprise Application Model and discusses the interactions among each of its sub-models.|
|Designing with the Enterprise Application Model||Defines the role of business requirements in designing and developing enterprise applications.|