ARTIGO SOBRE UML



Este artigo foi Desenvolvido por: Euclezio Menezes, e a contribuição indispensavel do amigo Alexandre Marinho sem o mesmo não seria possivel fazer este artigo.


INTRODUÇÂO

A UML (Unified Modeling Language) é uma linguagem para especificação, documentação, visualização e desenvolvimento de sistemas orientados a objetos. É um modelo padrão para desenvolvimento de software que reúne melhores práticas de metodologia de sistemas. Neste modelo, diversos diagramas auxiliam na visualização do problema e a concepção da solução, permitindo uma visão macro dos objetos e seus relacionamentos; propõe um visual para especificação (modelagem) de sistemas orientados a objetos, fornece representação gráfica para os elementos essenciais do paradigma de objetos como Classes, atributos, objetos, troca de mensagens, etc.
Esta linguagem sintetiza os principais métodos existentes, sendo considerada uma das linguagens mais expressivas para modelagem de sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de softwares sob diversas perspectivas de visualização. Facilita a comunicação de todas as pessoas envolvidas no processo de desenvolvimento de um sistema (gerentes, coordenadores, analistas, desenvolvedores), por apresentar um vocabulário de fácil entendimento.
Os sistemas necessitam de uma série de especificações e geralmente tais documentos são longos e muito detalhados. A modelagem proporcionada pela UML permite simplificar o entendimento de um sistema, ao transformar suas complexidades em objetos gráficos simples, onde a lógica interna de seu funcionamento é abstraída.









1.   MODELAGEM

Através da modelagem também conseguimos estruturar um sistema. A manutenção que ocorrer nos posteriores ciclos de desenvolvimento fica mais fácil de ser efetuada já que a mesma ocorre inicialmente num nível lógico, e não no código (programa), de forma que se pode evoluir os diagramas que serão alterados e verificar suas conseqüências, antes de se preocupar com a fase de desenvolvimento.
A utilização da UML nos permite que tenhamos uma melhor visualização do cenário em que o sistema será utilizado, para assim facilitar a comunicação entre os interessados, fazendo com que a especificação necessária permita uma definição mais precisa dos modelos de construção. Estas facilitam o mapeamento do modelo UML para linguagens de programação, sendo uma ferramenta de documentação de vários aspectos do sistema.
Serve para abstrair a complexidade do negócio, facilita melhorias, auxilia na identificação de novas oportunidades de negócio, gera Inovações, estabelece entendimento comum aos responsáveis,
A estrutura básica da UML é formada por:
Descrição de Casos de Uso e Diagrama de Casos de Uso
Diagrama de Classes
Diagrama de Seqüência
Diagrama de Atividades

2.   CASOS DE USO

É uma descrição textual completa de um determinado processo, identificando seu cenário principal, isto é, o fluxo normal que ocorreria normalmente.
Este documento é estruturado descrevendo-se seus passos / instruções sem se ater a detalhes de tecnologia, porém identificando o limite/restrição/faixa de dados.
Além disto, aqui identificamos o(s) ator(es) que interage(m) com o sistema, as exceções (fluxos / cenários alternativos) também são explicadas porém a   ênfase é dada no fluxo principal.
Através da documentação do sistema, identificamos os atores, eventos e seus processos, de forma a eleger os possíveis Casos de Uso.
O Ator pode ser entendido como um elemento externo que interage com o sistema. Geralmente simboliza um usuário de algum departamento, mas também pode simbolizar outros elementos tais como um temporizador (relógio) que aciona o sistema de tempos em tempos para realizar alguma ação ou sistemas externos que interagem com um determinado sistema:

3.    NOTAÇÂO

– O diagrama de Caso de Uso é representado por:
• atores;
• casos de uso;
• relacionamentos entre estes elementos.
– Estes relacionamentos podem ser:
» associações entre atores e casos de uso;
» generalizações entre os atores;
» generalizações, extends e includes entre os casos de uso.
– Casos de uso podem opcionalmente estar envolvidos por um retângulo que representa os limites do sistema.
 Atores
http://i2.wp.com/www.purainfo.com.br/wp-content/uploads/atorUML.png?resize=100%2C165
Um ator é representado por um boneco e um rótulo com o nome do ator. Um ator é um usuário do sistema, que pode ser um usuário humano ou um outro sistema
 Caso de Uso
