1. StarUML - UML/MDA Plataform

22
1 Sumário 1. StarUML - UML/MDA Plataform ........................................................................................... 1 2. Criando Perfis no StarUML .................................................................................................... 2 3. Criando o perfil GeoProfile.................................................................................................... 5 4. Aplicando o Perfil GeoProfile .............................................................................................. 12 1. StarUML - UML/MDA Plataform Star UML (STAR UML, 2010) é uma ferramenta CASE de código aberto ( opensource) e está sob a licença GPL (General Public License). Ela dá suporte à modelagem de sistemas utilizando os diagramas da UML2 e também à MDA, com definições de transformações para algumas plataformas específicas. É permitida também a importação/exportação de modelos utilizando o formato XMI. Área de trabalho do StarUML A especificação de perfis UML na ferramenta é feita de forma diferente das outras ferramentas analisadas. Não há uma forma visual de se implementar perfis. É

Transcript of 1. StarUML - UML/MDA Plataform

Page 1: 1. StarUML - UML/MDA Plataform

1

Sumário 1. StarUML - UML/MDA Plataform ........................................................................................... 1

2. Criando Perfis no StarUML .................................................................................................... 2

3. Criando o perfil GeoProfile .................................................................................................... 5

4. Aplicando o Perfil GeoProfile .............................................................................................. 12

1. StarUML - UML/MDA Plataform

Star UML (STAR UML, 2010) é uma ferramenta CASE de código aberto (opensource) e

está sob a licença GPL (General Public License). Ela dá suporte à modelagem de

sistemas utilizando os diagramas da UML2 e também à MDA, com definições de

transformações para algumas plataformas específicas. É permitida também a

importação/exportação de modelos utilizando o formato XMI.

Área de trabalho do StarUML

A especificação de perfis UML na ferramenta é feita de forma diferente das outras

ferramentas analisadas. Não há uma forma visual de se implementar perfis. É

Page 2: 1. StarUML - UML/MDA Plataform

2

necessário escrever o código do perfil em um documento XML, salvar o arquivo com a

extensão .PRF e colocá-lo em um dos diretórios de instalação da ferramenta.

A seguir será mostrado passo a passo o processo de criação e um exemplo de utilização do perfil GeoProfile para modelagem de banco de dados geográficos. Lembrando que este tutorial foi feito utilizando a versão 5.0 da ferramenta.

2. Criando Perfis no StarUML

Neste tutorial vamos focar apenas nos elementos XML que serão úteis na criação do perfil Geoprofile. A estrutura básica de um documento XML para se criar um perfil para o StarUML é mostrado a seguir: <?xml version=”1.0” encoding=”...” ?>

<PROFILE version="...">

<HEADER>

...

</HEADER>

<BODY>

...

</BODY>

</PROFILE>

Onde a seção <HEADER> define a descrição do perfil e <BODY> é o corpo do perfil em

si, onde serão definidos os estereótipos, classes, atributos e tipos de dados do perfil.

A seção <HEADER> pode conter os seguintes elementos: <HEADER>

<NAME>...</NAME>

<DISPLAYNAME>...</DISPLAYNAME>

<DESCRIPTION>...</DESCRIPTION>

<AUTOINCLUDE>...</AUTOINCLUDE>

</HEADER>

NAME: Contêm o nome do perfil. DISPLAYNAME: Esta é a legenda usada no diálogo do perfil e outras interfaces com o usuário. DESCRIPTION: Contém a descrição do perfil. AUTOINCLUDE: Especifica se inclui o perfil automaticamente quando cria novo projeto. A seção <BODY> pode conter os seguintes elementos: <BODY>

<STEREOTYPELIST>

...

</STEREOTYPELIST>

<TAGDEFINITIONSETLIST>

Page 3: 1. StarUML - UML/MDA Plataform

3

...

</TAGDEFINITIONSETLIST>

</BODY>

STEREOTYPELIST: Lista dos estereótipos do perfil. Para definição de estereótipos veja a seção de <STEREOTYPE> TAGDEFINITIONSETLIST: Define múltiplas definições de tag. Para definição de tag veja a seção <TAGDEFINITIONSET>. DATATYPELIST: Define múltiplos tipos de dados. Para definição de tipos de dados veja a seção <DATATYPE> A seção <STEREOTYPE> define as informações do estereótipo e a estrutura de herança, pode conter os seguintes elementos: <STEREOTYPE>

<NAME>...</NAME>

<DESCRIPTION>...</DESCRIPTION>

<BASECLASSES>

<BASECLASS>...</BASECLASS>

