Escolar Documentos
Profissional Documentos
Cultura Documentos
UML - Unified Modeling Language: Importância Da Modelagem
UML - Unified Modeling Language: Importância Da Modelagem
Importncia da Modelagem
Um modelo uma simplificao da realidade Construmos modelos para compreender melhor o sistema que estamos desenvolvendo Objetivos alcanados com a modelagem o Os modelos ajudam a visualizar o sistema como ele ou como desejamos que seja o Os modelos permitem especificar a estrutura ou o comportamento de um sistema o Os modelos proporcionam um guia para a construo do sistema o Os modelos documentam as decises tomadas. Construmos modelos de sistemas complexos porque no possvel compreend-los em sua totalidade
Princpios da Modelagem
A escolha dos modelos a serem criados tem profunda influncia sobre a maneira como um determinado problema atacado e como uma soluo definida Cada modelo poder ser expresso em diferentes nveis de preciso Os melhores modelos esto relacionados realidade Nenhum modelo nico suficiente. Qualquer sistema no-trivial ser melhor investigado por meio de um pequeno conjunto de modelos quase independentes
Diagramas da UML
Casos de uso (Use Cases) : Modelam o comportamento geral do Sistema, atravs dos relacionamentos com atores externos. Classes : Modela classes, interfaces e seus relacionamento, representando uma viso esttica da estrutura do Sistema. Interao : modelam uma especificao comportamental representando a troca de mensagens entre objetos, em UML os Diagramas de Interao so representados por Diagrama de Sequncia e Diagrama de Colaborao. o Sequncia : modela a interao entre objetos atravs de seus relacionamentos e troca de mensagens. Demonstram a dinmica do Sistema com nfase na ordenao temporal das mensagens. o Colaborao : Semelhante ao diagrama de Sequncia, sendo que sem observar a ordenao temporal das mensagens. Estados : Modela uma mquina de estados, formado por : estados, transies e eventos Atividades : Tipo especial de Diagrama de Grfico de Estado Diagramas de Implementao : Modelam a arquitetura lgica e fsica do hardware e software que implementam o Sistema. o Componentes : Exibe a organizao e dependncias existentes em um conjunto de componentes do Sistemas (Programas fontes, objetos, executveis e bibliotecas) o Implantao : Mostra a configurao dos ns de processamento em tempo de execuo e os componentes neles existentes.
Os detalhes dos casos de uso no so formalizados pela UML e podem ser adequados para satisfazer as necessidades e o esprito de documentao necessrios (clareza de comunicao). Os casos de uso podem ser detalhados atravs de uma Sequncia Tpica de Eventos Sequncia Tpica de Eventos Ao do Ator Resposta do Sistema 1. Este caso de uso comea quando um Cliente chega a um ponto de pagamento (Equipado com um Post) com vrios itens que deseja comprar. 2. O Caixa registra o cdigo de cada item 3. Determina o preo do item e acrescenta a Se houve mais de um exemplar do mesmo item, o Caixa informao sobre o item transao corrente de tambm pode entrar a quantidade venda. 4. Ao trmino da entrada de itens, o Caixa indica ao POST 5. Calcula e apresenta o total da venda que a entrada de itens est completa 6. O Caixa informa ao Cliente o total da compra 7. O Cliente d um pagamento em dinheiro, possivelmente maior que o total da venda 8. O Caixa registra o montante de dinheiro recebido 9. Exibe o valor do troco a ser devolvido ao Cliente 10. O Caixa deposita o dinheiro recebido e retira o troco 11. Registra a venda completada 12. O Cliente sai com os itens comprados
Ator
Ca s de Uso o
Caixa Eletrnico
Login
Cliente_
Consultar de Saldo
Solicitao de extrato
Saque
Venda
Caixa
Cliente
Log in
Iniciar
Gerente
Gerenciar Usurios
Diagrama de Classes
So os diagramas mais importantes na modelagem orientada a objetos e representam a essncia da UML. Um diagrama de classe mostra um conjunto de classes, interfaces, colaboraes e seus relacionamentos, fornecendo uma viso esttica do Sistema. Os diagramas de classes so importantes no s para visualizao, especificao e documentao de modelos estruturais, mas tambm para a construo de sistemas executveis por intermdio da engenharia de produo de software. Os elementos bsicos de um diagrama de classes so: Classes Interfaces Relacionamentos de associao, dependncia, generalizao/especializao e agregao (todo/parte) Arquivo Rose \CursoDeUML\ClientePedidoProduto\ClientePedidoProduto.mdl
Data
PedidoProduto quantidade
0..*
PessoaFsica cpf
PessoaJurdica cgc
1 Produto
cdigo descrio preo
Classe - Tipo abstrato formado por atributos e mtodos. Pacote - estrutura organizacional que agrupa elementos do diagrama de classes com o objetivo de melhor organizlos Arquivo Rose \CursoDeUML\Classe\Classe.mdl
NomeDaClasse
atributo1 : String atributo2 : int = 0 $ atributoEsttico mtodo1(parmetro : String) : Date mtodoEsttico(param1 : Integer) mtodo3() : String
ClasseAbstrata
ClasseFinal
pacote
Interfaces - Tipos especial de classes possuindo apenas definies de mtodos e/ou constantes. Arquivo Rose \CursoDeUML\Interface\Interface.mdl
Interface
$ const1 : String = "Valor inicial" $ const2 : Date = "01/01/01" $ const3 : Byte = 0 mtodo1() mtodo2() mtodo3()
Implementa
ClasseA
Relacionamentos : Associao - um relacionamento estrutural, especificando que os objetos de uma classe esto conectados/vinculados a objetos de outra classe. Numa associao podem ser especificados os seguintes itens : um nome, o papel e multiplicidade em cada extremidade da associao, navegao e qualificao. Dependncia - indica a ocorrncia de um relacionamento semntico entre dois elementos do modelo, onde uma classe cliente dependente de servios de uma classe fornecedora, mas no existe uma dependncia estrutural interna com esse fornecedor. Indica que uma alterao na especificao de uma classe poder afetar outra classe que a utilize, mas no necessariamente o inverso. A forma mais comum de dependncia quando uma classe utilizar parmetros de uma outra classe em seus mtodos. Arquivo Rose \CursoDeUML\Associao\ Associao.mdl
ClasseA
+papelB
Associao
+papelA
ClasseB
ClasseX 1..5
ClasseY 0..*
Faz
-cliente
Cliente
Pedido 1 ClasseAlpha
Possui
Dependncia
+setor 1 Setor
Tem
Chefe
Possui
0.. * -funcionarios
10
Agregao - uma forma especial de associao utilizada para mostrar que um tipo de objeto composto, pelo menos em parte, de outro em uma relao todo/parte. Indicando que o objeto parte " um atributo" do objeto todo, onde o ciclo de vida do objeto parte limitado ao ciclo de vida do objeto todo. Arquivo Rose \CursoDeUML\Agregao\ Agregao.mdl
Pedido
-pedido 1
-pedidoItem 1..*
PedidoIt em
-pedidoItem
-prod uto
Produt o
11
Generalizao/Especializao - Representa o conceito de herana da orientao a objetos e indica que uma classe estende outra. Arquivo Rose \CursoDeUML\Generalizao\ Generalizao.mdl
ClasseRaiz
SubClasseA
SubClasseB
SubClasseC
SubClasseD
SubClasseE
SubClasseF
pacote
Veculo
chassi : String placa : String modelo : String cor : String
Marc a #marc a
(f rom pacote)
descrio logotipo
VeculoDeCarga cargaMxima
VeculoDePasseio
quantidadeDePassageiros
12
Classe de Associao - elemento da modelagem que tem associao e propriedades de classe, podendo ser vista tanto como uma associao que tem propriedades de classe, como uma classe que tem propriedades de associao. Apesar de ser desenhada como uma associao e uma classe, apenas um nico elemento do modelo e tem apenas um nome. Arquivo Rose \CursoDeUML\ClasseAssociao\\ClasseAssociao.mdl
Pessoa
Servio
descrio : String dataDeAdmisso : Date salrio : Currency incluir(e : Empresa, p : Pessoa) : void
13
Clientes
adicionar(cliente : Cliente) : void remover(cpf : CPF) : void toString() : String
-cliente
0..*
Cliente
nome : String Cliente() toString()
Endereo -endereo
(from util)
Endereo() toString()
-dataNascimento -cpf
CPF
(from util)
Data
(from util)
: Clientes
: Cliente
: CPF
: Data
: Endereo
14
: CPF
2: CPF(String)
: Cliente
: Clientes
: Endereo
3: Date(String)
: Data
: Clientes toString( )
: Cliente
: CPF
: Data
: Endereo
toS tring( )
toString( ) toString( )
15
: Clientes
1: toString( ) 2: toString( )
: Cliente
: CPF
4: toString( )
3: toString( )
: Endereo
: Data
16
Diagrama de Estados
Um diagrama de grfico de estados mostra uma mquina de estados, dando nfase ao fluxo de controle de um estado para outro. Uma mquina de estados um comportamento que especifica as sequncias de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos, juntamente com suas respostas a esses eventos. Um estado uma condio ou situao na vida de um objeto durante a qual ele satisfaz a alguma condio, realiza alguma atividade ou aguarda algum evento. Um evento uma especificao de uma ocorrncia significativa para o objeto. No contexto de uma mquina de estados, um evento uma ocorrncia de um estmulo capaz de ativar uma transio de estado de um objeto. Uma transio de estado um relacionamento entre dois estados, indicando que um objeto no primeiro estado realizar certas aes e entrar no segundo estado quando um evento especfico ocorrer e as condies especificadas estiverem satisfeitas. Tem como objetivo principal prover uma definio formal explcita de comportamento, permitindo uma verificao dos eventos e transies de estados aos quais um Sistema est sujeito. A existncia de estados em um objeto implica que a ordem na qual as operaes so executadas importante, o que leva idia de objetos como mquinas independentes. Assim, para cada objeto, a ordem das operaes no tempo to importante que pode-se formalizar a caracterizao do comportamento de um objeto em termos de uma mquina de estado finita equivalente. Uma desvantagem do diagrama de estado ter de definir todos os possveis estados de um Sistema, impossibilitando o seu para todo o Sistema, dessa forma, o Diagrama de Estados utilizado para modelar apenas algumas situaes. Arquivo Rose \CursoDeUML\DiagramaDeEstados\ DiagramaDeEstados.mdl
Carga de um Processo
Novo Processo
Morto
Finalizando um Processo
Novo
Pronto
escalonado
Executand o
SolicitaoI / O
Esperando
I/O atendido
17
Diagrama de Atividade
Um Diagrama de Atividade essencialmente um grfico, mostrando o fluxo de controle de atividades (semelhante a um Fluxograma). Enquanto o Diagrama de Interao possui foco no relacionamento (troca de mensagens) entre objetos, o Diagrama de Atividade possui o foco nas Atividades. Uma atividade uma execuo no atmica em andamento em uma mquina de estado. As atividades ainda podem ser agrupadas em "Swimlanes" (Raias de natao) com o objetivo de mostrar em qual parte da organizao um trabalho executado ou mostrar explicitamente onde so encontradas aes (em qual objeto) Arquivo Rose \CursoDeUML\DiagramaDeAtividades\ DiagramaDeAtividades.mdl
In ici o Pedido
Registrar Pedido
[ negado ]
Cancelar Pedido
[ Pagamento ok e Estoque ok ]
fim
Aceitar Pedido
18
Cli ente
Vendas
Estoque
In ici o
Solicitar Produto
Receber Pedido
Cobrar Client e
Pagar Cobrana
pago
[ no pago ]
Cancelar Pedido
Fechar Pedido
fim
19
Diagrama de Componentes
Arquivo Rose \CursoDeUML\DiagramaDeComponentes\ DiagramaDeComponentes.mdl
Servlet .java
servlet . jar
Servlet .class
BancoDa dos.class
interba se.jar
20
Diagrama de Implantao
Arquivo Rose \CursoDeUML\DiagramaDeImplantao\ DiagramaDeImplantao.mdl
Servidor WEB
Servidor de Aplicao
Cliente
21
Outros Tpicos
Esteretipo
Mecanismo para estender o vocabulrio da UML, que permite a criao de novos tipos de blocos de construo derivados dos j existentes, mas que so especficos a determinado ambiente.
Nota e Ligao de Nota
22
Contratos
Documento que descreve o que uma operao se compromete a fazer. Usualmente, ele segue um estilo declarativo, enfatizando o que acontecer, em vez de como ser conseguido. comum os contratos serem expressos em termos de mudanas de estado definidas por pr-condies e ps-condies. Um contrato pode ser escrito para um mtodo individual de uma classe ou para uma operao mais abrangente do Sistema. Nome Responsabilidade Notas Excees Sada Pr-Condies Ps-Condies Contrato entrarItem(cdigo: String, quantidade : int) Entrar (registrar) a venda de um item e acrescent-lo venda. Exibir a descrio e o preo do item Use acesso rpido ao Banco de Dados Se o cdigo no for vlido, indique erro O cdigo dever ser vlido Se for uma nova Venda, uma Venda foi criada (criao de instncia) Se for uma nova Venda, a nova Venda foi associada ao Post (Formada uma associao) Uma LinhaDeItemDeVenda foi criada (criao de instncia) A LinhaDeItemDeVenda foi Associada Venda (Formada uma associao) LinhaDeItemDeVenda.quantidade recebeu o valor quantidade (Modificao de atributo) A LinhaDeItemDeVenda foi associada a uma EspecificaoDeProduto, baseada numa correspondncia com o cdigo (Formada Associao)
23
RationalRose 2000
Tools/Options Editando Use Case View Logical View Component View Deployment View Tools/Java/Project Specification Tools/Java/Generate Java Tools/Java/Reverse Engineer Java Tools/Web Publisher
24
TabelaRelacional
Caixas
Vendas
Registradoras
Produtos
-caixas 0..*
<<TabelaRelacion al>>
-vendas 0..*
Caixa
co digo : i nt nome : St ring ve ndas()
-vendas 0..*
Venda
troco()
Produto
codigo : int
-produto -tipoPagamento
TipoDePagamento
codigo : int descricao : String toString()
-produto 0..*
VendaProduto
codigo : int quantidade : int preco : float
0..*
-tiposPagamento
TiposDePagamento
25