: Tuesday
PatternStudio - A New Tool for Design Pattern Management
Courtyard (room B)
Tuesday, 16:00, 45 minutes
7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Somsak Phattarasukol, California State Polytechnic University, Pomona
Daisy Sang, California State Polytechnic University, Pomona
Demonstration number: 11
While design patterns have been widely accepted as best practices in design for a decade, their use is still limited owing to lack of a flexible supporting tool. Many tools are built; however, they have technical restrictions that limit their use at large. For example, they require developers to use a built-in programming language, which may not suit the developers' skills and preferences. They use non-standard serialization techniques; as a result, developers cannot exchange patterns freely across different platforms. Lastly, they are not designed to be easily extendable; developers cannot make any enhancement to match their needs. We have developed a tool that supports design patterns, called PatternStudio, as proposed in our OOPSLA'04 poster. The tool is an integrated environment specially designed to be language-neutral (multiple code templates can be supplied to generate code in different languages). It supports pattern interchange (patterns are serialized in the XML Metadata Interchange format) and it is extendable (the tool itself is an Eclipse plug-in and can be further extended). Moreover, the tool implements the concept of design verification; it checks whether a derivative model conforms to its originated pattern. In this demonstration, we will describe how the tool is created from open technologies e.g. Eclipse Modeling Framework (EMF), Graphical Editing Framework (GEF), Java Emitter Templates (JET), and XML Schema (XSD) and show how to work with patterns e.g. define a new pattern, verify a model against a pattern, and generate pattern code in different languages. Also, we will explain how developers can make enhancement by extending the tool.