7
Edição 30 - Engenharia de Software Magazine 25 Daves Marcio Silva [email protected] É desenvolvedor Java desde 2000, com am- pla experiência em aplicações Win32, Web e Celular. Graduado em Informática pela UFJF, com Especialização em Banco de Da- dos pelo Centro de Ensino Superior de Juiz de Fora, e Mestrado em Computação de Alto Desempenho pela UFRJ. Atualmente é professor universitário em diversas institui- ções, em cusos de Sistemas de Informação, Analista de Sistema na UFJF, e atua como consultor, pesquisador e desenvolvedor de aplicações Java, sobretudo na plataforma J2EE para Web, e J2ME, sendo especialista em aplicações Web. Victor Domingos Pinto [email protected] É graduando no Curso Bacharelado em Sis- temas de Informação do Centro de Ensino Superior de Juiz de Fora. Renan de Assis [email protected] É graduando no Curso Bacharelado em Sis- temas de Informação do Centro de Ensino Superior de Juiz de Fora. Geovani Moreira [email protected] É graduando no Curso Bacharelado em Sis- temas de Informação 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 à criação 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 criação de diagramas de caso de uso, diagramas de classe e diagramas entidade- relacionamento. Além disso, o artigo mostra também como exportar os diagramas visuais em classes Java, relacionar um ou mais diagramas UML e gerar código SQL através do diagrama entidade-relacionamento. Em que situação o tema é útil? A utilização de diagramas na fase de projeto de um desenvolvimento de sistemas é neces- sária para que haja precisão na transformação dos requisitos para um modelo coeso e sem ambiguidades. Projeto de Software com Astah* Construindo diagramas de apoio a projetos de software Engenharia Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros A fase de projeto no desenvolvi- mento de um sistema é onde ocorrerá a descrição 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 correções no decorrer de seu desenvolvimento. Várias técnicas podem ser usadas para auxiliar nesta tarefa, em especial o uso da UML. A UML apenas padroniza dia- gramas, permitindo uma melhor visuali- zação geral do projeto e da comunicação entre os objetos. Assim, antes mesmo de começar efetivamente a programação, pode-se ver se a esquematização do sistema está correta e de acordo com o que foi levantado previamente na análise de requisitos. Nesse contexto, neste artigo será apre- sentado o Astah* Professional, uma fer- ramenta CASE de criação de diagramas UML, além de outros diagramas, tais como diagrama de entidade-relaciona- mento, diagrama de fluxo de dados e outras funcionalidades úteis à fase de especificação e projeto de um sistema.

Artigo_Astah

Embed Size (px)

Citation preview

Page 1: Artigo_Astah

Edição 30 - Engenharia de Software Magazine 25

Daves Marcio Silva [email protected]

É desenvolvedor Java desde 2000, com am-pla experiência em aplicações Win32, Web e Celular. Graduado em Informática pela UFJF, com Especialização em Banco de Da-dos pelo Centro de Ensino Superior de Juiz de Fora, e Mestrado em Computação de Alto Desempenho pela UFRJ. Atualmente é professor universitário em diversas institui-ções, em cusos de Sistemas de Informação, Analista de Sistema na UFJF, e atua como consultor, pesquisador e desenvolvedor de aplicações Java, sobretudo na plataforma J2EE para Web, e J2ME, sendo especialista em aplicações Web.

Victor Domingos Pinto [email protected]

É graduando no Curso Bacharelado em Sis-temas de Informação do Centro de Ensino Superior de Juiz de Fora.

Renan de Assis [email protected]

É graduando no Curso Bacharelado em Sis-temas de Informação do Centro de Ensino Superior de Juiz de Fora.

Geovani Moreira [email protected]

É graduando no Curso Bacharelado em Sis-temas de Informação 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 à criação 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 criação de diagramas de caso de uso, diagramas de classe e diagramas entidade-relacionamento. Além disso, o artigo mostra também como exportar os diagramas visuais em classes Java, relacionar um ou mais diagramas UML e gerar código SQL através do diagrama entidade-relacionamento.

