ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB CURSO DE … · principais características, facilitando,...

57
ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA DE SISTEMAS LEILANE FERREIRA RIBEIRO MODELAGEM DE SOFTWARE UTILIZANDO UML: ANÁLISE COMPARATIVA ENTRE AS FERRAMENTAS ASTAH UML E UMBRELLO UML MODELLER VILA VELHA (ES) 2012

Transcript of ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB CURSO DE … · principais características, facilitando,...

ESCOLA SUPERIOR ABERTA DO BRASIL - ESAB

CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA DE SISTEMAS

LEILANE FERREIRA RIBEIRO

MODELAGEM DE SOFTWARE UTILIZANDO UML:

ANÁLISE COMPARATIVA ENTRE AS FERRAMENTAS ASTAH UML E UMBRELLO UML MODELLER

VILA VELHA (ES)

2012

LEILANE FERREIRA RIBEIRO

MODELAGEM DE SOFTWARE UTILIZANDO UML: ANÁLISE COMPARATIVA ENTRE AS FERRAMENTAS ASTAH UML

E UMBRELLO UML MODELLER

Monografia apresentada ao Curso de Pós-Graduação em Engenharia de Sistemas da Escola Superior Aberta do Brasil como requisito para obtenção do título de Especialista em Engenharia de Sistemas, sob orientação do Prof. Me. Jessé Gomes dos Santos

VILA VELHA (ES)

2012

LEILANE FERREIRA RIBEIRO

MODELAGEM DE SOFTWARE UTILIZANDO UML: ANÁLISE COMPARATIVA ENTRE AS FERRAMENTAS ASTAH UML

E UMBRELLO UML MODELLER

Monografia aprovada em de de 2012.

Banca Examinadora

________________________________

________________________________

________________________________

VILA VELHA (ES)

2012

DEDICATÓRIA

Dedico este trabalho ao meu noivo, Saulo, por tudo que ele representa pra mim!

AGRADECIMENTOS

Agradeço a todos aqueles que direta ou indiretamente me ajudaram na

concretização desse trabalho.

“Sucesso é conseguir aquilo que você quer.

Felicidade é querer aquilo que você

conseguiu.”

(Autor desconhecido)

RESUMO

A modelagem é uma das atividades da engenharia de software que proporcionam a implementação de um bom software. Os modelos são uma simplificação da realidade e são construídos para que o sistema que será desenvolvido seja melhor compreendido. Por meio destes modelos múltiplas visões do sistema podem ser obtidas. Por isso, uma linguagem de modelagem, tal como a UML, é essencial para a construção e o entendimento de bons modelos. Esse processo de modelagem de software é normalmente apoiado por ferramentas CASE. Atualmente, existe um grande número destas ferramentas no mercado e é difícil julgar quais delas apóiam melhor a UML. Com base nisto, a finalidade deste trabalho é de facilitar a modelagem de sistemas orientados a objetos usando a linguagem de modelagem UML. Para tanto, foram comparadas as ferramentas CASE de modelagem de software, Astah UML e Umbrello UML Modeller. A análise comparativa apresentada vai permitir que o desenvolvedor faça uma verificação e avaliação das suas principais características, facilitando, desse modo, a sua escolha.

Palavras chaves: Modelagem. Ferramenta CASE. UML.

LISTA DE QUADROS

Quadro 1: Descrição dos critérios utilizados para análise. ........................................ 42

Quadro 2: Comparação de acordo com a documentação. ........................................ 44

Quadro 3: Comparação de acordo com a licença. .................................................... 45

Quadro 4: Comparação de acordo com as plataformas suportadas. ........................ 46

Quadro 5: Comparação de acordo com os idiomas suportados. ............................... 46

Quadro 6: Comparação de acordo com a versão da UML. ....................................... 47

Quadro 7: Comparação de acordo com os diagramas da UML. ............................... 47

Quadro 8: Comparação de acordo com os tipos de arquivos gráficos gerados. ....... 48

Quadro 9: Comparação de acordo com a exportação para código fonte. ................. 49

Quadro 10: Comparação de acordo com a engenharia reversa. ............................... 49

Quadro 11: Comparação de acordo com a exportação de dados para o padrão XMI.

.................................................................................................................................. 50

Quadro 12: Recursos adicionais. .............................................................................. 51

Quadro 13: Quadro geral de comparações entre as características das ferramentas.

.................................................................................................................................. 53

LISTA DE FIGURAS

Figura 1: Visões de um sistema de software. ............................................................ 21

Figura 2: Os diagramas da UML. .............................................................................. 24

Figura 3: Diagramas Estruturais da UML .................................................................. 25

Figura 4: Diagramas Comportamentais da UML. ...................................................... 25

Figura 5: Ferramenta Astah UML. ............................................................................. 38

Figura 6: Ferramenta Umbrello UML Modeller. ......................................................... 40

LISTA DE SIGLAS

CASE Computer-Aided Software Engineering

CSV Comma-separated values

EMF Metarquivo Avançado

EPS PostScript encapsulado

GPL General Public License

HTML HyperText Markup Language

IDE Integrated Development Environment

IDL Interactive Data Language

JPEG Junta Photographic Experts Group

KDE K Desktop Environment

OMT Object Modeling Technique

OOSE Object-oriented software engineering

OMG Object Management Group

PNG Portable network graphics

PPM Portable Pixmap

PHP Personal Home Page

RTF Rich Text Format

SVG Scalable Vector Graphics

TCL Tool Command Language

UML Unified Modeling Language

XBM X BitMap

XPM X PixMap

XMI XML Metadata Interchange

XML Extensible Markup Language

XQL XML Query Language

XSL EXtensible Stylesheet Language

SUMÁRIO

1 INTRODUÇÃO ....................................................................................................... 13

2 MODELAGEM DE SISTEMAS DE SOFTWARE .................................................... 18

3 A LINGUAGEM DE MODELAGEM UNIFICADA – UML ........................................ 20

3.1 DIAGRAMAS DA UML ........................................................................................ 23

3.1.1 Diagrama de Caso de Uso ............................................................................... 26

3.1.2 Diagrama de Classes ....................................................................................... 27

3.1.3 Diagrama de Objetos........................................................................................ 27

3.1.4 Diagrama de Pacotes ....................................................................................... 28

3.1.5 Diagrama de Componentes .............................................................................. 29

3.1.6 Diagrama de Implantação ................................................................................ 29

3.1.7 Diagrama de Máquina de Estados ................................................................... 30

3.1.8 Diagrama de Atividades ................................................................................... 30

3.1.9 Diagrama de Seqüência ................................................................................... 31

3.1.10 Diagrama de Colaboração .............................................................................. 31

3.1.11 Diagrama de Temporização ........................................................................... 32

3.1.12 Diagrama de Visão Geral da Interação .......................................................... 33

3.1.13 Diagrama de Estrutura Composta .................................................................. 33

4 FERRAMENTAS DE MODELAGEM DE SOFTWARE ........................................... 35

4.1 ASTAH* ............................................................................................................... 37

4.2 UMBRELLO UML MODELLER ........................................................................... 38

5 ANÁLISE COMPARATIVA ..................................................................................... 41

5.1 CRITÉRIOS PARA COMPARAÇÃO ................................................................... 41

5.2 APLICAÇÃO DOS CRITÉRIOS ........................................................................... 42

5.2.1 Documentação ................................................................................................. 43

5.2.2 Licença ............................................................................................................. 44

5.2.3 Plataformas suportadas (Portabilidade) ........................................................... 45

5.2.4 Idiomas suportados .......................................................................................... 46

5.2.5 Especificação da UML suportada ..................................................................... 46

5.2.6 Diagramas da UML suportados ........................................................................ 47

5.2.7 Exportação para arquivos gráficos ................................................................... 47

5.2.8 Exportação para código fonte ........................................................................... 48

5.2.9 Engenharia Reversa ......................................................................................... 49

5.2.10 Exportação de dados para o padrão XMI ....................................................... 50

5.2.11 Recursos Adicionais ....................................................................................... 51

5.3 RESULTADOS OBTIDOS ................................................................................... 52

6 CONCLUSÕES ...................................................................................................... 54

REFERÊNCIAS ......................................................................................................... 56

13

1 INTRODUÇÃO

Exposição do assunto: Para o desenvolvimento de um software apto a satisfazer as

necessidades dos seus usuários, que tenha qualidade, através de uma arquitetura

sólida que permita modificações, de forma rápida, eficiente e com o mínimo de

retrabalho, é necessário o emprego de modelagem (TOSING, 2008).