...

</BASECLASSES>

<PARENT>...</PARENT>

<RELATEDTAGDEFINITIONSET>...</RELATEDTAGDEFINITIONSET>

<ICON>...</ICON>

</STEREOTYPE>

NAME: Nome do estereótipo. DESCRIPTION: Descrição do estereótipo. BASECLASSES: Pode conter nomes de múltiplos elementos UML que podem ser aplicados ao estereótipo. O nome dos elementos usados aqui <BASECLASS> são os nomes dos elementos UML (UMLClass, UMLAssociation, UMLClassifier, UMLAttribute, UMLPackage, UMLAbstractClass... ). Nota: Se o nome de uma classe abstrata como UMLClassifier é usado, todos os elementos herdados desta serão aplicados. Se o estereótipo de nível superior (elemento pai) é definido, esta seção não será definida; qualquer definição desta seção é ignorada e o valor BASECLASSES do estereótipo de nível superior é aplicado. PARENT: O estereótipo pode ter relacionamento do tipo herança. O elemento PARENT contêm o nome do elemento pai do estereótipo. RELATEDTAGDEFINITIONSET: Contém o nome do TagDefinitionSet relacionado com o estereótipo (nome do conjunto de atributos do estereótipo).

Page 4: 1. StarUML - UML/MDA Plataform

4

ICON: Um estereótipo pode também ser indicado por um ícone. Este elemento contêm o nome do arquivo do ícone para o estereótipo. O arquivo do ícone deve estar localizado no mesmo diretório que o documento do perfil. A seção <TAGDEFINITIONSET> define um conjunto de TaggedValues que poderão ser relacionados a um estereótipo, este possui a seguinte estrutura: <TAGDEFINITIONSET>

<NAME>...</NAME>

<BASECLASSES>

<BASECLASS>...</BASECLASS>

...

</BASECLASSES>

<TAGDEFINITIONLIST>

...

</TAGDEFINITIONLIST>

</TAGDEFINITIONSET>

NAME: Nome do conjunto de TagDefinition. Se a TagDefinition é interessada a um estereótipo específico, é aconselhado usar o nome do estereótipo. BASECLASSES: Contém os nomes dos elementos UML a serem aplicados no TagDefinitionSet. TAGDEFINITIONLIST: Contém múltiplas definições de tags incluídas no conjunto. Veja a seção <TAGDEFINITION>.

A seção <TAGDEFINITION> define um TaggedValue de um conjunto de listas de tags. Possui a seguinte estrutura: <TAGDEFINITION lock=”...”>

<NAME>...</NAME>

<TAGTYPE>...</TAGTYPE>

<DEFAULTDATAVALUE>...</DEFAULTDATAVALUE>

<LITERALS>

<LITERAL>...</LITERAL>

....

</LITERALS>

</TAGDEFINITION>

lock (Elemento de TAGDEFINITION): Define se o valor da tag pode ou não ser alterado pelo usuário. Pode ser “True” no caso de não poder sofrer alteração, ou “False” caso contrário. NAME: Nome da tag. Este tem que ser único dentro do conjunto de tags ao qual essa tag pertence (TagDefinitionSet). TAGTYPE: Define o tipo da tag. Este pode ser definido como sendo dos tipos: Integer, Boolean, Real, String, Enumeration, Reference ou Collection. DEFAULTDATAVALUE: Valor default da tag.

Page 5: 1. StarUML - UML/MDA Plataform

5

LITERALS: Define os literais <LITERAL> se o tipo da tag for Enumeration. Infelizmente, esta ferramenta não dá suporte à definição de constraints na linguagem OCL para os perfis.

3. Criando o perfil GeoProfile

O perfil GeoProfile é mostrado na figura abaixo.

Estereótipos do GeoProfile

Com esta definição e os elementos XML definidos acima, podemos agora criar o perfil GeoProfile para ser utilizado na ferramenta StarUML. Lembrando que o arquivo com o código XML deve ser salvo com a extensão .prf O código XML do GeoProfile é mostrado abaixo. <?xml version="1.0" encoding="UTF-8"?>

<PROFILE version="1.0">

<HEADER>

<NAME>GeoProfile</NAME>

<DISPLAYNAME>GeoProfile</DISPLAYNAME>

<DESCRIPTION>GeoDB conceptual modeling</DESCRIPTION>

</HEADER>

<BODY>

<STEREOTYPELIST>

<STEREOTYPE>

<NAME>GeoObject</NAME>

<DESCRIPTION>Object view.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAbstractClass</BASECLASS>

