Critic Framework Overview
ArchStudio 3 has the ability to audit and analyze architectures through the use of design critics. Work on Design Critics done here at UCI was laregely applied to the Argo/UML project, now hosted as an open-source effort, and the lessons from that project have been brought forth into ArchStudio 3.
Design critics are pieces of software that "watch" the development of a design, such as a software architecture, and identify issues with that design that, if resolved, would result in an improved design. These issues may be errors in the design or simply things that could be improved.
In ArchStudio 3, critics are implemented as ArchStudio components, interacting in a specific way with other components. Support components provided as part of the ArchStudio 3 distribution include:
- CriticADT: Stores all open issues currently known by all active critics, and serves as the authoritative source for other components of open issues.
- CriticManager: Component with knowledge of all critics in the system, manages critic dependencies and serves as the authoritative source for other components of information about critic state.
- CriticGUI: A Graphical User Interface that displays information about open critic issues.
- DefaultCriticArtist: A component that can render a graphical (i.e. Java Swing) depiction of a critic issue, provides these graphical depictions to the CriticGUI. For more specialized views, new artists can be created and "plugged in.'
- CriticManagerGUI: A Graphical User Interface that displays information about available critics and their states. Also allows users to activate and deactivate critics as necessary.
- Using the results of critics to perform analysis on behalf of their tools.
- Developing new critics.
Critics Architecture and Communications
First, it is useful to have a notional architecture of the critics framework. The architecture shown here is a "slice" of the total ArchStudio 3 architecture so only critic-related components and buses are depicted here. The architecture "slice" for the critics in ArchStudio looks like:

As you can see, all the components listed above (plus the critic components themselves) are depicted here.