A modelagem é uma das principais atividades que auxiliam na implementação de

um bom software. Os modelos são uma simplificação da realidade e são construídos

para comunicar a estrutura e o comportamento desejados do sistema, para

visualizar e controlar sua arquitetura e compreender melhor o sistema que será

desenvolvido.

A modelagem de software utiliza vários modelos para projetar um determinado

sistema, esses modelos gráficos simbolizam os artefatos de software utilizados e

seus inter-relacionamentos. Um modelo é criado para facilitar o entendimento de

sistemas complexos. Podem abranger planos detalhados, assim como planos mais

gerais com uma visão panorâmica do sistema.

Os modelos são construídos para que o sistema que será desenvolvido seja melhor

compreendido. Construir o modelo de um sistema não é uma tarefa fácil, vários

aspectos devem ser considerados, como a organização da empresa, os processos,

as informações existentes, os recursos envolvidos, dentre outros.

Por meio dos modelos, é possível obter diversas visões do sistema, dessa forma a

complexidade do sistema é dividida facilitando sua compreensão e atuando como

meio de comunicação entre os desenvolvedores do projeto. Deste modo, uma

linguagem de modelagem padronizada, como a UML, é essencial para construção e

entendimento de bons modelos.

14

O processo de modelagem de software é geralmente apoiado pelo uso de

ferramentas CASE. Uma ferramenta CASE é o nome dado ao software utilizado para

apoiar as atividades de processo de software, como a engenharia de requisitos, o

projeto, o desenvolvimento de programas e os testes.

O uso de software de apoio à modelagem é muito importante por duas razões, uma

porque os modelos começarão a ficar tão longos que a folha de papel ficará

pequena, e a outra porque é uma ótima maneira de verificar as associações entre os

modelos. Para isso é essencial avaliar os benefícios das ferramentas e suas

limitações, para que problemas posteriores sejam evitados no processo de

desenvolvimento.

Neste contexto, o propósito deste trabalho é de facilitar a modelagem de sistemas

orientados a objetos usando a linguagem de modelagem UML. Para isso, foram

comparadas as ferramentas CASE de modelagem de software, Astah UML e

Umbrello UML Modeller. Dessa forma, foi possível demonstrar por meio dos

resultados qual ferramenta é mais completa e adequada para cada aspecto

comparado.

Problema de pesquisa: É possível realizar uma comparação entre as ferramentas de

modelagem de software, Astah UML e Umbrello UML Modeller?

Justificativa para escolha do tema: Possuir um bom modelo de software é a maneira

mais eficiente de comunicação entre os desenvolvedores que trabalham no projeto e

os seus clientes. Um bom modelo é extremamente importante para os projetos de

software, pois ele dará uma visão geral que permitirá codificar o sistema da maneira

certa na primeira vez.

O processo de criação de modelos é apoiado por ferramentas de modelagem de

software, cujo principal objetivo é separar o projeto da codificação do sistema.

Existem várias ferramentas de modelagem, algumas que suportam a UML e outras

que apóiam uma metodologia particular que atende a um determinado tipo de

projeto.

15

Visto que existe um grande número de ferramentas CASE no mercado e que seja

necessário conhecer quais delas apóiam melhor a UML, a análise comparativa entre

ferramentas oferecida por este trabalho vai permitir que o desenvolvedor faça uma

verificação e avaliação das suas principais características, facilitando, desse modo,

a sua escolha.

Objetivo geral: O objetivo geral deste trabalho é facilitar o processo de modelagem

de sistemas utilizando a linguagem de modelagem unificada - UML através de uma

analise comparativa das principais características das ferramentas Astah UML e

Umbrello UML Modeller, a fim de gerar informações que auxiliem na escolha de uma

delas.

Objetivos específicos:

Pesquisar as características das ferramentas Astah UML e Umbrello UML

Modeller.

Definir um conjunto de critérios para realizar a comparação entre as ferramentas.

Fazer uma análise comparativa entre os dados coletados.

Confrontar as informações coletadas a fim de facilitar a escolha da melhor opção

para a modelagem de software utilizando UML entre as ferramentas analisadas.

Delimitação do trabalho: Devido ao grande número de características presentes nas

ferramentas de modelagem de software, Astah UML e Umbrello UML Modeller, fez-

se necessária a delimitação do escopo da análise comparativa. Visto isso, este

trabalho analisa os seguintes aspectos das ferramentas:

Documentação.

Licença.

Plataformas suportadas.

Idiomas suportados.

Especificação da UML suportada.

Diagramas da UML suportados.

Exportação para arquivos gráficos.

Exportação para código fonte.

Engenharia Reversa.

16

Exportação de dados para o padrão XMI.

Metodologia de pesquisa: Para o desenvolvimento do trabalho foram feitas

pesquisas de caráter exploratório e bibliográfico, com objetivos de obter informações

suficientes sobre as ferramentas que seriam utilizadas no trabalho. A pesquisa

realizada parte do estudo da modelagem de sistemas de software orientados a

objetos para fornecer uma análise de ferramentas CASE que auxiliam nesse

processo.

Este trabalho pode ser definido como uma pesquisa descritiva, pois é fundamentado

na observação, apontamento e análise dos dados coletados por meio de

levantamento bibliográfico e testes realizados em ferramentas de software.

Quanto aos procedimentos, a pesquisa pode ser qualificada como um estudo de

caso, pois duas ferramentas de modelagem de software foram escolhidas para

realização de testes.

Estrutura do trabalho: Este trabalho encontra-se estruturado da seguinte forma:

Capítulo 2 – Modelagem de Sistemas de Software - Aborda aspectos relacionados à

teoria estudada para o desenvolvimento do trabalho.

Capítulo 3 – A Linguagem de Modelagem Unificada – UML - Descreve a linguagem

de modelagem unificada e fornece uma visão geral de seus diagramas.

Capítulo 4 – Ferramentas de Modelagem de Software – Faz uma explanação sobre

ferramentas CASE e são apresentadas as ferramentas de modelagem ASTAH UML

E UMBRELLO UML MODELLER.

Capítulo 5 – Análise Comparativa - Apresenta a análise comparativa realizada entre

as ferramentas de modelagem de software apresentadas no capítulo 4 e os

resultados obtidos.

17

Capítulo 6 – Conclusão - Apresenta as conclusões obtidas ao término do

desenvolvimento desse trabalho, bem como possíveis propostas para trabalhos

futuros.

18

2 MODELAGEM DE SISTEMAS DE SOFTWARE

Para o desenvolvimento de qualquer sistema de software é preciso que se faça um

planejamento inicial. Essa necessidade nos leva ao conceito de modelo, que pode

ser visto como a representação idealizada de um software a ser construído e

normalmente revelam apenas as características essenciais de um sistema. De

acordo com Blaha e Rumbaugh (2008) um modelo é uma abstração de algo com a

finalidade de entendê-lo antes de construí-lo.

Com a utilização de modelos os custos do desenvolvimento podem ser reduzidos, já

que é menos custoso identificar erros e fazer correções ainda nos modelos de

sistema. O gerenciamento da complexidade pode ser simplificado, pois a partir dos

modelos os desenvolvedores podem fazer estudos e prever comportamentos do

sistema. Além de facilitar também a comunicação entre as pessoas envolvidas na

construção do sistema (ANDRADE, 2007).

Os modelos de software são construídos para uma visualização do sistema a ser

desenvolvido, possibilitando uma melhor compreensão e entendimento e segundo

Blaha e Rumbaugh (2008) servem para entender um problema antes de

implementá-lo. Podem ser utilizados também para especificação e documentação do

software. Quando o modelo é utilizado para especificação fornece uma descrição

precisa do que será desenvolvido pelos programadores. A documentação obtida

através de modelos precisa refletir o que foi desenvolvido e servirá como base para

as atividades de manutenção.

De acordo com Booch, Rumbaugh e Jacobson (2006), alguns princípios devem ser

seguidos:

A escolha do modelo a ser construído tem grande influência em como um

problema é atacado e como uma solução é apresentada.

Todo modelo pode ser expresso em vários níveis de exatidão.

Os melhores modelos estão atrelados à realidade.

19

Nenhum modelo único é suficiente. Todo sistema complexo possui uma melhor

abordagem através de um conjunto de modelos independentes.

De acordo com Bezerra (2007), a modelagem de sistemas de software consiste na

utilização de notações gráficas e textuais para construção de modelos para

representar as partes essenciais de um sistema, considerando varias perspectivas.

Já que, embora um diagrama consiga expressar diversas informações, ainda é

