8 Trabalhos futuros. 8.1.Um Modelo de objetos para circuitos de objetos

Documentos relacionados
Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Figura 16 Niagara - Visão de grupos de notas.

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Introdução à Análise e Projeto de Sistemas

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Como Modelar com UML 2

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Modelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo

Introdução. O que é um Banco de Dados (BD)?

RUP Unified Process. Profª Jocelma Rios

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Programação Orientada a Objetos

Linguagem de Programação I Apresentação da Disciplina

Considerações Iniciais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Previsão de Vazões utilizando Redes Neurais Artificiais MLP e NSRBN

3 Circuitos de objetos e simulação

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Reuso de Software Aula Maio 2012

Verificação e Validação (V & V)

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3.1 Reflexão Computacional

Elementos da Linguagem C#

Aula 1: Apresentação do Curso

Aula 1: Apresentação do Curso

ara entender os Sistemas Gerenciadores de Banco de Dados é importante conhecer

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

UML e seus diagramas

Linguagem de Programação I

EDITAL CONJUNTO Nº 04/2018/PROGRAD/PROEST ANEXO I PLANO DE TRABALHO

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Os pontos mais fortes do MAS-School são: A técnica orientada a objetivos para a fase de requisitos utiliza o processo recursivo de decomposição de um

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Análise de Sistemas. Aula 5

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Banco de Dados Relacional

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

Programação Orientada a Objetos

Figura 1. Estrutura do agente de software.

Introdução ao Java. Prof. Herbert Rausch Fernandes

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

Topologia de Redes. Alberto Felipe Friderichs Barros

Introdução à Modelagem Conceitual 1. Conceitos Básicos

Engenharia de Software

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Daniel Wildt

Engenharia de Software. Projeto de Arquitetura

2 Circuitos de objetos numa casca de noz

QUALIDADE DE SOFTWARE. Princípios de Engenharia de Software

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Princípios de Análise e Projeto Orientados a Objetos com UML

Um estudo de caso usando o método formal Z para especificação de um

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Organização para Realização de Teste de Software

Elementos da Linguagem C#

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Engenharia Software. Ení Berbert Camilo Contaiffer

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Engenharia Reversa e Reengenharia Software 13/05/2015

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

6.CONCLUSÕES CONCLUSÕES

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Topologias de redes de computadores

4 Caso de Uso no Ambiente Oracle

Engenharia de Software

Programação por Objectos Introdução. Introdução 1/18

Sistemas de Computação e de Informação

Figura 1 - Uma possível forma de acesso à informação compartilhada.

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

SISTEMA DISTRIBUÍDO PARA GERENCIAMENTO DE LIBERAÇÃO DE RELEASES DE SOFTWARE

DCC011 Introdução a Banco de Dados. Construindo o Esquema. 1. Propriedades de Modelos ER. Construindo Esquema Conceitual

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

QUAL PRODUTO VECTORWORKS É O CORRETO PARA MIM?

Parte SISTEMAS DE GERÊNCIA DE BANCO DE DADOS 2.1 CARACTERÍSTICAS DE UM BANCO DE DADOS

DISCIPLINA: Programação de Computadores II

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

UML Unified Modeling Language Linguagem de Modelagem Unificada

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

UML (Unified Modelling Language)

Gerência de Projetos de Software. Prof. Dr. João Dovicchi INE / CTC / UFSC.

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 2. Prof. Leonardo Vasconcelos

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

5 Processo de Reificação e de Desenvolvimento com ACCA

2 Metodologias para Projetos de Aplicações Hipermidia

A protoboard ou Matriz de contatos é utilizada para fazer montagens provisórias e/ou teste de projetos. É constituída por uma base plástica, contendo

Transcrição:

8 Trabalhos futuros Nesta seção, detalhamos algumas das linhas de pesquisa a serem investigadas. Algumas das idéias aqui propostas surgem como necessidade óbvia após uma análise do trabalho apresentado, e serão visitadas prioritariamente. Outras surgiram casualmente da imaginação do autor, e são descompromissadas por natureza. Ao leitor é deixada a tarefa de separá-las. 8.1.Um Modelo de objetos para circuitos de objetos Embora ao longo deste trabalho muito tenha sido falado a respeito do papel de objetos no universo de circuitos, não houve a preocupação, neste primeiro momento, de construir um modelo próprio daquilo que se entende por objeto. Pelo contrário, nos baseamos vagamente na definição de objetos no contexto da modelagem OO tradicional, como entidade que possui estado e comportamento. Esta abordagem permitiu transmitir mais facilmente a idéia central do trabalho a de objetos como transmissores de informação em circuitos mas não é suficiente para uma apresentação formal da teoria. Fica então clara a necessidade da criação de um modelo de objetos próprio, a la datatrons de Visual Circuit Board (objectrons?). Com uma definição formal de objetos, tornamos o modelo de circuitos de objetos mais homogêneo, restringindo o universo de representações de uma determinada computação. Em outras palavras, tornamos circuitos de objetos menos ambíguos. O desafio, porém, está em reduzir a ambigüidade sem prejuízo para a simplicidade e a elegância. Neste sentido, algumas questões se colocam de pronto: Uma vez que dispositivos já implementam funções isto é, possuem comportamento é interessante que objetos também o tenham? Um possível caminho é o de objetos como armazenadores de informação pura, ou seja, possuidores de estado, mas não de comportamento. O estado de um objeto pode ser alterado? A alteração do estado de um objeto é um efeito colateral e tende a tornar o modelo mais complexo.

63 Caso não seja permitido, um novo estado só seria alcançado com a criação de um novo objeto. Que objetos podem ser referenciados por um objeto? São permitidas referências cíclicas? Quais as classes de objetos fundamentais que devem ser incorporadas ao modelo de circuitos de objetos? Qual o suporte à criação de novas classes de objetos? Qual o papel de herança e polimorfismo, se é que possuem algum, e como são alcançadas? Qual a longevidade de um objeto? Onde é criado, e onde é destruído? 8.2.Catálogos de dispositivos À medida que a quantidade de dispositivos aumenta, fica evidente a necessidade de algum mecanismo de classificação e organização. Sem este mecanismo, a simples tarefa de encontrar um dispositivo para determinado uso pode se tornar impraticável. Surge então o conceito de catálogos de dispositivos, para os mais variados propósitos. Um catálogo é uma estrutura hierárquica contendo especificações de dispositivos de alguma forma relacionados entre si seja por semelhança de funcionalidade, domínio de aplicação, ou algum outro critério. Catálogos são de alguma forma similares aos pacotes de classes da linguagem Java, ou aos namespaces de C#. Uma classe pertence a um único pacote ou namespace, mas este é um conceito que merece ser revisto no caso de catálogos, pois qualquer mecanismo de categorização deve prever a possibilidade de inclusão de uma entidade em mais de uma categoria. Em outras palavras, deve ser possível incluir um dispositivo em mais de um catálogo. 8.3.Cartas temporais A propriedade de autonomia permite a criação de dispositivos cujo funcionamento interno é ditado unicamente pela passagem do tempo, e não por sinais externos recebidos por algum de seus barramentos. Num circuito com dispositivos desta natureza, a sincronia só pode ser alcançada se o comportamento do dispositivo ao longo do tempo for conhecido. Isto pode ser alcançado através

