CMP231 – Sistemas Embarcados Ronaldo Ferreira

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software Prof ª. Isabel Sofia de Brito Prof ª. Maria Fernanda Pedro.
Advertisements

Projeto de Sistemas de Software Luana Lachtermacher
VHDL Very High Speed Integrated Circuit Hardware Description Language Prof. Eduardo Todt 2008.
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
BENEFÍCIOS DO ALONGAMENTO
Modelagem computacional no ensino de Física
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Técnicas e Projeto de Sistemas
Prof. Celso Gramática.
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
CCS – Centro de Componentes Semicondutores Luiz Carlos Moreira/Jacobus W. Swart ASIC´s – Application Specific Integrated Circuits.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
UML - Unified Modeling Language
INTRODUÇÃO À GEOMETRIA DO ESPAÇO-TEMPO
ANÁLISE E PROJETO DE SISTEMAS
Sistemas Operacionais
CULTURA ORGANIZACIONAL
Teste de Software OO Ana de Alencar Price Instituto de Informática - UFRGS.
Gustavo Vieira Pereira
Modelando com UML CMP 231 – Sistemas Embarcados
Slide 1 Rede Nacional de Ensino e Pesquisa Serviços do Middleware Treinamento em GRADEp – junho de 2005 GT GRADEp Middleware GRADEp Serviços.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
O Fluxo de Testes © Alexandre Vasconcelos
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
Design Patterns – Composite e Visitor
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
AGML Uma Linguagem Para Descrição de Sistemas Multiagentes Júlio de L. do R. Monteiro 8/12/2000 PCS-5924 Teoria de Linguagens.
UNIVERSIDADE DE PASSO FUNDO
Funções de um computador
"Tudo o que acontece, acontece em algum lugar." Gilberto Câmara - INPE Gilberto Câmara - INPE.
Sistemas de Tutoria Inteligente (STI) Visam proporcionar instrução de forma adaptada a cada aprendiz. STIs adaptam o processo de instrução a determinadas.
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
Curriculum and Instruction in Automated Tutors in Polson & Richardson Resumo.
Modulo Especialista.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
CSC E-CNS CE-235 Sistemas Embarcados de Tempo Real 2° Semestre de 2006 Componente de Software de Computador de Comunicação, Navegação, Vigilância CSC E-CNS.
Técnicas de Diagnóstico. Objetivo Caracterizar técnicas de diagnóstico para o modelo do estudante Caracterizar técnicas de diagnóstico para o modelo do.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira Sala 120 – Prédio da Computação Lógica de Descrições.
Mecânica dos Materiais TA-431 FEA/Unicamp
Modelos de Iluminação Daniel Lemos. Definição MODELOS DE ILUMINAÇÃO são técnicas usadas para calcular a intensidade da cor de um ponto a ser exibido.
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
Já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x 0. Derivadas Chamamos esse limite, quando ele existia, de derivada de f em.
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Orientação a Objetos Uma Introdução à Programação Orientada a Objetos
Entendendo as definições de classe
Análise do Desempenho dos Modelos
Unified Modeling Language
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Baseado no documento do Prof. Ronaldo Martins da Costa
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Programação Concorrente com Thread Java
Robótica: Sistemas Sensorial e Motor
Prof. André Laurindo Maitelli DCA-UFRN
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
8. Uma Função de duas Variáveis Aleatórias
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Transcrição da apresentação:

CMP231 – Sistemas Embarcados Ronaldo Ferreira rrferreira@inf.ufrgs.br Laboratório de UML CMP231 – Sistemas Embarcados Ronaldo Ferreira rrferreira@inf.ufrgs.br

Agenda Modelo e modelagem UML Diagrama de classes Structured e Behaviored classifiers Classes e Interfaces Behavior e BehavioralFeature, OpaqueAction Associações: composição e agregação, links Multiplicidades e subsetting Diagrama de casos de uso Interação e Diagrama de sequências Operadores de fluxo Mensagens síncronas e assíncronas Execution e Occurrence specifications 26/03/2017

Modelo e modelagem O que é um modelo correto? há um modelo correto? Um modelo é, na verdade, adequado ou não para o propósito e expectativas nele depositadas Profundidade: o modelo implementa o nível de detalhes adequado de suas funcionalidades Largura: o modelo implementa todas as funcionalidades necessárias Quem garante? Processo interno ou agência externa 26/03/2017

Modelo e modelagem Qual o objetivo de se modelar? Refinamento da especificação V&V Simulação e geração de código Time-to-market e abstração mais adequada Redução de custos Regra da disciplina CMP231 26/03/2017

UML Especificada em dois documentos Infrastructure Superstructure Não necessariamente UML, descreve o mínimo necessário para descrever uma linguagem Especifica o mecanismo de extensão de linguagens e pontos de interação com o padrão MOF Superstructure Descreve as construções e semântica da UML Utiliza o Infrastructure 26/03/2017

Agenda Modelo e modelagem UML Diagrama de classes Structured e Behaviored classifiers Classes e Interfaces Behavior e BehavioralFeature, OpaqueAction Associações: composição e agregação, links Multiplicidades e subsetting Diagrama de casos de uso Interação e Diagrama de sequências Operadores de fluxo Mensagens síncronas e assíncronas Execution e Occurrence specifications 26/03/2017

Diagrama de classes Descrição estrutural do modelo Descreve o domínio e suas relações e restrições Conceito central: Classifier Define um conceito do domínio possuidor de um nome (portanto, um NamedClassifier) 26/03/2017

Diagrama de classes Classe É um NamedClassifier, que possui propriedades (atributos) (StructuralFeature), sendo, portanto, um StructuredClassifier É também um NamedClassifier possuidor de comportamento (BehavioralFeature), sendo, portanto, um BehavioredClassifier É um TypedElement e, portanto, a definição de uma classe define um tipo no domínio 26/03/2017

Diagrama de classes Interface É um NamedClassifier, que possui propriedades (atributos) (StructuralFeature), sendo, portanto, um StructuredClassifier É um TypedElement e, portanto, a definição de uma classe define um tipo no domínio É equivalente a uma classe abstrata sem implementação de comportamento e propriedades 26/03/2017