preciso adicionar informações na forma de texto para explicar ou definir certas

partes do diagrama. Ele também está de acordo com o paradigma de orientação a

objetos, que pode diminuir a diferença semântica entre realidade que será modelada

e os modelos a serem construídos.

De acordo com Alan Kay, um dos pais do paradigma da orientação a objetos, esse

paradigma figura um sistema de software como uma coleção de agentes interligados

chamados objetos. Cada objeto é responsável por realizar tarefas específicas. E a

interação entre diversos objetos é responsável por realizar uma tarefa

computacional.

Foi no final da década de 1990 que este paradigma atingiu sua maturidade. Nessa

década surgiram varias propostas de modelagem utilizando o paradigma da

orientação a objetos. E por isso, percebeu-se a necessidade de uma notação de

modelagem que pudesse se tornar um padrão para a modelagem de sistemas,

sendo aceita e amplamente utilizada (BEZERRA, 2007).

Em 1996 surgiu então a UML (Unified Modeling Language), que unificou notações e

diagramas já existentes em diferentes técnicas de modelagem e foi aprovada para

ser um padrão da indústria de software (ANDRADE, 2007).

20

3 A LINGUAGEM DE MODELAGEM UNIFICADA – UML

UML é a abreviação de Linguagem de Modelagem Unificada (Unified Modeling

Language), uma linguagem visual para modelar sistemas que utilizam os conceitos

de orientação a objetos (LARMAN, 2007).

Segundo Bezerra (2007), a construção da UML teve muitos contribuintes, mas os

principais autores do processo foram Grady Booch, James Rumbaugh e Ivar

Jacobson. No processo de definição da UML, procurou-se o melhor das

características das notações preexistentes, principalmente das técnicas Booch

Method, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software

Engineering).

A UML define uma notação que é uma união de diversas notações preexistentes,

removendo alguns elementos e adicionando outros com o objetivo de transformá-la

numa notação mais expressiva. A UML foi aprovada pelo OMG (Object Management

Group) em 1997 e desde então, tem tido grande aceitação pela comunidade de

desenvolvedores de sistemas (ANDRADE, 2007).

A UML é uma linguagem visual que define elementos gráficos para modelar

sistemas orientados a objetos. Através destes elementos pode se construir

diagramas que representem diversas perspectivas de um sistema. A extensibilidade

da sintaxe e da semântica dos elementos da UML permite que ela seja adaptada às

características específicas de cada projeto (BEZERRA, 2007).

Guedes (2007) afirma que a UML é uma linguagem de modelagem, e não uma

linguagem de programação, e que o seu objetivo é ajudar os engenheiros de

software a estabelecer as características do software, dentre as quais estão seus

requisitos, sua estrutura lógica, seu comportamento e a dinâmica de seus

processos. E, cumpre destacar que a UML também não é um processo de

desenvolvimento de software e não está ligada a nenhum de forma exclusiva, se

21

tornando totalmente independente, podendo ser utilizada por muitos processos de

desenvolvimento diferentes.

Segundo Ramos (2006), a UML é uma linguagem que serve para especificar,

construir, visualizar e documentar os artefatos de sistemas de software. Além disso,

é independente de linguagens de programação, de ferramentas CASE e dos

processos de desenvolvimento. Assim, permite adotar diferentes metodologias

mantendo a utilização de uma única linguagem de modelagem.

Durante o desenvolvimento de um sistema de software complexo, é necessário que

seus desenvolvedores possam analisar e estudar esse sistema a partir de diferentes

perspectivas. Os autores da UML sugerem que um sistema seja descrito em cinco

visões interdependentes, cada visão enfatizando aspectos diferentes desse sistema

(BEZZERA, 2007). A figura 1 mostra essas cinco visões ou perspectivas de um

sistema de software.

A visão do caso de uso compreende os casos de uso que descrevem o

comportamento do sistema do modo como é visto pelos seus usuários finais,

analistas e equipe de teste (ANDRADE, 2007). Essa visão não especifica a

organização do sistema de um software, mas sim descreve as funcionalidades que o

sistema irá fornecer. Com a UML, os aspectos estáticos dessa visão são descritos

em diagramas de caso de uso e os aspectos dinâmicos em diagramas de interação,

Figura 1: Visões de um sistema de software. Fonte: Bezerra (2007).

22

diagramas de estados e diagramas de atividades. Essa visão direciona o

desenvolvimento das outras visões do sistema.

A visão de projeto descreve como será fornecida a funcionalidade de um sistema.

Mostra a estrutura estática e as dinâmicas que ocorrem na aplicação. Essa

perspectiva proporciona um suporte para os requisitos funcionais do sistema, ou

seja, os serviços que o sistema irá fornecer aos seus usuários finais. Utilizando a

UML, os aspectos estáticos dessa visão são capturados em diagramas de classes e

de objetos, enquanto os aspectos dinâmicos são capturados em diagramas de

interações, de estados e diagramas de atividades (BOOCH; RUMBAUGH;

JACOBSON, 2006).

A visão de implementação mostra os módulos do sistema e suas dependências.

Essa visão envolve o gerenciamento da configuração das versões do sistema,

composta por componentes e arquivos de alguma maneira independentes, que

podem ser reunidos de diferentes formas para a produção de um sistema executável

(ANDRADE, 2007). Com a UML, os aspectos estáticos dessa visão são mostrados

em diagramas de interações, de estados e de atividades.

A visão de processo dá ênfase às características de concorrência, sincronização e

desempenho do sistema. Abrange as threads e os processos que formam os

mecanismos de concorrência e de sincronização do sistema. Os aspectos estáticos

e dinâmicos dessa visão são descritos pelos mesmos tipos de diagramas da visão

de projeto, mas o foco é voltado para as classes ativas que representam threads e

processos (BOOCH; RUMBAUGH; JACOBSON, 2006).

De acordo com Andrade (2007) a visão de implantação especifica a distribuição

física do sistema e os recursos que o sistema ira utilizar. Descreve toda a estrutura

onde o sistema é instalado. Essa visão direciona principalmente a distribuição, o

fornecimento e a instalação das partes que constituem o sistema físico. Com a UML,

os aspectos estáticos dessa visão são descritos em diagramas de implantação e os

aspectos dinâmicos são capturados em diagrama de interações, de estados e de

atividades.

23

Cada uma dessas cinco visões pode ser considerada isoladamente, permitindo que

diferentes participantes dirijam seu foco para os aspectos da arquitetura do sistema

que mais interessam. Dependendo das características e da complexidade do

sistema, nem todas as visões precisam ser desenvolvidas, além disso, podem ser

ordenadas por grau de relevância (ANDRADE, 2007).

3.1 DIAGRAMAS DA UML

Diagramas são ferramentas gráficas utilizadas para permitir a visualização do

sistema sob várias perspectivas. A UML utiliza a notação dos seus diversos

diagramas para descrever os vários aspectos da modelagem (ANDRADE, 2007).

Com a UML é possível modelar todas as visões de um sistema através dos diversos

diagramas fornecidos por ela. Cada representação gráfica tem seu significado e

também uma forma de ser utilizada (BEZERRA, 2007).

Melo (2011) afirma que na UML 2.0 existem treze tipos de diagramas, que são

classificados em diagramas estruturais e diagramas comportamentais. O primeiro

mostra as características imutáveis do sistema. Enquanto o segundo mostra as

reações do sistema a requisições e sua evolução no tempo.

O objetivo de existir esse número de diagramas é fornecer múltiplas visões do

sistema a ser modelado, permitindo analisar e modelar sob diversos aspectos, e

dessa forma tentar alcançar a completitude da modelagem, permitindo que cada

diagrama complemente os outros. Cada diagrama analisa o sistema, ou parte dele,

sob uma determinada óptica (GUEDES, 2011).

Cada tipo de diagrama da UML captura uma perspectiva diferente do sistema e um

determinado elemento pode existir em múltiplos diagramas, apesar de haver apenas

uma definição daquele elemento no modelo em questão. De acordo com Guedes

24

(2011) a utilização de diversos diagramas permite que falhas sejam descobertas,

diminuindo assim a probabilidade da ocorrência de erros futuros. A figura 2 mostra

todos os diagramas da UML agrupados de acordo com sua classificação.

Os diagramas estruturais tratam o aspecto estrutural do ponto de vista do sistema e

das classes. São para visualizar, especificar, construir e documentar os aspectos

estáticos de um sistema, ou seja, a representação de seu esqueleto e estruturas

estáveis (OMG, 2006).

