This research establishes a formal methodology for designing and implementing highly interactive systems that is based on knowledge of both application programs and interface software. To demonstrate feasibility, it the methodology is applied to systematically resolve design and implementation trade-offs between the conflicting goals of supporting highly interactive graphic interfaces and achieving maximum separation between user interface software and application programs. The methodology replaces traditional partitioning of the development task with partitioning of the interactive system. Mechanisms progressively transform design information from an initial description of interaction requirements to components of the software interface between the user interface and application. These mechanisms capture the knowledge required to build this interface. A design information representation describes the information required to resolve separation trade-offs. These results are implemented as a tool that demonstrates the methodology.