Diagrama de classes Cada propriedade possui uma visibilidade de acesso (VisibilityKind) e um tipo Public (+) Private (-) Protected (#) Package (~) 26/03/2017

Diagrama de classes Associação define comunicação entre objetos (instâncias de classes) em tempo de execução A associação é também uma classe, sua instância chama-se link Possui três tipos (AggregationKind) None Shared Composite 26/03/2017

Shared vs. composite Ambas definem relação todo parte (leia-se B é parte de A ou A é o todo de B) Composite: As instâncias de B são criadas “dentro” de A, e são removidas quando A deixa de existir Shared: B é parte de A, mas pode ser parte de outra classe também. Como lidar com isso é um semantic variation point 26/03/2017

aggregationKind = none aggregationKind = shared aggregationKind = composite 26/03/2017

Errado Correto Indefinido B não pode ser dependente de duas classes distintas Correto B foi criado por alguém, não sabemos quem, mas está OK (em partes, depende da semântica de remoção da shared) Indefinido Depende da semântica assumida para a shared. 26/03/2017

Propriedades da associação Uma associação define uma coleção de elementos. Há propriedades para especificar essa coleção. Subsets: os elementos de uma relação A estão na relação B, e |A| <= |B| Redefines: os elementos da relação A especializam os elementos da relação B Union: uma relação A é definida como a união dos elementos de outras relações Ordered: os elementos da relação são ordenados Nonunique: pode haver elementos repetidos na relação Sequence: coleção de elementos não ordenados com possibilidade de repetição de elementos (estrutura bag) 26/03/2017

Multiplicidades incoerentes. UML assume a mais restrita como correta Conceito padrão de herança. Chama-se Generalização em UML. Introduz hierarquia de tipos 26/03/2017

Propriedade vs. associação class A { b : Classe B main() { b.foo( ) ; } } class B foo( ) class A { } class B foo( ) link :: a_b a : Classe A b : Classe B main() { b.foo( ) } 26/03/2017

Um pouco de código (c’est la vie) class Usuario { Collection emprestimo; boolean remove ( Item : it ) { emprestimo.contains ( it ) ? ( if emprestimo.size – 1 < 1 return false ; else emprestimo.remove ( it ) return true ; ) : return false ; } } class Biblioteca { Collection usuarios; Collection emprestadores; boolean addEmprestadores ( Usuario : usr ) { usuarios.contains ( usr ) ? ( emprestadores.add ( usr ) return true ; A especificação da UML não define essas regras de tradução. É completamente dependente da ferramenta CASE utilizada. class Item { } class Livro extends Item {} class DVD extends Item {} class Biblioteca { Collection usuarios; Collection emprestadores; } class Usuario { Collection emprestimo; 26/03/2017

Agenda Modelo e modelagem UML Diagrama de classes Structured e Behaviored classifiers Classes e Interfaces Behavior e BehavioralFeature, OpaqueAction Associações: composição e agregação, links Multiplicidades e subsetting Diagrama de casos de uso Interação e Diagrama de sequências Operadores de fluxo Mensagens síncronas e assíncronas Execution e Occurrence specifications 26/03/2017

Diagrama de casos de uso Diagrama comportamental, descreve a interação entre atores externos e o sistema sendo modelado O caso de uso é uma descrição em alto-nível de um comportamento emergente 26/03/2017

Diagrama de casos de uso Um caso de uso é um EmergentBehavior Composição de diversos comportamentos baseado na troca de mensagens entre instâncias Cada comportamento que compõe o emergente pode tanto ser um EmergentBehavior (troca de mensagens) quanto um AtomicBehavior (depende somente da instância em questão) void comprarProduto ( ) { checarDisponibilidade ( ) calcularPreco ( ) baixarEstoque ( ) entregarProduto ( ) } int getPosicaoAtual ( ) { return this.x – this.y; } 26/03/2017

Execução concorrente da Função C -> mais de uma instância do ator iniciam o caso de uso O comportamento definido na Função B é inserido na Função C através ponto de extensão Execução degradada. Como realiza-se essa inserção é um semantic variation point A Função A possui o comportamento das Funções B e D. Utiliza-se o Include para reuso de casos de uso, sendo análogo a aninhamento de chamadas de subrotinas 26/03/2017

Agenda Modelo e modelagem UML Diagrama de classes Structured e Behaviored classifiers Classes e Interfaces Behavior e BehavioralFeature, OpaqueAction Associações: composição e agregação, links Multiplicidades e subsetting Diagrama de casos de uso Interações e Diagrama de sequências Operadores de fluxo Mensagens síncronas e assíncronas Execution e Occurrence specifications 26/03/2017

Interação Uma interação é a descrição de um traço de execução entre instâncias Não especifica o comportamento completamente Unidade de comportamento descrevendo a troca de mensagens entre objetos Conceito central: Mensagem O foco é o sequenciamento das mensagens, não o fluxo de dados 26/03/2017

Interação Definida através de dois conjuntos de traces: traces válidos e traces inválidos Trace é um ordenamento de OccurrenceSpecification <e1, e2, e3, ..., eN> Inválidos Válidos Todos os traces possíveis 26/03/2017

Parâmetros formais Construtor Chamada aninhada Life line Destrutor Chamada assíncrona Construtor Chamada síncrona Chamada aninhada Life line Destrutor 26/03/2017

Como começar o meu modelo UML? Descrever casos de uso Entrada: requisitos e funcionalidades do sistema Saída: Diagrama de casos de uso, requisitos refinados Durante o projeto dos casos de uso, refinam-se os requisitos e funcionalidades até termos profundidade e largura adequadas 26/03/2017

Como começar o meu modelo UML? Fase de análise – modelo conceitual A partir dos requisitos e casos de uso, extraem-se os conceitos do domínio Cria-se um diagrama de classes estruturando e hierarquizando esses conceitos Sem métodos, somente estrutura O projeto do modelo conceitual pode ajudar a refinar os casos de uso 26/03/2017

Como começar o meu modelo UML? Fase de projeto – diagrama de classes Definem-se atributos e métodos Colocam-se detalhes de implementação do sistema, independente de linguagem Novamente, aqui é possível ganhar mais conhecimento e refinar o modelo conceitual e os casos de uso Criam-se os diagramas de sequências 26/03/2017