Escolar Documentos
Profissional Documentos
Cultura Documentos
Roteiro
Introduo Orientao a Objetos UML Real-Time UML Estudo de Caso: Automao de uma Cadeira de Roda
Introduo
Complexidade dos sistemas aumenta de acordo com a evoluo tecnolgica Soluo para o projeto de sistemas aumentar o nvel de abstrao utilizado para representar os requisitos e funcionalidades do sistema
Introduo
Uma soluo encontrada foi utilizar diagramas para representar os requisitos e funcionalidades do sistema Duas abordagens para modelagem em altonvel
Anlise Estruturada (SA) Orientao a Objetos (OO)
SA/RT Reviso
Modelagem do Problema
Modelo do Ambiente
Diagrama de Contexto Lista de Eventos
Modelo do Comportamento
Diagrama de Transformaes Diagrama de Informaes
Modelagem da Soluo
Mdulos, tarefas, processadores
SA/RT Problemas
Diversos terminadores do mesmo tipo
SA/RT Problemas
Vrios terminadores possuem fluxos de dados iguais
SA/RT Problemas
Relaes entre elementos do sistema no so clara
SA/RT Refinamento
SA/RT Problemas
Empacotar dados de um objeto, permitindo acesso aos dados somente atravs dos mtodos Objetos so caixa-preta Comunicao entre objetos ocorre exclusivamente atravs de mensagens prdefinidas
Comportamento
Sensorar ambiente
Subclasses
Laser, ultra-som, binocular, etc.
Anlise Estruturada
Dados, Variveis Chamadas funes e procedimentos Funes e procedimentos Estruturas Ocorrncia da estrutura
Orientao a Objetos
Atributos Mensagens Mtodos Classes Instncia, Objeto Herana
UML Introduo
Unified Modeling Language Esforo em unificar a modelagem OO
Rumbaugh (OMT) + Jacobson (OOSE) + Booch (BOOCH)
Ferramentas que suportam UML Rational Rose Artisan RT-Studio Poseidon Vrias outras
UML Objetivos
Proporciona uma linguagem de modelagem visual expressiva Possui mecanismos de extenso e especializao para especializar os conceitos principais Ser independente de linguagens e processos particulares Proporcional uma formalizao para compreenso da linguagem de modelagem Suporta conceitos de desenvolvimento em alto-nvel como colaboraes, frameworks, padres e componentes Integra as melhores prticas de modelagem
Relgio
LeHora
Relgio
Ator
LeHora
Relgio
LeHora
Caso de Uso
LeHora
Usurio
Relojoeiro
AcertaHora
Diagrama de Classe
Linhas Destino selecionaDestino() Preco retornaPreco(Destino) Destinos destino:Destino preco:Preco
Classes
Linhas destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino)
Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operaes) Cada atributo tem um tipo Cada operao tem uma assinatura O nome da classe a nica informao obrigatria
Classes
Nome
Linhas destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino)
Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operaes) Cada atributo tem um tipo Cada operao tem uma assinatura O nome da classe a nica informao obrigatria
Classes
Linhas destinoEpreco selecionaDestino() retornaPreco() Linhas AtributosTabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino)
Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operaes) Cada atributo tem um tipo Cada operao tem uma assinatura O nome da classe a nica informao obrigatria
Classes
Linhas destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino)
Operaes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operaes) Cada atributo tem um tipo Cada operao tem uma assinatura O nome da classe a nica informao obrigatria
Classes
Linhas destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino)
Assinatura Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operaes) Cada atributo tem um tipo Cada operao tem uma assinatura O nome da classe a nica informao obrigatria
Instncias
POA_SaoLeopoldo:Linhas destinoEpreco = { {Canoas, 3.00}, {Novo Hamburgo, 3.50}, {Sao Leopoldo, 4.00}}
Uma instncia representa um ocorrncia de uma classe O nome de uma instncia sublinhado e pode conter o nome da sua classe Os atributos so representados com seus valores
Classe:
Uma abstrao para uma entidade no domnio do problema, que possui caractersticas comuns com outro elementos do sistema
Objeto:
Uma instncia especfica de uma classe
Associaes
Associaes denotam relaes entre classes A multiplicidade de uma associao mostra quantos objetos fonte podem referenciar objetos destino
Exemplos: um-para-um um-para-muitos muitos-para-muitos
Associaes
Tem capital Pais nome:String 1 1 Cidade nome:String
Associao 1-para-1
Poligono desenha()
Associao 1-para-muitos
Agregao
Uma agregao um caso especial de associao que estipula uma hierarquia composta por O agregado a classe pai, os componentes so classes filhas.
SistemaControleMovimento
* Sensores
1..* Atuadores
Composio
Um losango preenchido indica composio, uma forma forte de agregao onde os componentes no podem existir sem o agregado
MaquinaPassagens 3 Botao
Generalizao/Herana
Botao
BotaoCancelar
BotaoDestino
A generalizao mostra a relao de herana entre classes As classes filhas herdam os atributos e operaes da classe pai A generalizao simplifica o modelo eliminando as redundncias
Diagrama de Seqncias
Passageiro MaquinaPassagens
selecionaDestino()
insereDinheiro()
pegaTroco()
Usado na anlise de requisitos Para refinar a descrio de casos de uso Para encontrar objetos adicionais (objetos participantes) Usado no projeto do sistema Para refinar as interfaces dos subsistemas
pegaPassagem()
Diagrama de Seqncias
Passageiro MaquinaPassagens
selecionaDestino()
insereDinheiro()
pegaTroco()
Classes Usado na anlise de requisitos Para refinar a descrio de casos de uso Para encontrar objetos adicionais (objetos participantes) Usado no projeto do sistema Para refinar as interfaces dos subsistemas
pegaPassagem()
Diagrama de Seqncias
Usado na anlise de MaquinaPassagens requisitos Passageiro selecionaDestino() Para refinar a descrio de casos de uso Mensagens Para encontrar objetos insereDinheiro() adicionais (objetos participantes) Usado no projeto do sistema pegaTroco() Para refinar as interfaces dos subsistemas
pegaPassagem()
Diagrama de Seqncias
Usado na anlise de MaquinaPassagens requisitos Passageiro selecionaDestino() Para refinar a descrio de casos de uso Para encontrar objetos insereDinheiro() adicionais (objetos participantes) Usado no projeto do sistema Ativaes pegaTroco() Para refinar as interfaces dos subsistemas
pegaPassagem()
Diagrama de Seqncias
Passageiro MaquinaPassagens
selecionaDestino()
insereDinheiro()
pegaTroco()
Usado na anlise de requisitos Para refinar a descrio de casos de uso Para encontrar objetos adicionais (objetos participantes) Usado no projeto do sistema Para refinar as interfaces dos subsistemas
pegaPassagem()
Tempo do Cenrio
selecionaDestino()
continua...
A fonte de uma seta indica o estmulo que envia uma mensagem Um estmulo tem a durao da soma de todos os tempos de todas as mensagens aninhadas
selecionaDestino()
Fluxo de Dados
continua...
A fonte de uma seta indica o estmulo que envia uma mensagem Um estmulo tem a durao da soma de todos os tempos de todas as mensagens aninhadas
Mecanismos de Extenso
Porque um mecanismo de extenso ?
Embora seja bem definida a UML precisa ser personalizada para domnios de problemas especficos
Real-Time UML
UML Profile for Schedulability, Performance and Time Conjunto de abstraes normalmente utilizadas no projeto de um sistema temporeal Visa facilitar
Especificao de restries Troca de informaes entre as ferramentas de apoio
<<profile>> RTconcurrencyModeling
<<profile>> RTtimeModeling
Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel
Modelos de Anlise
<<profile>> SAprofile
<<import>>
<<profile>> PAprofile
<<profile>> RSAprofile
<<profile>> RTconcurrencyModeling
<<profile>> RTtimeModeling
Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel
Modelos de Anlise
<<profile>> SAprofile
<<import>>
<<profile>> PAprofile
<<profile>> RSAprofile
<<profile>> RTconcurrencyModeling
<<profile>> RTtimeModeling
Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel
Modelos de Anlise
<<profile>> SAprofile
<<import>>
<<profile>> PAprofile
<<profile>> RSAprofile
Define esteretipos e valores anotados para possibilitar a expresso de escalonabilidade (SA) e desempenho (PA)
<<profile>> RTconcurrencyModeling
<<profile>> RTtimeModeling
Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel
Modelos de Anlise
<<profile>> SAprofile
<<import>>
<<profile>> PAprofile
<<profile>> RSAprofile
Real-Time UML
Modelagem de Concorrncia
Aborda os seguintes pontos:
Recursos concorrentes: mecanismos para um comportamento concorrente (tarefas, processos ou threads); Cenrios concorrentes: seqncias de aes geralmente interligadas efetuadas por recursos concorrentes; Servios de recursos concorrentes: servios que possuem algum tipo de poltica de controle de acesso
CRasynch
CRimmediate {CRthreading = remote} readData
CRsynch
CRsynch
CRaction
{CRatomic=$true}
Anlise de Escalonabilidade
Perguntas ?!?