Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos Marco Aurélio Wehrmeister

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Princípios da Orientação a Objetos e a Linguagem UML
Engenharia de Software
UML Visões – Parte 2.
UML – Visões Parte 1 Modelando um sistema.
(Unified Modeling Language)
Diagrama de Classes.
Engenharia de Software
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Linguagens de Modelagem para SMA
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Análise e Projetos de Sistemas
(Linguagem de Modelagem Unificada)
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
DIAGRAMA DE CLASSE Modelagem de Software
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Análise e Projeto de Sistemas
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
SISTEMAS DISTRIBUIDOS Aula 4
Programação Orientada à Objetos
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Laboratório de Programação
Revisão 2º Bimestre Engenharia de Software I
Generalização e herança Agregação e composição
Análise e Projeto de Sistemas
Fluxos secundários Só devem ser analisados e descritos após a descrição dos fluxos básicos. Fluxos alternativos situações especiais (desconto para um cliente)
Desenvolvimento de Software Dirigido a Modelos
Orientação a Objetos com UML
UML e a Ferramenta Astah
Linguagem de Modelagem Unificada
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Modelo de Análise e Projeto
Análise de Casos de Uso Rafael Duarte Alexandre Mota [rmd,
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Análise e Projeto de Software
Introdução a Orientação a Objetos
Análise e Projeto de Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Orientação a Objetos com UML. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões|
A linguagem unificada de modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
CIn-UFPE1 UML Uma linguagem unificada de modelagem Visão Geral.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
UML (Unified Modeling Language) A linguagem unificada de modelagem
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Projeto de Arquitetura de Software
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Análise e Design de Software Site:
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Modelagem de Banco de Dados: Conceitos
Transcrição da apresentação:

Especificação de Sistemas de Tempo-Real utilizando Orientação a Objetos Marco Aurélio Wehrmeister

Roteiro Introdução Orientação a Objetos UML Real-Time UML Estudo de Caso: Automação de uma Cadeira de Roda

Introdução Complexidade dos sistemas aumenta de acordo com a evolução tecnológica Solução para o projeto de sistemas é aumentar o nível de abstração utilizado para representar os requisitos e funcionalidades do sistema

Introdução Uma solução encontrada foi utilizar diagramas para representar os requisitos e funcionalidades do sistema Duas abordagens para modelagem em alto- nível Análise Estruturada (SA) Orientação a Objetos (OO)

Análise Estruturada - Introdução Iniciou em 1970 com DeMarco e Yourdon Sistema modelado com base nas suas funcionalidades Conceitos de programação baseados em funções e procedimentos Estrutura do sistema é descrita através de Diagramas de Fluxo de Dado Comportamento é descrito através de Diagramas de Estado

SA/RT – Revisão Modelagem do Problema Modelo do Ambiente Diagrama de Contexto Lista de Eventos Modelo do Comportamento Diagrama de Transformações Diagrama de Informações Modelagem da Solução Módulos, tarefas, processadores

SA/RT – Diagrama de Contexto

SA/RT – Problemas Diversos terminadores do mesmo tipo

SA/RT – Problemas Vários terminadores possuem fluxos de dados iguais

SA/RT – Problemas Relações entre elementos do sistema não são clara

SA/RT – Refinamento

SA/RT – Problemas Vários processos implementam a mesma funcionalidade

SA/RT – Outras deficiências Dicionário de dados global A conexão entre fluxo e terminadores é semanticamente fraca Baixo reuso de funções Criação de hierarquias de elementos estruturais sistemas não é possível Definição dos requisitos temporais não é clara Modelos pouco intuitivos para pessoas não- técnicas

Orientação a Objetos – Introdução Iniciou no final dos anos 80 Utiliza métodos para diminuir a diferença semântica entre a realidade e o modelo Entidades compostas Estrutura Comportamento

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos Objetos no mundo real possuem características comuns e podem agrupados de acordo com suas características Uma classe representa um gabarito e descreve como os objetos estão estruturados internamente Objetos de mesma classe possuem a mesma definição Instância é um objeto criado a partir de uma classe

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos Objetos no mundo real possuem propriedades e valores para estas propriedades Os valores das propriedades definem o estado do objeto

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos Um objeto exibe algum comportamento quando recebe um estímulo de outro objeto O estímulo é chamado de “envio de mensagem” Mensagem contém: Nome do objeto receptor Nome da mensagem Argumentos (opcional) O comportamento executado recebe o nome de método

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos Estrutura que serve como base para a criação de objetos Descreve a estrutura e o comportamento que os objetos deste tipo devem possuir

Mecanismos básicos Objetos Propriedades e Atributos Mensagens e Métodos Classes Herança Orientação a Objetos – Mecanismos Mecanismo para compartilhar automaticamente métodos e atributos entre classes

Orientação a Objetos – Conceitos Conceitos chave Abstração Encapsulamento Polimorfismo Persistência Trabalhar com classes sem a necessidade de conhecer sua implementação Diminui a complexidade no projeto de sistemas complexos

Orientação a Objetos – Conceitos Conceitos chave Abstração Encapsulamento Polimorfismo Persistência Empacotar dados de um objeto, permitindo acesso aos dados somente através dos métodos Objetos são “caixa-preta” Comunicação entre objetos ocorre exclusivamente através de mensagens pré- definidas

Orientação a Objetos – Conceitos Conceitos chave Abstração Encapsulamento Polimorfismo Persistência Capacidade de classes compatíveis ter comportamentos diferentes em resposta a uma mesma mensagem

Orientação a Objetos – Conceitos Conceitos chave Abstração Encapsulamento Polimorfismo Persistência Habilidade de um objeto existir além da execução que o criou

Orientação a Objetos – Exemplo Sensor de Distância Atributos Distância de um outro objeto físico Comportamento Sensorar ambiente Subclasses Laser, ultra-som, binocular, etc.

Orientação a Objetos – Comparativo Comparativo entre as abordagens Análise EstruturadaOrientação a Objetos Dados, VariáveisAtributos Chamadas à funções e procedimentos Mensagens Funções e procedimentosMétodos EstruturasClasses Ocorrência da estruturaInstância, Objeto Herança

UML – Introdução Unified Modeling Language Esforço em unificar a modelagem OO Rumbaugh (OMT) + Jacobson (OOSE) + Booch (BOOCH) Mantido pelo Object Management Group (OMG) Versão atual: 2.0 Ferramentas que suportam UML Rational Rose Artisan RT-Studio Poseidon Várias outras

UML – Objetivos Proporciona uma linguagem de modelagem visual expressiva Possui mecanismos de extensão e especialização para especializar os conceitos principais Ser independente de linguagens e processos particulares Proporcional uma formalização para compreensão da linguagem de modelagem Suporta conceitos de desenvolvimento em alto-nível como colaborações, frameworks, padrões e componentes Integra as melhores práticas de modelagem

UML – Tipos de Diagramas Diagramas Estruturais Diagramas de Classe Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuição Diagramas Comportamentais Diagramas de Casos de Uso Diagramas de Seqüências Diagramas de Colaboração Diagramas de Estados Diagramas de Atividade

UML – Tipos de Diagramas Diagramas Estruturais Diagramas de Classe Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuição Diagramas Comportamentais Diagramas de Casos de Uso Diagramas de Seqüências Diagramas de Colaboração (visto no caso de uso) Diagramas de Estados Diagramas de Atividade

Diagrama de Casos de Uso Descreve o comportamento funcional do sistema na visão do usuário Mostra as relações entre os atores e os casos de uso dentro do sistema Usado na fase de levantamentos dos requisitos do sistema É a descrição completa das funcionalidades do sistema e do seu ambiente

Diagrama de Casos de Uso – Exemplo UsuárioRelojoeiro LeHora AcertaHora TrocarBateria Relógio

Diagrama de Casos de Uso – Exemplo UsuárioRelojoeiro LeHora AcertaHora TrocarBateria Ator Relógio

Diagrama de Casos de Uso – Exemplo UsuárioRelojoeiro LeHora AcertaHora TrocarBateria Caso de Uso Relógio

Diagrama de Casos de Uso – Exemplo UsuárioRelojoeiro LeHora AcertaHora TrocarBateria Pacote Relógio

Diagrama de Casos de Uso Atores Modela uma entidade externa que se comunica com o sistema Pode ser: Usuário, Sistema Externo, Elemento físico do ambiente Um ator possui um nome único e uma descrição opcional UsuárioRelojoeiro

Diagrama de Casos de Uso Casos de Uso Representa uma classe de funcionalidades fornecidas pelo sistema como uma seqüência de eventos É composto por Nome único Atores participantes Condições de entrada Fluxo de eventos Condições de saída Requisitos especiais LeHora AcertaHora

Diagrama de Classe Diagrama de classes representa a estrutura do sistema Diagramas de classes são usados Durante a análise de requisitos para modelar os conceitos do domínio do problema Durante o projeto do sistema para modelar os subsistemas e suas interfaces Durante o projeto dos objetos para modelar as classes Destino selecionaDestino() Preco retornaPreco(Destino) Linhas * * Destinos destino:Destino preco:Preco

Classes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operações) Cada atributo tem um tipo Cada operação tem uma assinatura O nome da classe é a única informação obrigatória destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino) Linhas

