| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Mylar"); | |
| ?> | |
| <h1>Mylar</h1> | |
| <BR> | |
| <h2> | |
| Introduction</h2> | |
| <p>The Mylar Project is a proposed open source | |
| project under the <a href="/technology/">Eclipse | |
| Technology Project</a>.</p> | |
| <p>This proposal is in the Project Proposal Phase (as defined in the | |
| <a href="/projects/dev_process/"> | |
| Eclipse Development Process document</a>) and is written to declare its intent | |
| and scope. This proposal is written to solicit additional participation and | |
| input from the Eclipse community. You are invited to comment on and/or join the | |
| project. Please send all feedback to the | |
| <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.mylar"> | |
| http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.mylar</a> newsgroup. | |
| | |
| <h2> | |
| Background</h2> | |
| When used on large systems, Eclipse views become overloaded with elements. | |
| Tree views often contain deep hierarchies with thousands of nodes, search | |
| results often contain hundreds of elements, and each needs to be inspected | |
| carefully to find elements related to the task-at-hand. The end result is | |
| that developers spend more time looking for the information they need to get a | |
| task done than they do programming. Although the Eclipse IDE is better | |
| than most for working on large systems, features such as working sets still | |
| burden the developer with manual configuration as tasks change. The | |
| problem is that the current IDE user interface, | |
| which shows system wide slices of program structure, does not scale to very | |
| large systems. As systems continue to grow, this problem will continue to | |
| get worse. But no matter how complex a system is, for any task that | |
| developers work on--any defect they fix or feature they add--developers only care about a subset of the system. | |
| Mylar proposes that the Eclipse user interface only needs to show developers | |
| what they are working on. | |
| <p>The current Mylar prototype makes working with very large Java and plug-in projects in Eclipse as easy as it is to | |
| work with small projects. It does this by encoding developers' editing and | |
| navigation activity in a degree-of-interest model and using the standard Eclipse | |
| views to show only the relevant elements. It also finds related | |
| information by actively searching | |
| the source code and related artifacts. The result is that the Mylar | |
| plug-in | |
| dramatically reduces the need to navigate, search, inspect, and scroll around | |
| looking for the information needed for the task-at-hand. We propose Mylar | |
| as an Eclipse Technology Project with the intent of demonstrating how the core | |
| pieces of this technology are relevant to the Eclipse platform and tools | |
| projects, and in the process creating a useful plug-in with an active community. </p> | |
| <p>Version 0.1 of Mylar was tested in an August 2004 user study at IBM Toronto, | |
| where 6 senior developers working on enterprise applications and plug-ins | |
| used the tool during one week of their daily work. As reported in the | |
| <a href="http://kerstens.org/mik/publications/mylar-aosd2005.pdf">AOSD | |
| 2005 Mylar paper</a>, the tool resulted in a substantial productivity | |
| improvement. The | |
| <a href="http://www.cs.ubc.ca/~mylar/presentations/mylar-eclipsecon2005.ppt"> | |
| first public presentation of Mylar</a> was given at EclipseCon 2005 and | |
| was very well received. Email | |
| feedback includes statements such as "I thought Mylar was the most | |
| exciting technology I saw at the conference (including all the | |
| commercial vendor offerings)!" [Sean Woodhouse, Technical Director of Verasta]. Several blog entries have also featured Mylar, including: </p> | |
| <ul> | |
| <li> | |
| <a title="Permanent Link: The coolest plug-in you’re not using" rel="bookmark" href="http://www.eclipsepowered.org/archives/2005/03/03/the-coolest-plug-in-youre-not-using/"> | |
| The coolest plug-in you’re not using</a> (eclipsepowered.org)</li> | |
| <li><a href="http://jroller.com/page/werner/20050303">Mylar : | |
| eclipse plugin to avoid information blindness</a> (jroller.com/page/werner)</li> | |
| </ul> | |
| <h2> | |
| Scope</h2> | |
| <p align="left">The objectives of the Mylar project are to: </p> | |
| <ul> | |
| <li> | |
| <p align="left">Demonstrate that modeling task context is a core | |
| concern of the IDE platform, and that it can be seamlessly | |
| integrated into Eclipse to better support developers working with | |
| large workspaces.</p></li> | |
| <li> | |
| <p align="left">Build the core models, infrastructure, and UI | |
| components required to model and expose task context. The | |
| reference implementation will be tools for Java and Eclipse plug-in | |
| development.</p></li> | |
| <li> | |
| <p align="left">Solicit contributions to extend the interest model | |
| to additional Eclipse development platforms as C/C++ and J2EE, and | |
| to additional tools such as those for task management and | |
| information visualization. </p></li> | |
| <li> | |
| <p align="left">Provide a platform for ideas and prototypes that help | |
| scale the Eclipse user interface to very large systems.</p></li> | |
| </ul> | |
| <h2> | |
| Description</h2> | |
| <p align="left">The prototype implementation of Mylar is documented in the | |
| <a href="http://www.cs.ubc.ca/~mylar/presentations/mylar-eclipsecon2005.ppt"> | |
| EclipseCon presentation</a>. The core Mylar component monitors the | |
| developer's editing and navigation activity and builds a | |
| degree-of-interest model. It exposes the degree-of-interest API, used by the Mylar UI | |
| to | |
| provide generic facilities for exposing interest in Eclipse workbench views and | |
| editors. These facilities provide | |
| interest-based highlighters, filters, sorters, and decorators. </p> | |
| <p align="left">Additional Mylar tools extend the core model and UI facilities | |
| and add tool-specific interest encoding and search | |
| facilities. For example, the Java development support provides Mylar extensions of views such as the Package Explorer, Type | |
| Hierarchy and Java Editor, and drives the JDT's search. AOP support does the same for AJDT. | |
| XML-specific extensions support J2EE and plug-in development. Task management support integrates issue tracking systems such as | |
| Bugzilla. Future extensions include debugging support, Dynamic | |
| Help integration, interest model visualization and C/C++ development | |
| support.<br> | |
| </p> | |
| <h2> | |
| Organization</h2> | |
| <p align="left"><b>Initial committers</b></p> | |
| <p align="left">The initial committers will focus on evolving and | |
| hardening the Mylar model by delivering support for | |
| Java development. Our agile development process will | |
| follow eclipse.org's standards for openness and transparency. Our | |
| goal is to provide the | |
| infrastructure and APIs needed to integrate task and degree-of-interest | |
| centric UIs to any Eclipse plug-ins whose users experience information | |
| overload. As such we will actively encourage contributions to | |
| Mylar. We also plan to help improve the Eclipse platform by | |
| submitting patches and extension point suggestions. The initial committers are:</p> | |
| <ul> | |
| <li> | |
| <p align="left"><b><span style="font-weight: 400">Mik Kersten (UBC): </span></b>project lead </li> | |
| <li> | |
| <p align="left"><b><span style="font-weight: 400">Gail Murphy</span> <span style="font-weight: 400">(UBC): </span></b>project manager </li> | |
| <li> | |
| <p align="left"><b><span style="font-weight: 400">Shawn Minto</span> <span style="font-weight: 400">(UBC)</span></b>: component owner of Bugzilla integration and XML | |
| support</li> | |
| </ul> | |
| <p align="left"><b>Interested parties</b><p align="left">The following | |
| projects have expressed interest extending the model or tools, | |
| contributing ideas, guidance and discussion. Key contacts listed.<ul> | |
| <li> | |
| <p align="left">CHISEL lab (University of Victoria): Margaret-Anne | |
| Storey</li> | |
| <li> | |
| <p align="left">JDT (IBM): Philippe Mulet</li> | |
| <li> | |
| <p align="left">AspectJ/AJDT (IBM Hursley): Adrian Colyer</li> | |
| <li> | |
| <p align="left">CDT (Texas Instruments Canada): Winnie Lai</li> | |
| <li> | |
| <p align="left">Rational (IBM): Jin Li</li> | |
| </ul> | |
| <p align="left"><b>Developer community</b><p align="left">We expect to | |
| extend the initial set of committers by actively supporting a developer | |
| community. The initial community outside of UBC will | |
| include | |
| Margaret-Anne Storey's CHISEL lab, which is planning to extend Mylar to | |
| their work on software visualization. We have two additional | |
| developers working on Bugzilla integration, and will be working with CDT | |
| developers to extend support to C/C++. Our goal is to have the | |
| initial developer community harden the core Mylar APIs to the point | |
| where it is easy for any other plug-in to incorporate the technology, | |
| and we will encourage all active contributors to become committers. We will make it easy for interested parties to take an active role in the | |
| project by making our planning and process transparent and remotely accessible. <p align="left"> | |
| <b>User community</b><p align="left"> | |
| Mylar is a new technology that | |
| promises to improve the user interface and interaction model of Eclipse. | |
| As such, supporting and soliciting feedback from a large user community | |
| of commercial developers is critical to creating a scalable model and | |
| usable UIs. We plan on doing this by using | |
| the standard eclipse.org mechanisms of supporting an open project and community of early adopters. In addition, we will collect user feedback in the form of remotely conducted | |
| user studies. These will take a similar form to the one | |
| reported on in the | |
| <a href="http://kerstens.org/mik/publications/mylar-aosd2005.pdf">AOSD | |
| 2005 Mylar paper</a>, and will involve users sending their feedback and usage | |
| statistics on a weekly basis. This data will provide us with | |
| detailed information on view usage, navigation patterns, and the | |
| accuracy and predictability of the Mylar model.<p align="left">Since | |
| the EclipseCon presentation over 75 people have signed up for the | |
| summer user study. Those individuals will form our initial user community. With | |
| the input of the study we plan on tuning the Mylar model and UIs, | |
| and subsequently growing our user and developer communities. For information on | |
| the user user study please refer to the | |
| <a href="http://www.cs.ubc.ca/~mylar/">Mylar page</a>.<br> | |
| | |
| <h2> | |
| Tentative Plan</h2> | |
| <p>2004-08 v0.1: internal release for IBM Toronto | |
| user study<br> | |
| 2005-02 v0.2: internal release for EclipseCon presentation<br> | |
| 2005-04 v0.3: internal bootstrap release<br> | |
| 2005-06 v0.4: public release for user study | |
| <p><b><span style="font-weight: 400; font-style:italic">"Mylar" is:</span></b><i><br> | |
| a) An aluminized film used to avoid blindness when staring at a solar eclipse<br> | |
| b) A user interface and interaction ‘skin’ used to avoid information blindness | |
| when staring at Eclipse</i></p> | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |