OpenStax-CNX module: m47736
Criando Diagramas UML com o
StarUML
Joao Carlos Ferreira dos Santos
This work is produced by OpenStax-CNX and licensed under the
Creative Commons Attribution License 3.0
Introduo a UML
A UML surgiu com o objetivo de unicar o mtodo de desenvolvimento de software usando o conceito
de orientao a objetos (OO). Houve uma poca que existiram diversos mtodos distintos cada um com
sua forma de desenvolvimento, no havia um padro de desenvolvimento usando o paradigma da orientao
Object Modeling Technique de
Booch de Grady Booch e o Object-Oriented Software Engineering de Ivar Jacobson
a objetos. Mas neste mesmo perodo j tnhamos bons mtodos como
James Rumbaugh,
e, foi unio do que tinha de melhor nesses trs mtodos que de origem ao padro UML.
Conceitos de Orientao a Objetos
Para entender um pouco melhor o mtodo implantado na UML temos que entender o paradigma da
programao Orientada a Objetos. Hoje em dia existem muitas linguagens que trabalham com o conceito
de orientao a objetos, mas a primeira linguagem que solidicou esse conceito foi linguagem
SmallTalk.
A partir dai varias aplicaes seguindo esse paradigma foram criadas e at hoje assim. Vamos ver alguns
conceitos da orientao a objetos.
Objeto:
na programao tudo que pode existir de concreto ou abstrato no mundo real. Por exemplo:
cadeira, pessoa, caneta, avaliao, entre outros. Um objeto possui uma identidade, ou seja, ele nico. Por
exemplo, um objeto carro tem as seguintes propriedades:
Cor: Preta
Modelo: Gol
Fabricante: Volkswagen
Chassi: 11H838KK
Classe:
na programao a classe um modelo utilizado para criao de objetos distintos. Pegando o
exemplo anterior vemos que um carro tem os atributos cor, modelo, fabricante e Chassi. Ento o que todos
os outros objetos tero em comum sero esses atributos, a classe serve para isso para classicar os objetos e
criar seus modelos.
Viso Geral da UML
O objetivo da UML descrever qualquer sistema baseado no desenvolvimento orientado a objetos atravs
de seus diagramas e anotaes. A modelagem de sistemas usando a UML aplicada em cinco fases, so elas:
Analise de Requisitos, Anlise, Design, Programao e Teste. Durante essas fases o responsvel pelo projeto
poder utilizar diversos diagramas disponveis na UML.
Analise de Requisitos
Nessa fase que capturamos as expectativas dos usurios sobre o sistema a ser desenvolvido. As idias
use-case,
atores. Com
capturadas aqui sero representadas como funes do sistema atravs de notaes chamadas de
e tambm as interaes do sistema junto a usurios ou outros sistemas demonstrados atravs
Version 1.1: Sep 28, 2013 11:06 am +0000
http://creativecommons.org/licenses/by/3.0/
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
a viso dos diagramas montado nessa fase o cliente ter uma idia dos recursos que estaro disponveis na
aplicao e car mais fcil o seu entendimento a respeito dos requisitos solicitados.
Anlise
Nessa fase do projeto estudam-se quais sero as entidades necessrias para o funcionamento do sistema.
Ou seja, aqui descobrimos supercialmente as classes que iro compor o sistema. Para isso temos o diagrama
de Classe representando as entidades e seus relacionamentos.
Design
Aqui se explora as solues mais tcnicas como descrio mais detalhada do relacionamento do sistema
junto aos sistemas legados e possvel adio de novas classes para completar o projeto a partir para codicao
do sistema.
Programao
Nessa fase toda a parte j elaborada ser convertida em cdigo.
Estudam-se todas as classes e seus
relacionamentos e a partir disso o cdigo gerado.
Teste
Nessa fase so realizados os testes de unidade e os testes de integrao. Os testes de unidade so aplicveis
individualmente em cada classe. J os testes de integrao so aplicados sobre um conjunto de classes e seus
recursos (por exemplo, conexo a banco de dados).
Por m o software testado pelo usurio nal para
vericar se o que foi estabelecido no modelo de diagrama do
Os Diagramas Abordados
use-case realmente foi atingido.
Nesse artigo falarei sobre trs tipos de grcos: o diagrama de caso de uso, diagrama de classes e o
diagrama de sequncia. Abordarei de forma simples e pratica esses diagramas e ao nal do artigo criarei
exemplos de cada um deles.
O Diagrama de Caso de Uso
O Diagrama de caso de uso tem foco no comportamento do sistema. Sua construo deve ser feita de
forma clara sem ambiguidade. A construo do diagrama de caso de uso baseada nos requisitos que foram
levantados junto ao cliente. Os elementos bsicos desse diagrama so:
Caso de Uso uma elipse contendo um texto onde descrevemos qual a responsabilidade do caso de uso
dentro do sistema.
Figure 1
Ator um boneco magrelo que representa um personagem ou sistema externo que interage com o caso
de uso. Geralmente descrevemos qual o seu papel colocando um texto abaixo do boneco.
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 2
Fronteira do Sistema um retngulo que representa a fronteira do sistema, ou seja, seus limites dentro
de uma determinada viso. dentro dessa fronteira que cam todos os casos de Uso.
Figure 3
Extends
Descreve cenrios opcionais de um caso de uso. So executados se algumas condies
so satisfeitas. como se fosse um teste para saber se um caso de uso vai ou no ser estendido.
includs
-Descreve um cenrio que indica obrigatoriedade onde a execuo do primeiro caso de uso
obriga a execuo do segundo caso de uso.
O Diagrama de Classes
O diagrama de classes utilizado para representar classes e seus relacionamentos dentro do projeto. Esse
diagrama composto por um retngulo divido em trs partes que representam a estrutura da classe (nome,
atributos e operaes).
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 4
Diagrama de Sequncias
Esse diagrama serve para demonstrar a interao entre os objetos. Essa interao acontece atravs de
mensagens ordenadas entre os objetos do sistema. O diagrama de sequncia possui dois eixos: eixo vertical,
que mostra o tempo e o eixo horizontal que mostra os objetos do sistema.
Para adicionar esse diagrama primeiro vamos incluir um novo pacote da mesma forma que os outros que
j foram criados aps isso clique com o boto direito sobre o pacote e v a
Diagram.
Add Diagram
Sequence
Para adicionar os objetos j existentes devemos ir aos pacotes correspondentes clicar sobre os
objetos segure e araste para a rea do diagrama de sequencia. Para adicionar os outros objetos devemos
utilizar a caixa de ferramentas que ca do lado esquerdo:
Figure 5
Aps a incluso dos objetos o diagrama cara assim:
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 6
O Programa StarUML
StarUML uma ferramenta Open Source utilizada para desenvolvimento rpido de projetos modelados
1
pela UML. Mais informaes podem ser encontradas no site da ferramenta http://staruml.sourceforge.net/en/
.
Nota: os desenhos de diagramas nesse artigo foram todos feitos atravs do StarUML
Instalando o StarUML
Baixando:
clicar sobre link StarUML Download depois sobre
(2005-12-30) StarUML 5.0 (Windows Installer) Stable 5.0 (21.67MB)optar por uma forma de
Acessar o site http://staruml.sourceforge.net/en/
instalao (escolhi o staruml-5.0-with-cm.exe).
Instalando:
D dois cliques sobre o executvel
1
2
http://staruml.sourceforge.net/en/
http://staruml.sourceforge.net/en/
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 7
Clique em
Next
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 8
Marque a opo
I accept the agrement e clique em Next
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
Figure 9
Escolha o diretrio de instalao ou deixe o sugerido e clique em
http://cnx.org/content/m47736/1.1/
Next
OpenStax-CNX module: m47736
Figure 10
D o nome da pasta (ou deixe o sugerido) de atalho que ser criada no menu do Windows e clique em
Next.
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
10
Figure 11
Caso queira criar um atalho do programa na rea de trabalho deixe marcado a caixa
icon e clique em Next
http://cnx.org/content/m47736/1.1/
Create a Desktop
OpenStax-CNX module: m47736
11
Figure 12
Clique em Install e aguarde a instalao do programa.
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
12
Figure 13
Depois disso o programa ser instalado e estar disponvel em
StarUML (ou o nome que foi colocado na instalao) .
Inicial
Todos os Programas
Implementando na Prtica o Uso da UML
- Mo na Massa
Nessa parte do artigo teremos a modelagem de um sistema escolar de informtica usando os diagramas
que foram abordados anteriormente.
O objetivo mostrar de forma pratica a aplicao da UML em de-
senvolvimento de sistemas orientado a objetos. A ferramenta utilizada para montagens dos grcos ser o
StarUML.
Estudo de Caso:
o sistema desenvolvido ser para uma escola de informtica, a escola precisa de um
software onde a secretaria possa cadastrar as turmas de um semestre.
Quando o aluno se matricular o
sistema nanceiro deve ser avisado (aqui temos uma emisso de boleto). O sistema deve fornecer uma lista
de turmas cadastradas para controle dos professores. O sistema deve ter um controle de acesso (usurio e
senha).
Iniciei o programa StarUML atravs do atalha na rea de trabalho (caso no tenha esse atalho use a
opo j explicada anteriormente). Ao abrir o programa clique em
abaixo:
http://cnx.org/content/m47736/1.1/
Empty Projtect conforme a imagem
OpenStax-CNX module: m47736
13
Figure 14
Agora vamos criar primeiro o diagrama de caso de uso e monta-lo conforme os requisitos propostos no
estudo de caso.
Model Explore clique com o boto direito sobre
Package. Feito isso poder renomear o pacote para o nome que quiser.
Agora clique sobre o pacote e escolha Add Diagram Use Case Diagram. Pronto do lado esquerdo do
Com o StarUML aberto do lado direito da tela no
Unititled
e escolha
Add
programa teremos todos os itens para criao do Diagrama de Caso de Uso.
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
14
Figure 15
Agora para criao do diagrama precisamos analisar dentro do contexto descrito no estudo de caso quais
sero os possveis usurios do sistema e ainda quais as interaes desse sistema junto a outros sistemas.
Assim podemos criar os atores do diagrama de caso de uso.
o sistema desenvolvido ser para uma escola de informtica, a escola precisa de um software onde a
secretaria possa cadastrar as turmas de um semestre. Quando o aluno se matricular o sistema nanceiro deve ser avisado (aqui temos uma emisso de boleto). O sistema deve fornecer uma lista de turmas
cadastradas para controle dos professores. O sistema deve ter um controle de acesso (usurio e senha).
Analisando o estudo de caso acima temos o seguinte:
Secretria: no um usurio do sistema, mas ter interao com ele e por tanto pode ser considerada
um ator.
Aluno: um usurio do sistema e por tanto um ator.
Financeiro: no um usurio do sistema, mas ter interao com ele e por isso pode ser considerado
um ator.
Professor: um usurio do sistema e por tanto um ator.
Denido os usurios podemos identicar agora os casos de uso do sistema.
Bom no caso do aluno o que
realizar matricula em
gerar boleto essa ocorrncia tem o
ele pode fazer realizar a sua matricula no sistema, temos ento o caso de uso
consequncia podemos ter a criao de outro caso de uso que seria o
nome de
includ.
No caso da secretria podemos ter basicamente trs casos de uso que so:
trar Professor e Cadastrar Aluno.
Cadastrar Turmas, Cadas-
No caso do Cadastrar Aluno podemos dizer que a secretaria faa o
cadastro do aluno em casos de problemas por parte do aluno ao tentar cadastra-se no sistema.
O professor pode basicamente gerar trs casos de uso tambm que so:
Nota, Consultar Lista Turma.
http://cnx.org/content/m47736/1.1/
Cadastrar Frequncia, Lanar
OpenStax-CNX module: m47736
15
O nanceiro tem basicamente a funo de administrar os pagamentos dos alunos junto ao sistema de
tesouraria.
Nota:
os casos de uso criados so bem simples, pois so para ns didticos, claro que poderamos
encontrar muito mais casos nesse senrio.
Aps a montagem do Diagrama de Caso de Uso teramos essa viso:
Figure 16
Criado o diagrama de caso de uso vamos agora para o Diagrama de Classes. O diagrama de classes
baseado nas entidades que levantamos dentro do contexto do estudo de caso tanto entidades explicitas como
implcitas. Analisando o contexto temos as seguintes classes: Aluno, Professor, Disciplina, Curso e Turma.
Secretaria e Financeiro como so sistemas externos no estou incluindo na analise.
Para adicionar um diagrama de classes temos que clicar com o boto direito do mouse sobre o pacote e
ir a
Add Diagram
Class Diagram.
http://cnx.org/content/m47736/1.1/
Pronto temos todos os itens para construo das classes:
OpenStax-CNX module: m47736
16
Figure 17
Feito isso agora comeo a construo das classes junto com seus possveis atributos e mtodos.
Classe Aluno:
o que basicamente compe essa classe so os atributos nome, sexo, matricula, dataNasci-
mento. Todos esses atributos sero privados, ou seja, sero todos de acesso exclusivo da classe assim para
acessa-los de fora da classe ser necessrio construo dos mtodos Getter e Setter. No necessrio
viso desses mtodos no diagrama apenas os mtodos relevantes so considerados. Os mtodos dessa classe
so: registrarAluno, cosultarAluno, excluirAluno e alterarMatricula.
Classe Professor:
basicamente composta pelos atributos nome, sexo e registro. Os mtodos dessa
classe so: consultarTurma, lancarNota e realizarFrequencia. Todos os atributos da classe sero privados e
preciso de seus mtodos Getter e Setter.
Classe Turma:
composta pelos atributos codigo, codigoAluno, codigoProfessor. Os mtodos dessa
classe so listarTurma, listarAlunos. Os atributos dessa classe sero privados.
Classe Curso:
composta pelos atributos cdigo e nome apenas e os mtodos consultarCurso e incluir-
Curso. Os atributos so privados.
Classe Disciplina:
composta pelos atributos cdigo e nome, e pelos mtodos consultarDisciplina e
incluirDisciplina.
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
17
Classe DetalheTurma:
Aluno e Professor.
uma classe que auxilia no relacionamento da classe turma junto as classes
Essa classe composta pelos atributos codigoAluno, codigoProfessor e codigoTurma.
Todos os atributos dessa classe so privados.
Classe DetalheCurso:
uma classe que auxilia no relacionamento da classe curso junto a classe Turma.
composta pelos atributos codigoCurso e codigoTurma. Os atributos dessa classe so privados.
DetalheDisciplina:
uma classe que auxilia no relacionamento da classe Disciplina junta a classe Curso.
composta pelos atributos codigoCurso e codigoDisciplina. Seus atributos so privados.
Depois de criado o diagrama de classe vai car assim:
Figure 18
Agora vou mostrar um exemplo da criao do Diagrama de Sequncia.
O diagrama de sequencia
baseado nos casos de uso e ele descreve o uxo de eventos de cada caso, assim sendo, para cada caso de uso
descoberto ser necessrio criao de um diagrama de sequencia, mas no criarei todos os diagramas de
sequencia mostrarei apenas um diagrama relacionado ao caso de uso
Lanar Nota
que executado pelo
ator Professor.
Para adicionar o diagrama de sequencia repetimos os mesmos passos dos outros diagramas.
adicionamos um pacote depois adicionamos um Sequence Diagram.
Primeiro
Para incluir os objetos no diagrama
temos que selecionar os pacotes onde j existem as classes e os casos de uso selecionar o objeto segurar e
arrastar para a rea de criao. Objetos novos podem ser adicionados pela paleta que ca do lado esquerdo:
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
18
Figure 19
Aps a incluso de todos os objetos o grco ca assim:
Figure 20
http://cnx.org/content/m47736/1.1/
OpenStax-CNX module: m47736
19
1 Referncia:
Melo, A. C. (2010). Desenvolvendo Aplicaes com UML 2.2. Rio de Janeiro: Brasporte.
StarUML. (s.d.).
Welcome to StarUML. Acesso em 09 de 2013, disponvel em StarUML The Open
Source UML/MDA Platform.
http://cnx.org/content/m47736/1.1/