Classes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operações) Cada atributo tem um tipo Cada operação tem uma assinatura O nome da classe é a única informação obrigatória destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino) Linhas Nome

Classes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operações) Cada atributo tem um tipo Cada operação tem uma assinatura O nome da classe é a única informação obrigatória destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino) Linhas Atributos

Classes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operações) Cada atributo tem um tipo Cada operação tem uma assinatura O nome da classe é a única informação obrigatória destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino) Linhas Operações

Classes Uma classe representa um conceito Uma classe encapsula estado (atributos) e comportamento (operações) Cada atributo tem um tipo Cada operação tem uma assinatura O nome da classe é a única informação obrigatória destinoEpreco selecionaDestino() retornaPreco() Linhas Tabela destinoEpreco Destino selecionaDestino() Preco retornaPreco(Destino) Linhas Assinatura

Instâncias Uma instância representa um ocorrência de uma classe O nome de uma instância é sublinhado e pode conter o nome da sua classe Os atributos são representados com seus valores destinoEpreco = { {‘Canoas’, 3.00}, {‘Novo Hamburgo’, 3.50}, {‘Sao Leopoldo’, 4.00}} POA_SaoLeopoldo:Linhas

Atores vs. Instâncias Qual a diferença entre um ator, uma classe e uma instância ? Ator: Uma entidade externa ao sistema que esta sendo modelado, que interage com o mesmo Classe: Uma abstração para uma entidade no domínio do problema, que possui características comuns com outro elementos do sistema Objeto: Uma instância específica de uma classe

Associações Associações denotam relações entre classes A multiplicidade de uma associação mostra quantos objetos “fonte” podem referenciar objetos “destino” Exemplos: um-para-um um-para-muitos muitos-para-muitos

Associação 1-para-1 Associação 1-para-muitos * desenha() Poligono x:Integer y:Integer Ponto 1 Tem capital nome:String Pais nome:String Cidade 11 Associações

Agregação Uma agregação é um caso especial de associação que estipula uma hierarquia “composta por” O agregado é a classe pai, os componentes são classes filhas. * SistemaControleMovimentoSensoresAtuadores 1..*

Composição Um losango preenchido indica composição, uma forma “forte” de agregação onde os componentes não podem existir sem o agregado 3 MaquinaPassagensBotao

Generalização/Herança A generalização mostra a relação de herança entre classes As classes filhas herdam os atributos e operações da classe pai A generalização simplifica o modelo eliminando as redundâncias Botao BotaoDestinoBotaoCancelar

Diagrama de Seqüências Usado na análise de requisitos Para refinar a descrição de casos de uso Para encontrar objetos adicionais (“objetos participantes”) Usado no projeto do sistema Para refinar as interfaces dos subsistemas selecionaDestino() pegaTroco() pegaPassagem() insereDinheiro() Passageiro MaquinaPassagens

