Linguagem de Modelagem Unificada
UML - Linguagem de UML Modelagem Unificada
Autor: Rildo F. Santos (rildosan@uol.com.br)
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem de Modelagem Unificada UML
Conteúdo Parte 1: - Introdução a Orientação a Objeto Parte 2: - Introdução a UML Parte 3: - Diagramas da UML Parte 4: - Estudo de Caso - Exercício Apêndices: - Notação UML - UML 2.0
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
2
Linguagem de Modelagem Unificada UML
Palavra inicial
A UML é padrão de mercado (www.omg.org/uml) que representa as melhores práticas da engenharia de software em modelagem de software; A UML permite que desenvolvedores visualizem o software através modelos e de um conjunto de diagramas; A modelagem visual facilita o entendimento e a comunicação do 'quê' precisa ser feito e 'como' deve ser feito o software; Os diagramas oferecem a padronização, que é necessária quando trabalhamos com grandes equipes de desenvolvedores ou com fornecedores; Neste treinamento apresentaremos todos os diagramas, elementos e a semântica da Linguagem de Modelagem Unificada; O treinamento: Começa sendo demonstrado uma introdução a orientação a objetos com objetivo de fazer um alinhamento de conhecimento da Orientação a Objetos. Depois é apresentado a UML, semântica e todos os diagramas (da versão 1.5) Também será exibido em estudo de caso com propósito de mostrar como é feito a modelagem visual de software com UML. Será utilizada uma ferramenta de modelagem visual para ajudar o aprendizado da UML. © Copyright Rildo Ferreira, e-tecnologia.com, 2009
3
Linguagem de Modelagem Unificada UML
Introdução a Orientação a Objetos Objetivo desta parte: É apresentar e discutir uma introdução a Linguagem de Modelagem Unificada versão 1.5. © Copyright Rildo Ferreira, e-tecnologia.com, 2009
4
Linguagem de Modelagem Unificada UML Orientado a Objetos Introdução a Orientação a Objetos Os sistemas projetados atualmente são maiores, mais complexos e sujeitos a constantes alterações e adaptações aos diversos ambientes computacionais. Através do encapsulamento de informações, a reutilização de esforços empregados em projetos anteriores e a modificação do sistema se tornaram mais fáceis. Orientação a Objetos: Um problema sempre define ou está contido em um domínio (sujeito a leis da física, da matemática, do direito, do mercado financeiro e por ai a fora). Assim a primeira resposta a buscar no desenvolvimento de um sistema em computação é a construção de um modelo que coloque em termos de algoritmos o domínio da aplicação. Pensando num modelo de objetos, numa abordagem de alto nível de abstração há três fases:
Análise Orientação a Objetos
Metodologia
Análise: Discute o porque, o que (com quais informações e para quais serviços) se deve fazer
Projeto e Modelagem
UML Projeto: O Como fazer, de forma a ficar manutenível;
Implementação
Linguagem Java O mapeamento em linguagem processável pelo computador
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
5
Linguagem de Modelagem Unificada UML Orientado a Objetos Introdução a Orientação a Objetos O Método Orientação a Objetos A metodologia Orientação a Objetos é baseada em noções, consideradas intuitivas ao ser humano, tais como: objetos e atributos, classes e membros, estruturas e componentes, ação e reação. Os métodos de desenvolvimento de software anteriores ao surgimento desse paradigma organizam a especificação de um sistema de acordo com suas funções ou com os dados manipulados. Geralmente, esses métodos apresentam dificuldades na transição da representação do sistema em uma fase para outra do processo de desenvolvimento (da Análise para o Projeto e, do Projeto para a Implementação). Em um sistema orientado a objetos, os dados e todas as operações (funções), que manipulam esses dados, são agrupados em uma única estrutura: os objetos. Desde o início do desenvolvimento desses sistemas e, em todas as suas fases, o analista trabalha com o mesmo elemento de abstração, os objetos.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
6
Linguagem de Modelagem Unificada UML Orientado a Objetos Classe
O que é uma Classes? “Uma classe descreve um conjunto de objetos com propriedades e comportamentos semelhantes e com relacionamentos comuns com outros objetos” As classes são as partes mais importantes de qualquer sistema orientada a objetos. Usamos as classes para capturar o vocabulário do sistema que está em desenvolvimento. Essas classes podem incluir abstrações que são parte do domínio do problema, assim como as classes que fazem uma implementação. Podemos usar ainda as classes para representar itens de software, de hardware e até itens que sejam somente conceituais. Exemplo: A classe Pessoa deverá ter atributos e métodos comuns
Nome da Classe Pessoa Nome Idade GetNome GetIdade
Atributos Métodos
Os nome deverão ser identificadores únicos em conjunto de classes, este devem ser substantivos. Exemplo: Produto. Tipos de Classes: • Classe Concreta • Classe Abstrata
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
7
Linguagem de Modelagem Unificada UML Orientado a Objetos Classe Exemplo: A classe Pessoa. Classe concreta.
public class Pessoa { //Atributos private String nome; private int idade; //métodos public String getNome(){ return nome; }
Exemplo de diagrama de classe usando Rational Rose (notação Unified)
public void setNome(String nome){ this.nome = nome; } public int getIdade(){ return idade; } public void setIdade(int idade){ this.idade = idade; } }
Classe Concreta: Uma classe que tem assinatura e a implementação de métodos.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
8
Linguagem de Modelagem Unificada UML Orientado a Objetos Objetos O que são Objetos ? São qualquer coisa na natureza que possua propriedades (características) e comportamentos (operações). Exemplo: uma pessoa, uma cão e etc Orientação a Objetos: O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados. Estrutura de um objeto Objetos combinam propriedades (atributos) e comportamentos (operações ou métodos).
Exemplos de Objetos: Objeto: Pessoa
Propriedades Bonita Jovem Inteligente
Comportamentos Andar Correr Falar Chorar Dançar
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
9
Linguagem de Modelagem Unificada UML Orientado a Objetos Métodos Métodos são os comportamentos ou as funções do objeto. A declaração é feita da seguinte forma: < modificador > < tipo de retorno > < nome > ( < lista de argumentos > ) < bloco > < modificador > -> segmento que possui os diferentes tipos de modificações incluíndo public, protected, private e default (neste caso não precisamos declarar o modificador). < tipo de retorno > -> indica o tipo de retorno do método. < nome > -> nome que identifica o método. < lista de argumentos > -> todos os valores que serão passados como argumentos. Exemplos: public void somaDias (int dias) { } private int somaMes(int mês) { } protected String getNome() { } int getAge(double id) { } public class CalculaData { private int day, month, year; public float calcDays(int age ) { return 365.25F * age; } }
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
método
10
Linguagem de Modelagem Unificada UML Orientado a Objetos Atributos e variáveis (Linguagem Java) Os atributos são pertencentes a classe, eles podem ser do tipo primitivo ou referência (objetos), os seus modificadores podem ser: public, private, protected ou default. O ciclo de vida destes atributos estão vinculados ao ciclo de vida da classe. Variáveis Locais: São definidas dentro dos métodos. Elas têm o ciclo de vida vinculado ao ciclo do método, também são chamadas de variáveis temporárias
public class Disciplina { private int cargaHoraria; private String nome; public Disciplina(String nome, int cargaHoraria){ this.nome = nome; this.cargaHoraria = calcCargaHoraria(cargaHoraria); } public String getNome(){ return nome; } public int getCargaHoraria(){ return cargaHoraria; } public int calcCargaHoraria(int qdeHoras) { int horasPlanejamento = (int) ( qdeHoras * 0.1); return cargaHoraria = horasPlanejamento + qdeHoras; }
Modificador
Atributos
Variáveis temporárias
}
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
11
Linguagem de Modelagem Unificada UML Orientado a Objetos Abstração de Dados: Para discutirmos sobre classes abstratas é necessário falarmos sobre a abstração de dados. O que é abstração? Podemos dizer abstração é generalização. Qual é a função da abstração ? A função da abstração é capturar as propriedades e os comportamentos essenciais, como se fosse uma fatoração, desta forma determina-se o que é importante e o que não é.
Aeronave
Caça
Mamífero
Helicóptero Passageiros
Vaca
Urso
Cavalo
As classes Aeronave e Mamífero neste caso são abstratas e ambas representam um domínio.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
12
Linguagem de Modelagem Unificada UML Orientado a Objetos Abstração de Dados: Classes Abstratas Uma classe abstrata é uma classe que: • Provê organização • Não possui “instances” • Possui uma ou mais operações (métodos) abstratas
Pessoa
Classe Abstrata
getNome()
Pessoa Física getNome()
Pessoa Jurídica getNome()
Classe concreta Uma operação abstrata só determina a existência de um comportamento não definindo uma implementação. Classes Abstratas - Exemplo:
Funcionário
Analista
Classe Abstrata
Programador
Classe concreta
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
13
Linguagem de Modelagem Unificada UML Orientado a Objetos Relacionamento Ao construir as abstrações, descobrimos que são poucas as classes que trabalham sozinhas. Em vez disso, a maioria das classes colaboram com outras classes de várias maneiras. Portanto, quando estamos modelando, devemos identificar as classes, atributos, métodos e relacionamentos. Existem alguns tipos principais de relacionamentos entre classes e objetos: • Herança • Agregação Veja a definição de relacionamento:
Um relacionamento é a conexão entre itens. É representado graficamente como um caminho, que tem tipos diferentes de linhas para distinguir os tipos de relacionamentos. Exemplo: Hierarquia de Classes SuperClasse
Pessoa
SubClasses
Terceiro
Professor Autônomo
Aluno
Pessoal Operacional
Funcionário
Professor
Pessoal Administrativo
Relacionamento: 1 - Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário, estas são subclasse de Pessoa. 2 - Terceiro e Funcionário são SuperClasse de Professor e Pessoal Administrativo e de Professor Autônomo e Pessoal Operacional respectivamente. E estas são subclasse de Terceiro e Funcionário.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
14
Linguagem de Modelagem Unificada UML Orientado a Objetos Herança Herança é o mecanismo pelo qual elementos mais específicos incorporam a estrutura e comportamento de elementos mais gerais, Uma classe derivada herda a estrutura de dados e métodos de sua classe “base”, mas pode seletivamente: • adicionar novos métodos • estender a estrutura de dados • redefinir a implementação de métodos já existentes Uma classe “pai” proporciona a funcionalidade que é comum a todas as suas classes derivadas, filhas, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento. Exemplo:
Curso Universitário extends Graduação
Pós-Graduação extends
Especialização
Extensão
Hierarquia de Classes
Podemos dizer que Graduação é tipo de Curso Universitário, assim como Curso de Especialização ou de Extensão.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
15
Linguagem de Modelagem Unificada UML Orientado a Objetos Herança Exemplo: Implementação- Pessoa, Aluno, Terceiro, Funcionário public abstract class Pessoa { protected String idPessoa; protected int idade; protected String nome; public Pessoa(String nome) { this.nome = nome; } public abstract String getNome(); public void setidPessoa() { } public abstract int getIdade(); public void setIdade(int idade) {} }
public class Terceiro extends Pessoa{ private int codigoTerceiro; public Terceiro(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
public class Aluno extends Pessoa{ public Aluno(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
public class Funcionario extends Pessoa{ private int codigofuncionario; public Funcionario(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
Professor Professor Autônomo
Pessoal Operacional
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
Pessoal Administrativo
16
Linguagem de Modelagem Unificada UML Orientado a Objetos Herança Exemplo de Herança: Implementação: ProfessorAutonomo, PessoalOperacional, Professor e Pessoal Administrativo Pessoa
Terceiro
public class ProfessorAutonomo extends Terceiro{ public ProfessorAutonomo( String nome) { super(nome); } }
public class PessoalOperacional extends Terceiro{ public PessoalOperacional( String nome) { super(nome); } }
Aluno
Funcionário
public class Professor extends Funcionario{ public Professor( String nome) { super(nome); } }
public class PessoalAdministrativo extends Funcionario{ public PessoalAdministrativo( String nome) { super(nome); } }
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
17
Linguagem de Modelagem Unificada UML Orientado a Objetos Herança Múltipla A herança múltipla é quando uma classe tem mais que uma Superclasse associada e que herde as características de todas elas. Veja a figura abaixo: Superclasse
<<interface>> Mamífero
Superclasse
Pessoa
Pessoa Física
Pessoa Jurídica
Relacionamento: Pessoa Física é tipo de pessoa, mas também é mamífero. Na linguagem Java: A Herança múltipla é somente permitida por contrato, neste caso a Mamífero é uma Interface, podemos dizer que é tipo especial de classe, que não pode ter métodos implementados, apenas as assinaturas. <<interface>> Mamífero Interface: O que é interface ? Interface é um contrato entre o cliente, que pode ser classe concreta ou abstrata, e a interface. Este contrato é garantia que o métodos assinados na interface serão implementados na classe cliente. Nota: Na interface também podemos declarar constantes (public static final).
Exemplo de Interface
interface Product { String getName (); double getCost (); }
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
18
Linguagem de Modelagem Unificada UML Orientado a Objetos Herança Múltipla Exemplo: Implementação da classe Pessoa, PessoaFisica e PessoaJuridica e a interface Mamifero
public abstract class Pessoa { protected String idPessoa; protected int idade; protected String nome; public Pessoa(String nome) { this.nome = nome; } public abstract String getNome(); public abstract int getIdade(); public void setIdade(int idade){ }
public interface Mamifero { final int qdeOlhos=2;
}
public int getQdePernas(); }
extends implements
extends
public class PessoaFisica1 extends Pessoa implements Mamifero { public PessoaFisica (String nome) { super(nome); } public int getQdePernas(){ return 2; } public String getNome(){ return “”; } public int getIdade(){ return 0; } }
public class PessoaJuridica1 extends Pessoa { public PessoaJuridica1(String nome) { super(nome); } public int getIdade() { return 0; } public String getNome() { return ""; }; }
Exercício: 1 - Podemos implementar a herança múltipla na Classe Pessoa? Por que ? 2 - Por que somos obrigado a assinar ou implementar os métodos da Interface Mamifero na classe PessoaFisica
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
19
Linguagem de Modelagem Unificada UML Orientado a Objetos Encapsulamento É uma proteção adicional dos dados do objeto de possíveis modificações impróprias, forçando o acesso a um nível mais baixo para tratamento do dados. Operações/métodos/interface pública
Dados/Atributos/propriedades privada
public class Empregado { private private double double salario; salario;
Classe Empregado e método getSalario
O atributo salario
O atributo salario somente poderá ter um valor atribuído ou alterado, através de método público.
public Empregado(){ salario=0.00; } public double getSalario(){ return this.salario; } }
Através do método getSalario, que tem modificador public, podemos manipular ou recuperar o valor do atributo salario.
Encapsulamento (“data hiding”) Encapsulamento é definido como uma técnica para minimizar dependências entre “módulos” através da definição de interfaces externas. Também conhecido como: O fenômeno da “caixa preta”
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
20
Linguagem de Modelagem Unificada UML Orientado a Objetos Encapsulamento A interface (pública) de um objeto declara todas as operações permitidas (métodos) public class Empregado { private private double double salario; salario; public Empregado(){ salario=0.00; } public double getSalario(){ return this.salario; } }
public class Gerente1 extends Empregado { private double bonus = .15; public double getSalario(){ //referência ao método getSalario return super.getSalario() + (super.getSalario()*this.bonus); } } Todo o acesso aos dados do objeto é feito através da chamada a uma operação (método) da sua interface. Encapsulamento - Benefícios - Segurança: Protege os atributos dos objetos de terem seus valores corrompidos por outros objetos. - Independência: “Escondendo” seus atributos, um objeto protege outros objetos de complicações de dependência de sua estrutura interna
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
21
Linguagem de Modelagem Unificada UML Orientado a Objetos Polimorfismo Definição: “Polimorfismo” é uma operação que pode assumir múltiplas formas, a propriedade segundo o qual uma operação pode comportar-se diferentemente em classes diferentes” (Rumbaugh) O polimorfismo é o responsável pela extensibilidade em programação orientada a objetos.
overloading
Polimorfismo
overriding
Overloading: Possibilidade de reúso do nome do método para diferentes implementações, em tempo de execução, a aplicação, escolherá o método adequado para cada chamada, veja o exemplo. TesteSoma
Soma somar(int a, int b) somar(float a, float b) somar(char a, char b) somar(long a, long b))
Para cada tipo de dados existe um método, o reúso do nome do método é permitido, entretanto a lista de argumentos deve ser diferente, veja o exemplo acima: o método somar é definido várias vezes, entretanto com a lista de argumentos diferente, desta forma evitaremos problemas como ambigüidade.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
22
Linguagem de Modelagem Unificada UML Orientado a Objetos Polimorfismo Overrinding - Exemplo: Empregado setSalario() getSalario()
Engenheiro getSalario()
Gerente getSalario()
Secretária getSalario()
Diretor getSalario() O método setSalario é herdado da Superclasse (Empregado), entretanto para cada cargo (tipo de empregado) ele tem uma implementação diferente. Por exemplo: - Para Engenheiro e Secretária salário = (Dias Trabalhados x Valor hora) - Para Gerente salário = (Dias Trabalhados x Valor hora) + Bônus - Para Diretor salário = (Dias Trabalhados x Valor hora) + Bônus + Participação nos lucros. public class EmpregadoExemplo { private double salario;
}
public void setSalario(int diastrabalhados, double valorhora ){ this.salario = diastrabalhados * valorhora * 8; public class Engenheiro extends } EmpregadoExemplo { public double getSalario(){ public static void main(String args[]) return this.salario; { } Engenheiro eng = new Engenheiro(); eng.setSalario(22, 35.00); System.out.println(eng.getSalario()); } }
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
23
Linguagem de Modelagem Unificada UML Orientado a Objetos Polimorfismo Overrinding Uma subclasse pode mudar o comportamento herdado da Superclasse, ou seja, um método herdado poderá ser alterado. Veja o exemplo abaixo: Conta Bancária getSaldo()
Conta Corrente getSaldo()
Conta Poupança getSaldo()
Investimentos getSaldo()
O método getSaldo é herdado da Superclasse (Conta Bancária), entretanto para cada tipo de Conta ele tem uma implementação diferente. Por exemplo: - Para apurar o saldo da Conta Corrente saldo atual = (soma dos depósitos + saldo anterior) - saques Para a conta poupança seria saldo atual = (soma dos depósitos + saldo anterior + juros) - saques Para a conta de investimentos seria saldo atual = (soma dos aplicações + saldo anterior + juros) - resgates - ir Exercício: Faça a implementação das classes acima.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
24
Linguagem de Modelagem Unificada UML
Introdução a UML © Copyright Rildo Ferreira, e-tecnologia.com, 2009
25
Linguagem de Modelagem Unificada UML Introdução a UML Visão 4 + 1
Visão de Projeto
Visão da Implementação
Funcionalidade Vocabulário
Codificação Montagem
Visão de Caso de Uso Visão da Visão do Implantação Processo Topologia do Sistema Distribuição Instalação
Desempenho Escalabilidade Throughput
Conceitual
Físico
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
26
Linguagem de Modelagem Unificada UML Introdução a UML Visão 4 + 1 Visão de Caso de Uso •
A visão do caso de uso abrange os casos de usos que descrevem o comportamento do sistema conforme é visto pelos seus usuários finais, analista e pessoal de teste. Essa visão não especifica realmente a organização do sistema de softwasre. Porém , ela existe para especificar as forças que determinam a forma da arquitetura do Sistema. Com a UML, os aspectos estáticos dessa visão são representados em diagramas de caso de uso, enquanto os aspectos dinâmicos são representados em diagrama de interação., diagrama de gráfico de estados e diagrama de atividades
Visão de Processo •
A visão de projeto de um sistema abrange as classes e colaborações que formam o vocabulário do problema e de sua solução. Essa perpectiva proporciona principalmente um suporte para os requisitos
funcionais do sistema, ou seja, os serviços que o sistema deverá fornecer a seus usuários finais. Com a UML, os aspectos estáticos dessa visão são captados em diagramas de classes e de objetos; os aspectos dinâmicos são captados em diagramas de interações, de estados e de atividades.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
27
Linguagem de Modelagem Unificada UML Introdução a UML Visão 4 + 1 Visão de Processo •
A visão do processo abrange os threads e os processos que formam os mecanismos de concorrência e de sincronização do sistema. Essa
visão tem com objetivo principal tratar questões de desempenho, à escalabilidade e ao throughput do sistema. Com a UML, os aspectos estáticos e dinâmicos dessa visão são capturados nos mesmos tipos de diagrama da visão do projeto, mas o foco voltado para as classes ativas que repesentam esses threads e processos.
Threads = Linhas de execução em paralelos, estas linhs podem ser programas ou parte.
Visão de Implementação •
A visão de implementação de um sistema abrange os componentes e os arquivos utilizados para a montagem e fornecimento do sistema físico. Essa visão envolve principalmente o gerenciamento da configuração das versões do sistema, compostas por componentes e arquivos de alguma maneira independentes, que podem ser reunidos de diferentes formas para a produção de um sistema executável.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
28
Linguagem de Modelagem Unificada UML Introdução a UML Visão 4 + 1 Visão de Implantação •
A visão do implantação de um sistema abrange os nós que formam a topologia de hardware em que o sistema é executado. Essa visão
direciona principalmente a distribuição, o fornecimento e a instalação das partes que constituem o sistema físico. Com a UML, os aspectos estáticos dessa visão são representados em diagrmas de implantação; os aspectos dinâmicos são capturados em diagramas de interações, de gráfico de estados e diagramas de atividades.
Cada uma dessas visões pode ser considerada isoladamente, permitindo que diferentes participantes orientem seu foco para os aspectos da arquitetura do sistema que mais lhes interessem. Essas cincos visões também interagem entre sí, por exemplo: Os nós na visão de implantação contêm componentes da visão de implementação que, por sua vez, representa a realização física de classes, interfaces, colaborações e classes ativas provenientes das visões de projeto e de processo.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
29
Linguagem de Modelagem Unificada UML Introdução a UML Desenvolvimento de Software Estrutura:
Análise de Requisitos
Comportamento externo
Casos de Uso
Comportamento interno
Seqüência (eventos)
Colaboração
Estrutura
Classes
Implementação Distribuição
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
30
Linguagem de Modelagem Unificada UML Introdução a UML
Produtos dos Workflows de Requisitos e de Análise: Documento de Visão Requisitos Especificação de Requisitos (Casos de Uso) Modelo Conceitual ou Modelo de Domínio Análise
Arquitetura
Vocabulário do Sistema
Modelo de Arquitetura Inicial
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
31
Linguagem de Modelagem Unificada UML Introdução a UML
Produtos dos Workflows de Projeto Diagrama de Seqüência / Colaboração Diagrama de Atividades*
Projeto Diagrama de Estados* Diagrama de Classes (Refinado)
* se necessário © Copyright Rildo Ferreira, e-tecnologia.com, 2009
32
Linguagem de Modelagem Unificada UML Introdução a UML
Produtos dos Workflows de Arquitetura
Diagrama de Componentes
Arquitetura
Diagrama de Distribuição(Deployment)
Modelo de Arquitetura
* se necessário © Copyright Rildo Ferreira, e-tecnologia.com, 2009
33
Linguagem de Modelagem Unificada UML Introdução a UML Por que fazer a modelagem? Com a modelagem, alcançamos alguns objetivos: 1 - Os modelos ajudam a visualizar o sistema como ele é ou como desejamos que seja 2 - Os modelos permitem especificar a estrutura ou o comportamento de um sistema 3 - Os modelos proporcionam um guia para a construção do sistema 4 - Os modelos documenta o sistema Construímos modelos para compreender melhor que estamos desenvolvendo
O Que é Modelagem Visual?
Modelagem Visual significa modelar com a utilização de notações padrão. Precisamos adotar uma ferramenta, uma notação e linguagem para tal empreitada. UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem é das mais populares do momento. Mas podemos optar por usar OMT, por exemplo.
“A Modelagem captura as partes essenciais do sistema.” (Rumbaugh)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
34
Linguagem de Modelagem Unificada UML Introdução a UML O Que é Modelagem Visual? Modelagem visual significa modelar com a utilização de notações padrão. Precisamos adotar uma ferramenta, uma notação e linguagem para tal empreitada. UML (Linguagem de Modelagem Unificada) é a linguagem de modelagem é das mais populares do momento. A UML (Linguagem de Modelagem Unificado) é padrão mantido pelo OMG (www.omg.org/uml).
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
35
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? A UML (Linguagem de Modelagem Unificada) é uma linguagem-padrão para elaboração da estrutura de projetos de software. A UML poderá ser usada para: • Visualização • Especificação • Construção de modelos e diagramas • Documentação. A UML é adequada para a modelagem de sistemas, cuja a abrangência poderá incluir sistemas de informação corporativos a serem distribuídos a Aplicação baseadas em Web e até sistemas complexos embutidos de tempo real. A UML é apenas uma linguagem e, portanto, é somente uma parte de um método para desenvolvimento de software. Ela é independente do processo, apesar de ser perfeitamente utilizada em processo orientado a casos de usos, centrado na arquitetura, iterativo e incremental.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
36
Linguagem de Modelagem Unificada UML Introdução a UML Diagramas*
ESTÁTICOS . Diagrama de Classes . Diagrama de Objetos . Diagrama de Componentes . Diagrama de Distribuição
Modela a estrutura do sistema
DINÂMICOS . Diagrama de Casos de Uso . Diagramas de Interação - Diagrama de Seqüência - Diagrama de Colaboração . Diagrama de Atividade . Diagrama de Estados
Modela o comportamento do sistema
Nota: diagramas da versão 1.5 © Copyright Rildo Ferreira, e-tecnologia.com, 2009
37
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? A UML é linguagem para documentação A construção de software produz todos os tipos de artefatos além do código executável. Estes artefatos incluem o seguinte: - Requisitos - Arquitetura - Projeto - Código-Fonte - Planos de Projeto - Teste - Protótipos - Versões A UML abrange a documentação da arquitetura do sistema e de todos os seus detalhes. A UML também proporciona uma linguagem para expressão de requisitos e para realização de testes. Por fim, a UML oferece uma linguagem para modelagem das atividades de planejamento do projeto e de gerenciamento de versões. Onde a UML pode ser utilizada ? A UML se destina principalmente a construção de software complexos. Atualmente sendo empregada largamente na construção de Sites de E-commerce e E-business
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
38
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML O Vocabulário da UML abrange três tipos de blocos de construção: - Itens - Relacionamentos - Diagramas - Itens, Existem quatro tipos de itens na UML Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes mais estáticas do modelo, representando elementos conceituais ou físicos. Primeiro, as classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamento e semântica.
Nome Atributos Métodos
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
39
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Segundo, uma interface é uma coleção de operações que especificam serviços de uma classe ou componente. Portanto, uma interface descreve o comportamento externamente visível desse elemento. Uma interface poderá representar todo o comportamento de uma classe ou componente, como também apenas parte do comportamento. A interface define um conjunto de especificações de operações (assinaturas), mas nunca um conjunto de implementações de operações.
Calculo Terceiro, as colaborações definem interação e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos. Portanto, as colaborações contêm dimensões estruturais, assim como comportamentais. As colaborações representam a implementação de padrões que formam um sistema .
Cadeia de Responsabilidade
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
40
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. Um caso de uso é utilizado para estruturar o comportamento de itens em um modelo. Um caso de uso é realizado por uma colaboração.
FazerPedido
Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou threads e, portanto, podem iniciar a atividade de controle. Uma classe ativa é semelhante a um classe, exceto pelo fato de que seus objetos representam elementos cujo o comportamento é concorrente com o outros elementos.
ControlEvent start() sleep()
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
41
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens (continuação), Sexto, os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces.Tipicamente os componentes representam, o pacote físico de elementos lógicos diferentes, como classes, interfaces e colaborações.
Component.java
Sétimo, um nó é elemento físico existente em tempo de execução que representa um recurso computacional, geralmente com pelo menos alguma memória e, frequentemente, capacidade de processamento. Exemplo de nós: - Computadores (estações clientes e servidores) - Redes - Roteadores
Servidor
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
42
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens Comportamentais São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado comportamento no tempo e espaço. Ao todo, existem dois tipos de itens comportamentais: Primeiro, um interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para realização de propósitos específicos. As interações envolvem outros elementos, inclusive mensagens, sequência de ações (os comportamentos chamados pelas mensagens) e ligações (as conexões entre os objetos)
Mostrar Segundo, uma máquina de estado é um comportamento que especifica as sequências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos. O comportamento de classe ou de uma colaboração pode ser especificado por meio de uma máquina de estados. Uma máquina de estados abrange mais elementos, tais como, transições (o fluxo de um estado a outro evento), evento (itens que disparam uma transição) e atividades (as respostas às transições).
Aguardando
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
43
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Itens de Agrupamentos Os itens de agrupamento são partes organizacionais dos modelos de UML. São os blocos em que os modelos podem ser decompostos. Ao todo, existe apenas um tipo principal de itens de agrupamento chamado de pacotes. Um pacote é mecanismo de propósito geral para a organização de elementos em grupos. Os itens estruturais, os itens comportamentais e até outros itens de grupos podem ser colocados em pacotes. Ao contrário dos componentes (que existem em tempo de execução), um pacote é puramente conceitual (o que significa que existe apenas em tempo de desenvolvimento.
Aplicação Interface de Usuário Regras de Negócios
Controle
- Itens Anotacionais Itens anotacionais são as partes explicativas dos modelos UML. São comentários, incluídos para descrever, esclarecer e fazer alguma observação sobre qualquer elemento do modelo. Existe apenas um item anotacional chamado nota
Imprimir Recibo
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
44
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML - Relacionamentos Existem quatro tipos de relacionamentos na UML: 1 - Dependência 2 - Associação 3 - Generalização 4 - Realização Esses relacionamentos são blocos relacionais básicos de construção da UML. O primeiro dependência é um relacionamento semântico entre dois itens, nos quais a alteração de um (o item independente) pode afetar a semântica do outro (o dependente). Sua representa é linha tracejada, possivelmente com setas e ocasionalmente incluindo um rótulo.
O segundo associação é um relacionamento estrutural que descreve um conjunto de ligações, em que as ligações são conexões entre objetos. A agregação é um tipo especial de associação, representando um relacionamento estrutural entre o todo e suas partes. É representada por uma linha sólida, possivelmente direcionadas, ocasionalmente incluído rótulos e freqüentemente, contendo outros adornos, como nomes de papéis e multiplicidade.
*
empregador
Pessoa
Empregador funcionário
0..1
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
45
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Blocos de construção da UML O terceiro é a generalização é um relacionamento de especialização e generalização, nos quais os objetos dos elementos especializados (os filhos) são substituíveis por objetos do elemento generalizados (os pais). Dessa forma, os compartilham a estrutura e comportamento dos pais.
Médico
generalização
especialização
Clinico Geral
Pediatra
O quarto é a realização é um relacionamento semântico entre classificadores, em que um classificador especifica um contrato que outro classificador garante executar. Os relacionamentos de realização são encontrados em dois locais: entre interface e as classes ou componentes que as realizam; entre casos de uso e as colaborações que os realizam.
Place order
colaboração
Order management
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
46
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Revisão Blocos de construção da UML
O Vocabulário da UML abrange três tipos de blocos de construção: - Itens - Relacionamentos - Diagramas - Itens, Existem quatro tipos de itens na UML Itens estruturais: São os substantivos utilizados em modelos da UML. São as partes mais estáticas do modelo, representando elementos conceituais ou físicos. Primeiro, as classes são descrições como conjuntos de objetos que compartilham os mesmos atributos, operações, relacionamento e semântica. Segundo, uma interface é uma coleção de operações que especificam serviços de uma classe ou componente. Terceiro, as colaborações definem interação e são sociedades de papéis e outros elementos que funcionam em conjunto para proporcionar um comportamento cooperativo superior à soma de todos os elementos.
Quarto, um caso de uso é a descrição de conjunto de sequência de ações realizadas pelo sistema que proporciona resultados observáveis de valor para um determinado ator. Quinto, as classes ativas são classes cujos os objetos têm um mais processos ou threads e, portanto, podem iniciar a atividade de controle
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
47
Linguagem de Modelagem Unificada UML Introdução a UML O Quê é a UML? Revisão Sexto, os componentes são partes físicas e substituíveis de um sistema, que proporcionam a realização de um conjunto de interfaces. Sétimo, um nó é elemento físico existente em tempo de execução que representa um recurso computacional
- Itens Comportamentais São parte dinâmicas dos modelos de UML. São os verbos de um modelo, representado comportamento no tempo e espaço. Ao todo, existem dois tipos de itens comportamentais: Primeiro, interação é um comportamento que abrange um conjunto de mensagens trocadas entre um conjunto de objetos em determinado contexto para realização de propósitos específicos. Segundo, uma máquina de estado é um comportamento que especifica as sequências de estados pelas quais objetos ou interações passam durante sua existência em resposta a eventos, bem como suas respostas a esses eventos.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
48
Linguagem de Modelagem Unificada UML
Diagramas da UML Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
49
Linguagem de Modelagem Unificada UML Introdução a UML Casos de Uso O que são Caso de Uso? São diagramas de que permitem visualizar, especificar e documentar o comportamento de um elemento. Esses diagramas fazem com que sistema, subsistemas e classes fiquem acessíveis e compreensíveis, por apresentarem uma visão externa sobre como esses elementos podem ser utilizados no contexto. Definição: Caso de Uso é uma descrição de um conjunto de seqüências de ações, inclusive variantes, que um sistema pode produzir um resultado de valor observável por um ator. A representação gráfica é uma elipse. Elementos dos Caso de Uso: Ator: Um ator representa um conjunto coerente de papéis que os usuários de casos de uso desempenham quanto interagem com esses casos de uso. Geralmente um ator representa um papel, que pode ser de pessoa, de um sistema ou de um dispositivo. Cenários: Podemos definir os cenários como uma instância de um Caso de uso. O caso de uso deve ser descrito através de cenários. Devem ser construídos tantos cenários quantos forem necessários para se entender completamente todo o sistema. Podem ser considerados como teste informais para validação dos requisitos do sistema.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
50
Linguagem de Modelagem Unificada UML Introdução a UML Casos de Uso Diagramas de Caso de Uso e Extensões Pedir lista dos matriculados Sistema de cobrança
Aluno
Professor Matrícula nos Cursos
Selecionar curso para ensinar
Manter informação de aluno
Manter informações dos cursos
Gerente Manter informação de professor
Gerar catalogo
Generalização: Entre casos de uso é parecida à generalização existente entre as classes. No caso de uso a generalização significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer local qual o pai apareça. Include: Quando você estiver se repetindo em dois ou mais caso de uso separados devemos evitar a repetição Extends: Quando estivermos descrevendo uma variação em comportamento normal, entretanto, querendo fazer uma descrição mais controlada, explicando os pontos de extensão no caso de uso. Realizes: Especifica a colaboração entre os casos de uso Use (obsoleto): Especifica que a semântica do elemento de origem depende da semântica da parte pública do destino
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
51
Linguagem de Modelagem Unificada UML Introdução a UML Casos de Uso Descrição dos Cenários: Nome Descrição Objetivo
AutenticarSenha Autenticar Senha Identificar o usuário, autenticar senhas e autorizar acesso.
Atores
Usuário
Papéis: Funcionário Administrativos, Alunos e Professores Usuário cadastro no sistema senhas, Usuário não estar “logado” Pré Condição Dados Entrada Entrada: Código do usuário e senha de acesso Saída: Autorização para uso (Pasta de Acesso) ou uma mensagem de alerta e Saída Sequência de troca mensagens Ator Sistemas 1. Usuário chama uma interface Registro 2. Usuário informa seu código e sua senha. 3. Usuário requisita autenticação dos dados informados. 4. Aplicativo processa a autenticação da senha, faz a identificação do usuário. Verificar se usuário tem o status de Liberado. 5. Conferir se senha não está expirada. 6. Conferir se senha informada coincide com a senha gravada. 7. Retornar uma mensagem e uma assinatura. 8 Usuário recebe a mensagem, ou seja, a autorização Pasta de Acesso, formatada de acordo sua interface. Curso Alternativo (Exceção): Ator
Pós Condição Interfaces
Sistemas 4. Usuário com status de bloqueado. Retornar mensagem de alerta/erro 5. Senha expirada. Retornar mensagem de alerta/erro (O usuário deverá trocar a senha – ver case de uso AlterarSenha) 6. Senha não confere. Retornar mensagem de alerta/erro de senha inválida. Registrar a quantidade de tentativas sem sucesso, caso seja igual a 5 (limite de tentativas) o sistema bloqueará o usuário, mudando o status de liberado para bloqueado automaticamente.
Autorização (Pasta de acesso) Registro
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
52
Linguagem de Modelagem Unificada UML Introdução a UML Casos de Uso Descrição dos Cenários: Regras de Negócios Regras de Negócios: Autenticação: A senha será validada, seguindo as regras de negócios de Autenticação de Senha: 1 - O usuário deve estar cadastrado no Aplicativo; 2 - A senha não pode estar expirada; 3 - O usuário deve ter um “status” de Liberado; 4 - A senha informada (criptografada) deve coincidir com senha gravada na tabela de senhas. Autorização 5 - Somente o usuário detentor da senha poderá altera-lá
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
53
Linguagem de Modelagem Unificada UML Introdução a UML Casos de Uso - Identicação de Atores Ator Os atores não são parte do sistema - eles representam qualquer um e qualquer coisa que faça interação com sistema. Podendo ser uma pessoa, software, hardware e etc. Uma ator pode: - Apenas fornecer informações ao sistema - Apenas receber informações ao sistema - Fornecer e receber informações ao sistema Tipicamente os atores são identificados nas declarações de problemas ou através de entrevistas com os usuários e outros analistas envolvidos no processo, como, Analista de Sistema e Analista de Negócio, por exemplo. As seguintes questões podem ser usadas para identificar o atores: - Onde o sistema será usado ? - Quais áreas serão usuárias do sistema ? - O sistema usará recurso externo ? - Quem será o responsável pelo sistema ? - Quem serão os usuários do sistema ?
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
54
Linguagem de Modelagem Unificada UML Diagramas da UML Casos de Uso Generalização: Entre casos de uso é parecida à generalização existente entre as classes. No caso de uso a generalização significa que o caso de uso filho herda o comportamento e o significado do caso de uso pai; o filho poderá acrescentar ou sobrescrever o comportamento de seu pai; poderá ser substituído em qualquer local qual o pai apareça. Include: Quando você estiver se repetindo em dois ou mais caso de uso separados, devemos evitar a repetição Extends: Quando estivermos descrevendo uma variação em comportamento normal, entretanto, querendo fazer uma descrição mais controlada, explicando os pontos de extensão no caso de uso. Realizes: Especifica a colaboração entre os casos de uso Use (obsoleto): Especifica que a semântica do elemento de origem depende da semântica da parte pública do destino
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
55
Linguagem de Modelagem Unificada UML Diagramas da UML Casos de Uso Explicando o estereotipo <<extend>>
Extend:
Podemos usa-los em dois momentos 1 Variação Cada uma das extensões descreve as diferentes maneiras com que um passo do caso de uso pode ser executado. Exemplo: ReceberConta
<<extend>>
<<extend>>
Dinheiro
CartaoCredito
<<extend>>
Cheque
2 Casos excepcionais Condições de falha que podem ocorrer e serem recuperada em único passo e requerem um caso de uso para sua descrição. DevolvendoCarro
<<include>>
<<extend>>
<<include>>
AlterarDisponibilidadeCarro
ConsultarCliente
CalcularMulta
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
56
Linguagem de Modelagem Unificada UML Diagramas da UML Casos de Uso Explicando o estereotipo <<include>>
PlaceOrder <<include>> ValidateUser TrackOrder <<include>>
Um relacionamento de inclusão entre casos de uso significa que o caso de uso base incorpora explicitamente o comportamento de outro caso de uso em uma localização especificada na base. O caso de uso incluído nunca permanece isolado, mas é apenas uma “instance” como parte de alguma base maior que o inclui. Você pode pensar na inclusão como o caso de uso base que o obtém o comportamento a partir do fornecedor do caso de uso. Você utiliza um relacionamento de inclusão para evitar descrever o mesmo fluxo de eventos várias vezes, incluindo o comportamento comum em um caso de uso próprio. O relacionamento de inclusão é essencialmente um exemplo de delegação, você coleta um conjunto de responsabilidades do sistema e o captura um único local (o caso de uso incluído); depois, permite que outras partes do sistema (outros casos de uso) incluam a nova agregação de responsabilidade sempre que precisamos utilizar essa funcionalidade.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
57
Linguagem de Modelagem Unificada UML Diagramas da UML Exemplo: Casos de Uso
Locadora de carros Uma locadora aluga carros aos clientes previamente cadastrados. Caso o cliente não esteja cadastrado, esta atividade custodial é realizada, separadamente em outra atividade do sistema. Caso um carro, disponível, seja escolhido pelo cliente este é alugado, sendo registrada a data inicial junto ao aluguel. Para que o cliente possa alugar um carro, este não pode estar com dívida pendente. Os carros são descritos pela placa, ano, modelo, descrição, km, preço por km, situação(disponível, etc), taxa diária, observações(informações gerais) e sua imagem. Os clientes são cadastrados pelo seu cpf, nome, endereço, telefone e dívida(reservado para registrar pagamentos pendentes). Quando o cliente devolve o carro, a situação do carro é mudada para “disponível”, o km é atualizado com o km atual do carro e um recibo é emitido, baseado nos kms rodados e nos dias em que ficou com o carro. Ainda na atividade de devolução é removido o registro do aluguel e, caso o cliente não possa pagar, a dívida do aluguel é registrada junto ao cliente.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
58
Linguagem de Modelagem Unificada UML Diagramas da UML Exemplo: Casos de Uso Objetivo: Fazer locação de carros Restrição: Cliente não pode ter dividas pendentes Atores: Atendente Entidade Custodial Candidatos a Casos de Usos: Cadastrar Cliente Cadastrar Carro VerificarDadosCliente VerificarDividadoCliente VerificarDisponibilidadeVeiculo (Locar) EntregarVeiculo (Devolução) ReceberVeículo EmitirRecibo RegistrarDivida Candidatos a Classe: Veículos Clientes Divida do Cliente Locação Empregado
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
59
Linguagem de Modelagem Unificada UML Diagramas da UML Exemplo: Casos de Uso Continuação: Atores: Atendente: Faz o atendimento ao cliente da Locadora Entidade Custodial: Faz o cadastro da custódia do cliente Candidatos a Casos de Usos: Cadastrar (Cliente e Carro) VerificarDadosCliente (Se é cliente e se tem divida) VerificarDisponibilidadeVeiculo EntregarVeiculo ReceberVeículo EmitirRecibo RegistrarDivida Candidatos a Classe: Veículo DadosdoCliente DividadoCliente Locação Empregado
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
60
Linguagem de Modelagem Unificada UML Diagramas da UML Exemplo: Casos de Uso Diagrama de Caso de Uso
CadastrarCliente
Cadastrar
EntidadeCustodia AlterarDisponibidadeVeiculo
CadastrarCarro
Atendente
<<include>> <<extend>>
SocilicarCadastro Verif icarDadosCliente
ReceberVeiculo
<<include>> <<include>>
<<include>> Verif icarDisponibilidadeVeiculo ReceberPagtoCliente <<extend>> <<extend>>
RegistrarDiv ida
EntregarVeiculo
ImprimirRecibo
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
61
Linguagem de Modelagem Unificada UML Diagramas da UML Casos de Uso Cenário do Caso de Uso: VerificarDadosCliente
Nome: VerificarDadosCliente Objetivo: Verificar se Cliente está cadastro no Sistema e e divida pendente Pré-condição: Cliente solicitar uma locação Ator: Atendente Fluxo Normal: 1-O atendente solicita o número do CPF 2-Digita o CPF no sistema 3-O sistema verifica se cliente está cadastrado e se tem divida pendente 4-O sistema envia mensagem cliente cadastrado e não há divida Fluxo Alternativo 1 (Cliente não cadastrado): 4-O sistema envia mensagem cliente não cadastrado 5-Solicita o cadastro da custódia do cliente Fluxo Alternativo 2 (Cliente com divida): 4-O sistema envia mensagem cliente cadastrado e com divida pendente
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
62
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Seqüência O que é Diagramas de Seqüência? É um diagrama que exibe a colaboração dinâmica entre os vários objetos de um sistema. O principal aspecto deste diagrama é que a partir dele percebe-se a seqüência de mensagens enviadas entre os objetos. Ele mostra a interação entre os objetos, alguma evento que acontecerá em um ponto específico da execução do sistema. formulários de registro
formulário de matrícula
cursos disponíveis
Ator (José) entrar com chave de acesso validar acesso entrar com o semestre
criar nova matrícula
apresentar em tela obter cursos
Diagrama de Seqüência Explicando o diagrama: O diagrama de seqüência consiste em um número de objetos mostrado em linhas verticais. O decorrer do tempo é visualizado observando-se o diagrama no sentido vertical de cima para baixo. As mensagens enviadas por cada objeto são simbolizadas por setas entre os objetos que se relacionam. Diagramas de seqüência possuem dois eixos: o eixo vertical, que mostra o tempo e o eixo horizontal, que mostra os objetos envolvidos na seqüência de uma certa atividade. Eles também mostram as interações para um cenário específico de uma certa atividade do sistema. © Copyright Rildo Ferreira, e-tecnologia.com, 2009
63
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Seqüência
Diagrama de Seqüência Explicando o diagrama (continuação) No eixo horizontal estão os objetos envolvidos na seqüência. Cada um é representado por um retângulo de objeto (similar ao diagrama de objetos) e uma linha vertical pontilhada chamada de linha de vida do objeto, indicando a execução do objeto durante a seqüência, como exemplo citamos: mensagens recebidas ou enviadas e ativação de objetos. A comunicação entre os objetos é representada como linha com setas horizontais simbolizando as mensagens entre as linhas de vida dos objetos. A seta especifica se a mensagem é síncrona, assíncrona ou simples. As mensagens podem possuir também números seqüenciais, eles são utilizados para tornar mais explícito as seqüência no diagrama.
Em alguns sistemas, objetos executam de forma concorrente, cada um com sua linha de execução (thread). Se o sistema usa linhas concorrentes de controle, isto é mostrado como ativação, mensagens assíncronas, ou objetos assíncronos. Os diagramas de seqüência podem mostrar objetos que são criados ou destruídos como parte do cenário documentado pelo diagrama. Um objeto pode criar outros objetos através de mensagens. A mensagem que cria ou destrói um objeto é geralmente síncrona, representada por uma seta sólida
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
64
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Seqüência Exemplo: EntregarVeiculo
: Atendente
: Cliente
: Veiculo
: Locacao
getDadosCliente( )
[* se cliente cadastrado verificar divida ] getDivida( )
getDisponibilidade( )
setSaida( ) [* se veículo disponível ]
Este diagrama descreve em ordem cronológica as mensagens entre os objetos. Neste momento estamos dizendo o como o Caso de Uso deve ser implementado
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
65
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Seqüência Explicando os detalhes: Instance das classes ator
: Atendente
: Cliente
: Veiculo
: Locacao
getDadosCliente( )
[* se cliente cadastrado verificar divida ] getDivida( )
getDisponibilidade( )
setSaida( ) [* se veículo disponível ]
Autodelegação
Linha do tempo
As interações entre os objetos
Restrição ou condição
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
66
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Colaboração O que é Diagramas de Colaboração? É um diagramas que mostra a colaboração dinâmica entre os objetos, semelhante ao diagrama de seqüência. No diagrama de colaboração, além de mostrar a troca de mensagens entre os objetos, percebe-se também os objetos com os seus relacionamentos. A interação de mensagens é mostrada em ambos os diagramas. Se a ênfase do diagrama for o decorrer do tempo, é melhor escolher o diagrama de seqüência, mas se a ênfase for o contexto do sistema, é melhor dar prioridade ao diagrama de colaboração. Podemos também escolher ambos. O diagrama de colaboração é desenhado como um diagrama de objeto, onde os diversos objetos são mostrados juntamente com seus relacionamentos. As setas de mensagens são desenhadas entre os objetos para mostrar o fluxo de mensagens entre eles. As mensagens são nomeadas, que entre outras coisas mostram a ordem em que as mensagens são enviadas. Também podem mostrar condições, interações, valores de resposta, e etc. O diagrama de colaboração também pode conter objetos ativos, que executam paralelamente com outros. 2: validar acesso 1:entrar com chave de acesso
3:entrar com o semestre formulários de registro
4:criar nova matrícula Ator (José) 5:apresentar em tela
cursos disponíveis
formulário de matrícula 6:obter cursos
Diagrama de Colaboração NOTA: O diagrama de colaboração em alguns caso pode ser considerado opcional. Pode-se escolher entre utilizar o diagrama de colaboração ou o diagrama de seqüência.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
67
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Colaboração
2: getDivida( )
1: getDadosCliente( )
: Cliente
: Atendente
3: getDisponibilidade( ) 4: setSaida( )
: Veiculo
: Locacao
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
68
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Estado O que é Diagrama de Estado? É um diagrama que tipicamente complementa a descrição das classes. Pois este diagrama exibe todos os estados possíveis que objetos de uma certa classe podem se encontrar e mostra também quais são os eventos do sistemas que provocam tais mudanças. Não necessário escrever o diagrama de estado para todas as classes de um sistema, mas apenas para aquelas que possuem um número definido de estados conhecidos e onde o comportamento das classes é afetado e modificado pelos diferentes estados. Diagramas de estado capturam o ciclo de vida dos objetos, subsistemas e sistemas. Eles mostram os estados que um objeto pode possuir e como os eventos (mensagens recebidas, tempo, erros, e condições sendo satisfeitas) afetam estes estados ao passar do tempo. Adicionar Aluno
Criação faça: Crie o objeto curso
Atribuição Curso faça: Atribuir um professor ao curso
Matrícula aberta/inicialize númeroDeAlunos = 0
Curso Aberto Entrada: Registre um aluno
cancelarCurso cancelarCurso cancelarCurso
Curso Cancelado faça: envie notificação de cancelamento
cancelarCurso
Curso Encerrado faça: relate curso esta cheio
Registro fechado [númeroDeAlunos<3]
Registro fechado [númeroDeAlunos>=3 ]
Registro fechado [número de alunos =10]^Curso .Criar relatório
Curso Completado faça: Gerar lista de alunos
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
69
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Diagramas de estado possuem um ponto de início e vários pontos de finalização. Um ponto de início (estado inicial) é mostrado como um círculo todo preenchido, e um ponto de finalização (estado final) é mostrado como um círculo em volta de um outro círculo menor preenchido. Um estado é mostrado como um retângulo com cantos arredondados. Entre os estados estão as transições, mostrados como uma linha com uma seta no final de um dos estados. A transição pode ser nomeada com o seu evento causador. Quando o evento acontece, a transição de um estado para outro é executada ou disparada. Uma transição de estado normalmente possui um evento ligado a ela. Se um evento é anexado a uma transição, esta será executada quando o evento ocorrer. Se uma transição não possuir um evento ligado a ela, a mesma ocorrerá quando a ação interna do código do estado for executada (se existir ações internas como entrar, sair, fazer ou outras ações definidas pelo desenvolvedor). Então quando todas as ações forem executadas pelo estado, a transição será disparada e serão iniciadas as atividades do próximo estado no diagrama de estados.
Elementos Verificando
Estado
Transição
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
Fim
Inicio
70
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Os diagramas de estados são compostos de transições e estados. As transições são associadas com ações e são consideradas como processo de curta duração e não podem ser interrompidos. Os estados são associados com as atividades e podem levar mais tempo. Uma atividade pode ser interrompida por algum evento.
Exemplo: Diagrama de Estado Telefone início
transição fora do gancho Ativo
ocioso no gancho Estado
Final
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
71
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Estado Aplicação Um diagrama de estado pode ser aplicado a diversos elementos da UML, tais como: - Classes - Tipos (conceitos) - Casos de Uso Exemplo:
início
[Nem todos os itens verificados]/pegar próximo item [Todos os itens verificados e os todos itens disponíveis]
Verificando
[Todos os itens verificados e alguns itens não estão disponíveis]
[itens ecebidos [alguns itens não estão disponíveis]
Expedindo
Item recebido [os todos itens disponíveis]
Aguardando
cancelamento cancelado
Cancelamento
Entregue
final
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
72
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade O que é Diagrama de Atividade? É um diagramas que exibe o fluxo seqüencial das atividades, é geralmente utilizado para demonstrar as atividades executadas por uma operação específica do sistema, como por exemplo seleção de um item do menu principal. Consistem em estados de ação, que contém a especificação de uma atividade a ser desempenhada por uma operação do sistema. Decisões e condições, como execução paralela, também podem ser mostrados na diagrama de atividade. O diagrama também pode conter especificações de mensagens enviadas e recebidas como partes de ações executadas. Diagramas de atividade capturam ações e seus resultados. Eles focam o trabalho executado na implementação de uma operação (método), e suas atividades numa instância de um objeto. O diagrama de atividade é uma variação do diagrama de estado e possui um propósito um pouco diferente do diagrama de estado, que é o de capturar ações (trabalho e atividades que serão executados) e seus resultados em termos das mudanças de estados dos objetos.
Vendas
Cliente
Estoque
Fazer Pedido
Processar Pedido Separar Produtos Enviar Pedido
Receber Pedido
Cobrar Cliente
Pagar Fatura Fechar Pedido
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
73
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Os estados no diagrama de atividade mudam para um próximo estágio quando uma ação é executada (sem ser necessário especificar nenhum evento como no diagrama de estado). Outra diferença entre o diagrama de atividade e o de estado é que podem ser colocadas como swimlanes (raias). Uma swimlane agrupa atividades, com respeito a quem é responsável e onde estas atividades residem na organização, e é representada por retângulos que englobam todos os objetos que estão ligados a ela (swimlane). Um diagrama de atividade é uma maneira alternativa de se mostrar interações, com a possibilidade de expressar como as ações são executadas, o que elas fazem (mudanças dos estados dos objetos), quando elas são executadas (seqüência das ações), e onde elas acontecem (swimlanes). Um diagrama de atividade pode ser usado com diferentes propósitos inclusive: Para capturar os trabalhos que serão executados quando uma operação é disparada (ações). Este é o uso mais comum para o diagrama de atividade. Para capturar o trabalho interno em um objeto. Para mostrar como um grupo de ações relacionadas podem ser executadas, e como elas vão afetar os objetos em torno delas. Para mostrar como uma “instance” pode ser executada em termos de ações e objetos. Para mostrar como um negócio funciona em termos de trabalhadores (atores), fluxos de trabalho, organização, e objetos (fatores físicos e intelectuais usados no negócio). Enfim o diagrama de atividade mostra o fluxo seqüencial das atividades, é normalmente utilizado para demonstrar as atividades executadas por uma operação específica do sistema. Consistem em estados de ação, que contém a especificação de uma atividade a ser desempenhada por uma operação do sistema. Decisões e condições, como execução paralela, também podem ser mostrados na diagrama de atividade. O diagrama também pode conter especificações de mensagens enviadas e recebidas como partes de ações executadas.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
74
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Exemplo:
Diagrama de Atividades
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
75
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Componentes: Atividade atividade
transição
decisão
Barras de sincronização
Exemplo com comentários: Cliente
Vendas
Fazer Pedido
Estoque
atividade
Processar Pedido Separar Produtos
separação
Enviar Pedido
Receber Pedido
Cobrar Cliente
Pagar Fatura Fechar Pedido
junção raias
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
76
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Atividade Exemplo com comentários: Receber Pedido
Preencher Pedido
Enviar Fatura
Entrega [pedido urgente]
[senão]
Receber Pagamento Entrega durante a noite
Entrega Regular
Encerrar Pedido
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
77
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Pacotes Como podemos definir o diagrama de pacotes? A definição de Pacote é uma generalização, ou seja, um agrupamento, com o propósito de organizar as Classes de Objetos em grupos. Esta abordagem facilita a análise a medida que o número de Classes de Objetos cresce num do cenário. O tipo de relacionamento é linha pontilhada com uma seta que indica dependência. A notação usada pela UML para representar pacotes é:
Nome do Pacote
Exemplo: As classes pertencentes ao Sistema de Matrícula podem ser agrupadas em três pacotes: • UI (Interface Usuário) • Regras de Negócio • Interfaces de Banco de Dados
Interfaces com Usuário
Regras de Negócios
Interfaces de Banco de Dados {abstrata}
Interface MySQL
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
78
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Pacotes Podemos usar a estrutura de pacotes para criar coesão entre as classes que tem objetivo comum, por exemplo podemos colocar em único pacote todas as classes que se referem a regras de negócios. Exemplo:
Aplicação
Interface de Usuário
Regras de Negócios
Controle
Fisicamente os pacotes tem a estrutura de diretório e subdiretório, isto que dizer que a Aplicação terá a seguinte formato: Aplicação Regras de Negócios Interface de Usuário Controle
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
79
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Classes
O que é um Diagrama de Classes? É um diagrama que demonstra a estrutura estática das classes de um sistema e seus relacionamentos. Classes podem se relacionar com outras através de diversas maneiras: associação (conectadas entre si), dependência (uma classe depende ou usa outra classe), especialização (uma classe é uma especialização de outra classe), ou em pacotes (classes agrupadas por características similares). Todos estes relacionamentos são mostrados no diagrama de classes juntamente com as suas estruturas internas, que são os atributos e operações. O diagrama de classes é considerado estático já que a estrutura descrita é sempre válida em qualquer ponto do ciclo de vida do sistema. Um sistema normalmente possui alguns diagramas de classes, já que não são todas as classes que estão inseridas em um único diagrama e uma certa classes pode participar de vários diagramas de classes. Pessoa
Professores
Funcionários Administrativo
Alunos
1 1 Matricula
1
1
Curso
1 1..*
tem
Disciplinas
Uma classe num diagrama pode ser diretamente implementada utilizando-se uma linguagem de programação orientada a objetos que tenha suporte direto para construção de classes. Para criar um diagrama de classes, as classes têm que estar identificadas, descritas e relacionadas entre si.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
80
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Objetos O que é um Diagrama de Objetos? É um diagrama que exibe uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é que o diagrama de objetos mostra os objetos que foram “instanciados” das classes. O diagrama de objetos é como se fosse o perfil do sistema em um determinado momento de sua execução. A mesma notação do diagrama de classes é utilizada, entretanto há duas diferenças: os objetos são escritos com seus nomes sublinhados e todas as instâncias num relacionamento são mostradas. Os diagramas de objetos não tem a mesma importância do diagramas de classes, mas eles são muito úteis para exemplificar diagramas complexos de classes ajudando muito em sua compreensão. Diagramas de objetos também são usados como parte dos diagramas de colaboração, onde a colaboração dinâmica entre os objetos do sistema são mostrados.
:Aluno Nome: “Fulano de Tal” Data: 23-02-2001
201-23-02-01:Matricula Matricula: 201-23-02-01 Curso: Adm Empresas
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
81
Linguagem de Modelagem Unificada UML Diagramas da UML Diagrama de Classes
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
82
Linguagem de Modelagem Unificada UML Diagramas da UML Mapeamento do Diagrama de Classes e Modelo de Entidades e Relacionamento Veja a tabela abaixo que relaciona as característica da UML e MER:
UML
MER
Classes Persistentes
Entidades
Associação
Relacionamentos
Atributos
Atributos
Roles
Roles
Multiplicidade
Constraints
Generalização e Especialização
Generalização e Especialização
Os atributo de uma classe persistente são mapeado para colunas de entidade
Classe persistente
Pessoa -idpessoa -nome
Entidade
Pessoa Idpessoa <pk> nome
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
83
Linguagem de Modelagem Unificada UML Diagramas da UML Mapeamento Diagrama de Classes e Modelo de Entidades e Relacionamento Um exemplo de mapeamento Diagrama de classe (UML) e entidade (MER) {abstract}
Pessoa
-nome -idade Classes
Funcionário funcao
Cliente Idcliente telefone
Veja agora o mapeamento para entidade MER, para cada classe criaremos uma entidade correspondente:
Pessoa idpessoa <pk> nome idade
é um
é um
Funcionário
Cliente
idpessoa <fk> funcao
idpessoa <fk> idcliente <pk> telefone
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
84
Linguagem de Modelagem Unificada UML Diagramas da UML Mapeamento Diagrama de Classes e Modelo de Entidades e Relacionamento Neste exemplo o mapeamento é feito para duas entidades:
Funcionário
Cliente
idfunc <pk> nome idade funcao
idcliente <pk> nome idade telefone
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
85
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Componente
O que é um Diagrama de Componente? É um diagrama que exibe o sistema por um lado funcional, expondo as relações entre seus componentes e a organização de seus módulos durante sua execução. O diagrama de componente descreve os componentes de software e suas dependências entre si, representando a estrutura do código gerado. Os componentes são a implementação na arquitetura física dos conceitos e da funcionalidade definidos na arquitetura lógica (classes, objetos e seus relacionamentos). Eles são tipicamente os arquivos implementados no ambiente de desenvolvimento.
Curso.jar
Pessoa.jar
Disciplina.classr
Aluno.class
Professores.class
Um componente é mostrado em UML como um retângulo com uma elipse e dois retângulos menores do seu lado esquerdo. O nome do componente é escrito abaixo ou dentro de seu símbolo. Componentes são tipos, mas apenas componentes executáveis podem ter instâncias. Um diagrama de componente mostra apenas componentes como tipos. Para mostrar instâncias de componentes, deve ser usado um diagrama de execução, onde as instâncias executáveis são alocadas em nodes. © Copyright Rildo Ferreira, e-tecnologia.com, 2009
86
Linguagem de Modelagem Unificada UML Introdução a UML Diagrama de Componente A dependência entre componentes pode ser mostrada como uma linha tracejada com uma seta, simbolizando que um componente precisa do outro para possuir uma definição completa. Com o diagrama de componentes é facilmente visível detectar que arquivos .jar são necessários para executar a aplicação. Componentes podem definir interfaces que são visíveis para outros componentes. As interfaces podem ser tanto definidas ao nível de codificação (como em Java) quanto em interfaces binárias usadas em run-time (COM). Uma interface é mostrada como uma linha partindo do componente e com um círculo na outra extremidade. O nome é colocado junto do círculo no final da linha. Dependências entre componentes podem então apontar para a interface do componente que está sendo usada. Exemplo:
Pessoa.jar
Reserva.jar
CheckIN
PessoaFisica.
PessoaJuridica
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
87
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Distribuição O que é Diagrama de Distribuição? É um diagrama que exibe a arquitetura física do hardware e do software no sistema. Pode apresentar os atuais computadores e periféricos, juntamente com as conexões que eles estabelecem entre si e pode mostrar também os tipos de conexões entre esses computadores. Especifica-se também os componentes executáveis e objetos que são alocados para mostrar quais unidades de software são executados e em que destes computadores são executados. O diagrama de distribuição demonstra a arquitetura runtime de processadores, dispositivos físicos e de software que executam no ambiente onde o sistema desenvolvido será utilizado. É o último diagrama da topologia do sistema, descrevendo a estrutura de hardware e software que executam em cada unidade. O diagrama de distribuição é composto por componentes, que possuem a mesma simbologia dos componentes do diagrama de componentes, nodes, que significam objetos físicos que fazem parte do sistema, podendo ser uma computador cliente em uma Rede, um computador Servidor, uma impressora, um roteador, etc., e conexões entre estes nodes e componentes que juntos compõem toda a arquitetura física do sistema.
<<TCP/IP>> <<TCP/IP>>
Cliente A
0..*
1
Servidor de Aplicação
1
1
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
Servidor de Banco de Dados
88
Linguagem de Modelagem Unificada UML Projeto e Modelagem Visual com UML Diagrama de Distribuição Exemplo:
Banco de Dados Corporativo Oracle Server Cliente
* HTPP Servidor
Banco de Dados Web
Apache sob Linux
MySQL
1
Firewall HTPP
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
89
Linguagem de Modelagem Unificada UML
Projeto de Desenvolvimento: Um exemplo
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
90
Linguagem de Modelagem Unificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Fases do Desenvolvimento O desenvolvimento de um sistema de informação, de acordo com metodologia rápida, é divido em duas etapas: enquanto a primeira fase, Definição de Requisitos, tem por objetivo determinar os requisitos, a segunda Análise, tem a finalidade de definir os módulos componentes do sistema. Definição dos Requisitos
O objetivo desta fase é determinar a funcionalidade esperada pelo usuário do sistema. Num projeto de construção civil, esta fase corresponderia ao projeto de arquitetura, onde se descrevem as características da casa que são visíveis ao seu morador. O produto desta fase é chamado de Modelo de Requisitos. A estrutura do Modelo de Requisitos é exibida na figura abaixo. Cada uma das caixas representa um ou mais documentos que devem ser apresentados no final da fase. O diagrama indica que o modelo de Requisitos é composto de: Modelo de Casos de Uso, uma protótipo e um Glossário. Por sua vez, o Modelo de Casos de uso é composto de diagramas de caso de uso, cada destes contém uma descrição para o caso de uso.
Modelos de Requisitos
1..* Diagrama de Casos de Uso
Protótipo
Glossário
Casos de Uso 1..* Descrição do Caso de Uso
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
91
Linguagem de Modelagem Unificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Segunda fase: Análise e Projeto O objetivo desta fase é produzir um plano que permita a construção do sistema. Por exemplo, comparando mais uma vez a engenharia civil, esta fase corresponderia às plantas detalhadas da construção de uma casa. Em termos de software, a planta do sistema é a especificação de suas classes componentes, que chamamos de Modelo de Análise e Projeto. O Modelo de Análise e Projeto é composto pelo Modelo Estático e pelo Modelo Dinâmico. O modelo estático é composto por um conjunto de diagramas de classes. O Modelo Dinâmico é composto por conjuntos de Diagramas de Seqüência e Diagrama de Estados.
Modelos de Análise e Projeto
Modelo Estático
1..* Diagrama de Classes
Modelo Dinâmico
1..* Diagrama de Sequência
1..* Diagrama de Estado
1..* Classes
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
92
Linguagem de Modelagem Unificada UML Exemplo de Projeto de Desenvolvimento com UML Projeto de Desenvolvimento Roteiro para o Desenvolvimento de Sistema usando a Metodologia Rápida 1 - Definir o escopo do Sistema; 2 - Produzir o Modelo de Requisitos 2.1 - Identificar os casos de usos 2.2 - Identificar os atores 2.3 - Identificar e definir as entidades do domínio do problema 2.4 - Definir os casos de uso que podem ser abstraídos 2.5 - Fazer agrupamento dos casos de uso com semântica semelhante 2.6 - Verificar o Modelo de Requisitos 3 - Produzir o Modelo de Análise e Projeto, executando as seguintes etapas: 3.1 - Criar um diagrama com modelo de classes do domínio do problema; 3.2 - Criar um diagrama com o modelo de classes de cada agrupamento de casos de uso. Este modelo deve conter as classes de domínio, interface e controle envolvidas no agrupamento de casos de uso. 3.3 - Fazer um diagrama de seqüência para cada agrupamento de caso de uso. 3.4 - Criar um diagrama de transição e estados para as classes de domínio, interface e controle que tenham ciclos de vida não-triviais. 3.5 - Revisar o diagrama de classes (reveja os relacionamentos) 3.6 - Verificar o modelo de Análise e Projeto.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
93
Linguagem de Modelagem Unificada UML
Estudo de Caso e ExercĂcio Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
94
Linguagem de Modelagem Unificada UML Estudo de Caso Caso Prático •
A Universidade ESU quer informatizar seu sistema de matrícula – A Secretaria produz o currículo para o semestre – Os Alunos selecionam 4 matérias principais e 2 matérias alternativas – Após a matrícula, o sistema de cobranças será notificado para que receba o pagamento do estudante por um semestre – Os Alunos podem usar o sistema para adicionar ou remover matérias por um determinado período após a matrícula – Os Professores usam o sistema para receber a lista de ofertas de cursos – Os usuários do sistema de matrícula tem senhas que são utilizadas para validação de logon
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
95
Linguagem de Modelagem Unificada UML Estudo de Caso Atores •
Um Ator é alguém ou alguma coisa que deve interagir com o sistema a ser desenvolvido
Professor
Secretaria
Aluno
Sistema Cobrança
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
96
Linguagem de Modelagem Unificada UML Estudo de Caso Casos de Uso: •
•
Um caso de uso é um padrão de comportamento que o sistema exibe – Cada caso de uso é uma seqüência de transações relacionadas executadas por um ator e o sistema num diálogo Atores são examinados para determinar suas necessidades – Secretaria -- manter o curriculum – Professor -- solicitar lista de cursos – Aluno -- manter o horário de aulas – Sistema Cobrança -- recebe informações sobre cobranças
Manter Curriculum
Solicitar Lista de Cursos
Manter Horário
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
97
Linguagem de Modelagem Unificada UML Estudo de Caso Documentando Caso de Uso •
Um documento de fluxo de eventos é criado para cada caso de uso – Escrito do ponto de vista do ator Detalha o que o sistema deve fornecer quando o caso de uso é executado Conteúdos típicos – Como o caso de uso inicia e termina – Fluxo normal de eventos – Fluxos alternativos de eventos – Fluxos excepcionais de eventos (respostas a erros)
• •
Fluxo de Eventos de Manter Curriculum •
• • • • •
Este caso de uso inicia quando a Secretaria entra no sistema e entra sua senha. O sistema verifica se a senha é válida (E-1) e solicita a escolha do semestre atual ou futuro (E-2). A Secretaria entra o semestre desejado. O sistema pergunta qual a atividade desejada: INCLUIR, APAGAR, MODIFICAR, ou SAIR. Caso a atividade selecionada seja INCLUIR, o S-1: O sub-fluxo Inclui uma Matéria é executado. Caso a atividade selecionada seja APAGAR, o S-2: O sub-fluxo Apaga uma Matéria é executado. Caso a atividade selecionada seja MODIFICAR, o S-3: O sub-fluxo Modificar uma Matéria é executado. Caso a atividade selecionada seja SAIR, o caso de uso termina. ...
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
98
Linguagem de Modelagem Unificada UML Estudo de Caso Diagrama de Caso de Uso •
Diagramas de caso de uso são criados para se visualizar a relação entre atores e casos de uso
Aluno Mantém Horário
Sistema Cobrança Solicita Lista de Cursos Professor
Mantém Curriculum Secretaria
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
99
Linguagem de Modelagem Unificada UML Estudo de Caso Usos e Extensões das Relações de Casos de Uso •
À medida em que casos de uso são documentados, outras relações entre casos de uso poderão ser descobertas – Uma relação de uso (usa) mostra comportamento que é comum a um ou mais casos de uso – Uma relação de extensão mostra comportamento opcional
<<extends>> Matricular para cursos
<<extends>>
Validar Senha
Manter Curriculum
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
100
Linguagem de Modelagem Unificada UML Estudo de Caso Realizações de Casos de Uso: • •
O Diagrama de Caso de Uso apresenta uma visão externa do sistema Diagramas de Interação descrevem como casos de uso são realizados como interações entre associações de objetos Há dois tipos de Diagramas de Interação – Diagramas de Seqüência – Diagramas de Colaboração
•
Diagrama de Seqüência: •
Um Diagrama de Seqüência mostra interações de objetos ordenados numa seqüência de tempo
: Aluno
Formulário de Matrúcula
Gerente de Matrículas
Matemática Básica
Matemática Álgebra
1: preenche 2: envia 3: curso(Maria,matemática) 4: está aberto?
5: está aberto? Tempo
6: incui(Maria l) 7: incui (Maria)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
101
Linguagem de Modelagem Unificada UML Estudo de Caso Diagrama de Colaboração •
Um Diagrama de Colaboração mostra interações organizadas à volta de objetos e as ligações de um para o outro
1: pega informação curso 2: processa
curso form : cursoForm
3: incui curso
: Secretaria
Diretor : Diretor_do_Curso
acurso : curso 4: novo curso
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
102
Linguagem de Modelagem Unificada UML Estudo de Caso Diagrama de Classes •
Um Diagrama de Classes mostra a existência de classes e suas relações com a visão lógica do sistema Elementos de UML presentes nos Diagramas de Classes: – Classes, suas estruturas internas e comportamento – Associações, agregações, dependências, e relações de herança – Multiplicidade e indicadores de navegação – Nomes de papéis (O que uma classe representa para outra)
•
Classes • • •
Uma classe é uma coleção de objetos com um estrutura, comportamento, relações e semântica comuns Classes são descobertas pelo exame dos objetos nos diagramas de Seqüência e Colaboração Uma classe é desenhada como um retângulo com três compartimentos: – – –
•
Primeiro: Nome da classe Segundo: Atributos (opcional) Terceiro: Métodos (opcional)
Classes devem ser nomeadas usando o vocabulário do domínio – Padrões de nomenclatura devem ser estabelecidos – Regra: Todos os nomes de classes são substantivos no singular, iniciando com letra maiúscula Exemplo: Cliente, Fornecedor, Pessoa, Aluno e etc.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
103
Linguagem de Modelagem Unificada UML Estudo de Caso Classes: Diretor Matrícula
Algorítmo de Horário
Curso
Formulário Matrícula Aluno
Professor
Oferta Curso
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
104
Linguagem de Modelagem Unificada UML Estudo de Caso Classes: • •
O comportamento de uma classe é representado pelas suas operações Operações podem ser encontradas examinando-se os Diagramas de Interação Matrícula form
Matrícula Gerente Diretor Matrícula
3: matricula curso(Maria, matemática)
Matricula (aluno,curso)
Atributos:
Cada Curso oferecido possui um número, local e horário
Oferta Curso número local horário
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
105
Linguagem de Modelagem Unificada UML Estudo de Caso Classes
Diretor Matrícula
Algorítmo de Horário
incluiAluno(curso, AlunoInfo)
Formulário Matrícula
Aluno nome nível
curso nome NúmeroCréditos abrir() incluirAluno(AlunoInfo)
Professor nome StatusCadeira
Oferta Curso local abrir() incluirAluno(AlunoInfo)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
106
Linguagem de Modelagem Unificada UML Estudo de Caso Relacionamento: • •
•
Relações fornecem um caminho para a comunicação entre os objetos Diagramas de seqüência e/ou colaboração são examinados para determinar quais ligações entre objetos precisam existir para se chegar ao comportamento desejado. -- Caso dois objetos precisem “conversar” deverá haver uma ligação entre elas Há três tipos de relações: – Associação e Agregação – Dependência – Herança
Associação: •
•
•
Uma associação é uma conexão bidirecional entre classes – Uma associação é mostrada como uma linha conectando as classes relacionadas. Uma agregação é um tipo mais forte de conexão, aonde a relação é entre o todo e suas partes. – Uma agregação é mostrada como uma linha conectando as classes relacionadas com um losango perto da classes que representa o todo Uma relação de dependência é uma forma mais fraca de relação, mostrando uma relação entre um cliente e um fornecedor, aonde o cliente não tem conhecimento semântico do fornecedor – Uma dependência é mostrada como uma linha pontilhada entre o cliente e o fornecedor
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
107
Linguagem de Modelagem Unificada UML Estudo de Caso Descobrindo os Relacionamentos: •
Relações são descobertas examinando-se os Diagramas de Sequência – Caso dois objetos devam “conversar”, deverá haver um caminho para a comunicação
Diretor Matrícula
Álgebra curso
3: insere aluno(Maria)
Diretor Matrúcula
curso
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
108
Linguagem de Modelagem Unificada UML Estudo de Caso Relacionamento:
Algorítmo de Horário
Diretor Matrícula incluiAluno(curso, AlunoInfo)
curso
Formulário Matrícula
nome NúmeroCréditos
Aluno
abrir() incluirAluno(AlunoInfo)
nome nível
Professor nome StatusCadeira
Oferta Curso local abrir() incluirAluno(AlunoInfo)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
109
Linguagem de Modelagem Unificada UML Estudo de Caso Multiplicidade e Navegação: •
•
Multiplicidade define como muitos objetos participam numa relação – Multiplicidade é o número de instâncias de uma classe que se relacionam a UMA instância de uma outra classe – Para cada associação e agregação, haverá duas decisões relativas a multiplicidade a se tomar: Uma para cada lado da relação Apesar de associações e agregações serem bidirecionais por definição, freqüentemente é desejável restringir a navegação em uma única direção – Caso a navegação seja restringida, uma seta é adicionada para se indicar a direção da navegação
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
110
Linguagem de Modelagem Unificada UML Estudo de Caso Multiplicidade e Navegação:
Algorítmo de Horário
Diretor Matrícula incluiAluno(curso, AlunoInfo)
1
1
Formulário Matrícula
0..*
curso 0..*
Aluno
abrir() incluirAluno(AlunoInfo)
nome nível
1
3..10
1..*
4
Professor nome StatusCadeira
nome NúmeroCréditos
Oferta Curso 1
local
0..4
abrir() incluirAluno(AlunoInfo)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
111
Linguagem de Modelagem Unificada UML Estudo de Caso Herança • •
•
Herança é uma relação entre uma super-classe e suas subclasses Há duas formas de se descobrir heranças: – Generalização – Especialização Atributos comuns, operações, relações e/ou, são mostradas no nível aplicável mais alto da hierarquia
Formulário Matrícula
Algorítmo de Horário
Diretor Matrícula incluiAluno(curso, AlunoInfo)
curso nome NúmeroCréditos
Usuário nome
abrir() incluirAluno(AlunoInfo)
Aluno nome nível
Professor nome StatusCadeira
Oferta Curso local abrir() incluirAluno(AlunoInfo)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
112
Linguagem de Modelagem Unificada UML Estudo de Caso O Estado de um Objeto •
•
Um diagrama de transição de estados mostra – O ciclo de vida de uma classe – Os eventos que causam a transição de um estado para outro – As ações que resultam de uma mudança de estado Diagramas de Transição de Estados são criados para objetos que tenham um comportamento dinâmico significante
Inclui aluno[ contador < 10 ]
Iniciar Ação
Incluir Aluno / Contador = 0
Abrir
fazer: Iiniciar curso
entrar: Registrar Aluno Sair: incrementa contador
Cancelar
Cancelar
[ contador = 10 ]
Cancelado fazer: Notificar Aluno Matriculado
Cancelar
Fechado fazer: Finalize curso
Diagrama de Transições de Estados
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
113
Linguagem de Modelagem Unificada UML Estudo de Caso O Mundo Físico • •
Diagramas de Componentes ilustram a organização e dependências entre componentes de software Um componente pode ser: – Um componente de código fonte – Um componente de runtime, ou – Um componente executável
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
114
Linguagem de Modelagem Unificada UML Estudo de Caso Diagrama de Componentes
Cobrança
Registro
Sistema Cobrança
Usuário
pessoa.jar
curso.jar curso
Curso.class
Oferta curso.class
Aluno.class
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
Professor.class
115
Linguagem de Modelagem Unificada UML Estudo de Caso Distribuindo o Sistema • •
O Diagrama de Distribuição mostra a configuração dos elementos de processamento runtime e dos processos que rodam dentro deles O Diagrama de Distribuição visualiza a distribuição dos componentes através de toda a empresa
Diagrama de Distribuição
Matrícula
Database
Sede Principal
Biblioteca
Salas
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
116
Linguagem de Modelagem Unificada UML Exercício
Declaração do Problema:
O Hotel “Só quero Sossego” está precisando de sistema para automatizar suas principais atividades e facilitar o gerenciamento de suas operações. O hotel contém um número de apartamentos disponíveis para serem alugados aos hospedes. Cada apartamento tem as seguintes características: - Número, preços base, capacidade de pessoas - Tipo (Single, double, triplo ou suíte) O preço de cada apartamento está relacionado com seu tipo e sazonalidades (períodos especiais, tais como: férias, natal, carnaval...) Um hospede pode fazer reserva de mais de um apartamentos através do telefone, Internet ou pessoalmente no balcão de reserva do Hotel . As reversas devem ser registras no livro de reservas, que deve conter as seguintes informações: - Tipo de apartamento, período, duração da estadia e data da reserva. A reserva somente é confirmada após a verificação da disponibilidade do apartamento na data informada. O cliente deve receber as seguintes informações se confirmada a reserva: - Preço e detalhes sobre hotel. Caso contrário deve receber a informação que não foi possível fazer a reserva para data informada.
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
117
Linguagem de Modelagem Unificada UML Exercício
Declaração do Problema (continuação): - As reservas também podem ser feitas diretamente na Recepção do Hotel. No Check-in o hospede é identificado juntamente com sua reserva. No Check-out verifica-se todos os serviços prestados ao hospede e as despesas advindas desses serviços tais como: lavandeira, restaurante, telefonia, assim como a consumação do “frigobar”. O cliente poderá pagar a conta com cartão de crédito, dinheiro, cheque ou cheque de viagens. A disponibilidade deseja para o sistema é de 24x7 para Internet, as interfaces com usuários devem ser simples e sistema deve seguir o padrão de Identidade Visual (Manual de Identidade Visual). O sistema deve implementar um nível de segurança que garanta que somente o usuário que possuir uma senha (esta deve ser criptografa) poderá fazer alterações nos dados da reserva ou alterar seus cadastrais.
Exercício: - Fazer o Diagrama de Caso de Reserva - Fazer o Diagrama de Seqüência - Fazer o Diagrama de Classes (Classes de Negócio) - Fazer o Diagrama de Projeto (Refinamento de Casses) - Fazer o Diagrama de Competentes © Copyright Rildo Ferreira, e-tecnologia.com, 2009
118
Linguagem de Modelagem Unificada UML
ApĂŞndice
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
119
Linguagem de Modelagem Unificada UML
Apêndice A Notação UML SÍMBOLO GRÁFICO
NOME
DIAGRAMAS EM QUE APARECE USUALMENTE
MODELO A QUE PERTENCEM
ASSOCIAÇÂO DE Diagrama de Classes, Diagrama de Componentes. AGREGAÇÃO
Classes de Objetos
Diagrama de Classes, ASSOCIAÇÂO DE COMPOSIÇÃO Diagrama de Componentes.
Classes de Objetos
Diagrama de Casos de Uso, ASSOCIAÇÂO DE Diagrama de Classes, DEPENDÊNCIA Diagrama de Componentes, Diagrama de Implantação. ASSOCIAÇÂO DE GENERALIZAÇÃO
ASSOCIAÇÂO REGULAR
Diagrama de Casos de Uso, Diagrama de Classes. Diagrama de Casos de Uso, Diagrama de Classes, Diagrama de Componentes, Diagrama de Implantação.
Componentes
Componentes
Caso de Uso Classes de Objetos Componentes Componentes Caso de Uso Classes de Objetos Caso de Uso Classes de Objetos Componentes Componentes
ATOR
Diagrama de Casos de Uso, Diagrama de Seqüência.
Caso de Uso
CASO DE USO
Diagrama de Casos de Uso.
Caso de Uso
Caso de Uso
Nome da Classe Atributos
CLASSE
Diagrama de Classes.
Classes de Objetos
Operações
Nome do Componente
COMPONENTE
Diagrama de Componentes
Diagrama de Estados, Nome do Estado
ESTADO
Diagrama de Atividades. Diagrama de Estados,
Componentes
Classes de Objetos Caso de Uso Classes de Objetos
ESTADO FINAL Diagrama de Atividades
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
Caso de Uso
120
Linguagem de Modelagem Unificada UML
Apêndice A Notação UML ESTADO INICIAL Nome da “Interface”
ou
Classes de Objetos Caso de Uso
<<interface>> Nome da “Interface” Operação1 () Operação2 () Operação3 ()
“INTERFACE”
Diagrama de Componentes
Componentes
INTERVALO DE EXECUÇÃO DE OPERAÇÂO
Diagrama de Seqüência
Caso de Uso
MENSAGEM DE RETORNO
Diagrama de Seqüência
Caso de Uso
Diagrama de Seqüência
Caso de Uso
Diagrama de Seqüência
Caso de Uso
Diagrama de Implantação
Componentes
MENSAGEM E CHAMADA DE OPERAÇÂO “Síncrona” MENSAGEM E CHAMADA DE OPERAÇÃO “Assíncrona” NÓ
NOTA
texto
identificador:Classe
Diagrama de Estados, Diagrama de Atividades.
ou
Nome do Pacote
:Classe
Em qualquer diagrama
Diagrama de Seqüência,
Caso de Uso
Diagrama de Atividades
Caso de Uso
OBJETO
PACOTE
TRANSIÇÃO DE ESTADO
AUTODELEGAÇÃO
Em qualquer diagrama em que é necessário representar um conjunto de coisas que devem estar agrupadas para efeito de uma organização apropriada
Diagrama de Estados,
Classes de Objetos
Diagrama de Atividades
Caso de Uso
Diagrama de Seqüência
Caso de Uso
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
121
Linguagem de Modelagem Unificada UML
Apêndice B UML 2.0 Diagramas:
Visões UML 2.0: Visão
Descreve
Diagramas
Visão de Requisitos Funcionais
Requisitos funcionais do sistema pelo ponto de vista do usuário.
diagramas de casos de uso
Visão Estrutural Estática
Estrutura estática do sistema.
diagrama de classes diagrama de estruturas
Visão de Comportamento Dinâmico
Comportamento dinâmico do sistema, mostrando suas interações.
diagramas de seqüências diagramas de atividades diagramas de estados
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
122
Notas: Linguagem
de Modelagem Unificada UML
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de responsabilidade de seus proprietários. O autor informa não estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde já o autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. É proibido o uso deste material para fins comerciais.
Melhoria e Revisão: Este material esta em processo constante de revisão e melhoria, se você encontrou algum problema ou erro envie um e-mail nós.
Criticas e Sugestões: Nós estamos abertos para receber criticas e sugestões que possam melhorar o material, por favor envie um e-mail para nós.
Imagens: Google, Flickr e Banco de Imagem.
Rildo F dos Santos (rildosan@uol.com.br)
123 © Copyright Rildo Ferreira, e-tecnologia.com, 2009
Licença: Linguagem
de Modelagem Unificada UML
124 Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
Licença: Linguagem
de Modelagem Unificada UML
125 Š Copyright Rildo Ferreira, e-tecnologia.com, 2009
Linguagem de Modelagem Unificada UML
Notas do autor
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de responsabilidade de seus proprietários. O autor informa não estar associada a nenhum produto e/ou fornecedor apresentado neste material. No decorrer deste, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e desde já o autor informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou desmerecimento do produto/fabricante. Melhoria e Revisão: Este material esta em processo constante de revisão e melhoria, se você encontrou algum problema ou erro envie um e-mail nós.
Criticas e Sugestões: Nós estamos abertos para receber criticas e sugestões que possam melhorar o material, por favor envie um e-mail para nós.
Imagens: Google, Flickr e Banco de Imagem.
Rildo F dos Santos (rildosan@uol.com.br)
© Copyright Rildo Ferreira, e-tecnologia.com, 2009
126
Linguagem de Modelagem Unificada
UML - Linguagem de UML Modelagem Unificada
Š Copyright Rildo Ferreira, e-tecnologia.com, 2009