64 de cartas temporais: documentos contendo especificações do funcionamento de um dispositivo segundo uma série de eventos periódicos. 8.4.Linhas de tempo Indo um pouco mais além, podemos extrapolar o conceito de tempo como uma dimensão única, tal como ocorre num circuito elétrico real. A conveniência de trabalhar no mundo das abstrações nos permite redefinir o conceito de tempo, que passa então a ser uma propriedade interna do dispositivo. Para todos os efeitos, o tempo é uma grandeza que dita a velocidade na qual a computação de um determinado dispositivo é realizada, seja ele atômico ou composto. Neste último caso, o que ocorre é que a velocidade de computação de cada um dos dispositivos internos é afetada pela linha de tempo do dispositivo pai, de modo recursivo. Ao adotar esta estratégia, o design de sistemas onde determinadas computações são executadas mais rapidamente que outras é feito de forma elegante, pois o tempo possui uma hierarquia, a saber, a mesma dos dispositivos que compõem o circuito. A elegância advém do fato de que é sempre possível ajustar o ritmo da passagem de tempo de um dispositivo composto sem afetar o funcionamento das partes que o compõem. Para um dispositivo filho, a mudança de tempo no pai é imperceptível, na medida em que afeta a ele próprio e a todos os outros filhos de forma homogênea. 8.5.Esquemas Num circuito elétrico, um esquema é uma representação diagramática dos componentes do circuito e suas ligações, contendo informações de layout (disposição dos elementos na placa) e anotações que auxiliam a identificar partes e entender o funcionamento. Sua utilidade como artefato de documentação do sistema é óbvia; logo, seria uma injustiça que circuitos de objetos não possuíssem também uma linguagem para construção de esquemas. Nasce então a idéia de desenvolver um modelo de esquema de circuitos de objetos utilizando a linguagem XML, que permita relacionar os elementos de um circuito, bem como decorá-los com rótulos e todo tipo de anotações útil.

65 É interessante notar que esquemas também têm um papel no que diz respeito à introspecção, pois somente com um meta-modelo desta natureza pode-se prover aos dispositivos meios para obter e manipular informações sobre o circuito a que pertencem. 8.6.Checagem de tipos Classes de objetos são especificações de tipos, e linguagens de programação OO utilizam informações sobre a estrutura das classes para fazer validações no código de um programa, tanto em tempo de compilação quanto de execução, conhecido como checagem de tipo. A checagem ocorre em um número de situações, tais como chamada de um método, conversão explícita ou downcasting, etc. No âmbito de circuitos de objetos, a checagem de tipos pode ser feita da seguinte forma: ao anotar a porta de um barramento com a designação de um dado tipo, especifica-se que o potencial do ramo da porta deve, em qualquer instante, ser compatível com este tipo (sendo o potencial nulo ξ o único compatível com todos os tipos). Então, é possível detectar erros na lógica do circuito ainda na etapa de construção, por exemplo, ao conectar portas associadas a tipos incompatíveis. Nada impede, entretanto, que várias portas tipadas sejam conectadas, desde que respeitada a compatibilidade, ou seja, desde que o potencial do ramo seja compatível com todas as portas tipadas. Possivelmente, o conceito de circuitos elétricos que mais se aproxima da idéia de tipo num circuito de objetos é o de impedância (resistência dinâmica), visto que uma porta tipada oferece resistência à passagem de objetos cujos tipos são incompatíveis com o tipo da porta. 8.7.Ferramentas de desenvolvimento O apelo visual por trás de circuitos de objetos motiva a criação de ambientes de desenvolvimento visuais, com várias funcionalidades, tais como: Navegação amigável: zoom in, zoom out, visão estrutural da árvore de dispositivos, etc. Busca de dispositivos baseada em critérios específicos: nome, catálogo(s) a que pertence, função implementada, etc.

66 Visualização do fluxo de objetos num circuito em execução. Gerenciamento de catálogos: inclusão, remoção e edição de dispositivos. 8.8.JOCA e agentes de software A arquitetura JOCA faz uso limitado do conceito de agentes de software como forma de implementar o aspecto autônomo de um dispositivo atômico. No estágio atual da arquitetura, o trabalho de programação de um dispositivo simples ainda é grande, e não há muito espaço para reutilização. A idéia é expandir o uso de agentes de software na especificação de dispositivos atômicos, construindo um amplo modelo de sistemas multi-agentes que dêem ao designer mais flexibilidade e simplicidade. 8.9.Outros trabalhos Design de mecanismos para suporte à introspecção e à evolução dinâmica. Estudo de técnicas da Engenharia de Software aplicadas a circuitos de objetos, tais como design patterns e contratos. Estudo de técnicas de design de circuitos elétricos aplicadas a circuitos de objetos, tais como tolerância à falhas e redundância.