Example Resolved

In this example, we develop and evaluate a software architecture for a Video Store Rental system, based on the Layers of Change for Software Architecture, in order to show how this pattern can be applied to a proposed problem. The problem selected for illustration is a variation on the Video Rental store, proposed by Norm Kerth [Kerth99], in which it is assumed a set of customer requirements, following the run-time and build-time requirements of the problem. Briefly, the problem states the need of a computer system by a video rental store to support its business. The customer requirements are basically presented in the form of scenarios to rent a product, to check-in a video, to establish and maintain a customer account, etc.

For the development of the example, two levels of detail to architecture development are considered: First, an initial architecture is developed, mainly exposing a proposal for Software Structure, Software Skin and Software Services. This initial architecture serves as a basis for preliminary feasibility evaluation, and as base for detailed design. Second, a refinement of the architecture is developed, using Software Space Plan and Software Stuff. Refinement can be performed when the detailed design is completed, as the output of later design studies. The basic constraint on the layers and components definitions is that they are fixed; once created, they remain as long as the software system executes. Considering this constraint and the functional requirement information as inputs, we can make our first approach to define the software architecture, trying always to design towards the big picture.


Contact Information

Jorge Luis Ortega Arjona

E-mail jortega-arjona@acm.org