</BASECLASSES>

Page 6: 1. StarUML - UML/MDA Plataform

6

</STEREOTYPE>

<STEREOTYPE>

<NAME>Point</NAME>

<DESCRIPTION>Indicate a Point.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoObject</PARENT>

<ICON>Point.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Line</NAME>

<DESCRIPTION>Indicate a Line.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoObject</PARENT>

<ICON>Line.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Polygon</NAME>

<DESCRIPTION>Indicate a Polygon.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoObject</PARENT>

<ICON>Polygon.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>ComplexSpatialObj</NAME>

<DESCRIPTION>Indicate a Complex Object.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoObject</PARENT>

<ICON>ComplexSpatialObj.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>GeoField</NAME>

<DESCRIPTION>Object view.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAbstractClass</BASECLASS>

</BASECLASSES>

</STEREOTYPE>

<STEREOTYPE>

<NAME>TIN</NAME>

<DESCRIPTION>Indicate a Triangular Irregular

Network.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>TIN.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Isolines</NAME>

<DESCRIPTION>Indicate Isolines.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

Page 7: 1. StarUML - UML/MDA Plataform

7

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>Isolines.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>GridOfCells</NAME>

<DESCRIPTION>Indicate a Grid Of Cells.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>GridOfCells.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>GridOfPoints</NAME>

<DESCRIPTION>Indicate a Grid Of Points.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>GridOfPoints.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>IrregularPoints</NAME>

<DESCRIPTION>Indicate Irregular Points.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>IrregularPoints.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>AdjPolygons</NAME>

<DESCRIPTION>Indicate Adjacent Polygons.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>GeoField</PARENT>

<ICON>AdjPolygons.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>NetworkObj</NAME>

<DESCRIPTION>Object view.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAbstractClass</BASECLASS>

</BASECLASSES>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Node</NAME>

<DESCRIPTION>Indicate a Node.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>NetworkObj</PARENT>

<ICON>Node.bmp</ICON>

</STEREOTYPE>

Page 8: 1. StarUML - UML/MDA Plataform

8

<STEREOTYPE>

<NAME>Arc</NAME>

<DESCRIPTION>Object view.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAbstractClass</BASECLASS>

</BASECLASSES>

<PARENT>NetworkObj</PARENT>

</STEREOTYPE>

<STEREOTYPE>

<NAME>UnidirectionalArc</NAME>

<DESCRIPTION>Indicate an Unidirectional Arc.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>Arc</PARENT>

<ICON>UnidirectionalArc.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>BidirectionalArc</NAME>

<DESCRIPTION>Indicate a Bidirectional Arc.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<PARENT>Arc</PARENT>

<ICON>BidirectionalArc.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Network</NAME>

<DESCRIPTION>Indicate a network.</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<ICON>Network.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>TemporalObj</NAME>

<DESCRIPTION>Indicate a Temporal object.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLClass</BASECLASS>

</BASECLASSES>

<RELATEDTAGDEFINITIONSET>TemporalObj

</RELATEDTAGDEFINITIONSET>

<ICON>Temporal.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Touch</NAME>

<DESCRIPTION>Indicate a Touch relationship.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>Touch.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>In</NAME>

<DESCRIPTION>Indicate an In relationship.

</DESCRIPTION>

Page 9: 1. StarUML - UML/MDA Plataform

9

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>In.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Cross</NAME>

<DESCRIPTION>Indicate a Cross relationship.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>Cross.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Overlap</NAME>

<DESCRIPTION>Indicate a Overlap relationship.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>Overlap.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Disjoint</NAME>

<DESCRIPTION>Indicate a Disjoint relationship.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>Disjoint.bmp</ICON>

</STEREOTYPE>

<STEREOTYPE>

<NAME>Temporal</NAME>

<DESCRIPTION>Indicate a Temporal relationship.

</DESCRIPTION>

<BASECLASSES>

<BASECLASS>UMLAssociation</BASECLASS>

</BASECLASSES>

<ICON>Temporal.bmp</ICON>

</STEREOTYPE>

</STEREOTYPELIST>

<TAGDEFINITIONSETLIST>

<TAGDEFINITIONSET>

<NAME>TemporalObj</NAME>

<BASECLASSES>

<BASECLASS>UMLAttribute</BASECLASS>

</BASECLASSES>

<TAGDEFINITIONLIST>

<TAGDEFINITION lock="False">

<NAME>temporalPrimitive</NAME>

<TAGTYPE>Enumeration</TAGTYPE>

<DEFAULTDATAVALUE>instant