Em que situação o tema é útil?A utilização de diagramas na fase de projeto de um desenvolvimento de sistemas é neces-sária para que haja precisão na transformação dos requisitos para um modelo coeso e sem ambiguidades.

Projeto de Software com Astah*Construindo diagramas de apoio a projetos de software

Engenharia

Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros

A fase de projeto no desenvolvi-mento de um sistema é onde ocorrerá a descrição 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 correções no decorrer de seu desenvolvimento.Várias técnicas podem ser usadas para auxiliar nesta tarefa, em especial o uso da UML. A UML apenas padroniza dia-gramas, permitindo uma melhor visuali-zação geral do projeto e da comunicação entre os objetos. Assim, antes mesmo de começar efetivamente a programação, pode-se ver se a esquematização do sistema está correta e de acordo com o que foi levantado previamente na análise de requisitos.Nesse contexto, neste artigo será apre-sentado o Astah* Professional, uma fer-ramenta CASE de criação de diagramas

UML, além de outros diagramas, tais como diagrama de entidade-relaciona-mento, diagrama de fluxo de dados e outras funcionalidades úteis à fase de especificação e projeto de um sistema.

Page 2: Artigo_Astah

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 licença provisória de 20 dias no próprio site. Após esse período a ferramenta para de funcionar devendo-se comprar a licença ou usar sua versão free, que não possui o mesmo conjunto de diagramas disponíveis.

Instalação do Astah* ProfessionalApós o download da ferramenta, o usuário será automati-camente encaminhado para uma tela pedindo a identificação, 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 seção contém os termos de aceitação para se tornar um membro. Concordando com as definições, deve-se marcar a opção “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 serão dispostos na tela para que o usuário possa confirmar e então 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 opção New! Astah* Professional 6.1.1 na tela seguinte. Você será encaminhado agora para uma tela com as opções apresentadas na Figura 1.A primeira opção é para aqueles que já possuam o JRE (Java Runtime Environment) instalado, efetuando o download ape-nas do instalador do Astah* Professional. A segunda opção é o download do instalador da ferramenta e do JRE para aqueles que não o possuam em seu computador. A terceira opção é para usuários não Windows, ou seja, usuários Linux e MacOS, que encontrarão os passos para instalação no link denominado por FAQ, em verde. Após escolher a opção desejada, basta clicar no mesmo ícone de Download na nova página e efetuar a transferência dos dados. Apesar de existir essa versão para usuários não Windows, não há oficialmente suporte ao Linux ou MacOS para Astah*, de modo que nenhum suporte técnico será fornecido para os erros que ocorrerem na utilização em ambientes MacOS ou Linux.Após a instalação do programa, será necessário fazer o download de uma chave de licença para uso do Astah*. Feito isso, basta defini-la no software para começar a utilizar a ferramenta.

Modelagem de sistema utilizando o Astah* ProfessionalOs sistemas de informação modernos têm ficado cada vez mais complexos e sua construção demanda um esforço de diversas pessoas, representando um contraste com os siste-mas desenvolvidos em décadas anteriores onde um único programador usando seus próprios métodos criava e realizava manutenção em seus sistemas.

Colocar um grupo de pessoas trabalhando de forma con-centrada para chegar a um produto de software não é uma tarefa fácil. Uma das maneiras de enfrentar as dificuldades intrínsecas ao desenvolvimento de um sistema é a adoção de uma forma de trabalho padronizada, uma metodologia. Uma metodologia é um conjunto organizado de métodos 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 definição dos requisitos, e o objetivo desta fase é definir a funcionalidade esperada pelo usuário, identificar e mapear o problema e propor alternativas de soluções, bem como apontar e justificar alternativas escolhidas. A solução deve ser descrita com o auxílio de documentos e diagramas.No exemplo deste artigo, será demonstrada a utilização de alguns desses diagramas de forma simplificada, estando aqui mais preocupados com a adoção da ferramenta do que com a adoção da metodologia em si.O exemplo utilizado no artigo será sobre um sistema para o controle de cursos de aperfeiçoamento, exemplo retirado do livro de Ana Cristina Melo (2006). O cenário proposto é o seguinte: “A empresa AProf oferece cursos diversos de aperfei-çoamento profissional. O dono precisa controlar, inicialmente:

