9 de nov. de 2007

Esboço - UML

Cursinho de UML
Comunidade CDTC - Centro de Difusão de Tecnologia e Conhecimento

Lição 1 - Introdução

UML (Unified Modeling Language)

Linguagem de modelagem.
Orientada a objetos.

Criadores: Booch, OMT (Rumbaugh) e OOSE (Jacobson).

Lição 2 - Conceitos iniciais

Diagrama é uma representação gráfica. Em UML divide-se em dois grupos: estruturais e comportamentais.

Lição 3 - Diagramas Estruturais

Em hierarquia:
Classes: considera um conjunto de objetos.
Atributos: define a propriedade do item modelado.
Métodos (operações): executam as funcionabilidades.

Atributos e métodos podem ser mostrados:
+ Corresponde a operações públicas;
# Corresponde a operações protegidas;
- Corresponde a operações privadas.

Representação entre os relacionamentos das classes são divididos em três tipos: dependências, generalizações e associações.

Dependência:
item que usa dados e serviços de outro item.
É representado com uma linha tracejada do item que depende ao que a fornece.

Generalização:
Relacionamento entre ítens gerais e mais específicos. Ítens específicos tem todos os atributos e métodos da classe geral, além de poder ter os seus próprios também.

Associação:
permite aos objetos comunicarem uns com os outros. Cria a estrutura comum para várias ligações entre os objetos.
São representadas em linhas que ligam as classes participantes na relação, podendo mostrar as variedades dessas classes. As multiplicidades são mostradas num intervalo (mín...máx), sendo sempre positivos e se infinito, no no valor máx. deve ser introduzido um asterisco (*).

Agregação: (associação)
representadas com um losango ao lado do 'todo'.
Classes participantes que não tem um estado equivalente, são relacionadas 'do todo' para as partes'.
O 'todo' é uma classe que sempre tem uma multiplicidade de outras classes.

Composição: (associação)
representada por um losango cheio ao lado do 'todo'.
caso as partes definitivamente, dependam do 'todo'.

Diagramas de classes identificam e mostram as características das classes que compõe o sistema. Mostrando em conjunto, seus métodos, atributos e relacionamentos.

Interfaces:
Estabelece uma ligação entre classes distintas.

Tipos de dados:
Dados inteiros e lógicos.

Enumerações:
Lista de valores. Opções de enumeração é conhecida como 'Literais de Enumeração'.

Pacotes:
Representa partes de um sistema que contém mais de uma classe.

Objetos:
Representa algo concreto.
Nomes dos objetos sempre deverão estar sublinhados.

Diagrama de Objetos:
Exemplica diagramas de classes.
Mostra todo o conteúdo das classes.

Diagrama de Componentes:
Componente é independente e pode ser utilizado com outros componentes.
É difundido em executável, biblioteca, tabela, documento e arquivo.
Mostra os componentes e seus relacionamentos. Não mostra todo o seu conteúdo. Para conteúdo é utilizado no diagrama de execução.

* Modelar os componentes do código-fonte, do código executável do software;
* Organizar o código fonte, mostrando as dependências entre os diferentes arquivos fonte de modo que fique claro quais arquivos precisarão ser recompilados quando for feita uma modificação em algum deles;
* Destacar a função de cada módulo para facilitar a sua reutilização;
* Auxiliar no processo de engenharia reversa, por meio da organização dos módulos do sistema e seus relacionamentos.

Diagrama de Artefatos:
Um produto dentro do sistema.
Pode ser um documento de texto, código fonte, um programa executável, uma biblioteca, etc.
Mostra a organização dos artefatos e seus relacionamentos.
Modelagem de:
# Código fonte;
# Versões executáveis;
# Bancos de dados físicos;
# Sistemas adaptáveis.

Diagrama de Implantação:
Organização do hardware.
Máquinas chão chamadas de nó.
Diagramas de classes que mostram os nós do sistema e os artefatos que existem neles.

Lição 4 - Diagramas Comportamentais

Atores:
Representam pessoas, dispositivo de hardware ou outro sistema, ou seja, representa regras dos usuários do sistema.
São eles quem:

* Utilizam o sistema.
* Inicializam o sistema.
* Fornecem os dados
* Usam as informações do sistema

Casos de uso:
Descreve uma funcionabilidade fornecida pelo sistema.
* Cada Caso de Uso está relacionado com no mínimo um ator;
* Cada Caso de Uso possui um iniciador (isto é um ator);
* Cada Caso de Uso liga-se a um resultado relevante (um resultado com "valor de negócio").

Os três tipos mais comuns de relacionamento entre Casos de Uso são
* <> que especifica que um Caso de Uso toma lugar dentro de outro Caso de Uso;
* <> que especifica que em determinadas situações, ou em algum ponto (chamado um ponto de extensão) um Caso de Uso será estendido por outro;
* Generalização especifica que um Caso de Uso herda as características do "Super" Caso de Uso, e pode sobrepor algumas delas ou adicionar novas de maneira semelhante a herança entre classes.

Diagrama de casos de uso:
Ilustra os comportamentos do programa.
Descreve relacionamentos e dependêncuas entre grupo de caso de uso e os atores do processo.
relacionamento é representado por uma linha reta.

Diagrama de sequencia:
Mostra a sequencia dos processos num sistema.
Objetos são representados através de linhas verticais tracejadas, como nome do objeto no topo.
O eixo do tempo também é vertical, aumentando para baixo. As mensagens enviadas de um objeto para outro são em formas de setas com a operação e nome dos parâmetros.

Diagrama de colaboração:
Mostra a relação que ocorre entre os objetos numa situação específica, dando ênfase em como as interações ocorrem no tempo.
Mensagens enviadas de um objeto a outro são representadas por setas, com o nome da mensagem, parâmetro, e a sequência da mensagem.

Estados:
Pertence a uma classe e representa valores que uma classe pode tomar.

Diagramas de estados:
Mostram os diversos estados de um objeto.

Atividade
É um estado no sistema com atividade interna e que possua pelo menos uma transição de saída.

Diagrama de atividade:
São sempre associados a um Classe, uma Operação ou um Caso de Uso.

Nenhum comentário: