• Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint

Renewal

The experience of this bank points to the basis for a radical reorganization of rapid iterative development processes. To make iterative refinement from prototypes work over the longer term and for larger systems, you have to keep going back to the architecture to improve it. We might call this iterative architectural refinement, or “iterative rearchitecting” if you prefer to verbify your nouns. On each successive round of design and construction, the overall structure of the program is re-examined to identify how it could be improved to support newly incorporated features better. Refining the architecture might entail reorganizing data structures, partitioning the system into more or different subsystems, or replacing work-arounds or make-do algorithms with better code. More often than not, architectural refinement will mean redesigning and rewriting some code that already worked. Although this coding adds to the effort in the next development iteration, it makes the system more robust in terms of further refinement, reducing the cost of future iterations. Architectural reviews are particularly good for examining the object class structure, identifying potential or needed reusable components and looking for missed opportunities for reuse.

This process is a form of concentric development, a rationalized model for rapid prototyping with iterative refinement that starts with core functions to provide a basic set of capabilities to the user. These core capabilities are identified from a selected subset of the use cases or abstract scenarios the finished system must support (see Chapter 22). Starting with an essential core of complete use cases assures that the user has support for entire tasks, not just fragments of functionality. The system is then built in concentric layers of embellishments and enhancements. As each new layer is started, an architectural review identifies refinements or changes to the software architecture that will improve the robustness of the system in support of immediate and future enhancements. These architectural changes are added into the project workload for the current cycle of concentric development.


PREVIEW

                                                                          

Not a subscriber?

Start A Free Trial


  
  • Creative Edge
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint