Você está na página 1de 86

Especificao de Sistemas de Tempo-Real utilizando Orientao a Objetos

Marco Aurlio Wehrmeister


mawehrmeister@inf.ufrgs.br

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)

Anlise Estruturada - Introduo


Iniciou em 1970 com DeMarco e Yourdon Sistema modelado com base nas suas funcionalidades Conceitos de programao baseados em funes e procedimentos Estrutura do sistema descrita atravs de Diagramas de Fluxo de Dado Comportamento descrito atravs de Diagramas de Estado

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 Diagrama de Contexto

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

Vrios processos implementam a mesma funcionalidade

SA/RT Outras deficincias


Dicionrio de dados global A conexo entre fluxo e terminadores semanticamente fraca Baixo reuso de funes Criao de hierarquias de elementos estruturais sistemas no possvel Definio dos requisitos temporais no clara Modelos pouco intuitivos para pessoas notcnicas

Orientao a Objetos Introduo


Iniciou no final dos anos 80 Utiliza mtodos para diminuir a diferena semntica entre a realidade e o modelo Entidades compostas
Estrutura Comportamento

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Mensagens e Mtodos Classes Herana

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Objetos no real possuem caractersticas Mensagens e mundo Mtodos comuns e podem agrupados de acordo com suas Classes caractersticas Herana Uma classe representa um gabarito e descreve como
os objetos esto estruturados internamente Objetos de mesma classe possuem a mesma definio Instncia um objeto criado a partir de uma classe

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Mensagens e Mtodos Classes Objetos no mundo real possuem propriedades Heranae valores para estas propriedades
Os valores das propriedades definem o estado do objeto

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Mensagens e Mtodos Classes Um objeto exibe algum comportamento quando recebe um Herana estmulo de outro objeto
O estmulo chamado de envio de mensagem Mensagem contm: Nome do objeto receptor Nome da mensagem Argumentos (opcional) O comportamento executado recebe o nome de mtodo

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Mensagens e Mtodos Classes Herana
Estrutura que serve como base para a criao de objetos Descreve a estrutura e o comportamento que os objetos deste tipo devem possuir

Orientao a Objetos Mecanismos


Mecanismos bsicos
Objetos Propriedades e Atributos Mensagens e Mtodos Classes Herana
Mecanismo para compartilhar automaticamente mtodos e atributos entre classes

Orientao a Objetos Conceitos


Conceitos chave
Abstrao Encapsulamento Polimorfismo Trabalhar com classes sem a necessidade Persistncia de conhecer sua implementao
Diminui a complexidade no projeto de sistemas complexos

Orientao a Objetos Conceitos


Conceitos chave
Abstrao Encapsulamento Polimorfismo Persistncia

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

Orientao a Objetos Conceitos


Conceitos chave
Abstrao Encapsulamento Polimorfismo Persistncia
Capacidade de classes compatveis ter comportamentos diferentes em resposta a uma mesma mensagem

Orientao a Objetos Conceitos


Conceitos chave
Abstrao Encapsulamento Polimorfismo Persistncia
Habilidade de um objeto existir alm da execuo que o criou

Orientao a Objetos Exemplo


Sensor de Distncia
Atributos
Distncia de um outro objeto fsico

Comportamento
Sensorar ambiente

Subclasses
Laser, ultra-som, binocular, etc.

Orientao a Objetos Comparativo


Comparativo entre as abordagens

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)

Mantido pelo Object Management Group (OMG)


Verso atual: 2.0

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

UML Tipos de Diagramas


Diagramas Estruturais Diagramas de Classe Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuio Diagramas Comportamentais Diagramas de Casos de Uso Diagramas de Seqncias Diagramas de Colaborao Diagramas de Estados Diagramas de Atividade

UML Tipos de Diagramas


Diagramas Estruturais Diagramas de Classe Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuio Diagramas Comportamentais Diagramas de Casos de Uso Diagramas de Seqncias Diagramas de Colaborao(visto no caso de uso) Diagramas de Estados Diagramas de Atividade

Diagrama de Casos de Uso