Figura 1. Tela para escolha de versão

Page 3: Artigo_Astah

Edição 30 - Engenharia de Software Magazine 27

PROJETO

os cursos oferecidos, a data de início e término, o horário de início e término, o nome e o telefone celular do professor e o valor de sua hora/aula”. Lembrando que a solução adotada na modelagem foi a solução proposta pela autora.Para começar, deve ser criado um novo arquivo, um projeto, e dentro desse arquivo deve-se criar um novo pacote clicando com o botão direito sobre ele. Dentro do novo pacote estão as diversas opções 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 criação dos diagramas

O Diagrama de Caso de Uso descreve a visão externa do sis-tema e suas funcionalidades, representando em alto nível de abstração. Não é 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 usuário interage com o sistema. O objetivo desse diagrama não é especificar o sistema ou o programa, mas sim o que o software deve atender, e o que o usuário espera dele.O diagrama oferece uma visão geral do sistema, mas suas descrições reais são feitas através de texto, pois os modelos visuais não são capazes de fornecer toda a informação neces-sária. A descrição do conteúdo de um caso de uso é feita tex-tualmente e torna-se parte da documentação. Tal documento deve definir os requisitos solicitados pelo cliente e descrever suas funcionalidades. Se for necessário, o Astah* possui dois diagramas específicos para modelar e armazenar os requisitos solicitados pelo cliente, a tabela de requisitos e o diagrama de requisitos. Esses diagramas são projetados para serem utilizados de forma geral no desenvolvimento do projeto de software. Ele permite definir a hierarquia e relacionar os requisitos, além de permitir a definição de casos de teste. Esses diagramas permitem a visualização dos requisitos e processos de forma clara e objetiva. A Figura 3 mostra um exemplo do diagrama de requisitos.

A tela da Figura 4 contém as funcionalidades para se criar o caso de uso, seus atores e relacionamentos. Clicando no ator, é possível definir seus atributos, métodos e estereótipos.

Figura 4. Tela de criação do diagrama

Cada caso de uso, representado por uma elipse, possui sua própria especificação de requisitos, que pode ser visualizada na Figura 5, obtida clicando com o botão direito na elipse e selecionando a opção “Open UserCase Description”. Esta es-pecificação tem por objetivo descrever as regras de negócio do Caso de Uso, onde será possível preencher pré e pós condições, sequências e sub casos de uso.Na prática, um caso de uso pode ser descrito de várias formas, dependendo das necessidades de entendimento por parte do analista. O Astah* dá suporte para criação gráfica e textual do caso de uso.Dentro de cada caso de uso também é possível criar outros diagramas, como ilustra a Figura 6.Assim disso, é possível especificar, por exemplo, um dia-grama de classes ou de sequência específico para cada caso de uso.O próximo diagrama abordado aqui será o diagrama de classes, representação da estrutura estática e as relações 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 construção dos diagramas de comunicação e estados.Podem ser criados dois tipos de diagrama classes, Diagrama de Domínio e o Diagrama de Classes do Caso de Uso. Nos Diagramas

Figura 3. Diagrama de Requisitos

Page 4: Artigo_Astah

28 Engenharia de Software Magazine - Projeto de Software com Astah*

Figura 5.

Figura 6.

de Domínio são apresentadas as classes que fazem parte do domínio do problema. Já os Diagramas de Classes dos Casos de Uso mostram as classes participantes em cada caso de uso e essas classes estão geralmente organizadas em três categorias:• Interface: define a interação com o sistema;

• Controle: classes que controlam a execução do caso de uso;