Diagrama de Seqüências Usado na análise de requisitos Para refinar a descrição de casos de uso Para encontrar objetos adicionais (“objetos participantes”) Usado no projeto do sistema Para refinar as interfaces dos subsistemas selecionaDestino() pegaTroco() pegaPassagem() insereDinheiro() Passageiro MaquinaPassagens Classes

Diagrama de Seqüências Usado na análise de requisitos Para refinar a descrição de casos de uso Para encontrar objetos adicionais (“objetos participantes”) Usado no projeto do sistema Para refinar as interfaces dos subsistemas selecionaDestino() pegaTroco() pegaPassagem() insereDinheiro() Passageiro MaquinaPassagens Mensagens

Diagrama de Seqüências Usado na análise de requisitos Para refinar a descrição de casos de uso Para encontrar objetos adicionais (“objetos participantes”) Usado no projeto do sistema Para refinar as interfaces dos subsistemas selecionaDestino() pegaTroco() pegaPassagem() insereDinheiro() Passageiro MaquinaPassagens Ativações

Diagrama de Seqüências Usado na análise de requisitos Para refinar a descrição de casos de uso Para encontrar objetos adicionais (“objetos participantes”) Usado no projeto do sistema Para refinar as interfaces dos subsistemas selecionaDestino() pegaTroco() pegaPassagem() insereDinheiro() Passageiro MaquinaPassagens Tempo do Cenário

continua... Diagrama de Seqüências: Mensagens Aninhadas A fonte de uma seta indica o estímulo que envia uma mensagem Um estímulo tem a duração da soma de todos os tempos de todas as mensagens aninhadas selecionaDestino() Passageiro BotaoDestinoLinhas Display procraPreco(destino) mostraPreco(preco) preco

continua... Diagrama de Seqüências: Mensagens Aninhadas A fonte de uma seta indica o estímulo que envia uma mensagem Um estímulo tem a duração da soma de todos os tempos de todas as mensagens aninhadas selecionaDestino() Passageiro BotaoDestinoLinhas Display procraPreco(destino) mostraPreco(preco) preco Fluxo de Dados

Observações sobre o Diagrama de Seqüências O diagrama de seqüências da UML representa o comportamento em termos de interações Complementa o diagrama de classes que represente apenas a estrutura do sistema Útil para encontrar objetos participantes do sistema Consome tempo para a construção mas vale o investimento Semântica idêntica ao Diagrama de Colaboração

Mecanismos de Extensão Porque um mecanismo de extensão ? Embora seja bem definida a UML precisa ser personalizada para domínios de problemas específicos Mecanismo de extensão permite Adicionar novos elementos de modelagem Criar novas propriedades Especificar uma nova semântica Três tipos de mecanismos Estereótipos (stereotypes) Valores Anotados (tagged values) Restrições (constraints)

Mecanismos de Extensão - Estereótipos Estereótipos são usados para criar novos elementos no modelo que podem ser usados em domínios específicos Exemplo: Modelando um sistema de controle de elevador «hardware» «software» «botao» BotaoCancelar Estereótipo estado

Mecanismos de Extensão – Valores Anotados Definem propriedades adicionais à qualquer elemento do modelo Podem ser definidos para estereótipos São apresentados como pares “etiqueta-valor” onde a “etiqueta” representa a propriedade e o “valor” representa o valor da propriedade São úteis para adicionar propriedades sobre Geração de código Controle de versão Gerenciamento de configuração Entre outros

Mecanismos de Extensão – Restrições As restrições são usadas para adicionar novas regras ou modificar alguma regra existente Também é usado para especificar condições que devem ser satisfeitas para os elementos do modelo Podem ser representadas através de linguagem natural ou OCL (Object Contraint Language)

