|< Day Day Up >|
Based on a common set of characteristics, sound object-oriented designs enable developers to meet and surpass the expectations of the industry today. These characteristics support project success and should be adopted early on in the design phase of a development project. The characteristics include the following:
The following sections discuss each in turn .
Given industry demands, productivity is a key to project success. An application architect can assure productivity by providing the development team with a solid application design. Using proven techniques, or models, the architect can map application data with interactions and usage scenarios. With object-oriented design, this is done using objects to model the real-life scenario that is being mimicked by the application. The scenario could be a person purchasing a product, an employee configuring a health care plan, or an assembly line team producing a car.
Another key success factor is scalability. An application must be able to grow and change without having to be completely re-written. With a good object-oriented design, an individual object can be replaced without breaking down the stability of the entire application. In Chapter 2, "All the World Is an Object," we compared objects to a blueprint of a house showing that a house is best architected from separate components or objects that can be replaced without completely tearing down the house each time you want to upgrade your heating system or replace some windows . Now that we are ready to architect an object-oriented application, the blueprint model is emphasized .
Integration with Existing Systems
During the design phase of an application, integration with existing systems is a key factor. During this phase, existing systems should be fully understood and a determination made if they will be used as-is or if there will be a need to build a communication layer for the existing systems to work with your new architecture. This process can add a considerable amount of time and resource, requiring that multiple teams interface during development.
One more success factor that is often overlooked is maintainability. As we move into the deployment phase of an application, we are faced with maintaining the application. There are many things we can do in the design phase to promote ease of maintenance, even if we transfer that task to a different team. For starters, we can provide good documentation from the start. We can also conform to a design standard or pattern that will provide some conformity across the application, thus making it easier and more intuitive for new or different team members to pick up the work.
Less Code, More Planning
The task of building applications using an object-oriented design has many key considerations that drive the success of the design. Aside from satisfying the key success factors, the design will depend on many factors, including the type of application. Is it an intranet or Internet application? Does it interact with any legacy systems? Is the data dynamic and where does the data come from ”Relational Database Management System (RDBMS), extensible markup language (XML), or Web Services? How many developers will be building the application? Answering these questions helps lay the foundation and determine what architectural approach to take because these factors will drive the complexity of the design.
Additionally, any successful object-oriented solution will have the following characteristics:
|< Day Day Up >|