De acordo com Andrade (2007), a função dos diagramas estruturais é mostrar as

características do sistema que não mudam ao longo do tempo. Os aspectos

estáticos de um sistema de software envolvem a existência e a colocação de itens

como classes, interfaces, colaborações, componentes. A figura 3 a seguir, ilustra os

diagramas comportamentais da UML.

Figura 2: Os diagramas da UML. Fonte: Bezerra (2007). Nota: Adaptado pelo autor.

25

Os diagramas de comportamento têm o objetivo de descrever o sistema

computacional modelado quando em execução, isto é, uma modelagem dinâmica do

sistema. São usados para visualizar, especificar, construir e documentar os aspectos

dinâmicos de um sistema que é a representação das partes que são modificadas ao

longo da execução, como por exemplo, o fluxo de mensagens ao longo do tempo e a

movimentação física de componentes em uma rede (OMG, 2006).

Esses diagramas estão ilustrados na figura 4 a seguir.

Figura 3: Diagramas Estruturais da UML Fonte: Bezerra (2007). Nota: Adaptado pelo autor.

Figura 4: Diagramas Comportamentais da UML. Fonte: Bezerra (2007). Nota: Adaptado pelo autor.

26

Nas próximas seções serão apresentadas as definições gerais de cada um dos

diagramas apresentados na figura 2.

3.1.1 Diagrama de Caso de Uso

De acordo com Bezerra (2007) um caso de uso representa uma determinada

funcionalidade de um sistema conforme percebida externamente. Representa

também os agentes externos que interagem com o sistema. Porém, não revela a

estrutura e o comportamento interno do sistema. O diagrama fornece uma visão

estática e externa do funcionamento do sistema, seria como se um pessoa o

observasse sob uma perspectiva de fora, como se estivesse assistindo seu

funcionamento sem participar dele, apenas identificando atores, relacionamentos,

tarefas, generalizações e associações entre os elementos do sistema.

O diagrama de caso de uso descreve a visão externa do sistema 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

funcionamento interno. 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

(ANDRADE, 2007).

Esse 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 necessária. A descrição do conteúdo de um caso de uso é feita

textualmente e torna-se parte da documentação. Tal documento deve definir os

requisitos solicitados pelo cliente e descrever suas funcionalidades. Através de uma

descrição detalhada é possível tomar conhecimento dos envolvidos no caso de uso,

quais os passos do fluxo principal, as exceções que podem ocorrer e outros casos

de uso incluídos no fluxo (HAMILTON; MILES, 2006).

27

Guedes (2001) afirma que o diagrama de casos de uso é o diagrama mais geral e

informal da UML, sendo utilizado normalmente nas fases de levantamento e análise

de requisitos do sistema e podendo servir de base para outros diagramas.

3.1.2 Diagrama de Classes

O diagrama de classes é possivelmente o diagrama mais utilizado e um dos mais

importantes da UML. Serve de apoio para a maioria dos demais diagramas

(GUEDES, 2011).

É um diagrama que mostra um conjunto de classes, interfaces, e colaborações e

seus relacionamentos. O diagrama de classes é utilizado na construção do modelo

de classes desde o nível de análise até o nível de especificação. Segundo Bezerra

(2007), esse é o diagrama da UML mais rico em termos de notação.

Um diagrama de classes ilustra as especificações para as classes de software e de

interface de uma aplicação. Este diagrama mostra definições para entidades de

software, e não conceitos do mundo real (LARMAN, 2007).

Produz a descrição mais próxima da estrutura do código de um programa, ou seja,

mostra o conjunto de classes com seus atributos e métodos e os relacionamentos

entre classes. Classes e relacionamentos constituem os elementos básicos do

diagrama de classes (SILVA, 2007).

3.1.3 Diagrama de Objetos

De acordo com Guedes (2011), o diagrama de objetos está amplamente associado

28

ao diagrama de classes. Podendo ser visto como uma instância de tal diagrama,

assim como os objetos são instâncias de classes. Tal qual o diagrama de classe, o

diagrama de objeto são estruturas estáticas.

Bezerra (2007) diz que, um diagrama de objetos exibe uma fotografia do sistema em

um determinado momento, exibindo ligações formadas entre objetos conforme

interação entre eles e de acordo com valores de atributos.

3.1.4 Diagrama de Pacotes

Em UML, um pacote é o mecanismo de agrupamento. É usualmente utilizado para

agrupar classes em unidades de nível mais alto, mas pode também ser aplicado a

qualquer elemento do modelo (BOOCH; RUMBAUGH; JACOBSON, 2006).

O diagrama de pacotes é um diagrama estrutural e seu objetivo é representar os

subsistemas englobados por um sistema de forma a determinar as partes que o

compõem (GUEDES, 2011). O termo diagrama de pacotes é utilizado para

descrever um diagrama que mostra pacotes de classes e as dependências entre

eles.

Este diagrama oferece uma visão do sistema como um todo, sob tal perspectiva que

se possa observar todos os subsistemas que o compõem. Tem como proposta

apresentar a modelagem estrutural do sistema em divisões lógicas e suas interações

em alto nível (SILVA, 2007).

29

3.1.5 Diagrama de Componentes

Booch, Rumbaugh e Jacobson (2006) narram que um diagrama de componentes

mostra a organização e as dependências entre os vários componentes de um

sistema. Um componente representa um módulo físico do código. As dependências

entre os componentes mostram como mudanças em um componente podem causar

mudanças em outros componentes.

Este diagrama fornece uma visão modelada entre os módulos do próprio código

fonte, bibliotecas e formulários, arquivos de banco de dados e demais arquivos de

sistema. Além de determinar como cada um desses elementos estará disposto na

organização do sistema e como interagem entre si (GUEDES, 2011).

3.1.6 Diagrama de Implantação

O diagrama de implantação representa a configuração e a arquitetura do sistema em

que estarão ligados os respectivos componentes. Booch, Rumbaugh e Jacobson

(2006) dizem que este diagrama exibe a configuração dos nós de processamento

em tempo de execução e os componentes que neles existem. Neste diagrama

também pode ser representada toda a estrutura de hardware e requisitos mínimos

onde o sistema será executado.

Ainda na visão de Booch, Rumbaugh e Jacobson (2006) este diagrama modela a

visão estática da implantação de um sistema. Dado um determinado sistema de

software, o diagrama de implantação vai expressar o conjunto de hardware e toda a

tecnologia física relacionada com a instalação do sistema. Os diagramas de

implantação também podem ser usados para especificar os módulos do sistema que

deverão ser instalados no cliente.

30

3.1.7 Diagrama de Máquina de Estados

Os diagramas de máquina de estados, ou diagrama de estados como era chamado

em versões anteriores da UML, registram as mudanças sofridas por um objeto em

um contexto de um determinado processo. Este diagrama é utilizado para a

modelagem dos aspectos dinâmicos de um sistema (BOOCH; RUMBAUGH;

JACOBSON, 2006).

É uma técnica utilizada para descrever o comportamento de um sistema. Um estado

é uma situação na vida de um objeto durante a qual ele satisfaz alguma condição ou

realiza alguma atividade. Este diagrama descreve todos os estados possíveis em

que um objeto pode estar e como o estado do objeto muda como resultado de

eventos que o atingem (BEZERRA, 2007).

Guedes (2011) afirma que o diagrama de máquina de estados demonstra o

comportamento de um elemento por meio de um conjunto finito de transições de

estado, ou seja, uma máquina de estados. Podendo ser utilizado para expressar o

comportamento de uma parte do sistema, ou para expressar o protocolo de uso de

parte de um sistema.

3.1.8 Diagrama de Atividades

O diagrama de atividades mostra a execução das ações e as transições que são

ativadas pela conclusão de outras ações ou atividades. Uma atividade pode ser

descrita como um conjunto de ações e um conjunto de atividades (SILVA, 2007).

De acordo com Guedes (2011) o diagrama de atividade descreve os passos que

serão percorridos para a conclusão de uma atividade específica, podendo esta ser

31

representada por um método, um algoritmo, ou por um processo completo. Este

diagrama concentra-se na representação do fluxo de controle de uma atividade.

Um diagrama de atividades pode ser visto como um tipo especial de diagrama de

estados, onde são representados os estados de uma atividade, em vez de um

objeto. Ao contrário dos diagramas de estados, que são orientados a eventos, o

diagrama de atividade é orientado a fluxos de controle (BEZERRA, 2007).

3.1.9 Diagrama de Seqüência

Consiste em um diagrama que tem o objetivo de mostrar como as mensagens entre

