Chapter 2. StarUML Architecture

This chapter discusses the basic architecture of StarUML™. It mainly describes the structures of the platform architecture, Add-Ins, and external API.

Platform Architecture

StarUML™ is an extensible software modeling platform; it does not just provide pre-defined functions but allows addition of new functions. The diagram below illustrates the architecture of StarUML™. Blue indicates the platform and green the extensible parts. The extensible parts can be developed by the user or a third party and then added to the platform for integration.

Organizing a Module

Module is a software package which allows addition of new functionalities and features by extending StarUML™. Module consists of various extension mechanisms of StarUML™. As illustrated in the diagram below, an Add-In package can consist of various approaches, various model frameworks, various UML profiles, various scripts, menu extensions, option extensions, help, and Add-In COM Objects.

Application of Modules

Modules can contain various elements, it can be developed for different purposes. Modules can be used for supporting specific processes, languages or platforms, integrating with other tools, or extending functions.

Elements of Module

Open API Overview

StarUML™ provides a wide array of API (Application Programming Interface). The external API of StarUML™ is a standardized programming interface that allows use of the internal program functionalities from outside.

As illustrated in the diagram below, the external API of StarUML™ can be divided into three main parts: Modeling Elements, Non_Modeling Elements and Application Objects. The Modeling Elements part provides an interface for access to modeling elements, and the Non_Modeling Elements part provides an interface for MOF (Meta-Object Facility) and various elements other than modeling elements. The Application Objects part provides various interfaces which manage the application itself.

The Application Objects Part

The Application Objects part includes interfaces which manage the application itself. The interfaces included in this part are IStarUMLApplication as the basic interface, ISelectionManager for managing element selection, IUMLFactory for creating elements, IProjectManager for managing projects, and interfaces related to events and GUI.

The Modeling Elements Part

The Modeling Elements part includes interfaces for managing modeling elements. This part can be further divided into many parts. The Core Elements part defines the top interface of model, view, and diagram elements. The ExtCore Elements part includes interfaces for extensible model elements, and the UML Model Elements part defines the UML modeling elements based on the ExtCore Elements. The ViewCore Elements part includes interfaces for basic components of view elements, and the UML View Elements part also defines the UML view elements based on the ViewCore Elements.

The Non_Modeling Elements Part

The Non_Modeling Elements part includes interfaces for elements other than modeling elements. This part can be further divided into many parts: the Extension Elements part which includes interfaces for elements related to the UML extension mechanism, the Document Elements part which manages StarUML™¡¯s saved files, and the Metamodeling Elements part which manages meta-level elements.