Characteristics of a Sound Object-Oriented Design

 <  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:

  • Productivity

  • Scalability

  • Integration with existing systems

  • Maintainability

  • Less code and more planning

The following sections discuss each in turn .

Productivity

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.

Scalability

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.

Maintainability

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:

  • Use-case driven. Being use-case driven means that business requirements for the project are captured through use cases. These use cases will be translated into objects that can be developed and tested .

  • Architecturally focused. Applying an architectural focus to the development phases will highlight the division between the project's technical and business architectures and help ensure that the benefits can be realized.

  • Object-based. During analysis and through development, all system entities are communicated using an object metaphor, even if they eventually become more than one object or are absorbed into other objects at development time.

  • Incremental and iterative. A good design requires a step-by-step approach, often including several iterations over each step.

 <  Day Day Up  >  


Object-Oriented Programming with ActionScript 2.0
Object-Oriented Programming with ActionScript 2.0
ISBN: 0735713804
EAN: 2147483647
Year: 2004
Pages: 162

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net