os objetos são trocadas no decorrer do tempo para a realização de uma operação.

De acordo com Larman (2007), um diagrama de seqüência é uma figura que mostra

os eventos gerados pelos agentes externos, sua ordem e os eventos entre os

sistemas, para um cenário especifico de um caso de uso.

Guedes (2011) diz que o diagrama de seqüência dá ênfase à ordenação temporal

em que as mensagens são trocadas entre os objetos de um sistema. Entende-se por

mensagens os serviços solicitados de um objeto a outro, e as respostas

desenvolvidas para as solicitações. Permite também a representação de mensagens

concorrentes assíncronas (mensagens que são processadas em paralelo sem um

tempo definido para a sua realização).

3.1.10 Diagrama de Colaboração

Guedes (2011) afirma que o diagrama de colaboração era chamado assim até a

32

versão 1.5 da UML, tendo seu nome modificado para diagrama de comunicação a

partir da versão 2.0.

O diagrama de colaboração também tem o objetivo de mostrar as mensagens

trocadas entre objetos, a diferença entre o diagrama de seqüência está na ênfase

dada as interações entre esses objetos. Enquanto no diagrama de seqüência a

ênfase está na ordem temporal das mensagens, o diagrama de colaboração enfatiza

os relacionamentos que há entre os objetos que participam do cenário representado

(BOOCH; RUMBAUGH; JACOBSON, 2006).

O diagrama de colaboração dá ênfase à ordenação estrutural em que as mensagens

são trocadas entre os objetos de um sistema. Segundo Bezerra (2007), os

diagramas de seqüência e colaboração são equivalentes entre si. É possível

transformar um diagrama de colaboração em um diagrama de seqüência equivalente

e vice-versa.

E Guedes (2011) completa que este diagrama está amplamente associado ao

diagrama de seqüência, um complementando o outro.

3.1.11 Diagrama de Temporização

O diagrama de temporização foi incluído a partir da UML 2.0 e apresenta o

comportamento dos objetos e sua interação em uma escala de tempo, focalizando

as condições que mudam no decorrer desse período. Descreve a interação e a

evolução de estados, e consiste em monitorar as restrições temporais do sistema

(MELO, 2011).

Para Guedes (2011) o diagrama de temporização ou de tempo apresenta a

mudança no estado ou condição de uma instância de uma classe ou seu papel

33

durante um período. Utilizado para mostrar a mudança no estado de um objeto no

tempo em resposta a eventos externos.

3.1.12 Diagrama de Visão Geral da Interação

Este diagrama é uma combinação de diagrama de atividade e diagrama de

seqüência. De acordo com Melo (2011) e Guedes (2011) o diagrama de visão geral

é uma variação do diagrama de atividades, que ilustra o fluxo de controle geral do

sistema ou processo de negócio. Este diagrama permite capturar de uma

perspectiva estática os fluxos de interação entre os componentes do sistema, de

forma geral, do funcionamento global do sistema, de forma similar ao modelo

expresso pelo diagrama de atividades, que mostra o fluxo de um subsistema, ou de

uma dada funcionalidade em questão.

3.1.13 Diagrama de Estrutura Composta

Este diagrama mostra a estrutura interna dos elementos da modelagem estrutural,

com o objetivo de se obter uma visão detalhada de sua estrutura. É um dos novos

diagramas propostos na UML 2.0, voltado a detalhar elementos de modelagem

estrutural, como classes, pacotes e componentes, descrevendo sua estrutura

interna. Na visão de Guedes (2011), este diagrama pode ser utilizado para

descrever uma colaboração em que um conjunto de instâncias colaboram entre si

para realizar uma tarefa.

Para Melo (2011) este diagrama visa mostrar a composição de estruturas

complexas ou projetos de componentes, simplificando o relacionamento de

composição. Deste modo um diagrama de classes será exibido dentro de uma

34

classe, contendo a classe-todo com suas classes-partes ligadas através de

conectores.

35

4 FERRAMENTAS DE MODELAGEM DE SOFTWARE

Ferramenta CASE (Computer-Aided Software Engineering ou Engenharia de

Software Auxiliada por Computador) é o nome dado ao software utilizado para

apoiar as atividades de processo de software, como a engenharia de requisitos, o

projeto, o desenvolvimento de programas e os testes (GUEDES, 2011). Estas

ferramentas armazenam as informações de uma forma própria, como textos,

imagens, gráficos, possibilitando a integração com o usuário.

Segundo Silva e Videira (2008) uma ferramenta CASE não é mais do que um

produto informático destinado a suportar uma ou mais atividades de engenharia de

software, relacionadas com uma ou mais metodologias de desenvolvimento.

Sommerville (2011), diz que são sistemas de software que têm a intenção de

fornecer apoio automatizado para atividades do processo de desenvolvimento de um

software.

Embora não exista um padrão definido para categorização das ferramentas CASE,

Manhani e Schimiguel (2010) afirmam que elas podem ser divididas em 3 tipos:

Upper CASE - ferramentas especializadas na fase de concepção do software, ou

seja, ferramentas de análise e especificação e/ou modelação de requisitos.

Lower CASE - utilizadas na fase de implementação, ferramentas de desenho

técnico, de edição e compilação de código e de testes.

I-CASES ou Integrated Cases - simultaneamente Lower e Upper CASE,

funcionando integradamente, são ferramentas que cobrem todo o ciclo de vida do

software, desde os requisitos do sistema até o controle final da qualidade.

A introdução dos conceitos da orientação a objetos veio de alguma forma

revolucionar o mercado das ferramentas CASE, quer porque uma parte das

ferramentas tradicionais teve que se "reinventar" e incorporar novas técnicas de

modelagem integradas com as abordagens estruturadas já existentes ou porque

36

surgiram no mercado novas ferramentas que suportam exclusivamente este

paradigma (SILVA; VIDEIRA, 2008). Neste contexto, assume particular destaque a

UML, que vem assumindo um papel crescente ao nível das notações de

modelagem. Hoje em dia, praticamente todas as ferramentas que estão no mercado

de uma forma mais significativa incorporam algum suporte para a UML.

A maioria das ferramentas CASE especializa-se, sobretudo numa tarefa específica

do processo de desenvolvimento de software. Algumas se concentram na

disponibilização de funcionalidades relevantes para a fase de concepção como a

elaboração de diversos diagramas, enquanto outras estão particularmente

direcionadas para a fase de implementação, desenvolvimento visual, geração de

código ou apoio à realização de testes (SILVA; VIDEIRA, 2008).

De acordo com Martins (2010), é na fase de projeto do desenvolvimento de um

sistema que ocorre a descrição precisa de como deverá ser o software e seu

funcionamento. 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 padroniza diagramas, permitindo uma melhor visualizaçã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

(MARTINS, 2010).

Neste contexto, este trabalho apresentará as ferramentas Astah* e Umbrello UML

Modeller, que são ferramentas CASE de apoio à criação de diagramas para projetos

de software, como diagramas de classe, de casos de uso, entre outros.

37

4.1 ASTAH*

Astah* é uma ferramenta CASE que visa auxiliar o processo de modelagem de um

sistema, é um editor de diagramas UML que incorpora outros recursos de acordo

com a distribuição utilizada. É sucessora do JUDE, ferramenta que foi

descontinuada em 2010. E assim como o Jude, esta ferramenta possui versões

Community e Professional.

Com o Astah* é possível realizar uma modelagem de dados complexa. É uma IDE

criada com Java e de uso fácil, apresenta os dados para o usuário de forma clara e

ainda possuí a vantagem de seu layout ser bem intuitivo. É possível trabalhar com

vários diagramas e depois de feita toda a modelagem exportar tudo para um arquivo

Java, HTML ou exportar cada diagrama em forma de imagem. O Astah* é utilizado

para fazer modelos UML dos artefatos desenvolvidos no decorrer do

desenvolvimento do projeto.

Essa ferramenta possui uma versão gratuita, a ASTAH Community, e está disponível

comercialmente em três versões distintas, ASTAH UML, ASTAH Professional e

ASTAH SHARE, com suas determinadas funções e especialidades definidas cujas

diferenças se situam ao nível das funcionalidades disponibilizadas. Existe ainda a

distribuição Astah UML Pad que é uma versão gratuita para ser utilizada em iPad’s.

Para a realização deste trabalho foi utilizada a versão 6.5.1 da distribuição Astah

UML, pois esta é uma versão específica para trabalhar com os diagramas da UML. A

figura 5 exibe a tela inicial da ferramenta Astah UML.

