Artigo Desenvolvendo Software Com Astah

Embed Size (px)

Citation preview

  • Edio 30 - Engenharia de Software Magazine 25

    Daves Marcio Silva [email protected]

    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 [email protected]

    graduando no Curso Bacharelado em Sis-temas de Informao do Centro de Ensino Superior de Juiz de Fora.

    Renan de Assis [email protected]

    graduando no Curso Bacharelado em Sis-temas de Informao do Centro de Ensino Superior de Juiz de Fora.

    Geovani Moreira [email protected]

    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* ProfessionalAps 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* ProfessionalOs 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.$ESCRIODO#ASODE5SO

    Figura 6. $IAGRAMASDEUM#ASODE5SO

    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* ProfessionalDiagrama de Entidade-Relacionamento e cdigo SQLO 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. #DIGO31,GERADOPELO!STAH

    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 programaoOutra 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.$IAGRAMA%NTIDADE2ELACIONAMENTOGERADOPELO!STAHSEMalteraes 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#LASSESpublic class Curso { PRIVATE3TRINGNOMEPRIVATEDOUBLECARGA(ORARIA PRIVATE3TRINGCONTEUDO0ROGRAMATICO PRIVATEDOUBLEVALOR PRIVATE4URMA;=TURMA public void setNome(String nome) { } public String getNome() { RETURNNULL } PUBLICVOIDSET#ARGA(ORARIADOUBLECARGA(ORARIA[ } PUBLICDOUBLEGET#ARGA(ORARIA[ RETURN } public void setConteudoProgramatico(String conteudoProgramatico) { } public String getConteudoProgramatico() { RETURNNULL } public void setValor(double valor) { }

    public double getValor() { RETURN } }}PACKAGE#LASSESpublic class Professor { PRIVATE3TRINGNOMEPRIVATE3TRINGTELEFONE PRIVATEDOUBLEVALOR(ORA!ULAPRIVATE4URMA;=TURMA }PACKAGE#LASSESIMPORTJAVAUTIL$ATEpublic class Turma { PRIVATE$ATEDATA)NICIO PRIVATE$ATEDATA4ERMINO PRIVATE3TRINGHORA)NICIOPRIVATE3TRINGHORA4ERMINO PRIVATE#URSOCURSO PRIVATE0ROFESSORPROFESSOR }

    Listagem 2. #LASSE*AVAGERADAPELO!STAH

    Listagem 3. Classes Java para importao

    public class Carro {PRIVATE3TRING#ORPRIVATE3TRING-ARCAPRIVATE-OTORMOTOR

    public Carro() { } public String getCor() {RETURN#OR } public void setCor(String Cor) {THIS#OR#OR } public String getMarca() {RETURN-ARCA } public void setMarca(String Marca) { THIS-ARCA-ARCA } public Motor getMotor() { RETURNMOTOR } public void setMotor(Motor motor) { THISMOTORMOTOR }}

    public class Motor {PRIVATE3TRING&ABRICANTE public Motor(){ } public String getFabricante() {RETURN&ABRICANTE } public void setFabricante(String Fabricante) { THIS&ABRICANTE&ABRICANTE }}

    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 funcionalidadesNeste 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.6ERSESDISPONIVIESDO!STAH

    ConclusoO 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

    seu Fe

    edback

    sobre esta edio