Able Meeting 2003-09-12
ABLE Meeting: Fri, September 12, 2003 @ 1330-1500
Agenda:
Discuss UI, AcmeStudio tooling, and broader Acme ADL research issues.
- We have new staff on AcmeStudio--Patrick McMillholland
- For a nice comprehensive intro on UI issues, Bonnie John recommended User-Interface for Dummies
UI Issues (sorted by AcmeStudio features):
- Connection feature
- If more than one rule is defined between two port types in the current design, the new definition overrides the old
- Warn user of override, or
- Ask user whether to override? (i.e., make it a preference)
- How to do n-ary connection?
- Make n-ary connection pattern-based, e.g., with pub-sub, the connection feature can be specialized to distinguish between publisher and subscriber port types
- Other patterns?
- Jung-Soo: Use context menu for connection (can be used for n-ary connection)
- Support selecting the "Connect" mode to define new rules --select two port type, and then select "Connect" to instruct AcmeStudio to define those two types as a new rule
- Jonathan: Support type-specific connect mode -- choose one connector type in Connect mode, and all subsequent connector instantiations will be of that connector type
- If more than one rule is defined between two port types in the current design, the new definition overrides the old
- Rules
- Better text view of rule ==> need multi-line textbox
- Diagram Editor Type Palette
- Palette needs to be configurable, or selective of what types to show
- For example, if Acme were to support "abstract" type, then palette shouldn't show the abstract types
- Type Browser
- Not working!
- We support viewing parent types
- It would be nice to support viewing/navigating to children types, as in Eclipse Type Hierarchy view.
- Family-editing
- Table editing is not being widely used
- Structured vs textual editing--they're complementary and we need both
- Nice to have type hierarchy available during family editing
- Some use of drag and drop to designate supertype?
- Visualization
- System Visualization
- Not working!
- Element Visualization
- Label choices--checkbox style instead of radio style enumerating explicit combinations?
- Decorations might also need labels?
- Aggregate visualization options (JungSoo: select multiple port types and edit vis)
- Allowed port types:
- Currently added as visualization rule
- Perhaps we can use syntactic work-around to specify the allowed port types without using Armani
- System Visualization
- Other constraint issues
- Consider enhancing AcmeStudio with support for constraints that are non-predicate like
- Example: Arity of connection, which would have been useful for the MDS style
- Exporting output
- Support for legends
- Export or output of AcmeStudio diagram as some form of (Microsoft?) picture object?
- A possibility: Bob Balzer's Powerpoint-based editing for architecture models.
- Minor details
- In the Design Rule dialog: Label: (... ) <== missing right parenthesis
ADL Issue
- Need to support "abstract" type in Acme
- xAcme Schemas are in place, multiple schemas are necessary to get the full Acme capabilities
- Type name conflict:
- When types from two families have a name conflict, instance can qualify which type it declares:
component x : Fam1.CompT; component y : Fam2.CompT;If not qualified, then language implicity chooses one - This implicit choice is __BAD__. Need to somehow let the user know, a tooling issue.
- When types from two families have a name conflict, instance can qualify which type it declares:
Bigger Research Items
- Multiple views/projections of the same model
- Mix-ins in addition to inheritance (from Nick @ JPL)
- Interesting calculus of syltes--how should merging of styles be done, and how can tool support it?
- Conflicting names
- Different names intended for the same target or purpose
- Projection of a model through a particular style\\e.g., view this system through the Pipes-and-Filter style
Paper Idea
- What challenges are encountered in designing an architecture design environment?
- What is our approach?
- Grappling with Eclipse--arising from fundamental difference between architecture design and programming?
Future Tool Extensions
- Bridge to code via ArchJava
- Others? for next meeting...