38

4.2 UMBRELLO UML MODELLER

O Umbrello UML Modeller é uma ferramenta de modelagem UML, e como tal seu

principal propósito é auxiliá-lo na análise e desenho de seus sistemas.

Especialmente durante as fases de análise e desenho, essa ferramenta auxilia a

obter um produto de alta qualidade.

Auxilia o processo de desenvolvimento de software através do uso do padrão

industrial da Linguagem de Modelagem Unificada (UML), permite criar diagramas

para o desenvolvimento e documentação de sistemas. Apesar de não implementar a

UML 2.0, essa ferramenta possui um excelente manual que além de auxiliar na sua

utilização, ensina muito sobre a UML.

Figura 5: Tela inicial da ferramenta Astah UML. Fonte: Ferramenta Astah UML (2012).

39

Faz parte do projeto KDE e seu desenvolvimento foi iniciado por Paul Hensgen

como um de seus projetos Universitários. O nome original do aplicativo era

Modelador UML. Paul fez todo o desenvolvimento até o final de 2001 quando o

programa atingiu sua versão 1.0. Essa versão já oferecia muitas funcionalidades,

mas após o projeto ter sido revisado pela Universidade, outros desenvolvedores

puderam juntar-se e iniciaram fazendo contribuições importantes para o Modelador

UML.

Paul retirou-se da equipe de desenvolvimento em 2002, mas como um Software

Livre e de Código Aberto, o programa continua a melhorar e evoluir, e está sendo

mantido por um grupo de desenvolvedores de diferentes partes do mundo. Em

Setembro de 2002, o projeto mudou seu nome de Modelador UML, para Umbrello

UML Modeller.

O desenvolvimento do Umbrello UML Modeller assim como as discussões sobre

para onde o programa deve progredir nas versões futuras é aberto e ocorre na

Internet.

Para a análise feita neste trabalho foi utilizada a versão 2.6.5 do Umbrello UML

Modeller. Na figura 6 é possível visualizar a tela inicial desta ferramenta.

40

Figura 6: Tela inicial da ferramenta Umbrello UML Modeller. Fonte: Ferramenta Umbrello UML Modeller (2012).

41

5 ANÁLISE COMPARATIVA

Apresentam-se neste capítulo, os critérios selecionados para comparação, as

comparações realizadas e os resultados obtidos.

5.1 CRITÉRIOS PARA COMPARAÇÃO

Para comparar as ferramentas analisadas neste trabalho foi preciso definir quais

critérios seriam utilizados. A definição dos critérios foi feita tendo por base uma

pesquisa bibliográfica sobre o tema.

Os critérios selecionados para análise foram:

1. Documentação

2. Licença

3. Plataformas suportadas

4. Idiomas suportados

5. Especificação da UML suportada

6. Diagramas da UML suportados

7. Exportação para arquivos gráficos

8. Exportação para código fonte

9. Engenharia Reversa

10. Exportação de dados para o padrão XMI

O quadro 1 fornece a descrição para cada um dos critérios utilizados neste

trabalho.

42

CRITÉRIOS

NOME DESCRIÇÃO

Documentação Pesquisa feita nos sites das ferramentas sobre a documentação existente.

Licença Verificar quais são as licenças de uso de software utilizadas pelas ferramentas.

Plataformas suportadas (Portabilidade) Verificar em quais plataformas as ferramentas podem ser utilizadas.

Idiomas suportados Verificação de quais idiomas cada ferramenta oferece.

Especificação da UML suportada Identificar qual a versão da UML que as ferramentas escolhidas dão suporte.

Diagramas da UML suportados Verificar quais são os diagramas da UML suportados por cada ferramenta.

Exportação para arquivos gráficos Verificar se a ferramenta oferece exportação dos diagramas para arquivos de imagem.

Exportação para código fonte Verificar se o usuário poderá gerar código fonte para a aplicação que está sendo desenvolvida.

Engenharia Reversa Verificação se a ferramenta oferece suporte à engenharia reversa.

Exportação de dados para o padrão XMI Verificar se a ferramenta oferece exportação de dados para o padrão XMI.

Quadro 1: Descrição dos critérios utilizados para análise. Fonte: Elaboração Própria (2012).

A partir das respostas aos critérios listados no quadro 1 é possível contrapor as

soluções propostas pelas ferramentas a fim de se determinar qual delas é a melhor

opção para ser utilizada observando cada aspecto analisado.

5.2 APLICAÇÃO DOS CRITÉRIOS

A análise comparativa das ferramentas para modelagem de software utilizando UML,

Astah UML e Umbrello UML Modeller, foi feita com base nos critérios de comparação

descritos no quadro 1 no tópico anterior.

43

Neste tópico serão relatadas as comparações das ferramentas de acordo com os

critérios estabelecidos.

5.2.1 Documentação

O objetivo deste critério é verificar se existe uma preocupação quanto à

documentação do software e como a mesma é disponibilizada.

A documentação de um software tem o objetivo de divulgar e deixar claro o que faz

o sistema, como utilizá-lo, as suas vantagens, operação e requisitos para

funcionamento além de orientar o usuário na operação do software.

A qualidade da documentação pode ser baseada em três características

fundamentais: completeza, precisão e clareza. A completeza garante que nenhuma

informação que dificulte a compreensão do usuário estará faltando. Para uma

documentação precisa, é necessário que esta seja revisada por no mínimo duas

pessoas. E o seu conteúdo deve ser de fácil identificação, localização e

organização. Além de ser completo e conciso, garantindo sua clareza.

Pode-se afirmar que uma documentação terá qualidade quando estiver adequada ao

usuário que avalia e relata sua satisfação.

As duas ferramentas analisadas possuem boa documentação disponível no site. O

Astah UML possui um fórum ativo no site, no entanto sua documentação e tutoriais

só estão disponíveis em inglês. Podem ser encontrados no site

http://astah.net/tutorials.

O manual de uso do Umbrello UML Modeller é bastante completo e oferecendo

além da explicação de utilização da ferramenta, uma visão geral da UML. Está

disponível no site http://docs.kde.org/stable/en/kdesdk/umbrello/index.html.

44

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Documentação Possui boa documentação, porém em inglês.

Possui excelente documentação.

Quadro 2: Comparação de acordo com a documentação. Fonte: Dados da Pesquisa (2012).

5.2.2 Licença

Uma licença de software é uma definição de ações autorizadas ou proibidas na

esfera do direito de autor de um programador de software de computador

concedidas ou impostas aos usuários deste software.

A ferramenta Astah* possui diversas distribuições, uma versão gratuita e outras

distribuições que são pagas. Para o desenvolvimento deste trabalho foi utilizada a

distribuição Astah UML, que é uma versão paga, cuja licença por um ano custa

$50,00 por computador pessoal.

A ferramenta Umbrello UML Modeller faz parte do projeto KDE e é liberada sob a

licença GPL - General Public Licence, que é a designação da licença para software

livre.

Em termos gerais, a GPL baseia-se em quatro liberdades:

1. A liberdade de executar o programa para qualquer propósito.

2. A liberdade de estudar como o programa funciona e adaptá-lo para as suas

necessidades.

3. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu

próximo.

4. A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de

modo que toda a comunidade se beneficie deles.

45

Com a garantia destas liberdades, a GPL permite que os programas sejam

distribuídos e reaproveitados, mantendo, porém, os direitos do autor por forma a não

permitir que essa informação seja usada de uma maneira que limite as liberdades

originais. A licença não permite, por exemplo, que o código seja apoderado por outra

pessoa, ou que sejam impostos sobre ele restrições que impeçam que seja

distribuído da mesma maneira que foi adquirido.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Licença 1 ano / 1 PC = $50,00 GNU General Public Licence

Quadro 3: Comparação de acordo com a licença. Fonte: Dados da Pesquisa (2012).

5.2.3 Plataformas suportadas (Portabilidade)

Uma plataforma é o padrão de um processo operacional ou de um computador. É

uma expressão utilizada para denominar a tecnologia empregada em determinada

infra-estrutura de Tecnologia da Informação, garantindo facilidade de integração dos

diversos elementos dessa infra-estrutura. A portabilidade de um programa de

computador é a sua capacidade de ser compilado ou executado em diferentes

arquiteturas (seja de hardware ou de software).

O objetivo deste critério é identificar para quais sistemas operacionais as

ferramentas estão disponíveis.

A ferramenta Astah UML pode ser utilizada nos sistemas operacionais Windows,

Mac OS X e Linux. Já a ferramenta Umbrello UML Modeller está disponível para as