Mecanismos de Extensão – Perfis Os perfis UML são conjuntos de estereótipos, valores anotados e restrições para domínios de aplicação específico Perfil UML Tempo-Real Perfil de Tolerância a Falhas Perfil de Plataformas

Real-Time UML UML Profile for Schedulability, Performance and Time Conjunto de abstrações normalmente utilizadas no projeto de um sistema tempo- real Visa facilitar Especificação de restrições Troca de informações entre as ferramentas de apoio

Real-Time UML – Estrutura do Perfil > RTresourceModeling > RTconcurrencyModeling > RTtimeModeling > SAprofile > PAprofile > RSAprofile > RealTimeCORBAModel Modelos de Análise Framework para modelagem de Recursos Modelos de Infraestrutura >

Real-Time UML – Estrutura do Perfil > RTresourceModeling > RTconcurrencyModeling > RTtimeModeling > SAprofile > PAprofile > RSAprofile > RealTimeCORBAModel Modelos de Análise Framework para modelagem de Recursos Modelos de Infraestrutura > Conceitos básicos para suportar a modelagem de recursos, mecanismos de tempo e concorrência

Real-Time UML – Estrutura do Perfil > RTresourceModeling > RTconcurrencyModeling > RTtimeModeling > SAprofile > PAprofile > RSAprofile > RealTimeCORBAModel Modelos de Análise Framework para modelagem de Recursos Modelos de Infraestrutura > Define estereótipos e valores anotados para possibilitar a expressão de escalonabilidade (SA) e desempenho (PA)

Real-Time UML – Estrutura do Perfil > RTresourceModeling > RTconcurrencyModeling > RTtimeModeling > SAprofile > PAprofile > RSAprofile > RealTimeCORBAModel Modelos de Análise Framework para modelagem de Recursos Modelos de Infraestrutura > Sub-perfil para tecnologias específicas

Real-Time UML – Modelagem de Recursos Especifica padrões presentes em muitos métodos de análise tempo-real Define uma terminologia comum e um framework conceitual voltados para reduzir as ambigüidades do modelo Expressa características de QoS (Quality of Service)

Real-Time UML – Modelagem de Tempo Cobre a especificação de medidas de tempo, como intervalos, delays e deadlines Define os serviços de tempo oferecidos pelos sistemas operacionais tempo real, como Timers e Clocks Também define padrões para funções de distribuição de probabilidades

Real-Time UML – Definição de Intervalos usando tempos relativos

Real-Time UML – Execução de ação com controle de deadline

Real-Time UML – Modelagem de Concorrência Aborda os seguintes pontos: Recursos concorrentes: mecanismos para um comportamento concorrente (tarefas, processos ou threads); Cenários concorrentes: seqüências de ações geralmente interligadas efetuadas por recursos concorrentes; Serviços de recursos concorrentes: serviços que possuem algum tipo de política de controle de acesso

Real-Time UML – Exemplo de Modelagem de Concorrência

Real-Time UML – Modelo para Análise de Escalonabilidade Oferece alternativas para decorar o modelo com anotações, de modo a permitir a aplicação de diversas técnicas de análise de escalonabilidade Baseia-se na modelagem de situações, através de diagramas de seqüência e de colaboração

Real-Time UML – Modelo para Análise de Escalonabilidade

Estudo de Caso: Automação de uma Cadeira de Rodas

Controle de Movimento – Diagrama de Casos de Uso

Leitura Sensores – Diagrama de Colaboração

Controle/Atuação – Diagrama de Colaboração

Tolerância à Falhas – Diagrama de Colaboração

Estrutura do Controle de Movimento – Diagrama de Classes

SA/RT vs. UML – Visão Geral das Funcionalidades Sistema SA/RTRT-UML

SA/RT vs. UML – Modelagem do Comportamento do Sistema SA/RTRT-UML

SA/RT vs. UML – Modelagem da Estrutura do Sistema SA/RTRT-UML

Perguntas ?!?