• Entidade/Domínio: geralmente entidades do domínio do

problema, que se encarregam do armazenamento das infor-mações do sistema.

Para criar esse diagrama, deve-se clicar com o botão 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 atenção no diagrama para a criação dos métodos get e set, esses métodos foram gerados automaticamente pela ferramenta.

Como dito anteriormente, também é possível 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 botão direito no ícone Manter Curso e escolher o diagrama a ser criado. Depois disso, é hora de construir as classes envol-vidas (Figura 8). Após, basta arrastar as classes já existentes ou criar novas classes. O próximo diagrama de nosso estudo de caso é o de sequ-ência. Esse diagrama representa a sequência de processos, mais especificamente, de mensagens passadas entre os obje-tos para a execução de um determinado caso de uso. Como um projeto pode ter uma grande quantidade de métodos em classes diferentes, pode ser difícil determinar a sequência do comportamento. O diagrama de sequência representa essa informação de uma forma simples e lógica.Um diagrama de seqüência 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 síntese, o Diagrama de Sequência é uma das ferramentas da UML usadas para representar interações entre objetos de um cenário, realizadas através de operações ou métodos (pro-cedimentos ou funções). Esse diagrama é construído 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 (sequência de operações).

Figura 7. Diagrama de Classes

Figura 8. Diagrama de classes com as classes do modelo

Page 5: Artigo_Astah

Edição 30 - Engenharia de Software Magazine 29

PROJETO

A Figura 9 mostra o Diagrama de Sequência para o caso de uso Manter Curso.

Figura 9. Diagrama de Sequência para o caso de uso Manter Curso

Outros diagramas poderiam ser utilizados para a realiza-ção da documentação 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* ProfessionalDiagrama de Entidade-Relacionamento e código SQL

O Astah* possui uma funcionalidade de gerar código a par-tir das classes definidas para o projeto, além de criar o DER (Diagrama Entidade-Relacionamento). Este último é muito utilizado para modelagem do armazenamento dos dados.Por definição, o DER é uma ferramenta de análise que descre-ve a modelagem dos dados de um sistema e os relacionamentos entre esses dados. Para gerar o diagrama, é preciso clicar com o botão direito no Diagrama de Classes onde estão contidas as classe do modelo, conforme a Figura 7, e seleciona-se a opção “Convert to ER Diagram”, gerando um Diagrama de Entidade-Relacionamento como o da Figura 10. Através dele é possível trabalhar com os atributos de cada entidade, além de configurar os relaciona-mentos que são padronizados numa relação “n:n”, sem nome definido, por exemplo.

Outra funcionalidade do Astah* é a criação de comandos SQL para a geração 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.

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 programação

Outra funcionalidade bastante interessante nessa ferramenta é a importação e exportação dos modelos em classes de determinadas linguagens de programação. Atualmente o Astah* está preparado para importar e exportar classes para Java, C# e C++.Para realizar a exportação em classes Java, por exemplo, basta clicar em “Tool > Java > Export Java...”, escolher o diretório e pastas de atualização, o pacote e os elementos da Candidate List que serão convertidos (Figura 11). Neste exemplo, escolhe-mos apenas as classes presentes no diagrama de classes, cujo código gerado está apresentado na Listagem 2.O Astah* também trabalha com a importação de classes Java. A Listagem 3 apresenta o código fonte das classes Java que serão utilizados nesse processo, representando um outro domínio de aplicação, a ser importado em um novo projeto.

Figura 10.alterações Figura 11. Conversão de classes visuais para Java

Page 6: Artigo_Astah

30 Engenharia de Software Magazine - Projeto de Software com Astah*

Em “Tool > Java > Import Java...” devem-se informar quais classes serão importadas pela ferramenta. Na nova janela, o processo será realizado e as classes estarão dispostas junto com os demais ícones na aba Structure. Para trazer a classe para os

public class Curso {

public void setNome(String nome) { } public String getNome() {

}

}

} public void setConteudoProgramatico(String conteudoProgramatico) { } public String getConteudoProgramatico() {

} public void setValor(double valor) { }

