This page would look a lot spiffier if you downloaded a standards compliant web browser.

Functional Decomposition in Architecture
    Carnegie Mellon University School of Architecture PhD Dissertation 1999
    Stacking and blocking (S&B) is an important and complex process in building design. Stacking is the process that decides which spaces should go to which floors in a multi-story building. Blocking is a process to decide which spaces should go to which zones for a given floor. As S&B designs a building on a broad scale, it directs the form and general organization of a building. The S&B process is a complex one that necessitates the consideration of many design requirements. While some requirements are related, each design requirement is fundamentally different from the others and thus cannot be handled in the same way. S&B is also a combinatorial problem, in which the number of possible arrangements of spaces is so large that they cannot all be examined individually. Accordingly, S&B is a challenging and extremely critical aspect of building design.

    Computerized S&B exists but there is room for improvement. Currently there are three state-ofthe- art S&B programs, but their algorithms are weak, and they can handle only a single design requirement, namely that of functional adjacency. These limitations significantly hamper their ability to assist designers in the S&B process.

    This research overcomes some of these limitations by critically examining four pertinent research areas with the objective of developing an interactive design aid.

    1) It develops a method for handling multiple design requirements, including functional adjacencies, thermal, acoustic, and daylight requirements.

    2) It makes use of graph-partitioning and clustering algorithms to automate the processes of S&B.

    3) It adopts effective interface features that allow the user to use the system with ease and flexibility. The interface features include drag and drop, progressive disclosure, and dynamic display of algorithmic processes.

    4) It enables an extensive interactivity between the user and the system.

    The development of the computer program includes the following areas of research:
    Requirements gathering and modeling through protocol analysis, energy simulation, and problem analysis;
    Software design in OMT [Rumbaugh, 1991] and OOSE [Jacobson, 1992], and implementation in C++;
    Adaptation of the Fiduccia-Mattheyses VLSI graph-partitioning algorithm, a heuristic which finds a solution to the combinatorial problem in linear time;

    Interface design in OOSE use cases and interaction diagrams, and prototyping in ET++.