Você está na página 1de 7

Edio 30 - Engenharia de Software Magazine 25

Daves Marcio Silva


davesmartins@gmail.com
desenvolvedor Java desde 2000, com am-
pla experincia em aplicaes Win32, Web
e Celular. Graduado em Informtica pela
UFJF, com Especializao em Banco de Da-
dos pelo Centro de Ensino Superior de Juiz
de Fora, e Mestrado em Computao de
Alto Desempenho pela UFRJ. Atualmente
professor universitrio em diversas institui-
es, em cusos de Sistemas de Informao,
Analista de Sistema na UFJF, e atua como
consultor, pesquisador e desenvolvedor de
aplicaes Java, sobretudo na plataforma
J2EE para Web, e J2ME, sendo especialista
em aplicaes Web.
Victor Domingos Pinto
victordomingos@gmail.com
graduando no Curso Bacharelado em Sis-
temas de Informao do Centro de Ensino
Superior de Juiz de Fora.
Renan de Assis
renan_amartins@yahoo.com.br
graduando no Curso Bacharelado em Sis-
temas de Informao do Centro de Ensino
Superior de Juiz de Fora.
Geovani Moreira
geovanibrovine@hotmail.com
graduando no Curso Bacharelado em Sis-
temas de Informao do Centro de Ensino
Superior de Juiz de Fora.
De que se trata o artigo?
O objetivo deste artigo apresentar uma ferra-
menta de apoio criao de diagramas de apoio
a projetos de software como diagramas de classe,
de casos de uso, de entidade-relacionamento.
Para isso, ser utilizado um estudo de caso.
Para que serve?
Demonstrar a criao de diagramas de caso de
uso, diagramas de classe e diagramas entidade-
relacionamento. Alm disso, o artigo mostra
tambm como exportar os diagramas visuais em
classes Java, relacionar um ou mais diagramas
UML e gerar cdigo SQL atravs do diagrama
entidade-relacionamento.
Em que situao o tema til?
A utilizao de diagramas na fase de projeto
de um desenvolvimento de sistemas neces-
sria para que haja preciso na transformao
dos requisitos para um modelo coeso e sem
ambiguidades.
Projeto de Software com Astah*
Construindo diagramas de apoio a projetos de software
Engenharia
Nesta seo voc encontra artigos voltados para testes, processo,
modelos, documentao, entre outros
A
fase de projeto no desenvolvi-
mento de um sistema onde
ocorrer a descrio precisa de
como dever ser o software e seu funcio-
namento. O modelo especificado deve
ser claramente definido, de modo que
o sistema evite passar por correes no
decorrer de seu desenvolvimento.
Vrias tcnicas podem ser usadas para
auxiliar nesta tarefa, em especial o uso
da UML. A UML apenas padroniza dia-
gramas, permitindo uma melhor visuali-
zao geral do projeto e da comunicao
entre os objetos. Assim, antes mesmo de
comear efetivamente a programao,
pode-se ver se a esquematizao do
sistema est correta e de acordo com o
que foi levantado previamente na anlise
de requisitos.
Nesse contexto, neste artigo ser apre-
sentado o Astah* Professional, uma fer-
ramenta CASE de criao de diagramas
UML, alm de outros diagramas, tais
como diagrama de entidade-relaciona-
mento, diagrama de fluxo de dados e
outras funcionalidades teis fase de
especificao e projeto de um sistema.
26 Engenharia de Software Magazine - Projeto de Software com Astah*
Anteriormente a ferramenta era conhecida por Jude, tendo o
nome alterado para Astah*. A ferramenta pode ser encontrada
no site http://astah.change-vision.com/en/product/astah-
professional.html onde oferecido o download do Astah*
Professional e uma licena provisria de 20 dias no prprio site.
Aps esse perodo a ferramenta para de funcionar devendo-se
comprar a licena ou usar sua verso free, que no possui o
mesmo conjunto de diagramas disponveis.
Instalao do Astah* Professional
Aps o download da ferramenta, o usurio ser automati-
camente encaminhado para uma tela pedindo a identificao,
onde dever clicar em New Registration para efetuar um
novo cadastro ou inserir o e-mail e a senha de cadastro para
continuar.
Clicando em New Registration, a primeira seo contm os
termos de aceitao para se tornar um membro. Concordando
com as definies, deve-se marcar a opo I accept the terms
in the agreement e clique em Next.
A tela seguinte ser a do preenchimento dos dados pessoais.
Terminado o cadastro, os dados fornecidos sero dispostos
na tela para que o usurio possa confirmar e ento estar de-
vidamente registrado no site. Uma mensagem informando o
sucesso do cadastro ser enviada ao e-mail fornecido.
Feito isso, hora de retornar ao link previamente citado.
Efetue o login e escolha a opo New! Astah* Professional 6.1.1
na tela seguinte. Voc ser encaminhado agora para uma tela
com as opes apresentadas na Figura 1.
A primeira opo para aqueles que j possuam o JRE (Java
Runtime Environment) instalado, efetuando o download ape-
nas do instalador do Astah* Professional. A segunda opo o
download do instalador da ferramenta e do JRE para aqueles
que no o possuam em seu computador. A terceira opo
para usurios no Windows, ou seja, usurios Linux e MacOS,
que encontraro os passos para instalao no link denominado
por FAQ, em verde. Aps escolher a opo desejada, basta
clicar no mesmo cone de Download na nova pgina e efetuar
a transferncia dos dados.
Apesar de existir essa verso para usurios no Windows, no
h oficialmente suporte ao Linux ou MacOS para Astah*, de
modo que nenhum suporte tcnico ser fornecido para os erros
que ocorrerem na utilizao em ambientes MacOS ou Linux.
Aps a instalao do programa, ser necessrio fazer o
download de uma chave de licena para uso do Astah*. Feito
isso, basta defini-la no software para comear a utilizar a
ferramenta.
Modelagem de sistema utilizando o Astah*
Professional
Os sistemas de informao modernos tm ficado cada vez
mais complexos e sua construo demanda um esforo de
diversas pessoas, representando um contraste com os siste-
mas desenvolvidos em dcadas anteriores onde um nico
programador usando seus prprios mtodos criava e realizava
manuteno em seus sistemas.
Colocar um grupo de pessoas trabalhando de forma con-
centrada para chegar a um produto de software no uma
tarefa fcil. Uma das maneiras de enfrentar as dificuldades
intrnsecas ao desenvolvimento de um sistema a adoo
de uma forma de trabalho padronizada, uma metodologia.
Uma metodologia um conjunto organizado de mtodos e
ferramentas que tem por objetivo disciplinar o processo de
desenvolvimento de sistemas.
Nesse contexto se insere o Astah*, com o seu conjunto de
diagramas que visa auxiliar o processo de modelagem de um
sistema. O Astah* possui um total de 14 diagramas que, de
acordo com a necessidade e complexidade do projeto, podem
ser combinados.
Uma das principais fases de um desenvolvimento a fase
da definio dos requisitos, e o objetivo desta fase definir a
funcionalidade esperada pelo usurio, identificar e mapear o
problema e propor alternativas de solues, bem como apontar
e justificar alternativas escolhidas. A soluo deve ser descrita
com o auxlio de documentos e diagramas.
No exemplo deste artigo, ser demonstrada a utilizao de
alguns desses diagramas de forma simplificada, estando aqui
mais preocupados com a adoo da ferramenta do que com a
adoo da metodologia em si.
O exemplo utilizado no artigo ser sobre um sistema para
o controle de cursos de aperfeioamento, exemplo retirado
do livro de Ana Cristina Melo (2006). O cenrio proposto o
seguinte: A empresa AProf oferece cursos diversos de aperfei-
oamento profissional. O dono precisa controlar, inicialmente:
Figura 1. Tela para escolha de verso
Edio 30 - Engenharia de Software Magazine 27
PROJETO
os cursos oferecidos, a data de incio e trmino, o horrio de
incio e trmino, o nome e o telefone celular do professor e o
valor de sua hora/aula. Lembrando que a soluo adotada na
modelagem foi a soluo proposta pela autora.
Para comear, deve ser criado um novo arquivo, um projeto,
e dentro desse arquivo deve-se criar um novo pacote clicando
com o boto direito sobre ele. Dentro do novo pacote esto as
diversas opes de diagrama que podem ser criados, conforme
ilustra a Figura 2, dentre as quais ser criado um Diagrama
de Casos de Uso.
Figura 2. Menu e criao dos diagramas
O Diagrama de Caso de Uso descreve a viso externa do sis-
tema e suas funcionalidades, representando em alto nvel de
abstrao. No importante nesse momento compreender como
o sistema implementa o caso de uso ou como ocorre o funcio-
namento interno. Ao modelar casos de uso, o analista deve des-
crever como o usurio interage com o sistema. O objetivo desse
diagrama no especificar o sistema ou o programa, mas sim o
que o software deve atender, e o que o usurio espera dele.
O diagrama oferece uma viso geral do sistema, mas suas
descries reais so feitas atravs de texto, pois os modelos
visuais no so capazes de fornecer toda a informao neces-
sria. A descrio do contedo de um caso de uso feita tex-
tualmente e torna-se parte da documentao. Tal documento
deve definir os requisitos solicitados pelo cliente e descrever
suas funcionalidades. Se for necessrio, o Astah* possui dois
diagramas especficos para modelar e armazenar os requisitos
solicitados pelo cliente, a tabela de requisitos e o diagrama de
requisitos.
Esses diagramas so projetados para serem utilizados de
forma geral no desenvolvimento do projeto de software. Ele
permite definir a hierarquia e relacionar os requisitos, alm
de permitir a definio de casos de teste. Esses diagramas
permitem a visualizao dos requisitos e processos de forma
clara e objetiva. A Figura 3 mostra um exemplo do diagrama
de requisitos.
A tela da Figura 4 contm as funcionalidades para se criar o
caso de uso, seus atores e relacionamentos. Clicando no ator,
possvel definir seus atributos, mtodos e esteretipos.
Figura 4. Tela de criao do diagrama
Cada caso de uso, representado por uma elipse, possui sua
prpria especificao de requisitos, que pode ser visualizada
na Figura 5, obtida clicando com o boto direito na elipse e
selecionando a opo Open UserCase Description. Esta es-
pecificao tem por objetivo descrever as regras de negcio do
Caso de Uso, onde ser possvel preencher pr e ps condies,
sequncias e sub casos de uso.
Na prtica, um caso de uso pode ser descrito de vrias formas,
dependendo das necessidades de entendimento por parte do
analista. O Astah* d suporte para criao grfica e textual
do caso de uso.
Dentro de cada caso de uso tambm possvel criar outros
diagramas, como ilustra a Figura 6.
Assim disso, possvel especificar, por exemplo, um dia-
grama de classes ou de sequncia especfico para cada caso
de uso.
O prximo diagrama abordado aqui ser o diagrama de
classes, representao da estrutura esttica e as relaes das
classes que servem de modelo para os objetos. um modelo
muito til para o sistema, e define todas as classes que o sis-
tema necessita possuir, sendo a base para a construo dos
diagramas de comunicao e estados.
Podem ser criados dois tipos de diagrama classes, Diagrama de
Domnio e o Diagrama de Classes do Caso de Uso. Nos Diagramas
Figura 3. Diagrama de Requisitos
28 Engenharia de Software Magazine - Projeto de Software com Astah*
Figura 5. Descriao do Caso de Uso
Figura 6. Diagramas de um Caso de Uso
de Domnio so apresentadas as classes que fazem parte do
domnio do problema. J os Diagramas de Classes dos Casos de
Uso mostram as classes participantes em cada caso de uso e essas
classes esto geralmente organizadas em trs categorias:
Interface: define a interao com o sistema;
Controle: classes que controlam a execuo do caso de uso;
Entidade/Domnio: geralmente entidades do domnio do
problema, que se encarregam do armazenamento das infor-
maes do sistema.
Para criar esse diagrama, deve-se clicar com o boto direito
do mouse sobre um pacote e escolher adicionar um novo
diagrama de classes.
A Figura 7 ilustra o diagrama de classes criado no Astah*.
Vale chamar ateno no diagrama para a criao dos mtodos
get e set, esses mtodos foram gerados automaticamente pela
ferramenta.
Como dito anteriormente, tambm possvel criar um
diagrama de classes associados a um caso de uso. No nosso
exemplo, o objetivo o de representar o diagrama de classes
do caso de uso Manter Curso. Para isso, devemos clicar com o
boto direito no cone Manter Curso e escolher o diagrama a
ser criado. Depois disso, hora de construir as classes envol-
vidas (Figura 8). Aps, basta arrastar as classes j existentes
ou criar novas classes.
O prximo diagrama de nosso estudo de caso o de sequ-
ncia. Esse diagrama representa a sequncia de processos,
mais especificamente, de mensagens passadas entre os obje-
tos para a execuo de um determinado caso de uso. Como
um projeto pode ter uma grande quantidade de mtodos em
classes diferentes, pode ser difcil determinar a sequncia do
comportamento. O diagrama de sequncia representa essa
informao de uma forma simples e lgica.
Um diagrama de seqncia descreve a maneira como os grupos
de objetos colaboram em algum comportamento ao longo do
tempo. Ele registra o comportamento de um nico caso de uso e
exibe os objetos e as mensagens passadas entre esses objetos.
Em sntese, o Diagrama de Sequncia uma das ferramentas
da UML usadas para representar interaes entre objetos de
um cenrio, realizadas atravs de operaes ou mtodos (pro-
cedimentos ou funes). Esse diagrama construdo a partir
do Diagrama de Casos de Usos. Primeiro, se define qual o
papel do sistema (Use Case), depois definido como o software
realizar seu papel (sequncia de operaes).
Figura 7. Diagrama de Classes
Figura 8. Diagrama de classes com as classes do modelo
Edio 30 - Engenharia de Software Magazine 29
PROJETO
A Figura 9 mostra o Diagrama de Sequncia para o caso de
uso Manter Curso.
Figura 9. Diagrama de Sequncia para o caso de uso Manter Curso
Outros diagramas poderiam ser utilizados para a realiza-
o da documentao do projeto. O Astah* possui um amplo
conjunto de diagramas a fim de proporcionar ao analista a
possibilidade de escolher o diagrama que melhor lhe atende.
Outras funcionalidades do Astah* Professional
Diagrama de Entidade-Relacionamento e cdigo SQL
O Astah* possui uma funcionalidade de gerar cdigo a par-
tir das classes definidas para o projeto, alm de criar o DER
(Diagrama Entidade-Relacionamento). Este ltimo muito
utilizado para modelagem do armazenamento dos dados.
Por definio, o DER uma ferramenta de anlise que descre-
ve a modelagem dos dados de um sistema e os relacionamentos
entre esses dados.
Para gerar o diagrama, preciso clicar com o boto direito no
Diagrama de Classes onde esto contidas as classe do modelo,
conforme a Figura 7, e seleciona-se a opo Convert to ER
Diagram, gerando um Diagrama de Entidade-Relacionamento
como o da Figura 10. Atravs dele possvel trabalhar com os
atributos de cada entidade, alm de configurar os relaciona-
mentos que so padronizados numa relao n:n, sem nome
definido, por exemplo.
Outra funcionalidade do Astah* a criao de comandos SQL
para a gerao das tabelas existentes no diagrama. Em Tool >
ER Diagram > Export SQL..., a ferramenta cria os comandos,
conforme pode ser observado na Listagem 1.
Listagem 1. Codigo SQL gerado pelo Astah`
CREATE TABLE Curso (
nome VARCHAR(10),
cargaHoraria DOUBLE PRECISION,
conteudoProgramatico VARCHAR(10),
valor DOUBLE PRECISION
);
CREATE TABLE Professor (
nome VARCHAR(10),
telefone VARCHAR(10),
valorHoraAula DOUBLE PRECISION
);
CREATE TABLE Turma (
dataInicio DATE,
dataTermino DATE,
horaInicio VARCHAR(10),
hora Termino VARCHAR(10)
);
Exportar/ Importar para uma linguagem de programao
Outra funcionalidade bastante interessante nessa ferramenta a
importao e exportao dos modelos em classes de determinadas
linguagens de programao. Atualmente o Astah* est preparado
para importar e exportar classes para Java, C# e C++.
Para realizar a exportao em classes Java, por exemplo, basta
clicar em Tool > Java > Export Java..., escolher o diretrio e
pastas de atualizao, o pacote e os elementos da Candidate
List que sero convertidos (Figura 11). Neste exemplo, escolhe-
mos apenas as classes presentes no diagrama de classes, cujo
cdigo gerado est apresentado na Listagem 2.
O Astah* tambm trabalha com a importao de classes
Java. A Listagem 3 apresenta o cdigo fonte das classes Java
que sero utilizados nesse processo, representando um outro
domnio de aplicao, a ser importado em um novo projeto.
Figura 10. Diagrama Lntidade-Pelacionamento gerado pelo Astah`, sem
alteraes Figura 11. Converso de classes visuais para Java
30 Engenharia de Software Magazine - Projeto de Software com Astah*
Em Tool > Java > Import Java... devem-se informar quais
classes sero importadas pela ferramenta. Na nova janela, o
processo ser realizado e as classes estaro dispostas junto com
os demais cones na aba Structure. Para trazer a classe para os
package Classes,
public class Curso {
private String nome,
private double cargaHoraria,
private String conteudoProgramatico,
private double valor,
private Turma|| turma,
public void setNome(String nome) {
}
public String getNome() {
return null,
}
public void setCargaHoraria(double cargaHoraria) }
}
public double getCargaHoraria() }
return 0,
}
public void setConteudoProgramatico(String conteudoProgramatico) {
}
public String getConteudoProgramatico() {
return null,
}
public void setValor(double valor) {
}
public double getValor() {
return 0,
}
}
}
package Classes,
public class Professor {
private String nome,
private String telefone,
private double valorHoraAula,
private Turma|| turma,
}
package Classes,
import |ava.util.Date,
public class Turma {
private Date data|nicio,
private Date dataTermino,
private String hora|nicio,
private String hora Termino,
private Curso curso,
private Professor professor,
}
Listagem 2. Classe 1ava gerada pelo Astah`
Listagem 3. Classes Java para importao
public class Carro {
private String Cor,
private String Marca,
private Motor motor,
public Carro() {
}
public String getCor() {
return Cor,
}
public void setCor(String Cor) {
this.Cor Cor,
}
public String getMarca() {
return Marca,
}
public void setMarca(String Marca) {
this.Marca Marca,
}
public Motor getMotor() {
return motor,
}
public void setMotor(Motor motor) {
this.motor motor,
}
}
public class Motor {
private String Pabricante,
public Motor(){
}
public String getFabricante() {
return Pabricante,
}
public void setFabricante(String Fabricante) {
this.Pabricante Pabricante,
}
}
diagramas, basta arrast-la como foi feito anteriormente. Como
pode ser notado na Figura 12, o Astah* aplica visualmente a
associao existente entre as duas classes no cdigo-fonte,
garantindo uma reproduo precisa no diagrama.
Figura 12. Diagrama de Classes das classes Java importadas
Outras funcionalidades
Neste artigo foram exibidas apenas algumas das funcio-
nalidades do Astah*, mas muitos diagramas e recursos da
ferramenta tambm esto disponveis embora no tenham
sido abordados neste exemplo.
O Astah* capaz de gerar os seguintes diagramas: Diagrama
de Classes, Diagrama de Casos de Uso, Diagrama de Estado,
Diagrama de Atividades, Diagrama de Sequncia, Diagrama
Edio 30 - Engenharia de Software Magazine 31
PROJETO
de Comunicao, Diagrama de Componentes, Diagrama de
Instalao, Diagrama de Estrutura de Composio, Fluxo-
grama, Diagrama de Fluxo de Dados, Diagrama de Entidade-
Relacionamento, Diagrama de Mapa Mental e Diagrama de
Requisitos.
H tambm o suporte criao de operaes CRUD (Create,
Read, Update and Delete), sendo as principais operaes na
manipulao de dados.
Alm das j citadas exportaes de diagramas para cdigos
Java, C# e C++, a ferramenta tambm exporta o diagrama em
imagens (PNG, JPEG, EMF, SVG), HTML e RFT. Os Diagramas
de Mapa Mental possuem exportao para PowerPoint e os
Diagramas de Requisitos podem ser complementados com a
importao de tabelas de requisitos.
Produtos Astah*
O Astah* distribudo em quatro verses conforme especi-
ficado abaixo:
Astah* professional, a verso mais completa com todas
as funcionalidades, todos os diagramas. Essa verso possui
diversos tipos de licena, uma deles a licena por usurio,
sem perodo de validade e com suporte durante um ano. O
Astah* possui tambm uma licena acadmica, disponvel
para alunos e professores de instituies de ensino, para uso
no comercial do software com validade de um ano. H outros
tipos de licena para equipes de desenvolvimento, onde mais
informaes podem ser obtidas no site da Astah*.
Astah* UML uma verso especfica para trabalhar com os
diagramas da UML. O tempo de licena limitada a um ano
e a um nico computador.
Astah* Share uma ferramenta de comunicao que permite
que se compartilhe arquivos Astah* com outros. Cada membro
pode acessar o contedo compartilhado em um navegador
Web e adicionar comentrios e respostas sobre eles. Promove
discusses de temas e idias e uma forma eficaz de colaborar
em ambientes multi-usurio.
O Astah* possui ainda o Astah* community que uma verso
free que suporta diagramas UML bsicos. A redistribuio
permitida para uso por alunos e professores das instituies
de ensino para at 50 computadores.
O quadro da Figura 13 ilustra as diferentes verses existentes
para o Astah*, bem como suas principais funcionalidades.
Figura 13. versoes disponivies do Astah`
Concluso
O aumento da complexidade dos sistemas de software fez
surgir a necessidade da existncia de uma sistemtica para
modelagem de problemas do mundo real. A produo de
software tem tomado dimenses de produo em larga escala,
no sentido de que metodologias e ferramentas auxiliares so
usadas para aumentar a produtividade e melhorar a qualida-
de do produto, mostrando assim que o desenvolvimento de
software mais do que uma arte e merece ter sua devida
importncia.
Com o aumento dessa demanda, surgiram inmeras fer-
ramentas CASE, fornecendo suporte s diversas fases do
processo de software. Embora representem um diferencial no
processo de software, importante o uso regrado e consciente
dos diagramas adotados, ou seja, no utilizar diagramas des-
necessrios em um projeto.
Neste contexto, a partir de um pequeno projeto ilustrativo,
foram exibidas algumas funcionalidades da ferramenta Astah*,
como a criao de classes para programao e de tabelas para
banco de dados, facilitando o primeiro passo entre a etapa de
projeto e a etapa de codificao.
Melo, Ana Cristina, Exercitando modelagem em UML Rio de Janeiro, Brasport, 2006.
Referncias
D seu feedback sobre esta edio!
A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:
www.devmedia.com.br/esmag/feedback
D


s
e
u
Feedba
c
k
s
o
b
r
e

e
s
t
a
e
d i o