Documente Academic
Documente Profesional
Documente Cultură
VILA VELHA - ES
2010
MARCÉLIO VIANA DE CARVALHO
VILA VELHA – ES
2010
MARCÉLIO VIANA DE CARVALHO
_______________________________________
_______________________________________
_______________________________________
Vila Vela - ES
2010
Dedico este trabalho, com muito carinho e
respeito, aos meus pais: Moacir
Herculano de Carvalho – in memorian – e
Nealina Viana de Carvalho, que sempre
me deram crédito e incentivo.
AGRADECIMENTOS
A Deus, por ter-me concedido mais uma
importante conquista. À minha família,
pela inspiração e compreensão.
LISTA DE ILUSTRAÇÕES
Figura 1 - Diagramas da UML 1.x...............................................................................28
Figura 2 – Diagramas da UML 2.0..............................................................................34
LISTA DE TABELAS
Tabela 1 - Principais propostas de modelagem OO anteriores à UML......................21
Tabela 2 – Cronologia da UML...................................................................................32
RESUMO
O presente trabalho descreve a história da UML – Unified Modeling Language,
começando pela apresentação do pano de fundo que forneceu suporte ao
surgimento da tecnologia. As principais tecnologias que dominaram o cenário da
modelagem de sistemas nas décadas de 1960, 1970 e 1980 ─ fluxogramas, análise
estruturada, análise essencial e orientação a objeto ─ são descritas, demonstrando
como as mesmas conduziram ao surgimento da UML, inclusive a transição para a
linguagem unificadora. A apresentação da história da UML começa pela década de
1990 até o momento atual, com a descrição de um panorama das versões da UML,
com suas principais ênfases, visões e aperfeiçoamentos, demonstrando como a
modelagem de sistemas evoluiu a partir das novas versões. Os diagramas são
apresentados parcialmente à medida que as versões são amadurecidas e, na
descrição da UML 2.0, todos os atuais diagramas são apresentados com as
alterações introduzidas por ocasião de novas versões, de acordo com sua
classificação em diagramas estruturais ou comportamentais.
SUMÁRIO
INTRODUÇÃO............................................................................................................12
GLOSSÁRIO...............................................................................................................50
BIBLIOGRAFIA..........................................................................................................52
12
PROBLEMA DE PESQUISA
Esta carência justifica a abordagem do tema, cujo estudo será relevante para o
aperfeiçoamento do conhecimento acadêmico do autor e para a teoria da
modelagem de sistemas, no que diz respeito à sistematização da história da UML.
OBJETIVOS
Objetivo geral
O objetivo deste trabalho é apresentar a história da UML, descrevendo como a sua
evolução tem contribuído para a modelagem de sistemas.
Objetivos específicos
Descrever e examinar as notações anteriores à UML, a fragmentação que originou a
UML, os principais autores da UML, a unificação da UML, a padronização da UML, a
industrialização da UML e a sua contribuição na construção de modelos de
sistemas.
DELIMITAÇÃO DO TRABALHO
A temática tratada deste trabalho é delimitada pelo seu propósito histórico. A sua
profundidade é, por conseguinte, de nível intermediário. Vários assuntos correlatos
deixaram de ser analisados e aprofundados, o que pode ser feito
complementarmente. Não pertence ao escopo desta pesquisa a descrição completa
dos conceitos e diagramas da UML, que aqui serão apresentados de forma
simplificada. Os interessados nas descrições completas devem consultar as
especificações oficiais da UML, que podem ser obtidas no sítio do OMG – Object
Management Group (www.omg.org).
METODOLOGIA DE PESQUISA
Nas décadas de 1950 e 1960, antes da análise estruturada clássica, a maioria dos
projetos de software utilizava um documento elaborado pelo analista de sistemas
que continha uma descrição textual dos requisitos do usuário. Este documento
apresentava alguns problemas: monolítico, difícil compreensão, redundância e
ambigüidade de informação, e consequentemente de difícil manutenção.
1
“Direto ao assunto” ou “Direto ao que interessa”. Na primeira fase do desenvolvimento de sistemas
não havia planejamento inicial. O próprio código-fonte do programa era o modelo
17
De acordo com Yourdon (1990) qualquer ferramenta de modelagem deve assim ser
caracterizada: ser gráfica com texto para apoio, permitir a visualização subdividida
em modo top-down, ter redundância mínima, ajudar o leitor a antever o
comportamento do sistema e ser transparente. Neste cenário, é uma falha grave
considerar apenas um único modelo para visualizar o sistema, como por exemplo,
somente o diagrama de fluxo de dados (DFD). De igual forma, usar todos os
modelos disponíveis de forma indiscriminada vai gerar o mesmo resultado
catastrófico.
Segundo Coad & Yourdon (1992, p.5) a década de 1980 foi um período em que
ocorreram algumas alterações, que se tornaram fatores importantes na década de
1990:
18
Objeto: qualquer coisa do mundo real com limite e identidade bem definido,
contendo atributos e operações. Também denominado de instância da classe;
19
Coad & Yourdon (1992, p.182) sugerem uma resposta nos seguintes termos: “[...] a
AOO e as técnicas baseadas em objetos representam uma nova curva de tecnologia
(...) a pergunta principal que uma organização típica tem que fazer é: agora é o
melhor momento para mudar de uma tecnologia para outra? [...]”.
Coad & Yourdon (1992, p.188) não escondem o seu entusiasmo com a orientação a
objetos:
Diante desta diversidade de conceitos, “os três amigos”, Grady Booch, James
Rumbaugh e Ivar Jacobson decidiram juntar esforços para criar uma Linguagem de
Modelagem Unificada. Segundo Pressman (2006, p.52), eles combinariam “[...] as
melhores características de cada um dos seus métodos individuais e adotariam
características adicionais propostas por outros especialistas, como Wirfs-Brock, no
ramo de OO [...]”. Furlan (1998, p.34) destaca a importante participação dos outros
autores, quando afirma: “[...] Os fomentadores da UML não inventaram a maioria das
idéias, em vez disso, seu papel foi selecionar e integrar as melhores práticas (best of
breed) do mercado [...]”. Por outro lado, Furlan (1998, p.34) também declara: “[...] Na
verdade, a UML não representa uma ruptura radical de Booch, OMT ou OOSE, é um
passo natural na escala de evolução [...]”.
Essa colaboração permitiu que em janeiro de 1997 fosse lançada a UML 1.0, que foi
oferecida para padronização ao OMG, em resposta à sua solicitação de propostas
para uma linguagem-padrão. No período de janeiro a julho de 1997 o grupo original
de parceiros cresceu, incluindo virtualmente todos os participantes e colaboradores
da resposta inicial ao OMG. O trabalho da força-tarefa priorizou a semântica,
buscando formalizar a especificação da UML (BOOCH, 2000). A guerra dos métodos
orientados a objeto estava chegando ao fim, resolvendo a maioria das diferenças ─
muitas delas inconsequentes ─ entre as linguagens anteriores de modelagem,
conforme descrito anteriormente.
Existe um conflito entre o uso do nome das versões 1.0 e 1.1 entre o OMG e a
Rational, que usam numerações diferentes para designar a mesma versão. Isso tem
provocado uma dificuldade de identificação na literatura e Fowler (2005, p. 143)
discorre sobre o assunto, declarando:
Os esforços dos colaboradores produziram uma versão revisada da UML, a 1.1, que
foi oferecida ao OMG para padronização em julho de 1997. Em setembro de 1997 a
versão foi aceita pela equipe de análise e design do OMG, bem como pela equipe de
arquitetura. A seguir foi submetida ao voto de todos os membros do OMG. Em 14 de
novembro de 1997 a UML 1.1, com foco na melhoria da limpidez das semânticas, foi
disponibilizada, após ter sido aprovada por todos os membros do OMG (BOOCH,
2000). Segundo Deitel (2005), ao aprovar a proposta, o OMG assumiu a
responsabilidade pela manutenção e revisão constantes da UML.
Segundo Fowler (2005) as principais mudanças da UML 1.0 para a UML 1.1 foram:
Em mais uma RTF – Revisão Técnica Forma– no final de 1998 foi lançada a UML
1.3, que forneceu alguns aprimoramentos técnicos. Além disso, outras mudanças
foram incluídas, como: correção de inconsistência nos documentos, esclarecimento
de algumas definições e explicações, com a melhoria do mapeamento,
principalmente na semântica e notação, conforme descrito abaixo.
caso de uso base declara vários pontos de extensão e o caso de uso estendido
pode alterar o comportamento somente nos pontos de extensão (FOWLER, 2005).
Segundo Fowler (2005, p.148) a mudança mais notável na UML 1.4 foi “[...] a adição
de perfis, que permitem que um grupo de extensões sejam coletadas em um
conjunto coerente [...]”. Além disso, é possível destacar que, “[...] junto com isso, há
um maior formalismo envolvido na definição de estereótipos, e elementos de modelo
31
agora podem ter múltiplos estereótipos; na UML 1.3, eles eram limitados a um só”
(FOWLER, 2005, p.148).
De acordo com Larman (2004, p.583), “[...] Os estereótipos são usado para
classificar elementos. A partir da UML 1.4, um elemento pode ter muitos
estereótipos, mas apenas um deles é mostrado em um diagrama específico [...]”.
O diagrama de interação sofreu uma mudança que gerou um impacto maior, por ser
incompatível com as versões anteriores: a ponta de seta vazada do diagrama foi
transformada em um sinal assíncrono (FOWLER, 2005).
Em julho de 2004 o OMG lançou a UML 1.4.2. Esta mesma versão foi lançada em
janeiro de 2005 como a ISO/EC 19501.
ANO VERSÃO
Outubro de 1995 UML 0.8
Junho de 1996 UML 0.9
Janeiro de 1997 UML 1.0
Novembro de 1997 UML 1.1
Junho de 1998 UML 1.2
Final de 1998 UML 1.3
Setembro de 2001 UML 1.4
Março de 2003 UML 1.5
Julho de 2005 UML 2.0
Não foi lançada oficialmente UML 2.1
Agosto de 2007 UML 2.1.1
Novembro de 2007 UML 2.1.2
Fevereiro de 2009 UML 2.2
Em andamento desde setembro de 2009 UML 2.3
Elaboração própria (2010)
Em julho de 2005 o OMG lançou a UML 2.0 com muitas alterações, de forma que
“[...] a evolução (...) para a UML 2 produziu fortes alterações ao nível da sua própria
arquitetura, um refinamento e aumento de qualidade da generalidade dos
diagramas, e implicou também a introdução de novos diagramas.” (SILVA &
VIDEIRA, 2005, p.7)
De acordo com os mais atuais documentos da OMG, a UML 2.0 consagra-se como
uma das mais expressivas linguagens para modelagem de sistemas OO. Por
sintetizar os principais métodos existentes, se consolida como a linguagem mais
usada para especificação, documentação, visualização e desenvolvimento de
sistemas orientados a objetos. Hoje os seus diagramas representam sistemas de
softwares sob diversas perspectivas de visualização e por seu vocabulário de fácil
visualização, facilita a comunicação de todas as pessoas envolvidas no processo de
desenvolvimento de um sistema ─ gerentes, coordenadores, analistas,
desenvolvedores (OMG, 2005a; OMG, 2005b; OMG, 2006).
A diversidade dos diagramas da UML 2.0 permite dirigir o foco para diferentes
aspectos de um sistema de maneira independente. Quando devidamente aplicados,
os diagramas tornam mais fácil a compreensão do sistema em desenvolvimento.
A respeito da quantidade de diagramas da UML 2.0, Guedes (2008, p.27) afirma que
“[...] o objetivo é fornecer múltiplas visões do sistema a ser modelado, analisando-o
e modelando-o sob diversos aspectos, procurando-se, assim, atingir a completitude
da modelagem, permitindo que cada diagrama complemente os outros”.
Martins (2004) afirma que os diagramas de classes são utilizados para representar
estruturas de classes de negócio, interfaces com o usuário e outros sistemas e
classes de controle. Silva (2007) corrobora a afirmação acima quando sustenta que
um diagrama de classes é um modelo fundamental de uma especificação orientada
a objetos. Produz a descrição mais próxima da estrutura do código de um programa,
35
Na mesma linha de raciocínio de Martins (2004) e Silva (2007), Guedes (2008, p.29)
reitera que um Diagrama de Classes é uma representação da estrutura e relações
das classes, ao passo em que coroa o diagrama de classes, quando afirma:
Para Furlan (1998), este diagrama é composto pelos objetos e seus relacionamentos
em um determinado instante no tempo. É como uma fotografia de um diagrama de
classe ou diagrama de interação. Na realidade trata-se de uma variação do
diagrama de classes em que, em vez de classes, são representadas instâncias e
ligações entre instâncias. Os objetos e suas instâncias são usados para fazer a
modelagem da visão estática do projeto de um sistema, a partir da perspectiva de
instâncias de situações da realidade ou de protótipos.
Para Melo (2004) este diagrama visa mostrar a composição de estruturas complexas
ou projetos de componentes, simplificando o relacionamento de composição. Deste
modo será exibido um diagrama de classes dentro de uma classe, contendo a
classe-todo com suas classes-partes ligadas através de conectores.
O diagrama de casos de uso tem por objetivo apresentar uma visão externa das
funções e serviços que o sistema deverá oferecer aos usuários, sem se preocupar
em como tais funções serão implementadas. O diagrama de casos de uso é de
39
Para Bezerra (2002, p.57), "[...] o enfoque ao utilizar casos de uso e seus
relacionamentos é identificar os objetivos do usuário, em vez das funções do
sistema. O modelo de caso de uso define uma visão externa do sistema [...]".
casos de uso mais comuns e para os casos alternativos mais complexos. Martins
(2004) reitera que este diagrama mostra as interações entre as classes de objetos,
através de trocas de mensagens, no decorrer do tempo.
Segundo Furlan (1998) este diagrama é útil quando o analista deseja descrever um
comportamento paralelo ou interação entre os comportamentos de vários casos de
usos.
lista de estados finita e que poderão mudar o seu estado através de um estímulo
pertencente a um conjunto finito de estímulos. Para Furlan (1988), além do estado e
da transição, este diagrama também inclui o subestado e o evento. O subestado é
um estado que parte de um estado composto, podendo ser simultâneo ou
seqüencial, e o evento é toda ocorrência significativa que deve ser reconhecida pelo
sistema. Ele ainda enfatiza que a transição é um relacionamento entre dois estados,
indicando que houve mudança de estado e que determinadas ações foram
executadas. A desvantagem deste diagrama é ter de definir todos os estados
possíveis, tarefa difícil em sistemas complexos (FURLAN, 1988).
A UML não pára de crescer e o OMG continua lançando atualizações, que podem
ser acompanhadas em seu sítio www.omg.org/UML:
UML 2.1: uma versão que nunca foi lançada oficialmente como uma
especificação formal
UML 2.1.1: versão lançada em agosto de 2007;
UML 2.1.2: versão lançada em novembro de 2007;
UML 2.2: versão lançada em fevereiro de 2009;
UML 2.3: próxima versão, cuja revisão está em andamento desde setembro
de 2009
45
Além disso, Martins (2004) considera que o desenvolvimento de software deve ser
realizado utilizando um processo de desenvolvimento de sistemas consistente e
sedimentado no mercado, como por exemplo, RUP, e utilizando gerenciamento de
projetos, com suas áreas de conhecimento: gerenciamento do escopo, riscos, custo,
tempo, qualidade, dentre outros.
É evidente que a história dinâmica da UML será honrada à medida que evoluir a
partir dos padrões já aceitos na atualidade, na busca constante por atender as mais
exigentes complexidades de software que ainda surgirem. Qualquer proposta de
modelagem que surgir deverá ser superior aos padrões atuais. Foi assim que
aconteceu quando a UML nasceu a partir da evolução das metodologias anteriores.
O sucesso dos projetos de software passa por alianças concretas da UML com as
áreas de conhecimento da gerência de projeto no ciclo de desenvolvimento de um
sistema. É indispensável considerar que os requisitos de um software podem mudar
– e mudam! – durante a fase de desenvolvimento. Os diagramas da UML avaliam e
tratam as mudanças de escopo, prevendo os seus impactos.
48
GLOSSÁRIO
BIBLIOGRAFIA
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML Guia Prático do Usuário. São
Paulo: Campus, 2000.
COAD, Peter & YOURDON, Edward. Análise baseada em Objetos. 2ª ed. Rio de
Janeiro: Campus, 1992.
DEITEL, H.M; DEITEL, P. J. Java: Como Programar. 6ª Ed. São Paulo: Pearson
Education do Brasil, 2005.
GUEDES, Gilleanes. UML: Uma Abordagem Prática. 3ª Ed. Rio de Janeiro: Novatec,
2008.
KOBRYN, Cris. UML 3.0 and the future of modeling. Springer-Verlag: Fallbrook,
2004