UnifiedModelingLanguage
Agenda
Software e modelagem; UML
Introdução;Diagramas;
Comentários finais;
Agenda
Software e modelagem; UML
Introdução;Diagramas;
Comentários finais;
Evolução do software
O surgimento de sistemas de software complexos resultou na necessidade de reavaliar a forma de desenvolver sistemas;
As técnicas tem evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas.
Novos requisitos de sistemas
Escalabilidade; Segurança; Robustez; De fácil manutenção; Reutilizável;
Como resolver isso...
Modelagem
Um modelo pode ser visto como uma representação idealizada de um sistema a ser construído;
Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos;
Uma simplificação da realidade que nos ajuda a entender um problema complexo;
Modelagem de software
A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.
Para que modelar
Ajuda no gerenciamento da complexidade inerente ao desenvolvimento de software;
Ajuda na comunicação entre as pessoas envolvidas;
Ajuda na predição do comportamento futuro do sistema.
Evolução da modelagem
Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas;
Houve uma grande proliferação de propostas para modelagem de sistemas segundo o paradigma orientado a objetos;
Existiam diferentes notações gráficas para modelar uma mesma perspectiva de um sistema.
Necessidade de um padrão
Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente;
Surgiram esforços nesse sentido de padronização, sendo o principal liderado por James Rumbaugh, Grady Booch e Ivar Jacobson (Rational).
Agenda
Software e modelagem; UML
Introdução;Diagramas;
Comentários finais;
UML...
Surge a UML em 1996 como a melhor candidata para ser a linguagem unificadora de notações;
Em 1997 a UML é aprovada como padrão pela OMG;
Desde então tem tido grande aceitação;
Atualmente na versão 2.0;
Características da UML
É uma linguagem visual; É independente de linguagem de
programação; É independente de processo de
desenvolvimento; Não é uma linguagem de programação; Não é uma metodologia.
Usos da UML
Visualização; Especificação; Documentação; Comunicação; Construção.
Diagramas Podem ser usados para... Mostrar os limites de um sistema e suas
funções; Representa a estrutura estática de um
sistema; Modelar o comportamento de objetos; Apresentar a implementação física e a
arquitetura de um sistema;
Elementos Essenciais Estruturais
Cliente<<entity>>
-razaoSocial: String-cpf: String
+getRazaoSocial()+setRazaoSocial(razaoSocial: String)
ClasseCliente
Objeto
Interface
Web Server
Nó
ocv.dll
Componente
Relacionamentos
IImprimivel
Elementos Essenciais Comportamentais
Operador
Programar produçãoConectando
Caso de uso
Ator
Estados Mensagens
Elementos Essenciais Extensão
{nome=J oão da SilvaCpf=12345678901}
Notas servem para adicionaralguma informação nos diagramas
Notas Tagged Values
Elementos Essenciais Agrupamento
Banco de Dados
Regras de negócio
Interface
Pacotes
Agenda
Software e modelagem; UML
Introdução;Diagramas;
Comentários finais;
Diagrama de Casos de UsoVisão Geral Descreve o que o
sistema faz do ponto de vista do observador externo;
Ajuda a esclarecer os requisitos do sistema;
Ajuda a dividir o desenvolvimento do sistema em tarefas;
Diagrama de Casos de Uso Caso de uso Representa as
diferentes funcionalidades que o sistema disponibiliza aos usuários.
Programar produção
Produzir pedido
Solicitar material
Diagramas de Caso de Uso Atores Diferentes usuários que
operam o sistema; Sistemas externos que
interagem com o sistema;
Gerente
Sistema de estoque
Operador
Diagramas de Caso de Uso Associação
Representa a comunicação entre o ator e o caso de uso;
Também existem associações entre casos de usos;
Gerar relatórios de serviços
Gerente
Diagramas de Caso de Uso Diagrama completo
Gerente
Sistema de estoque
Operador
Produzir pedido
Programar produção
Solicitar material
Gerar relatórios de serviços
Cenário do sistema para na produção
Diagramas de Classe Visão Geral Largamente utilizado; Descreve os diferentes
tipos de objeto e o relacionamentos entre eles.
Diagramas de Classe Classes Estereótipo; Atributos; Operações; Visibilidade; Tipo;
Pagamento<<entity>>
-quantia: Float
+getQuantia()
Pedido<<entity>>
-data: date-status: Integer-obs: String-valorTotal: Float
+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)
Estereótipo
Nome
Atributos
Métodos
Diagramas de Classe Relacionamentos Associações
representam relações entre ocorrências de classes;
Cliente<<entity>>
-razaoSocial: String-cpf: String
+getRazaoSocial()+setRazaoSocial(razaoSocial: String)
0..*
1
Pedido<<entity>>
-data: date-status: Integer-obs: String-valorTotal: Float
+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)
Diagramas de Classe Relacionamentos Multiplicidade; Navegabilidade;
Pagamento
-quantia
Cliente
-nome-cpf
Pedido
-data-status
+calcImposto()+calcTotal()
1..*
1 0..*
1
Diagramas de Classe Relacionamentos Agregação; Composição;
Computador
Monitor
TecladoCpu
ItemPedido<<entity>>
+qtd: Integer
+setQuantidade(qtd: Integer)+setProduto(produto: Produto)
1
1..*
Pedido<<entity>>
-data: date-status: Integer-obs: String-valorTotal: Float
+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)
Diagramas de Classe Relacionamentos Generalização; Dependência;
Cheque
-banco
Cartao
+numero+tipo
Pagamento
-quantia
FormPedido<<boundary>>
+criarPedido()+gravarPedido()
Pedido<<entity>>
-data: date-status: Integer-obs: String-valorTotal: Float
+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)
Diagramas de Classe Pacotes Agrupa classes
relacionadas;
Regras de negócio
Interface
Banco de Dados
Diagramas de Classe Diagrama completo
Cliente<<entity>>
-razaoSocial: String-cpf: String
+getRazaoSocial()+setRazaoSocial(razaoSocial: String)
Pedido<<entity>>
-data: date-status: Integer-obs: String-valorTotal: Float
+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)
0..*1
Pagamento<<entity>>
-quantia: Float
+getQuantia()
Dinheiro<<entity>>
Cheque<<entity>>
-banco: Integer
Cartao<<entity>>
+numero: Integer+tipo: Integer
1..*1
ItemPedido<<entity>>
+qtd: Integer
+setQuantidade(qtd: Integer)+setProduto(produto: Produto)
1
1..*
FormPedido<<boundary>>
+criarPedido()+gravarPedido()
Produto<<entity>>
+descricao: String
1 0..*
Diagrama de Seqüência
Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles;
Diagrama de seqüência dá ênfase à seqüência de mensagens;
Diagrama de Seqüência Objetos Representa uma
instância de uma determinada classe;
: ItemPedido<<entity>>
Diagrama de Seqüência Mensagens Representa troca de
mensagens entre os objetos;
8 : setQuantidade()
10 : calcSubTotal()
Diagrama de Seqüência Fragmentos Servem para separar
blocos de mensagens condicionadas a teste ou laço;
Insere itenssd
Diagrama de Seqüência
Insere itens
: Pedido<<entity>>
: ItemPedido<<entity>>
: Atendente
: FormPedido<<boundary>>
1 : cria pedido()2 : create()
3 : informa cliente()4 : setCliente()
5 : informa item()6 : create()
7 : setProduto()
8 : setQuantidade()
9 : insereItem()
10 : calcSubTotal()
Insere quantos itens quiser
Diagrama de sequência referenteà inserção de pedidos
11 : Atualizar()
12 : finaliza edição()
Diagrama de estados
Exibe os possíveis estados de um objeto;
Exibe também as transições que causam a mudança de estado.
Diagramas de Classe Elementos básicos Estado inicial; Estado final; Estado intermediário;
A
B
State1
State3
State1
State3
Diagramas de Estados Diagrama completo
Rejeitando
Validando
Lendo usuário
Lendo Senha
Exibe mensagem de erro
Submete
Cursor para campo de senha
Cursor para campo de usuário
Capturando teclas ( exibir ponto )
Capturando teclas
Cursor inicia no campo do usuário
Submete
Tenta novamente ( limpa campos )
Cancelado
Inicia transação
Diagrama de estados - Acesso ao Sistema
Diagramas de Implantação Visão Geral Mostra a
configuração de software ou hardware;
Permite avaliar as diferentes situações de implantação do sistema.
Diagramas de Implantação Elementos básicos Componente; Nó.
servidor.exe
Servidor de aplicação
Diagramas de Implantação Diagrama completo
Servidor de aplicaçãoCliente Servidor de banco de dados
Cliente remoto Servidor Web
Diagrama de implantação
navegador autenticacao
aplicativo.exe servidor.exe SGBD
<<http>>
<<RMI>> <<odbc>>
<<jdbc>>
Agenda
Software e modelagem; UML
Introdução;Diagramas;
Comentários finais;
Design na metodologia hoje Exemplo do RUP
Quanto esforço empregar
Projeto; Equipe de trabalho; Complexidade; Automatismos possíveis;
Engenharia Reversa
Útil quando se quer trabalhar com sistemas sem documentação;
Nem sempre o resultado é satisfatório;
Ferramentas sugeridas
StarUML em www.staruml.com Poseidon em www.gentleware.com Umbrello em
http://uml.sourceforge.net/index.php Rational Rose em www.rational.com Dentre outras...
Fontes
OMG – www.omg.org UML – www.uml.org UML Essencial – Grady Booch, Ivar
Jacobson e James Rumbaugh
Top Related