public double getValor() {

} }}

public class Professor {

}

public class Turma {

}

Listagem 2.

Listagem 3. Classes Java para importação

public class Carro {

public Carro() { } public String getCor() {

} public void setCor(String Cor) {

} public String getMarca() {

} public void setMarca(String Marca) { } public Motor getMotor() { } public void setMotor(Motor motor) { }}

public class Motor {

public Motor(){ } public String getFabricante() {

} public void setFabricante(String Fabricante) { }}

diagramas, basta arrastá-la como foi feito anteriormente. Como pode ser notado na Figura 12, o Astah* aplica visualmente a associação existente entre as duas classes no código-fonte, garantindo uma reprodução 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 também estão disponíveis embora não 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 Sequência, Diagrama

Page 7: Artigo_Astah

Edição 30 - Engenharia de Software Magazine 31

PROJETO

de Comunicação, Diagrama de Componentes, Diagrama de Instalação, Diagrama de Estrutura de Composição, Fluxo-grama, Diagrama de Fluxo de Dados, Diagrama de Entidade-Relacionamento, Diagrama de Mapa Mental e Diagrama de Requisitos.Há também o suporte à criação de operações CRUD (Create, Read, Update and Delete), sendo as principais operações na manipulação de dados. Além das já citadas exportações de diagramas para códigos Java, C# e C++, a ferramenta também exporta o diagrama em imagens (PNG, JPEG, EMF, SVG), HTML e RFT. Os Diagramas de Mapa Mental possuem exportação para PowerPoint e os Diagramas de Requisitos podem ser complementados com a importação de tabelas de requisitos.

Produtos Astah*O Astah* é distribuído em quatro versões conforme especi-ficado abaixo:Astah* professional, é a versão mais completa com todas as funcionalidades, todos os diagramas. Essa versão possui diversos tipos de licença, uma deles é a licença por usuário, sem período de validade e com suporte durante um ano. O Astah* possui também uma licença acadêmica, disponível para alunos e professores de instituições de ensino, para uso não comercial do software com validade de um ano. Há outros tipos de licença para equipes de desenvolvimento, onde mais informações podem ser obtidas no site da Astah*.Astah* UML é uma versão específica para trabalhar com os diagramas da UML. O tempo de licença é limitada a um ano e a um único computador. Astah* Share é uma ferramenta de comunicação que permite que se compartilhe arquivos Astah* com outros. Cada membro pode acessar o conteúdo compartilhado em um navegador Web e adicionar comentários e respostas sobre eles. Promove discussões de temas e idéias e é uma forma eficaz de colaborar em ambientes multi-usuário. O Astah* possui ainda o Astah* community que é uma versão free que suporta diagramas UML básicos. A redistribuição é permitida para uso por alunos e professores das instituições de ensino para até 50 computadores.O quadro da Figura 13 ilustra as diferentes versões existentes para o Astah*, bem como suas principais funcionalidades.

Figura 13.

ConclusãoO aumento da complexidade dos sistemas de software fez surgir a necessidade da existência de uma sistemática para modelagem de problemas do mundo real. A produção de software tem tomado dimensões de produção em larga escala, no sentido de que metodologias e ferramentas auxiliares são 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 importância. Com o aumento dessa demanda, surgiram inúmeras 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, não utilizar diagramas des-necessários em um projeto. Neste contexto, a partir de um pequeno projeto ilustrativo, foram exibidas algumas funcionalidades da ferramenta Astah*, como a criação de classes para programação e de tabelas para banco de dados, facilitando o primeiro passo entre a etapa de projeto e a etapa de codificação.

Melo, Ana Cristina, Exercitando modelagem em UML – Rio de Janeiro, Brasport, 2006.

Referências

Dê seu feedback sobre esta edição!

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, através do link:

www.devmedia.com.br/esmag/feedback

seu Feedback

sobre esta edição