</DEFAULTDATAVALUE>

<LITERALS>

<LITERAL>instant</LITERAL>

<LITERAL>interval</LITERAL>

</LITERALS>

</TAGDEFINITION>

<TAGDEFINITION lock="False">

Page 10: 1. StarUML - UML/MDA Plataform

10

<NAME>temporalType</NAME>

<TAGTYPE>Enumeration</TAGTYPE>

<DEFAULTDATAVALUE>valid_time

</DEFAULTDATAVALUE>

<LITERALS>

<LITERAL>valid_time</LITERAL>

<LITERAL>transaction_time

</LITERAL>

<LITERAL>bitemporal</LITERAL>

</LITERALS>

</TAGDEFINITION>

</TAGDEFINITIONLIST>

</TAGDEFINITIONSET>

</TAGDEFINITIONSETLIST>

</BODY>

</PROFILE>

Agora basta copiar o código XML acima para um editor de texto de sua preferência e salvá-lo com a extensão .prf para que este possa ser reconhecido pelo StarUML. Para o perfil ser reconhecido automaticamente, devemos colocá-lo em um subdiretório da ferramenta: <diretório de instalação>\modules. O StarUML procura e lê os perfis que estão na pasta modules no seu diretório de instalação e os registra automaticamente quando o programa é iniciado. Caso o arquivo do perfil seja inválido ou sua extensão não seja .prf, o programa irá ignorar o arquivo. É aconselhável criar-se uma nova pasta dentro do subdiretório modules contendo os arquivos do perfil, arquivo .prf e ícones.

Note que na figura acima o caminho até o diretório desejado é: C:\Arquivos de Programas\StarUML\modules Que é o diretório padrão de instalação do sistema operacional utilizado.

Page 11: 1. StarUML - UML/MDA Plataform

11

Logo, para nosso perfil GeoProfile ser reconhecido pela ferramenta, basta criarmos uma nova pasta neste subdiretório, vamos chamá-la staruml-geoprofile.

Agora, basta copiarmos os arquivos do perfil (.prf e ícones) para esta pasta do perfil.

Agora basta iniciarmos o StarUML para que o perfil seja reconhecido automaticamente pela ferramenta. Note que, após iniciarmos o programa, na aba inferior Output, aparecerá a mensagem “The Profile “GeoProfile” is loaded successfully” informando que o perfil foi carregado corretamente. Se esta mensagem não aparecer é porque houve algum erro ao criar o perfil.

Page 12: 1. StarUML - UML/MDA Plataform

12

Perceba também que agora na opção de adição de perfis Model -> Profile -> Profile Manager, o GeoProfile estará disponível para ser adicionado à sua aplicação.

4. Aplicando o Perfil GeoProfile

Com o perfil criado e disponível para uso na ferramenta, podemos utilizá-lo em nossa

modelagem de classes geográficas. Para utilizar o perfil comece criando um novo

modelo. Ao iniciar a ferramenta escolha a opção Empty Project. Caso a janela abaixo

não apareça no inicio da aplicação você pode ir em: File -> New Project.

Page 13: 1. StarUML - UML/MDA Plataform

13

Para criarmos uma aplicação utilizando o GeoProfile precisamos primeiro adicioná-lo ao modelo, para isto, vá em Model -> Profiles e na janela que se segue adicione o perfil GeoProfile. Certifique-se também de que o perfil UML Standard Profile também esteja adicionado.

Agora, na aba Model Explorer do lado superior direito selecione o objeto “Untitled” com um clique do botão direito do mouse e escolha a opção Add -> Design Model para criar um novo modelo de desenho em branco.

Page 14: 1. StarUML - UML/MDA Plataform

14

Para mudar o nome do modelo, selecione-o e utilize o campo Name da aba Properties.

Agora vamos criar um novo diagrama de classes dentro deste modelo, para isto selecione o modelo criado anteriormente com o botão direito do mouse e escolha a opção Add Diagram -> Class Diagram. Dê um nome qualquer ao novo diagrama.

Page 15: 1. StarUML - UML/MDA Plataform

15

Agora é possível aplicarmos os estereótipos do GeoProfile nos elementos UML do diagrama criado anteriormente. Para testar o GeoProfile adicione um elemento Class, contido na aba Class do lado esquerdo, no diagrama.

Tenha a classe selecionada, e na aba Properties vá em Stereotype. Uma janela com os estereótipos disponíveis para um elemento do tipo Class irá aparecer. Para esta aplicação apenas nos interessa os estereótipo do GeoProfile.

Page 16: 1. StarUML - UML/MDA Plataform