http://i1.wp.com/www.purainfo.com.br/wp-content/uploads/CasoUML.png?resize=150%2C48
Um caso de uso é representado por uma elipse e um rótulo com o nome do caso de uso.
Um caso de uso define uma grande função do sistema. A implicação é que Diagrama de Casos de Uso uma função pode ser estruturada em outras funções e, portanto, um caso de uso pode ser estruturado.
Relacionamentos
Entre um Ator e um caso de uso: Associação
http://i0.wp.com/www.purainfo.com.br/wp-content/uploads/relacionamentoUML.png?resize=415%2C136
Define uma funcionalidade do sistema do ponto de vista do usuário
http://i2.wp.com/www.purainfo.com.br/wp-content/uploads/relacionamento2UML.png?resize=247%2C383
Entre Atores: Generalização

• Os casos de uso de B são também casos de uso de A;
• A tem seus próprios casos de uso.
Entre casos de uso
http://i1.wp.com/www.purainfo.com.br/wp-content/uploads/includeUML.png?resize=238%2C32
Um relacionamento include de um caso de uso A para um caso de uso B indica que B é essencial para o comportamento de A. Pode ser dito também que B is_part_of A.
http://i2.wp.com/www.purainfo.com.br/wp-content/uploads/extends.png?resize=223%2C32
Um relacionamento extend de um caso de uso B para um caso de uso A indica que o caso de uso B pode ser acrescentado para descrever o  comportamento de A. A extensão é inserida em um ponto de extensão do caso de uso A.
Ponto de extensão em um caso de uso é uma indicação de que outros casos de uso poderão ser adicionados a ele. Quando o caso de uso for invocado, ele verificará se suas extensões devem ou não ser invocadas.
Exemplo:
·         Quando se especifica B extends A, a semântica é:
·         Dois casos de uso são definidos: A e A extended by B;
·         B é uma variação de A. Contém eventos adicionais, para certas condições;
·         Tem que ser especificado onde B é inserido em A
Entre casos de uso: Generalização
http://i2.wp.com/www.purainfo.com.br/wp-content/uploads/generaliza%C3%A7%C3%A3oUML.png?resize=252%2C39
·         Caso de uso B “é um” caso de uso A (A é uma generalização de B, ou B é uma especialização de A).
·         Um relacionamento entre um caso de uso genérico para um mais específico, que herda todas as características de seu pai.
·         Sistema
Limites do sistema: representado por um retângulo envolvendo os casos de uso que compõem o sistema
Nome do sistema: Localizado dentro do retângulo
http://i0.wp.com/www.purainfo.com.br/wp-content/uploads/exUML2.png?resize=561%2C518

4.    DIAGRAMA DE CLASSES


O Diagrama de classes é um dos principais e mais conhecidos diagramas da UML. Ele ajuda ao desenvolvedor, Analista de sistema e até mesmo ao gerente de projetos e pessoas chaves do projeto a entender a estrutura de um aplicativo ou funcionalidade do mesmo. 
O diagrama de classes esta contido a uma categoria de diagramas estruturais da UML, que tem como premissa mostrar a estrutura que esta proposta para a funcionalidade/componente/aplicativo.
Basicamente um diagrama de classes é formada por tais itens:
Classes - Objetos que fazem sentido para o negócio ou para a estrutura do aplicativo, representação de um objeto real ou palavra significativa que dá sentido ao que se propôe. Exemplo: (Casa, Pessoa e etc)
Atributos da Classe - Elementos que caracterizam a classe a qual pertecem. Os atributos efetivamente é as informações contidas no sistema, por exemplo, saldo de uma conta corrente. (Conta correte é uma classe, o seu saldo atual é o atributo) um outro exemplo, a classe Pessoa, atributo altura. Os atributos são modificados por métodos que contem regras e assim alteram os atributos e com isso o estado da classe.
Métodos da Classe - Os métodos da classe fazem com que o programa execute as chamadas do algoritmo (Funções), é como um bloco de instrução, contendo ou não regras que faz com que os atributos modifiquem seus valores e que uma classe converse com outras classes de objeto gerando assim as suas associações que juntas geram o funcionamento do aplicativo.
Abaixo um exemplo de diagrama de classes:
Exemplo de Diagrama de Classes
Exemplo de Diagrama de Classes
O que vemos na imagem acima além das classes e seus respectivos atributos e métodos, são as linhas que interligam as classes, que são denominadas de associação.