plataformas GNU/Linux, FreeBSD e Solaris.

46

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Plataformas suportadas (Portabilidade)

Windows, Mac OS X e Linux GNU/Linux, FreeBSD e Solaris

Quadro 4: Comparação de acordo com as plataformas suportadas. Fonte: Dados da Pesquisa (2012).

5.2.4 Idiomas suportados

A ferramenta Astah UML suporta dois idiomas: inglês e japonês. E a Umbrello UML

Modeller está disponível para os idiomas: Chinês (Tradicional), Inglês, Português

(Brasil e Portugal) e Espanhol.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Idiomas suportados Inglês e japonês Chinês (Tradicional), Inglês, Português (Brasil e Portugal) e Espanhol.

Quadro 5: Comparação de acordo com os idiomas suportados. Fonte: Dados da Pesquisa (2012).

5.2.5 Especificação da UML suportada

O Astah UML suporta todas as funcionalidades da UML 1.4 e muitos dos recursos

da UML 2.0. As notações podem ser alternadas entre UML 1.4 e 2.0 nas

configurações da ferramenta.

Umbrello UML Modeller 2.6.5 atende a especificação da UML 1.* e não implementa

a UML 2.0.

47

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Especificação da UML suportada

UML 2.0 UML 1.*

Quadro 6: Comparação de acordo com a versão da UML. Fonte: Dados da Pesquisa (2012).

5.2.6 Diagramas da UML suportados

Este critério tem o objetivo de verificar em cada ferramenta quais diagramas da UML

estão disponíveis.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Diagramas da UML suportados

Diagrama de Classe Diagrama de Caso de Uso Diagrama de Seqüência Diagrama de Estado Diagrama de Atividade Diagrama de Componente Diagrama de implantação Diagrama de Estrutura

Composta Diagrama de Comunicação /

Colaboração Diagrama de Pacotes Diagrama de Objetos

Diagrama de Classe

Diagrama de Caso de Uso Diagrama de Seqüência Diagrama de Estado Diagrama de Atividade Diagrama de Componente Diagrama de Colaboração Diagrama de Distribuição

Quadro 7: Comparação de acordo com os diagramas da UML. Fonte: Dados da Pesquisa (2012).

5.2.7 Exportação para arquivos gráficos

Com o Astah UML é possível exportar cada diagrama em forma de imagem. Os

seguintes arquivos gráficos estão disponíveis: JPEG, PNG, EMF e SVG.

48

O Umbrello UML Modeller permite copiar os objetos de um diagrama como figuras

de modo que seja possível inseri-las em outro tipo de documento. Permite também

exportar um diagrama completo como uma imagem. As extensões disponíveis são:

EPS, JPEG, PNG, PPM, SVG, XBM e XPM.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Exportação para arquivos gráficos

JPEG, PNG, EMF e SVG. EPS, JPEG, PNG, PPM, SVG, XBM e XPM.

Quadro 8: Comparação de acordo com os tipos de arquivos gráficos gerados. Fonte: Dados da Pesquisa (2012).

5.2.8 Exportação para código fonte

O objetivo desse critério é verificar se o usuário poderá gerar código fonte para a

aplicação que está sendo desenvolvida a partir dos modelos já criados e para quais

linguagens de programação isso é possível.

No Astah UML é possível exportar código fonte nas linguagens Java, C++ e C#

facilmente a partir dos modelos criados.

O Umbrello UML Modeller pode gerar código fonte a partir de várias linguagens de

programação, baseadas no seu modelo UML para auxiliá-lo no início com a

implementação do seu projeto. O código gerado consiste de declarações de classe,

com seus métodos e atributos de modo que seja possível preencher as lacunas

fornecendo a funcionalidade das operações de classes.

O Umbrello UML Modeller 2.6.5 vem com suporte à geração de código fonte para as

seguintes linguagens de programação: ActionScript, Ada, C++, C#, CORBA IDL, D,

Java, JavaScript, MySQL (SQL), Pascal, Perl, PHP, PHP5, PostgresSQL (SQL),

Python, Ruby, TCL, Vala e Esquema XML.

49

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Exportação para código fonte Java, C++ e C#.

ActionScript, Ada, C++, C#, CORBA IDL, D, Java, JavaScript, MySQL (SQL), Pascal, Perl, PHP, PHP5, PostgresSQL (SQL), Python, Ruby, TCL, Vala e Esquema XML.

Quadro 9: Comparação de acordo com a exportação para código fonte. Fonte: Dados da Pesquisa (2012).

5.2.9 Engenharia Reversa

Realizar a engenharia reversa de um software significa analisar um determinado

sistema e criar representações dele em um nível mais alto de abstração. É também

entendida como voltar atrás no ciclo de desenvolvimento do software.

A engenharia reversa é muito útil para transformar código em um modelo, quando

não exista modelo anteriormente, e também para ressincronizar um modelo com o

código no final de uma iteração.

Astah UML permite a importação apenas em código Java. A engenharia reversa em

C++ está disponível através do uso de um plug-in.

O Umbrello UML Modeller importa código fonte de seus projetos existentes para

auxiliá-lo a construir o modelo de seus sistemas, analisando seu código e

importando as classes encontradas nele. A versão 2.6.5 pode importar código nas

seguintes linguagens de programação: ADA, C++, IDL, Java, Pascal e Phyton.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Engenharia Reversa Java. ADA, C++, IDL, Java, Pascal e Phyton.

Quadro 10: Comparação de acordo com a engenharia reversa. Fonte: Dados da Pesquisa (2012).

50

5.2.10 Exportação de dados para o padrão XMI

O padrão XMI do Object Management Group (OMG) é um dos desenvolvimentos

mais recentes na comunidade de desenvolvedores UML. XMI é um formato de

intercâmbio que tem potencial para permitir o compartilhamento transparente de

modelos entre as ferramentas de desenvolvimento.

Por exemplo, em vez de escrever scripts dentro de uma ferramenta de modelagem

UML para criar relatórios, o usuário pode exportar o modelo em desenvolvimento

utilizando XMI e importar o modelo em uma ferramenta especializada em relatório.

XMI utiliza XML para representar as informações do modelo. Muitas soluções XML

estarão imediatamente disponíveis, tais como folhas de estilo XSL para

apresentação baseada em browser e ferramentas de consulta XQL para a

capacidade de pesquisa.

Astah UML não disponibiliza a exportação dos diagramas para o formato XMI.

A ferramenta Umbrello UML Modeller possui esse recurso e já oferece a opção de

salvar os diagramas criados no formato padronizado XMI.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Exportação de dados para o padrão XMI

Não oferece recurso. Oferece esse recurso.

Quadro 11: Comparação de acordo com a exportação de dados para o padrão XMI. Fonte: Dados da Pesquisa (2012).

51

5.2.11 Recursos Adicionais

O Astah UML facilita o trabalho em equipe, oferecendo recursos para fazer

mesclagem de arquivos do projeto e permitindo a exclusão mútua de arquivos

através do seu bloqueio. Além disso, facilita a troca de informações entre a equipe,

pois mesmo que nem todos possuam o software instalado, é possível exportar os

diagramas para HTML, CSV e RTF.

Outro recurso disponível é o uso de Mind Map ou Mapa da Mente. É um diagrama

usado para representar palavras, idéias, tarefas ou outros itens ligados e dispostos

em torno de uma palavra chave ou idéia central. Utilizado pelas corporações como

ferramenta de gestão estratégica, sua utilização no projeto de softwares é

perfeitamente adaptável e muito útil. Essa ferramenta converte modelos UML para

Mapas da Mente e vice-versa

O Umbrello UML Modeller é capaz de importar arquivos do Rose (Rose model files).

A Rational Rose é uma ferramenta CASE que auxilia nos processos de construção

de um software profissional.

Permite ainda que os códigos fonte sejam visualizados e pode realizar Refatoração.

Além disso, disponibiliza a criação de pastas lógicas para melhor organizar o

modelo, especialmente para grandes projetos. Estas pastas podem ser aninhadas, e

é possível mover objetos arrastando-os de uma pasta e soltando-os em outra.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Recursos Adicionais

Mapa Mental: Permite conversão UML para Mapa mental.

Equipe: mesclagem de arquivos e exclusão mútua.

Exporta diagramas para RTF, HTML, CSV.

Importa arquivos do Rose (Rose model files).

Visualizador de Código Fonte.

Refatoração.

Pastas Lógicas.

Quadro 12: Recursos adicionais. Fonte: Dados da Pesquisa (2012).

