Módulo 7 UML Na disciplina de Estrutura de Sistemas de Informação, fizemos uma rápida passagem sobre a UML onde falamos da sua importância na modelagem dos sistemas de informação. Neste capítulo, nos aprofundaremos mais na UML, dando maior ênfase os seus diagramas, que são poderosas ferramentas utilizadas na modelagem de sistemas. A UML surgiu para resolver o grande problema existente no desenvolvimento de Softwares utilizando a orientação a objeto, que é a modelagem. Não existia uma notação padronizada que proporcionasse abrangência a qualquer tipo de aplicação que se desejasse, além de resultar em várias simbologias e terminologias diferentes, originando assim uma grande confusão para os desenvolvedores. Com o lançamento da UML, grande parte dos desenvolvedores de softwares ficaram entusiasmados com a notícia, pois esse tipo de padronização já era esperado há muito tempo. É interessante observar que a UML tem como característica, abordar o caráter estático e dinâmico do sistema que está sendo avaliado, proporcionando já na modelagem, características futuras do sistema com relação a linguagem utilizada, banco de dados e algumas outras especificações finais do sistema. 6.1 Objetivos da UML Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto; Fixar uma junção nos métodos conceituais, tornando os executáveis; Definir uma linguagem de modelagem que possa ser utilizada tanto pelo homem, quanto pela máquina. A UML tem como característica ser uma linguagem de modelagem dominante, sendo baseada em padrões e conceitos que foram testados em metodologias anteriores. 6.2 A Utilização da UML A UML pode ser utilizada no desenvolvimento dos mais variados tipos de sistemas, pois tem como característica abranger qualquer atributo do sistema, utilizando os seus diagramas nas diferentes fases de desenvolvimento. O objetivo principal é descrever qualquer tipo de sistema utilizando diagramas orientados a objeto. Citaremos abaixo alguns sistemas e suas características: Sistemas de informação: Tem como característica principal o armazenamento, pesquisa, edição e demonstração de informações para os seus usuários. É um sistema que possui uma grande quantidade de relacionamentos, que envolve certa
complexidade, além de armazenar uma grande quantidade de informações em bases de dados relacionais ou orientadas a objetos. Sistemas em tempo real: Os sistemas em tempo real são executados por Hardwares específicos integrados a veículos, aparelhos telefônicos, eletrodomésticos etc. Utilizam uma programação de baixo nível requerendo suporte em tempo real. Sistemas distribuídos: Têm como característica principal serem distribuídos por várias máquinas, onde a transferência de dados entre ambas é feito facilmente, possuindo mecanismos de sincronização que garantem a integridade dos dados. 6.3 Notações da linguagem UML A UML é composta por algumas notações que são utilizadas para modelar os mecanismos gerais de um sistema. Todas estas notações em conjunto, permitem especificar e exemplificar a definição de um sistema no que diz respeito às suas funcionalidades, estáticas e dinâmicas. Falaremos um pouco sobre cada um desses componentes, focalizando mais a fundo nos diagramas. 6.3.1 Visões O principal atributo das visões é a demonstração dos diferentes aspectos existentes no sistema que está sendo modelado. A visão não é considerada um gráfico, mas sim uma abstração que é constituída por uma série de diagramas. Com a definição do número de visões, cada uma será responsável por demonstrar aspectos do sistema, onde é dado um maior enfoque aos ângulos e níveis de abstrações diferentes, e com isso será possível gerar uma figura completa do sistema. 6.3.2 Modelos de elementos Os conceitos que são utilizados nos diagramas, são modelos de elementos que têm como característica, representar as definições mais comuns da orientação a objeto como as classes, os objetos, as mensagens, os relacionamentos, etc. Ilustraremos abaixo o conjunto dos principais elementos de estrutura:
Agora ilustraremos os principais elementos de comportamento (estados e mensagens), agrupamento (pacotes) e anotações. 6.3.3 Tipos de relações Em um conceito geral, as relações apresentam uma sintaxe e uma semântica bem definida, permitindo o estabelecimento de interdependência entre os elementos básicos citados acima. 6.3.4 Diagramas A UML é composta por diagramas que juntos podem modelar vários tipos de sistemas. Como falamos anteriormente, a maioria dos sistemas possuem estruturas
estáticas e estruturas dinâmicas. As estruturas estáticas podem ser modeladas pelos diagramas de classe e de objeto. As estruturas dinâmicas são modeladas pelos diagramas de estado, seqüencia, colaboração e atividade. Os diagramas de componentes e execução são suportados pelo modelo funcional. Apresentaremos algumas características dos diagramas existentes na UML: 6.3.4.1 Diagrama de caso de uso: é utilizado na demonstração de relacionamentos entre atores e casos de uso. Os atores representam o papel de uma entidade externa ao sistema, como um usuário, um hardware, ou um outro sistema. Os atores iniciam a comunicação com o sistema através dos casos de uso, onde esses casos de uso representam uma seqüência de ações que são executadas pelo sistema. 6.3.4.2 Diagrama de classe: é utilizado na demonstração da estrutura estática das classes de um sistema, onde estas classes representam as coisas que são gerenciadas pelo sistema que está sendo modelado. Um classe pode se relacionar com outra através das: Associações: classes conectadas entre si. Dependências: uma classe depende de outra classe. Especialização: uma classe é uma especialização de outra classe. Pacotes: classes que são agrupadas por possuírem características similares. No diagrama de classe são apresentados todos esses relacionamentos e suas estruturas internas que são os atributos e as operações.
6.3.4.3 Diagrama de seqüência: Mostra o dinamismo existente entre a colaboração dos vários objetos de um sistema. A partir do diagrama de seqüência é possível perceber a seqüência de mensagens que são enviadas entre os objetos, mostrando a interação entre os objetos e o que acontecerá em um ponto específico na execução do sistema. 6.3.4.4 Diagrama de colaboração: Ilustra de maneira semelhante ao diagrama de seqüência o dinamismo existente na colaboração dos objetos. Em alguns casos pode se escolhe em utilizar o diagrama de colaboração ou o diagrama de seqüência.
6.3.4.5 Diagrama de estado: O diagrama de estado funciona como um complemento para a descrição das classes, mostrando todos os estados possíveis que o objeto de uma dada classe pode se encontrar, e apresentar quais são os eventos do sistema que provocam tais mudanças. 6.3.4.6 Diagrama de atividade: Foca o trabalho executado na implementação de um método, e suas atividades em uma instância de um objeto. É uma variação do diagrama de estado, possuindo um propósito um pouco diferente que é o trabalho e as atividades que serão executadas e os seus resultados no que diz respeito a mudança de estado dos objetos.
6.3.4.7 Diagrama de componente: Mostra o sistema por um lado funcional onde são expostas as relações existentes entre os seus componentes e a execução dos seus módulos durante a execução. 6.3.4.8 Diagrama de execução: Ilustra a arquitetura de hardware e software do sistema, juntamente com as conexões que são estabelecidas entre si. Especifica os componentes executáveis e os objetos que são alocados para ilustrar quais unidades são executadas.
O uso de um tipo ou outro de diagrama depende na maioria das vezes do grau de detalhamento que é requerido para o desenvolvimento do sistema. Os diagramas mais utilizados são os de classe, caso de uso e o diagrama de seqüência. Para uma boa utilização da UML, é recomendado o uso de ferramentas CASE para o auxílio na construção de diagramas.