Escolar Documentos
Profissional Documentos
Cultura Documentos
StarUML Tutorial PDF
StarUML Tutorial PDF
Star UML (STAR UML, 2010) uma ferramenta CASE de cdigo aberto (opensource) e
est sob a licena GPL (General Public License). Ela d suporte modelagem de
sistemas utilizando os diagramas da UML2 e tambm MDA, com definies de
transformaes para algumas plataformas especficas. permitida tambm a
importao/exportao de modelos utilizando o formato XMI.
1
necessrio escrever o cdigo do perfil em um documento XML, salvar o arquivo com a
extenso .PRF e coloc-lo em um dos diretrios de instalao da ferramenta.
DATATYPELIST: Define mltiplos tipos de dados. Para definio de tipos de dados veja
a seo <DATATYPE>
BASECLASSES: Pode conter nomes de mltiplos elementos UML que podem ser
aplicados ao esteretipo. O nome dos elementos usados aqui <BASECLASS> so os
nomes dos elementos UML (UMLClass, UMLAssociation, UMLClassifier, UMLAttribute,
UMLPackage, UMLAbstractClass... ).
3
ICON: Um esteretipo pode tambm ser indicado por um cone. Este elemento contm
o nome do arquivo do cone para o esteretipo. O arquivo do cone deve estar
localizado no mesmo diretrio que o documento do perfil.
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.
4
LITERALS: Define os literais <LITERAL> se o tipo da tag for Enumeration.
Esteretipos do GeoProfile
Com esta definio e os elementos XML definidos acima, podemos agora criar o perfil
GeoProfile para ser utilizado na ferramenta StarUML. Lembrando que o arquivo com o
cdigo XML deve ser salvo com a extenso .prf
5
</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>
6
</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>
7
<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>
8
<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">
9
<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 cdigo XML acima para um editor de texto de sua preferncia e
salv-lo com a extenso .prf para que este possa ser reconhecido pelo StarUML.
10
Logo, para nosso perfil GeoProfile ser reconhecido pela ferramenta, basta criarmos
uma nova pasta neste subdiretrio, 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, aps 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 no aparecer porque
houve algum erro ao criar o perfil.
11
Perceba tambm que agora na opo de adio de perfis Model -> Profile -> Profile
Manager, o GeoProfile estar disponvel para ser adicionado sua aplicao.
12
Para criarmos uma aplicao 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 tambm de que o perfil UML Standard Profile tambm
esteja adicionado.
Agora, na aba Model Explorer do lado superior direito selecione o objeto Untitled
com um clique do boto direito do mouse e escolha a opo Add -> Design Model para
criar um novo modelo de desenho em branco.
13
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 boto direito do mouse e escolha a
opo Add Diagram -> Class Diagram. D um nome qualquer ao novo diagrama.
14
Agora possvel aplicarmos os esteretipos 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.
15
Note que, ao selecionarmos um esteretipo do GeoProfile, seu cone ser mostrado no
campo Icon preview.
16
O StarUML s nos permite adicionar um esteretipo por elemento e nos permite
visualizar os esteretipos na forma textual Textual, na forma de cone Iconic ou
ambos Decoration. Para alterar o tipo de visualizao, selecione o objeto e na aba
superior de opes selecione o tipo de visualizao desejado na opo Stereotype
Display. A visualizao do esteretipo tambm pode ser alterada clicando com o boto
direito do mouse sobre o objeto, na opo Format -> Stereotype Display.
17
Para aplicarmos um esteretipo a um elemento Association devemos proceder da
mesma maneira descrita anteriormente para elementos do tipo Class.
18
Lembrando que o StarUML s permite a adio, e portanto visualizao, de apenas um
esteretipo por elemento, e tambm que esta ferramenta no d suporte definio
de constraints na linguagem OCL para os perfis. Portanto, verificar a validade e
consistncia do modelo de responsabilidade do projetista.
Outro tipo de objeto geogrfico que pode ser encontrado em nossas aplicaes so 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
esteretipo TemporalObj.
O valor de cada tagged value para este tipo de objeto pode ser definido no campo
Tagged Values com um clique do boto direito sobre a classe.
19
O valor de cada tagged value da classe poder ser editado na janela Tagged Value
Editor que aparece. Na definio 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 criao de modelos utilizando a UML,
outros elementos UML tambm podem ser adicionados ao modelo como pacotes,
atributos, operaes, tipos de dados, etc.
20
Com isto, j possvel criarmos um modelo UML para modelagem de banco de dados
geogrficos na ferramenta StarUML utilizando o GeoProfile. Um exemplo Escola
utilizando este perfil mostrado abaixo.
21
aplicao geogrfica. A classe Aluno, por sua vez, no possui esteretipo, por se tratar
de uma classe sem representao geogrfica, logo, ser criada como um objeto Class
comum sem aplicar nenhum esteretipo.
22