16

Note que, ao selecionarmos um estereótipo do GeoProfile, seu ícone será mostrado no campo Icon preview.

Selecione um estereótipo qualquer e clique em OK para aplicá-lo a classe. Perceba que o nome do estereótipo será visualizado entre <<>> na parte superior da classe.

Page 17: 1. StarUML - UML/MDA Plataform

17

O StarUML só nos permite adicionar um estereótipo por elemento e nos permite visualizar os estereótipos na forma textual “Textual”, na forma de ícone “Iconic” ou ambos “Decoration”. Para alterar o tipo de visualização, selecione o objeto e na aba superior de opções selecione o tipo de visualização desejado na opção Stereotype Display. A visualização do estereótipo também pode ser alterada clicando com o botão direito do mouse sobre o objeto, na opção Format -> Stereotype Display.

Como definido no perfil GeoProfile, estereótipos também podem ser aplicados a

relacionamentos. Adicione mais uma classe ao modelo e um elemento Association

entre elas.

Page 18: 1. StarUML - UML/MDA Plataform

18

Para aplicarmos um estereótipo a um elemento Association devemos proceder da mesma maneira descrita anteriormente para elementos do tipo Class. Perceba que agora os únicos estereótipos disponíveis são aqueles previamente definidos como sendo do tipo UMLAssociation no perfil.

O StarUML só permite a visualização de estereótipos do tipo Association na forma textual, mesmo que tenham sido definidos ícones aos estereótipos.

Page 19: 1. StarUML - UML/MDA Plataform

19

Lembrando que o StarUML só permite a adição, e portanto visualização, de apenas um estereótipo por elemento, e também que esta ferramenta não dá suporte à definição de constraints na linguagem OCL para os perfis. Portanto, verificar a validade e consistência do modelo é de responsabilidade do projetista. Outro tipo de objeto geográfico que pode ser encontrado em nossas aplicações são os

objetos temporais, definidos no GeoProfile como TemporalObj. Para este tipo de

objeto foram definidos dois tagged values, temporalType e temporalPrimitive. Para

definirmos seus valores, primeiro devemos adicionar uma classe no modelo com o

estereótipo TemporalObj.

O valor de cada tagged value para este tipo de objeto pode ser definido no campo Tagged Values com um clique do botão direito sobre a classe.

Page 20: 1. StarUML - UML/MDA Plataform

20

O valor de cada tagged value da classe poderá ser editado na janela Tagged Value Editor que aparece. Na definição do perfil mostrada anteriormente, foram escolhidos os valores instant como valor default para o campo temporalPrimitive, e valid_time como valor default para o campo temporalType.

Por se tratar de uma ferramenta voltada para a criação de modelos utilizando a UML, outros elementos UML também podem ser adicionados ao modelo como pacotes, atributos, operações, tipos de dados, etc. As propriedades dos elementos adicionados no modelo podem ser alteradas na aba Properties, que contém todos os atributos do elemento selecionado na aba Model Explorer ou no próprio diagrama de desenho.

Page 21: 1. StarUML - UML/MDA Plataform

21

Com isto, já é possível criarmos um modelo UML para modelagem de banco de dados

geográficos na ferramenta StarUML utilizando o GeoProfile. Um exemplo “Escola”

utilizando este perfil é mostrado abaixo.

Perceba que a as classes Cidade, Bairro e Escola possuem estereótipos do tipo

<<point>> e <<polygon>>, isso mostra como a classe poderá ser representada em uma

Page 22: 1. StarUML - UML/MDA Plataform

22

aplicação geográfica. A classe Aluno, por sua vez, não possui estereótipo, por se tratar

de uma classe sem representação geográfica, logo, será criada como um objeto Class

comum sem aplicar nenhum estereótipo.

Note que também foram aplicados estereótipos aos relacionamentos. O estereótipo

<<in>> entre Bairro e Cidade mostra que topologicamente todo elemento Bairro está

dentro de um elemento Cidade, o mesmo vale para o relacionamento entre Escola e

Bairro. Não existe relacionamento topológico entre Aluno e Escola, logo, utilizamos

apenas um relacionamento do tipo Association comum, sem aplicar nenhum

estereótipo.

O StarUML também permite a importação e exportação de modelos no formato XMI

(XML Metadata Interchange). Na opção File -> Import/Export -> XMI o projetista pode

exportar o modelo atual para o formato XMI ou importar um modelo já criado

anteriormente.

Mais informações sobre esta ferramenta podem ser encontradas no sítio:

http://staruml.sourceforge.net