52

5.3 RESULTADOS OBTIDOS

Após análise realizada entre as ferramentas foi possível gerar o quadro 13, no qual

estão reunidas as características consideradas para o desenvolvimento deste

trabalho.

CRITÉRIO ASTAH UML UMBRELLO UML MODELLER

Documentação Possui boa documentação, porém em inglês.

Possui excelente documentação.

Licença 1 ano / 1 PC = $50,00 GNU General Public Licence

Plataformas suportadas (Portabilidade)

Windows, Mac OS X e Linux GNU/Linux, FreeBSD e Solaris

Idiomas suportados Inglês e japonês Chinês (Tradicional), Inglês, Português (Brasil e Portugal) e Espanhol.

Versão da UML suportada UML 2.0 UML 1.*

Diagramas da UML suportados

Diagrama de Classe Diagrama de Caso de Uso Diagrama de Seqüência Diagrama de Estado Diagrama de Atividade Diagrama de Componente Diagrama de implantação Diagrama de Estrutura

Composta Diagrama de Comunicação /

Colaboração Diagrama de Pacotes Diagrama de Objetos

Diagrama de Classe

Diagrama de Caso de Uso Diagrama de Seqüência Diagrama de Estado Diagrama de Atividade Diagrama de Componente Diagrama de Colaboração Diagrama de Distribuição

Exportação para arquivos gráficos

JPEG, PNG, EMF e SVG. EPS, JPEG, PNG, PPM, SVG, XBM e XPM.

Exportação para código fonte Java, C++ e C#.

ActionScript, Ada, C++, C#, CORBA IDL, D, Java, JavaScript, MySQL (SQL), Pascal, Perl, PHP, PHP5, PostgresSQL (SQL), Python, Ruby, TCL, Vala e Esquema XML.

Engenharia Reversa Java. ADA, C++, IDL, Java, Pascal e Phyton.

Exportação de dados para o padrão XMI

Não oferece recurso. Oferece esse recurso.

53

Recursos Adicionais

Mapa Mental: Permite conversão UML para Mapa mental.

Equipe: mesclagem de arquivos e exclusão mútua.

Exporta RTF, HTML, CSV.

Importa arquivos do Rose (Rose model files).

Visualizador de Código Fonte.

Refatoração.

Pastas Lógicas.

Quadro 13: Quadro geral de comparações entre as características das ferramentas. Fonte: Dados da Pesquisa (2012).

Analisando o quadro acima é possível concluir que as duas ferramentas analisadas

oferecem ótimos recursos para a modelagem de sistemas de software.

Com base nesta comparação é possível que o usuário selecione qual ferramenta é a

melhor opção com relação a cada um dos critérios, visto que a escolha final da

ferramenta a ser utilizada depende das características do projeto e cabe ao usuário

escolher a mais adequada.

54

6 CONCLUSÕES

Atualmente, existem várias ferramentas de apoio a modelagem de software

utilizando a linguagem de modelagem UML. A utilização de modelos UML visa uma

padronização do processo de modelagem bem como uma melhor estruturação do

software, o que facilita a comunicação entre os membros da equipe de

desenvolvimento e também com o cliente.

Com a crescente demanda de produtos de software, diversas ferramentas CASE

que oferecem suporte às diversas fases do processo de software foram surgindo.

Sendo assim a escolha de uma ferramenta apropriada e que atenda os objetivos do

usuário pode se tornar difícil, e com isso vem a pergunta: É possível comparar

ferramentas de modelagem de software, a fim de decidir qual delas é a melhor?

A fim de facilitar a avaliação dessas ferramentas, este trabalho mostrou uma análise

comparativa entre duas ferramentas de modelagem bem conceituadas no mercado

de software. Foram escolhidas as ferramentas Astah UML e Umbrello UML Modeller

e foi definido um conjunto de critérios baseados em requisitos funcionais, não

funcionais e normas de qualidade para a realização da avaliação.

Foram exibidas e confrontadas as principais funcionalidades da ferramenta Astah

UML e Umbrello UML Modeller com o objetivo de auxiliar o usuário a obter

informações sobre cada ferramenta para que, com base nestas informações seja

possível escolher a que melhor atenda as suas necessidades.

A análise mostrou que não existem diferenças tão marcantes entre as ferramentas, a

escolha entre uma delas vai depender do critério analisado, visto que em alguns

aspectos uma se destaca mais que a outra. No que diz respeito aos idiomas

suportados e licença da ferramenta, a Umbrello UML Modeler apresenta melhores

características, já que tem suporte para mais idiomas e a sua licença é GNU General

Public Licence, ou seja, é gratuita.

55

Em relação à documentação, ambas são muito boas. Mas vale ressaltar que o

manual da Astah UML só é encontrado em inglês. Enquanto o manual da Umbrello

UML Modeler é em português, bastante completo e oferece ainda uma visão geral

da UML.

Quanto a plataformas e versão da UML suportada a melhor escolha seria a

ferramenta Astah UML, pois ela funciona nos ambientes Windows, Mac OS X e

Linux e suporta a versão mais recente da UML.

Quanto ao critério de diagramas da UML suportados, a ferramenta Astah UML pode

ser considerada melhor por oferecer um maior número de diagramas e dar suporte a

UML 2.0. Já quanto ao aspecto de exportação de diagramas para arquivos gráficos e

para código fonte a melhor ferramenta seria a Umbrello UML Modeler por oferecer

todas as opções que a Astah UML oferece e ainda conter mais opções além dessas.

Para realizar a engenharia reversa a Umbrello UML Modeler é melhor do que a

Astah UML, pois esta só oferece na linguagem Java enquanto a primeira oferece

esse recurso nas linguagens ADA, C++, IDL, Java, Pascal e Phyton. E quanto à

exportação de dados para o padrão XMI somente a ferramenta Umbrello UML

Modeler oferece esse recurso.

Após a avaliação dessa análise comparativa, é recomendável que o usuário

estabeleça prioridades aos critérios utilizados de acordo com suas necessidades.

Para isso podem ser atribuídos valores para os critérios que indicará em que grau a

ferramenta atende aquele critério. Assim a ferramenta que melhor atender as

necessidades é a que obtiver mais pontos.

O surgimento de novas ferramentas e a constante atualização das mesmas motiva a

realização de trabalhos futuros para complementação deste, abrangendo outras

características das ferramentas avaliadas, elaborando novos critérios ou a extensão

da avaliação realizada para um maior número de ferramentas.

56

REFERÊNCIAS

BEZERRA, E.. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: Elsevier, 2007. BLAHA, M.; RUMBAUGH, J.. Modelagem e projetos baseados em objetos com UML 2. 2. ed. Rio de Janeiro: Elsevier, 2006. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I.. UML: guia do usuário. Rio de Janeiro: Campus, 2006. ANDRADE, C. A. V.. Metodologia de Análise de Sistemas. 8° Módulo. ESAB – Escola Superior Aberta do Brasil: Vila Velha, 2007. GUEDES, G. T. A.. Uml 2: Uma Abordagem Prática. 2. ed. São Paulo: Novatec, 2011. ______. Uml 2: Guia Prático. São Paulo: Novatec, 2007. HAMILTON, K.; MILES, R.. Learning UML 2.0. O’Reilly, 2006. LARMAN, C.. Utilizando UML e padrões. 3. ed. Porto Alegre: Bookman, 2007. MANHANI, D. M. da S.; SCHIMIGUEL, J.. Ferramentas case para modelagem de banco de dados. Codificando .net e-magazine. Rio de Janeiro, ano 4, v. 14, 01 fev. 2010. MARTINS, D. M. S. et al. Projeto de software com astah*. Engenharia de software magazine. Rio de Janeiro, ano 3, v. 30, 11 mar. 2010. MELO, A. C.. Desenvolvendo Aplicações com UML 2.2. 3. ed. Rio de Janeiro: Brasport, 2011. OMG. Unified Modeling Language: infrastructure. 2006.

57

SILVA, A. M. R. da; VIDEIRA, C. A. E.. UML, metodologias e ferramentas case. 2. ed. Lisboa: Centro Atlântico, 2008. 2 v. SILVA, R. P. e. UML 2 em Modelagem Orientada a Objetos. Florianópolis: Visual Books, 2007. SOMMERVILLE, I.. Engenharia de software. 9. ed. São Paulo: Addison Wesley, 2011. TONSIG, S. L.. Engenharia de software: Análise e Projeto de Sistemas. 2. ed. Rio de Janeiro: Ciência Moderna, 2008.