<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Constructing domain-specific design tools with a visual language meta-tool</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Nianping</forename><surname>Zhu</surname></persName>
							<email>nianping@cs.auckland.ac.nz</email>
							<affiliation key="aff1">
								<orgName type="department">Department of Electrical and Electronic Engineer</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">John</forename><surname>Grundy</surname></persName>
							<email>john-g@cs.auckland.ac.nz</email>
							<affiliation key="aff1">
								<orgName type="department">Department of Electrical and Electronic Engineer</orgName>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="institution">University of Auckland</orgName>
								<address>
									<addrLine>Private Bag 92019</addrLine>
									<settlement>Auckland</settlement>
									<country key="NZ">New Zealand</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">John</forename><surname>Hosking</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Department of Electrical and Electronic Engineer</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Constructing domain-specific design tools with a visual language meta-tool</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">1D35A31FEF8A7143F6F123CF5704B774</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:09+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Collaborative, visual design tools are typically difficult to build and evolve. We describe a meta tool for specification and generation of multiple view, multiple user visual design tools. The tool permits rapid specification of visual notational elements, underlying tool information model requirements, visual editors, the relationship between notational and model elements, and behavioural components. Tools are generated on the fly and can be used for modelling immediately. Changes to the meta tool specification are immediately reflected in any tool instances.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Multi-view, multi-notational visual environments are popular tools in a wide variety of domains. Examples include software design tools, circuit designers, visual programming languages, user interface design tools, and children's programming environments. Many frameworks, meta-tool environments and toolkits have been created to help support the development of such visual language environments. These include MetaEdit+ <ref type="bibr" target="#b5">[6]</ref>, Meta-MOOSE <ref type="bibr" target="#b1">[2]</ref>, Escalante <ref type="bibr" target="#b7">[8]</ref>, and DiaGen <ref type="bibr" target="#b8">[9]</ref>. We have also had a long term interest in developing frameworks and meta tools supporting development of such tools, including JViews <ref type="bibr" target="#b2">[3]</ref> and JComposer meta-tools <ref type="bibr" target="#b3">[4]</ref>.</p><p>However, current approaches to developing multiple-view visual language tools suffer from several deficiencies. Frameworks provide low-level yet very powerful sets of reusable facilities for building specific kinds of visual language tools or quite general-purpose applications, depending on their degree of domain specialisation. General purpose frameworks like MVC <ref type="bibr" target="#b4">[5]</ref> and Unidraw <ref type="bibr" target="#b10">[11]</ref> typically lack abstractions specific to multi-view, visual language environments. Special purpose frameworks like Meta-MOOSE <ref type="bibr" target="#b1">[2]</ref>, JViews <ref type="bibr" target="#b2">[3]</ref>, and Escalante <ref type="bibr" target="#b7">[8]</ref> offer more easily reusable facilities for visual language environments, but require detailed programming knowledge and a compile/edit/run cycle, limiting their ease of use and flexibility for exploratory development. Many general-purpose toolkits that are suitable for visual language development have been produced, including Tcl/Tk <ref type="bibr" target="#b11">[12]</ref> and Suite <ref type="bibr" target="#b0">[1]</ref>, but lack high-level abstractions for visual, multi-view environments. More targeted toolkits include DiaGen <ref type="bibr" target="#b8">[9]</ref>, JComposer <ref type="bibr" target="#b3">[4]</ref> and PROGRES <ref type="bibr" target="#b9">[10]</ref>. Some use a code gen-eration approach from a specification, e.g DiaGen and JComposer. Others, such as PROGRES, are based on formalisms such as graph grammars and graph rewriting which are used for high-level syntactic and semantic specification of tools. Code generation approaches suffer from similar problems to many toolkits: edit/ compile/run cycle needed and difficulty in integrating third party solutions. Meta-tools provide an integrated environment for developing other tools. These include MetaE-dit+ <ref type="bibr" target="#b5">[6]</ref>, Escalante <ref type="bibr" target="#b7">[8]</ref>, JComposer <ref type="bibr" target="#b3">[4]</ref> and IPSEN <ref type="bibr" target="#b6">[7]</ref>. Typically meta-tools provide good support for their target domain environments but they are often limited in their flexibility and degree of integration with other tools.</p><p>Our aim was to produce a new meta-tool, Pounamu<ref type="foot" target="#foot_1">1</ref> , that could be used to rapidly design, prototype and evolve tools supporting a very wide range of visual notations and environments, ameliorating these deficiencies. To achieve this we based Pounamu's design on two overarching requirements: Simplicity of use and Simplicity of extension and modification.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Overview of Pounamu</head><p>Figure <ref type="figure" target="#fig_0">1</ref> shows the main components of the Pounamu meta-tool. A user of Pounamu initially specifies a meta-description of the desired tool. Specification tools allow definition of the appearance of visual language notation components ("Shape Designer"), views for graphical display and editing of information ("View Designer"), the tool's underlying information model as meta-model types ("Meta-model Designer"), and event handlers to define behavioural semantics ("Event Handler Designer"). Tool projects are used to group individual tool specifications. Having specified a tool or obtained someone else's tool project specification, users can create multiple project models associated with that tool. Modelling tools allow users to create modelling projects, modelling views and edit view shapes, updating model entities. To support our ease of use requirement, the shape, view and meta-model designers use high-level visual programming tools with relatively simple appearance and semantics. To ensure flexibility and openness of the tools, the event handler designer allows tool designers to choose predefined event handlers from a library or to write and dynamically add new ones as Java plug-in components. Pounamu uses an XML representation of all tool specification and model data, which can be stored in files, a database or a remote version control tool. Pounamu also provides a full web services-based API used to integrate the tool with other tools, or to remotely drive the tool.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Tool Specification and Usage with Pounamu</head><p>Figure <ref type="figure" target="#fig_1">2</ref> (1) shows an example of the Pounamu shape designer in use. On the left a hierarchical view provides access to tool specification components and models instantiated for that tool. In the centre are visual editing windows for defining tool specification components and model instances. Here, a shape is defined representing a generic UML class icon. To the right is a property editing panel supplementing the visual editing window. General information is provided in a panel at the bottom. The underlying tool information model is specified using the meta model designer, as in Figure <ref type="figure" target="#fig_1">2</ref> (2). This uses an Extended Entity Relationship (EER) model as its representational metaphor with extensions for specifying complex property data types and calculated fields. In this example a meta-model contains entities representing a UML class and UML object (squares), with properties for their names, attributes and methods. An association (instanceOf ) links class and object entities and another association (implements) links classes. The meta model tool supports multiple views of the meta model, allowing complex meta models to be presented in manageable segments.</p><p>Other Pounamu specification tools include the connector designer, view type designer and an event handler designer. The view designer is used to define a visual editor and its mapping to the underlying information model. Each view type consists of the shape and connector types that are allowed in that view type, together with a mapping from each such element to corresponding meta model element types. Menus and property sheets for the view editor and view shapes can also be customised using this tool. Event handlers are used to add complex behaviour to a tool via an Event-Condition-Action (ECA) model. Each handler specifies the event type(s) that causes it to be triggered (eg shape/connector addition/modification, information model element change, or user action), any event filtering condition that needs to be fulfilled e.g. property value, and the response to that event in the form of a piece of Java code.</p><p>Figure <ref type="figure" target="#fig_1">2</ref> (3) shows the simple UML class diagramming tool in use. View (3) shows a simple class diagram where the user has created the diagram view from the available view types, added three UML class shapes and two association connectors, and set various properties for these, including their location and size. View (4) shows a simplified object diagram view, including an object of class Order. Changes to the class name are automatically reflected in this view and only methods defined or inherited by a class may be used in the message calling.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Tool Modification and Extension</head><p>Users can at any time modify Pounamu tool specifications. Changes made are immediately reflected in models being edited using that tool, creating a live environment. This provides powerful support for rapid prototyping and evolutionary tool development. Changes to the specification may result in information creation or loss in the open or saved modelling projects e.g. on addition or deletion of new properties or types. Reuse is supported by allowing shapes, connectors, meta model elements, and event handlers to be imported from other tools or libraries. Multiple tool specification projects may be open when modelling, with specification of parts of the modelling tool coming from different tool specification projects.</p><p>Having defined a simple tool additional behaviour can be added using event handlers to implement more complex constraints. Examples include type checking (e.g. UML associations must be between classes); constraints (e.g. UML class attributes must have unique names for the same class); layout constraints and behaviour (e.g. auto-layout of a UML sequence diagram view when edited); more complex mappings (e.g. changes to class shape method names automatically modifiying method entity properties in the modelling tool information model); or add back end functionality (e.g. generate C# skeleton code from model instances). Adding or modifying a handler results in "on the fly" compilation and incorporation in any executing tools.</p><p>Back end support e.g. for code generation can be implemented by event handlers. In addition, as all tool and model components are represented in XML format, it is straightforward to add back end support using XSLT or other XML-based transformation tools. This approach can allow back ends to be developed independently of the editing environment. An additional approach for back end support is via a web services-based API. This exposes Pounamu modelling commands, menu extensions, etc, allowing tight and dynamic integration of third party and other Pounamu tools.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Web, Mobile and Groupware Support</head><p>Pounamu-implemented visual design tools may need to be accessed in a variety of deployment scenarios and by multiple users. We have developed a set of plug-in components that utilise the web services API of Pounamu to extend any Pounamuspecified tool with web-based diagramming using either GIF or SVG images, mobile PDA and phone displays, collaborative editing of diagrams, asynchronous version control and merging support for diagrams, and CVS repository management of versions. An example of the web-based, thin-client editing interface for Pounamu tools being used is shown in Figure <ref type="figure" target="#fig_2">3</ref> (1). This allows a group of users to interact with Pounamu views via a web browser and standard web software infrastructure. SVG image diagrams support browser-side drag and drop of diagram component using scripting. An alternative set of software components using Nokia's MUPE framework allow users to view and edit diagrams on a wireless PDA or mobile phone. This uses a similar approach, where the MUPE server components communicate with Pounamu via its web services API and generate special MUPE XML mark-up for the view user interfaces. Figure <ref type="figure" target="#fig_2">3</ref> (2) shows an example of a project management Gantt chart diagram being browsed and manipulated on a mobile phone. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Summary</head><p>We have evaluated Pounamu's suitability for multiple-view visual language environment development by using it to implement a wide variety of tools and evaluating the development process against our primary requirements. These include a full UML tool supporting all major view types; electrical circuit modeling, semantic modelling using Traits, web services system design using Tool Abstraction, and software process modeling, the latter integrated with a process enactment engine. In each case Pounamu permitted rapid development of an environment for a simple version of the supported notation, satisfying our first requirement. These tools were then iteratively expanded in a manner matching the second of our requirements. Current work is focusing on a visual event handler specification tool, extending the meta-model with calculated property specification support, and extending the shape definer and editing plug-ins.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. The Pounamu approach.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 .</head><label>2</label><figDesc>Figure 2. Pounamu in use: (1-2) specifying a tool; (3-4) using a tool.</figDesc><graphic coords="3,211.45,435.65,163.40,105.36" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 .</head><label>3</label><figDesc>Figure 3. Thin client, web-based editing (1) and mobile editing (2) for Pounamu.</figDesc><graphic coords="5,262.27,461.09,62.32,100.86" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Proceedings of the CAiSE'05 Forum -O. Belo, J. Eder, J. Falcão e Cunha, O. Pastor (Eds.) © Faculdade de Engenharia da Universidade do Porto, Portugal 2005 -ISBN 972-752-078-2</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">Pounamu is the Maori word for greenstone jade, used by Maori to produce tools, such as adzes or knives, and objects of beauty, or taonga, such as jewellery.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">References</head></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Flexible user interface coupling in collaborative systems</title>
		<author>
			<persName><forename type="first">P</forename><surname>Dewan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Choudhary</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of ACM CHI&apos;91</title>
				<meeting>ACM CHI&apos;91</meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="1991-04">1991. April 1991</date>
			<biblScope unit="page" from="41" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">MetaMOOSE-an objectoriented framework for the construction of CASE tools</title>
		<author>
			<persName><forename type="first">R</forename><surname>Ferguson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Parrington</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Dunne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Archibald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Thompson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc Int Symp on Constructing Soft. Eng. Tools (CoSET&apos;99)</title>
				<meeting>Int Symp on Constructing Soft. Eng. Tools (CoSET&apos;99)<address><addrLine>LA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1999-05">May 1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Constructing component-based software engineering environments: issues and experiences</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Grundy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">B</forename><surname>Mugridge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">G</forename><surname>Hosking</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Information and Software Technology</title>
		<imprint>
			<biblScope unit="volume">42</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="117" to="128" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Visual specification of multiple view visual environments</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Grundy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">B</forename><surname>Mugridge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">G</forename><surname>Hosking</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc IEEE VL&apos;98</title>
				<meeting>IEEE VL&apos;98<address><addrLine>Halifax, Nova Scotia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1998-09">Sept 1998</date>
			<biblScope unit="page" from="236" to="243" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">E</forename><surname>Krasner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">T</forename><surname>Pope</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal Object-Oriented Programming</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="26" to="49" />
			<date type="published" when="1988-08">Aug. 1988</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Meta Edit+: A Fully configurable Multi-User and Multi-Tool CASE Environment</title>
		<author>
			<persName><forename type="first">S</forename><surname>Kelly</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Lyytinen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rossi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of CAiSE&apos;96</title>
				<meeting>CAiSE&apos;96<address><addrLine>Crete, Greece</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1996-05">May 1996</date>
		</imprint>
	</monogr>
	<note>LNCS 1080</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Schürr: Constructing SDEs with the IPSEN Meta Environment</title>
		<author>
			<persName><forename type="first">P</forename><surname>Klein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 8th Conf. on Software Engineering Environments</title>
				<meeting>8th Conf. on Software Engineering Environments<address><addrLine>Cottbus, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1997-04">April 1997</date>
			<biblScope unit="page" from="2" to="10" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Escalante: An Environment for the Rapid Construction of Visual Language Applications</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Mcwhirter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Nutt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. VL &apos;94</title>
				<meeting>VL &apos;94</meeting>
		<imprint>
			<date type="published" when="1994-10">Oct. 1994</date>
			<biblScope unit="page" from="15" to="22" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">DiaGen: A Generator for Diagram Editors Providing Direct Manipulation and Execution of Diagrams</title>
		<author>
			<persName><forename type="first">M</forename><surname>Minas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Viehstaedt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. VL &apos;</title>
				<meeting>VL &apos;</meeting>
		<imprint>
			<date type="published" when="1995-09">Sept. 1995</date>
			<biblScope unit="volume">95</biblScope>
			<biblScope unit="page" from="203" to="210" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Defining and Parsing Visual Languages with Layered Graph Grammars</title>
		<author>
			<persName><forename type="first">J</forename><surname>Rekers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schuerr</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JVLC</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="27" to="55" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Unidraw: A framework for building domain-specific graphical editors</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Vlissides</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Linton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. UIST&apos;89</title>
				<meeting>UIST&apos;89</meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<biblScope unit="page" from="158" to="167" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">Practical Programming in Tcl and Tk</title>
		<author>
			<persName><forename type="first">B</forename><surname>Welch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Jones</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Prentice-Hall</publisher>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
