Original Date: 06/02/2003
Revision Date: 01/18/2007
Best Practice : Reusable Frameworks
ABC Virtual Communications, Inc. has developed several software frameworks that can be reused to facilitate more rapid development of robust software solutions. The development team builds new services by focusing on the high level architecture and designing the interface to interact with the low level, common architectural framework.
Accepted industry practices require the software developer of individual components to be responsible for an extensive amount of effort developing the low level architecture of an application. This type of development process resulted in limited deliverable functionality per unit time of production, while developing undesirable inconsistencies between separate developer’s implementations that resulted in high maintenance costs.
Seeing the shortcomings of the accepted industry practices, ABC Virtual Communications, Inc. (ABVC) has implemented a new process that establishes a framework consisting of common components. These components are arranged in specified object repositories where applications can inherit the characteristics associated with the desired component. Using this process, developers can build solutions within the high level of the application architecture, and allow the use of the common components to provide the support on the lower architectural level. The development team builds new interfaces by focusing on the requisite data formats and any non-standard communication protocols.
One major challenge of a common, reusable framework is the process of client software updates. ABCV addresses this challenge by implementing an update process, which pushes the software applicable to the update to the clients’ desktop when the client connects to the service. The client is notified when an update is available and has the choice of downloading the current updates. To prevent data being pushed from the client through the service in a format not supported by the update, the client is restricted from this process until the update has been downloaded. The client can make changes to the data currently residing on his/her local desktop. The data is then pushed through the service when the client has time to perform the required update.
The use of this framework provides many benefits, one of which eliminates the duplication of work effort. This factor and other issues on the use of previously developed components allow for predictable delivery schedules by developing maintainable and robust systems. It also provides the client with the functionality to operate the application on or off line. By using common components throughout all applications, the training required for developers new to the process is simplified by developers only understanding the common components that reside within the framework.
For more information see the
Point of Contact for this survey.