Descreve o comportamento funcional do sistema na viso do usurio Mostra as relaes entre os atores e os casos de uso dentro do sistema Usado na fase de levantamentos dos requisitos do sistema a descrio completa das funcionalidades do sistema e do seu ambiente

Diagrama de Casos de Uso Exemplo

Relgio

LeHora

AcertaHora Usurio TrocarBateria Relojoeiro

Diagrama de Casos de Uso Exemplo

Relgio

Ator

LeHora

AcertaHora Usurio TrocarBateria Relojoeiro

Diagrama de Casos de Uso Exemplo

Relgio

LeHora

AcertaHora Usurio Relojoeiro TrocarBateria

Caso de Uso

Diagrama de Casos de Uso Exemplo


Pacote
Relgio

LeHora

AcertaHora Usurio TrocarBateria Relojoeiro

Diagrama de Casos de Uso


Atores
Modela uma entidade externa que se comunica com o sistema Pode ser: Usurio, Sistema Externo, Elemento fsico do ambiente Um ator possui um nome nico e uma descrio opcional

Usurio

Relojoeiro

Diagrama de Casos de Uso


Casos de Uso
Representa uma classe de funcionalidades fornecidas pelo sistema como uma seqncia de eventos composto por
Nome nico Atores participantes Condies de entrada Fluxo de eventos Condies de sada Requisitos especiais
LeHora

AcertaHora

Diagrama de Classe
Linhas Destino selecionaDestino() Preco retornaPreco(Destino) Destinos destino:Destino preco:Preco

Diagrama de classes representa a estrutura do sistema Diagramas de classes so usados


Durante a anlise de requisitos para modelar os conceitos do domnio do problema Durante o projeto do sistema para modelar os subsistemas e suas interfaces Durante o projeto dos objetos para modelar as classes

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

Atores vs. Instncias


Qual a diferena entre um ator, uma classe e uma instncia ? Ator:
Uma entidade externa ao sistema que esta sendo modelado, que interage com o mesmo

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()

Ponto x:Integer y:Integer

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

Diagrama de Seqncias: Mensagens Aninhadas


Passageiro BotaoDestino Linhas Display

selecionaDestino()

procraPreco(destino) preco mostraPreco(preco)

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

Diagrama de Seqncias: Mensagens Aninhadas


Passageiro BotaoDestino Linhas Display

selecionaDestino()

procraPreco(destino) preco mostraPreco(preco)

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

Observaes sobre o Diagrama de Seqncias


O diagrama de seqncias da UML representa o comportamento em termos de interaes Complementa o diagrama de classes que represente apenas a estrutura do sistema til para encontrar objetos participantes do sistema Consome tempo para a construo mas vale o investimento Semntica idntica ao Diagrama de Colaborao

Mecanismos de Extenso
Porque um mecanismo de extenso ?
Embora seja bem definida a UML precisa ser personalizada para domnios de problemas especficos

Mecanismo de extenso permite


Adicionar novos elementos de modelagem Criar novas propriedades Especificar uma nova semntica

Trs tipos de mecanismos


Esteretipos (stereotypes) Valores Anotados (tagged values) Restries (constraints)

Mecanismos de Extenso Esteretipos


Esteretipos so usados para criar novos elementos no modelo que podem ser usados em domnios especficos Exemplo: Modelando um sistema de controle de elevador Esteretipo hardware botao software BotaoCancelar
estado

Mecanismos de Extenso Valores Anotados


Definem propriedades adicionais qualquer elemento do modelo Podem ser definidos para esteretipos So apresentados como pares etiqueta-valor onde a etiqueta representa a propriedade e o valor representa o valor da propriedade So teis para adicionar propriedades sobre
Gerao de cdigo Controle de verso Gerenciamento de configurao Entre outros

Mecanismos de Extenso Restries


As restries so usadas para adicionar novas regras ou modificar alguma regra existente Tambm usado para especificar condies que devem ser satisfeitas para os elementos do modelo Podem ser representadas atravs de linguagem natural ou OCL (Object Contraint Language)

Mecanismos de Extenso Perfis