5.   DIAGRAMA DE SEQÜÊNCIA
  
Diagrama de seqüência (ou Diagrama de Seqüência de Mensagens) é um diagrama usado em UML (Unified Modeling Language), representando a seqüência de processos (mais especificamente, de mensagens passadas entre objetos) num programa de computador. Como um projeto pode ter uma grande quantidade de métodos em classes diferentes, pode ser difícil determinar a sequência global do comportamento. O diagrama de seqüência representa essa informação de uma forma simples e lógica.
Um diagrama de seqüência descreve a maneira como os grupos de objectos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objectos e as mensagens passadas entre esses objetos no caso de uso.
Em síntese: o Diagrama de Seqüência é uma das ferramentas UML usadas para representar interações entre objetos de um cenário, realizadas através de operações ou métodos (procedimentos ou funções). Este diagrama é construído a partir do Diagrama de Casos de Usos. Primeiro, define-se qual o papel do sistema (Use Cases), depois, é definido como o software realizará seu papel (Seqüência de operações).
O diagrama de seqüência dá ênfase a 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.
Conceitos
·         Atores: São entidades externas que interagem com o sistema e que solicitam serviços.
·         Objetos: Representam as instâncias das classes representadas no processo.
·         Gate: Indica um ponto em que a mensagem pode ser transmitida para dentro ou para fora.
·         Fragmento: Fragmentos de interação como: Alt (Alternativa), Opt (Opcional), Break (Parar), Loop (Repetição) e outras.
·         Linha de vida: As linhas de vida compõem a dimensão vertical.





Exemplo:

6.   DIAGRAMA DE ATIVIDADES

Um diagrama de atividade é essencialmente um gráfico de fluxo, mostrando o fluxo de controle de uma atividade para outra e serão empregados para fazer a modelagem de aspectos dinâmicos do sistema. Na maior parte, isso envolve a modelagem das etapas seqüenciais em um processo computacional;
Enquanto os diagramas de seqüência dão ênfase ao fluxo de controle de um objeto para outro, os diagramas de atividades dão ênfase ao fluxo de controle de uma atividade para outra;
Uma atividade é uma execução não atômica em  andamento em uma máquina de estados e acabam resultando em alguma ação, formada pelas computações atômicas executáveis que resultam em uma mudança de estado do sistema ou o retorno de um valor.
Características:
Um diagrama de atividades é essencialmente um fluxograma que dá ênfase à atividade que ocorre ao longo do tempo. Você pode considerar um diagrama de atividades como um diagrama de seqüência cujo interior é revelado;
Um diagrama de seqüência observa os objetos que passam mensagens;
Um diagrama de atividade observa as operações passadas entre os objetos;
Mostra o fluxo de uma atividade para outra;
Uma atividade é uma execução em andamento;
As atividades resultam em uma ação;
As ações abrangem a chamada a outras operações, enviando um sinal, criando ou destruindo um objeto;
Exemplo 1 – Cadastrar Cliente

http://i0.wp.com/www.purainfo.com.br/wp-content/uploads/DiagrAtiv3.png?resize=408%2C368









REFERENCIAS:

http://www.purainfo.com.br/artigos/o-que-e-uml/, acesso em 30/03/2013.

http://techblog.desenvolvedores.net/2011/04/11/introducao-uml/, acesso em 30/03/2013.

https://projetos.inf.ufsc.br/arquivos_projetos/projeto_721/artigo.tcc.pdf, acesso em 30/03/2013.

http://nasaulas.files.wordpress.com/2011/03/uml_nao_e_documentacao.pdf, acesso em 30/03/2013.

http://imasters.com.br/artigo/3004/uml/diagramas-sequencia-e-atividades/, acesso em 02/04/2013.

http://www.macoratti.net/net_uml1.htm. acesso em 02/04/2013.

TONSIG, Sérgio Luiz. Engenharia de Software, Análise e Projeto de Sistemas. Editora Futura,São Paulo, Brasil: 2003.

STADZISZ, Paulo Cézar Projeto de Software Utilizando a UML.UTFPR, Departamento de Informática: 2002.

CARDOSO, Caíque. UML na Prática, do Problema ao Sistema. Editora Ciência Moderna Ltda. Rio de Janeiro, Brasil: 2003.

Comentários

Formulário de contato

Nome

E-mail *

Mensagem *