MODELAGEM DE SOFTWARE
Autor: Marcos Morais de Sousa | Publicado: 2012-04-15T13:24:00-07:00



Pessoal, como a UML tem uma importância impar para o desenvolvimento das disciplinas Analise e Modelagem e Engenharia de Software - disciplinas que ministro, resolvi em tempo, disponibilizar aos interessados, mais um material complementar de estudo: o conteúdo abaixo.

Não se esqueçam de dar ênfase nos estudos sobre histórico da UML, na especificação da UML 2, na classificação quanto a organização da UML 2 e na definição dos Diagramas da UML 2 pois o domínio desses assuntos podem ajuda-los nas avaliações.&nbsp;



Bons estudos e boa sorte.


MODELAGEM DE SOFTWARE

O
crescimento vertiginoso dos softwares nas ultimas décadas teve, crescimento foi
acentuado na década de 1990 com o início da massificação da tecnologia onde o
número de novos softwares aumentou e ocasionando o surgimento de uma variedade
muito grande de formas de modelagem para os sistemas orientados a objeto.
Todavia, para se construir um software de qualidade são necessários grandes
esforços e muita experiência. A esse respeito Silva e Videira (2001) afirmam:

Fazer software
não é uma tarefa fácil. Fazer software de qualidade é ainda mais difícil. A
generalidade dos resultados obtidos ao longo do tempo têm sistematicamente
apresentado padrões de baixa qualidade, de custos e prazos completamente
ultrapassados. (SILVA; VIDEIRA 2001, p.27)







Nesse sentido, com
a necessidade de criar processos padronizados para o desenvolvimento de
software, que surgiu o UML por volta de 1996 unificando as notações e
diagramas. A UML (Unified Modeling Language ou Linguagem Unificada de
Modelagem, em português) é uma linguagem visual para a modelagem de sistemas
orientados a objeto, permitindo uma melhor visualização padronizada de um
sistema.



A esse respeito Silva e Videira (2001)
definem:





A ênfase do
UML é na definição de uma linguagem de modelação standard, e, por conseguinte,
o UML é independente das linguagens de programação, das ferramentas CASE, bem
como dos processos de desenvolvimento. (SILVA; VIDEIRA 2001, p. 143)






A evolução da UML
desde a sua criação até o ano de 2002 pode ser melhor visualizado a partir da
análise da Figura abaixo.





Evolução da UML.&nbsp;


Fonte: Adaptado de http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/uml/historia_uml/historia_uml.htm





Como principais objetivos da UML destacam-se: simplicidade, especificação, documentação e estruturação.&nbsp;



Segundo Silva e Videira (2001, p.145) os tipos de diagramas da UML podem ser classificados, destacando-se: os Diagramas de Casos de Uso; Diagramas de Classes e de Objetos; Diagramas de Comportamento. Os Diagramas de Comportamento se subdividem ainda em Diagramas de Estados; Diagramas de Atividades e Diagramas de Colaboração. E, por fim os Diagramas de Arquitetura são classificados como Diagramas de Componentes e Diagramas de Instalação.


A especificação de UML é composta por quatro documentos: infra-estrutura de&nbsp;UML(OMG, 2006), superestrutura de UML (OMG, 2005c), Object Constraint&nbsp;Language (OCL) (OMG, 2005a) e Intercâmbio de Diagramas (OMG, 2005b).&nbsp;








Infra-estrutura de UML: O conjunto de diagramas de UML constitui uma&nbsp;linguagem definida a partir de outra linguagem que define os elementos&nbsp;construtivos fundamentais. Esta linguagem que suporta a definição dos&nbsp;diagramas é apresentada no documento infra-estrutura de UML.
Superestrutura de UML: Documento que complementa o documento de&nbsp;infra-estrutura e que define os elementos da linguagem no nível do usuário.
Linguagem para Restrições de Objetos (OCL): Documento que apresenta a&nbsp;linguagem usada para descrever expressões em modelos UML, com pré-condições, pós-condições e invariantes.
Intercâmbio de diagramas de UML: Apresenta uma extensão do metamodelo voltado a informações gráficas. A extensão permite a geração de&nbsp;uma descrição no estilo XMI orientada a aspectos gráficos que, em conjunto&nbsp;com o XMI original permite produzir representações portáveis de&nbsp;especificações UML.




Quanto a organização dos diagramas da UML 2.0 pode-se classifica-los em Diagramas Estruturais, Diagramas de comportamento e diagramas de interação. &nbsp;Veja a imagem abaixo:





Figura: Organização dos diagramas de UML 2










Diagramas Estruturais

Diagrama de classes
Diagrama de objetos
Diagrama de componentes
Diagrama de instalação
Diagrama de pacotes
Diagrama de estrutura



Diagramas Comportamentais

Diagrama de Caso de Uso
Diagrama de transição de estados
Diagrama de atividade



Diagramas de Interação

Diagrama de sequência
Diagrama de Interatividade
Diagrama de colaboração ou comunicação
Diagrama de tempo






Fonte:&nbsp;http://pt.wikipedia.org/wiki/UML






Thânia Clair de Souza Vargas (http://www.lavailama.com.br/arquivo/2.pdf) descreve cada um dos 13 diagramas na UML 2 e diz "Um diagrama é uma representação gráfica de um conjunto de elementos (classes,&nbsp;interfaces, colaborações, componentes, nós, etc) e são usados para visualizar o sistema&nbsp;sob diferentes perspectivas. A UML define um número de diagramas que permite dirigir&nbsp;o foco para aspectos diferentes do sistema de maneira independente. Se bem usados, os&nbsp;diagramas facilitam a compreensão do sistema que está sendo desenvolvido".&nbsp;





Embora a UML tenha oferecido inúmeros e inquestionáveis benefícios procurando padronizar, simplificar, especificar, documentar e estruturar os processos de desenvolvimento de software, independente da linguagem de programação ou plataforma de desenvolvimento, a UML ainda deixa algumas lacunas como o problema relacionado à semântica, onde desenvolvedores distintos podem diagramar um mesmo sistema de formas diferentes. Na essência do princípio do UML, um mesmo sistema deveria ser diagramado de apenas uma forma, seja pelo desenvolvedor A, seja pelo desenvolvedor B. Todavia esse objetivo ainda não é possível para o UML atual. Talvez, pensando nisso os idealizadores do UML deixaram espaço para que no futuro a questão da semântica do UML seja resolvida