Os perfis UML so conjuntos de esteretipos, valores anotados e restries para domnios de aplicao especfico
Perfil UML Tempo-Real Perfil de Tolerncia a Falhas Perfil de Plataformas

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

Real-Time UML Estrutura do Perfil


Framework para modelagem de Recursos
<<profile>> RTresourceModeling
<<import>> <<import>>

<<profile>> RTconcurrencyModeling

<<profile>> RTtimeModeling

<<import>> <<import>> <<import>>

Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel

Modelos de Anlise
<<profile>> SAprofile
<<import>>

<<profile>> PAprofile

<<profile>> RSAprofile

Real-Time UML Estrutura do Perfil


Framework para modelagem de Recursos
<<profile>> RTresourceModeling
<<import>> <<import>>

Conceitos bsicos para suportar a modelagem de recursos, mecanismos de tempo e concorrncia

<<profile>> RTconcurrencyModeling

<<profile>> RTtimeModeling

<<import>> <<import>> <<import>>

Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel

Modelos de Anlise
<<profile>> SAprofile
<<import>>

<<profile>> PAprofile

<<profile>> RSAprofile

Real-Time UML Estrutura do Perfil


Framework para modelagem de Recursos
<<profile>> RTresourceModeling
<<import>> <<import>>

<<profile>> RTconcurrencyModeling

<<profile>> RTtimeModeling

<<import>> <<import>> <<import>>

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)

Real-Time UML Estrutura do Perfil


Framework para modelagem de Recursos
<<profile>> RTresourceModeling
<<import>> <<import>>

<<profile>> RTconcurrencyModeling

<<profile>> RTtimeModeling

Sub-perfil para tecnologias especficas

<<import>> <<import>> <<import>>

Modelos de Infraestrutura
<<modelLibrary>> RealTimeCORBAModel

Modelos de Anlise
<<profile>> SAprofile
<<import>>

<<profile>> PAprofile

<<profile>> RSAprofile

Real-Time UML Modelagem de Recursos


Especifica padres presentes em muitos mtodos de anlise tempo-real Define uma terminologia comum e um framework conceitual voltados para reduzir as ambigidades do modelo Expressa caractersticas de QoS (Quality of Service)

Real-Time UML Modelagem de Tempo


Cobre a especificao de medidas de tempo, como intervalos, delays e deadlines Define os servios de tempo oferecidos pelos sistemas operacionais tempo real, como Timers e Clocks Tambm define padres para funes de distribuio de probabilidades

Real-Time UML Definio de Intervalos usando tempos relativos

Real-Time UML Execuo de ao com controle de deadline

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

Real-Time UML Exemplo de Modelagem de Concorrncia


CRconcurrent :Clock CRconcurrent telemetryDisplayer :DataDisplayer display :DisplayInterface sensorData :RawDataStorage

RTevent {RTat = ('periodic', 10, 'ms')} CRdeferred dataDisplay

CRasynch
CRimmediate {CRthreading = remote} readData

CRsynch

CRimmediate {CRthreading = remote} display

CRsynch

CRaction
{CRatomic=$true}

Real-Time UML Modelo para Anlise de Escalonabilidade


Oferece alternativas para decorar o modelo com anotaes, de modo a permitir a aplicao de diversas tcnicas de anlise de escalonabilidade Baseia-se na modelagem de situaes, atravs de diagramas de seqncia e de colaborao

Real-Time UML Modelo para

Anlise de Escalonabilidade

Estudo de Caso: Automao de uma Cadeira de Rodas

Controle de Movimento Diagrama de Casos de Uso

Leitura Sensores Diagrama de Colaborao

Controle/Atuao Diagrama de Colaborao

Tolerncia Falhas Diagrama de Colaborao

Estrutura do Controle de Movimento Diagrama de Classes

SA/RT vs. UML


Viso Geral das Funcionalidades Sistema
SA/RT RT-UML

SA/RT vs. UML


Modelagem do Comportamento do Sistema
SA/RT RT-UML

SA/RT vs. UML


Modelagem da Estrutura do Sistema
SA/RT RT-UML

Perguntas ?!?

Você também pode gostar