11 |
Uma biblioteca de padrões de especificação em Event-B para mecanismos de troca de mensagens em sistema distribuídosPivetta, Paulo Junior Penna January 2012 (has links)
Made available in DSpace on 2013-08-07T18:42:49Z (GMT). No. of bitstreams: 1
000444044-Texto+Completo-0.pdf: 1517934 bytes, checksum: 017ad238277ccab4a746e7590ed0bade (MD5)
Previous issue date: 2012 / The development of distributed systems and communication protocols is not a trivial task and the use of formal specification and verification techniques becomes necessary to assure the correctness of such systems. While model-checking techniques face the state space explosion problem, the use of theorem provers is an important resource for verification of systems with unlimited number of states. The formal method Event-B, increasingly being used in both industry and academia, is based on the technique of theorem proving and also supports refinement. The contribution of this work is a library of reusable formal specification patterns, in Event-B, for message passing mechanisms commonly employed in distributed systems. A specification pattern defines the desired communication semantics of a channel, having its properties formally proven. During the development of a distributed system, the developer may use these patterns by applying guided refinement steps on the target model. The resulting system is assured to have the communication semantics as defined by the pattern, thus freeing the developer of defining the communication system from scratch and of proving its properties. / O desenvolvimento de sistemas distribuídos e protocolos de comunicação é uma tarefa complexa e o uso de técnicas de especificação e verificação formal torna-se necessário para garantir a corretude de tais sistemas. Enquanto técnicas de model-checking passam pelo problema da explosão do espaço de estados, o uso de provadores de teoremas representa um importante recurso para verificação de sistemas com ilimitado número estados. O método formal Event-B, de uso crescente na indústria e academia, se apóia na técnica de prova de teoremas e suporta refinamento. A contribuição deste trabalho está em proporcionar uma biblioteca reusável de padrões de especificação, em Event-B, de mecanismos de troca de mensagens em sistemas distribuídos. Um padrão de especificação define a semântica de comunicação desejada em um canal, demostrando formalmente suas propriedades. Durante o desenvolvimento de um sistema distribuído, o desenvolvedor pode fazer uso destes padrões através de passos guiados de refinamento do sistema. O sistema resultante garante a semantica de comunicação definida no padrão utilizado e livra o desenvolvedor de se preocupar em definir o sistema de comunicação a partir do início e provar suas propriedades.
|
12 |
mRED – um método para a engenharia de requisitos em ambientes de desenvolvimento distribuído de softwareEbling, Thaís January 2009 (has links)
Made available in DSpace on 2013-08-07T18:43:08Z (GMT). No. of bitstreams: 1
000430843-Texto+Completo-0.pdf: 4770738 bytes, checksum: 682accdc5b4469e1fb8302d414dcf645 (MD5)
Previous issue date: 2009 / Requirements Engineering (RE) is a software development stage that requires constant communication and collaboration between the stakeholders. Due this collaborative nature, the RE presents several challenges in Distributed Software Development(DSD) environments [DAM02][DAM07][SEN06] - approach where teams often presents geographic dispersion (physical distance), temporal and sociocultural differences (different time-zones, languages and culture) [AUD07]. We can notice the increasing of studies about this phenomenon, aiming to reduce the RE difficulties in DSD environments. One proposal to systematize the RE is the adoption of a reuse approach [CHE07], specifically the Software Product Line (SPL) which supports the requirements reuse of the company's domain [CHA01][LlN07][POH98]. Thus, we present the mRED method that allows the requirements reuse by using SPL in DSD environments, and also we propose a Reuse Policy (based on a DSD literature review) which suggests some tools, techniques and practices specific to distributed environments for each one of the activities of the method. The mRED was evaluated through an experiment between two universities, presenting evidence that its efficiency is higher than the ad hoc RE efficiency in distributed environments. / A Engenharia de Requisitos (ER) é uma etapa do desenvolvimento de software que requer constante comunicação e colaboração entre os stakeholders1. Esta natureza colaborativa faz com que a ER apresente diversos desafios no Desenvolvimento Distribuído de Software (DDS) [DAM02][DAM07][SEN06] – fenômeno onde freqüentemente têm-se um cenário de equipes que possuem dispersão geográfica (distância física), dispersão temporal (diferenças de fuso-horário) e diferenças socioculturais (idioma, costumes, comportamento, etc. ) [AUD07]. Na busca de reduzir as dificuldades da ER dos ambientes distribuídos, diversas propostas surgiram. Uma maneira de sistematizá-la é através da adoção de uma proposta de reutilização [CHE07], mais especificamente da abordagem de Linha de Produto de Software (LPS), a qual enfatiza o reuso de requisitos do domínio da empresa na construção de novos produtos [CHA01][LIN07][POH98].Desta maneira, apresentamos o método mRED2 que possibilita a reutilização de requisitos utilizando LPS em ambientes de DDS, além disto, propomos uma Política de Reutilização que contém sugestões de ferramentas, técnicas e práticas propostas na literatura de DDS, para auxiliar a execução de cada uma das atividades do método. O mRED foi avaliado através de um experimento realizado em parceria entre a Universidade Estadual de Maringá (UEM) e a Pontifícia Universidade Católica do Rio Grande do Sul universidades (PUCRS) e apresentou indícios de que a sua eficiência é maior do que a eficiência do método ad hoc de ER nos ambientes distribuídos.
|
13 |
Uma arquitetura de informação para gerência de requisitos em desenvolvimento distribuído de softwareEspindola, Rodrigo Santos de January 2006 (has links)
Made available in DSpace on 2013-08-07T18:43:20Z (GMT). No. of bitstreams: 1
000380879-Texto+Completo-0.pdf: 1795979 bytes, checksum: 37e7c520f47b07234bf2e3219a79131a (MD5)
Previous issue date: 2006 / The distributed software development (DSD) has caused several challenges to the software development processo Among these challenges, the requirement engineering (RE) is highlighted due to the impact of factors like distance, cultural and time zone differences, and communications restrictions. In this context, the management of requirements related information is turned critical to assure that the required information about a specific domain or application will be available to the software development teams geographically distributed and it will also be available to the future maintenance projects. This way, the goal of this master thesis is to propose a structural model to requirements management in DSD. This proposal aims to contribute to the software engineering filling an existing gap in the DSD area, specifically about the RE and the software maintenance. Besides, this study shows new empirical data and also aims to contribute to software engineering through applying qualitative research methods. The research method adopted was case study, conducted in a software development unit of a multinational organization located in Brazil. / A distribuição das equipes de desenvolvimento tem provocado diversos desafios ao processo de software. Dentre os desafios, a engenharia de requisitos (ER) destaca-se, sofrendo impacto de fatores como distância, diferenças culturais e de fuso-horário, bem como limitações dos meios de comunicação disponíveis. Nesse contexto, o gerenciamento das informações relacionadas a requisitos torna-se crítico para garantir que as informações necessárias sobre um determinado domínio ou aplicação estão disponíveis para as equipes de desenvolvimento geograficamente dispersas e que estas informações sejam organizadas de forma a permitir futuro acesso por projetos de manutenção no mesmo escopo. Nesse sentido, esta dissertação de mestrado tem como objetivo propor um modelo de arquitetura de informação para gerência de requisitos em desenvolvimento distribuído de software (DDS). Esta proposta visa contribuir para a área de engenharia de software ao preencher uma lacuna existente na área de DDS, especificamente no que se refere à ER e à manutenção de software. Além disso, este estudo apresenta novos dados empíricos e busca contribuir também para a pesquisa na área de engenharia de software através do emprego de métodos qualitativos de pesquisa científica. O método de pesquisa utilizado foi o estudo de caso e a base empírica da pesquisa envolve uma unidade de desenvolvimento de software de uma empresa multinacional de grande porte localizada no Brasil.
|
14 |
MuNDDoS: um modelo de referência para desenvolvimento distribuído de softwarePrikladnicki, Rafael January 2003 (has links)
Made available in DSpace on 2013-08-07T18:43:20Z (GMT). No. of bitstreams: 1
000423676-Texto+Completo-0.pdf: 1532403 bytes, checksum: 41ac163cc3ff5f3decff56553a97bf2f (MD5)
Previous issue date: 2003 / Software has become a vital component of almost every business. Success increasingly depends on using software as a competitive advantage. More than a decade ago, seeking lower costs and access to skilled resources, many organizations began to experiment with remotely located software development facilities and with outsourcing. Economic forces are relentlessly turning national markets into global markets and spawning new forms of competition and cooperation that reach across national boundaries. This change is having a profound impact not only on marketing and distribution but also on the way products are conceived, designed, constructed, tested, and delivered to customers. The number of organizations distributing their software development processes worldwide aiming at heightened profit and productivity as well as cost reduction and quality improvements keeps increasing. Software development is increasingly a multi-site, multicultural, globally distributed undertaking. Engineers, managers, and executives face formidable challenges on many levels, from the technical to the social and cultural. More recently, attention has turned toward trying to understand the factors that enable multinationals and virtual corporations to operate successfully across geographic and cultural boundaries. This way, the purpose of this dissertation is to propose a reference model for distributed software development. The research method is case study and the empirical base involves two software development centers from two multinational organizations located in Brazil. The research contributions are the reference model and a model to c1assify the levels of dispersion in distributed projects. Moreover, empirical data is presented, systemizing part of the theory in this recent area. / Atualmente, é cada vez mais significativo o número de empresas que estão distribuindo seus processos de desenvolvimento de software ao redor do mundo, visando ganhos de produtividade, redução de custos e melhorias na qualidade. Por isso, o desenvolvimento distribuído tem atraído um grande número de pesquisas na área de engenharia de software nos últimos anos. Os engenheiros de software têm reconhecido a grande influência desta nova forma de trabalho e estão em busca de modelos que facilitem o desenvolvimento de software com equipes geograficamente dispersas. Além dos engenheiros, os gerentes e os executivos têm enfrentado desafios e dificuldades em diferentes níveis, envolvendo fatores técnicos e não-técnicos. Neste sentido, essa dissertação de mestrado tem como objetivo propor um modelo de referência para desenvolvimento distribuído de software, contemplando as dimensões técnicas e não-técnica e os fatores envolvidos em cada uma. O principal método de pesquisa utilizado foi o estudo de caso e a base empírica da pesquisa envolveu duas unidades de desenvolvimento de software de duas empresas multinacionais de grande porte localizadas no Brasil. A pesquisa contribui no sentido de propor um modelo de referência para a área de desenvolvimento distribuído de software, além de apresentar dados empíricos e sistematizar parte da teoria recente da área. Também contribui ao propor um modelo de classificação do nível de dispersão de projetos distribuídos, considerando os atores envolvidos.
|
15 |
Modelo gerenciador de descoberta de serviços pervasivos ciente de contextoLeithardt, Valderi Reis Quietinho January 2008 (has links)
Made available in DSpace on 2013-08-07T18:43:31Z (GMT). No. of bitstreams: 1
000419091-Texto+Completo-0.pdf: 1710212 bytes, checksum: fb252592a2b3a6d343bfe2c68ca40c20 (MD5)
Previous issue date: 2008 / The pervasive computing allows a range of applications in which the user does not need to worry about the computer system and begins to focus on their task order, or even stop worrying about secondary tasks and focus on a primary task. This change is another step toward the concept of Ubiquitous Computing (ubiquitous / Pervasive Computing) introduced by Mark Weiser [WEI91]. Weiser therefore proposes a continuous integration between environment and technology in the task of assisting users in their most varied daily activities. However, there are a number of requirements to be analyzed and verified in the development of projects in pervasive computing. The development of pervasive computing devices become filled with electronic computing features that will be able to recognize and respond to contextual and individual needs of each person. For example, in a classroom, students have adapted to the context of the teacher, (discipline and content), so that it enters the room. For this to become reality, an important feature of this type of application is the ability to recognize the context of the user a more transparent way possible, making the electronic devices of the environment even less visible to the user. This pervasive computing environment consists of a variety of nodes of various types: fixed and mobile, interconnected applications and services. In this case, pervasive computing is also synonymous with pervasive connectivity, and reflects a highly dynamic and distributed computing. Today, the focus of research is to provide key technologies, to support this new computing environment. Within these needs, this paper presents a model manager discovered service pervasive (MgDsP) for use in mobile applications, sensitive to the context. / A computação pervasiva possibilita uma série de aplicações na qual o usuário não precisa se preocupar com o sistema computacional e passa a se focar na sua tarefa fim, ou até mesmo deixar de se preocupar com tarefas secundárias e se concentrar em uma tarefa principal. Esta mudança é mais um passo em direção ao conceito de Computação Ubíqua (Ubiquitous/Pervasive Computing) introduzido por Mark Weiser [WEI91]. Weiser propõe, assim, uma integração contínua entre ambiente e tecnologia na tarefa de auxiliar os usuários nas suas mais variadas atividades cotidianas. Entretanto, existe uma série de requisitos a serem analisados e verificados na elaboração de projetos de computação pervasiva. O desenvolvimento da computação pervasiva tornará os dispositivos eletrônicos repletos de funcionalidades computacionais que serão capazes de reconhecer e responder às necessidades contextuais e individuais de cada pessoa. Por exemplo, em uma sala de aula, os alunos se adaptariam ao contexto do professor, (disciplina e do conteúdo), assim que o mesmo entrar na sala. Para essa situação tornar-se realidade, uma característica importante desse tipo de aplicação é a capacidade de reconhecer o contexto do usuário de forma mais transparente possível, tornando os dispositivos eletrônicos do ambientes ainda menos perceptíveis para o usuário. Este ambiente computacional pervasivo consiste de uma grande variedade de nodos de diversos tipos: móveis e fixos, aplicações e serviços interconectados. Neste caso, computação pervasiva também é sinônimo de conectividade pervasiva, e reflete uma computação altamente dinâmica e distribuída. Hoje, a concentração das pesquisas está em disponibilizar tecnologias chave, para suportar este novo ambiente computacional. Dentro dessas necessidades, este trabalho apresenta um modelo gerenciador de descoberta de serviços pervasivos (MgDsP) para utilização em aplicações móveis, sensíveis ao contexto.
|
16 |
Sistemas Java de educação a distância na InternetSANTOS, Elanne Cristina Oliveira dos January 2003 (has links)
Made available in DSpace on 2014-06-12T15:58:44Z (GMT). No. of bitstreams: 2
arquivo4686_1.pdf: 1197412 bytes, checksum: 2e569f612d9588595571d546ab5b0845 (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2003 / A Educação a Distância (EAD) vem propondo novas possibilidades de
aprendizagem mais de acordo com as necessidades dos dias atuais, se considerarmos
que estamos em uma sociedade do conhecimento. Do mesmo modo que hoje
demandamos por mais bens materiais, nessa nova sociedade deveremos demandar por
mais conhecimento.
Se pensarmos na quantidade de pessoas para serem educadas, na estrutura
disponível e no número de educadores com capacidade para facilitar o processo de
construção de conhecimento, facilmente chegaremos à conclusão que a EAD é uma
solução viável e pode, certamente, ser uma alternativa para corrigir as distorções
educacionais no nosso país, por exemplo. Ela pode atender regiões que não dispõem de
especialistas e atingir maior número de pessoas.
Basicamente a EAD consiste em se realizar ensino-aprendizagem em que o
aluno e o professor não se encontram em um mesmo ambiente físico. Esta idéia vem
sendo bastante discutida nos meios acadêmicos e defendida em aplicações na Internet
atual. Duas razões têm contribuído particularmente para o desenvolvimento desta área: a
proliferação de recursos de informática e o grande avanço na tecnologia de
comunicação.
Este trabalho se propõe a levantar características de tecnologias Java aplicadas a
desenvolvimento de sistemas de Educação a Distância para Internet. Esses pressupostos
servirão de base para a especificação e implementação de um protótipo de um sistema
EAD. Com isto o trabalho estará contribuindo para o avanço da linha de pesquisa sobre
sistemas de Educação a Distância na Internet e para o bom aproveitamento desta rede
para aplicações de educação a distância
|
17 |
Uma técnica de análise de conformidade comportamental para sistemas distribuídos. / A behavioral compliance analysis technique for distributed systems.BEZERRA, Amanda Saraiva. 15 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-15T15:01:06Z
No. of bitstreams: 1
AMANDA SARAIVA BEZERRA - DISSERTAÇÃO PPGCC 2008..pdf: 5823735 bytes, checksum: 68f742006dbac9f251bc1a10ef99a69a (MD5) / Made available in DSpace on 2018-08-15T15:01:06Z (GMT). No. of bitstreams: 1
AMANDA SARAIVA BEZERRA - DISSERTAÇÃO PPGCC 2008..pdf: 5823735 bytes, checksum: 68f742006dbac9f251bc1a10ef99a69a (MD5)
Previous issue date: 2008-11-28 / Capes / Verificar o comportamento de Sistemas Distribuídos é difícil. Algumas técnicas, como
Model Checking, tentam garantir a corretude comportamental de um sistema analisando
todos os seus caminhos de execução. Entretanto, esta técnica é limitada para a análise de sistemas consideravelmente pequenos. A técnica de Design by Contract (DbC) sugere a construção de um conjunto de asserções que devem ser verificadas em tempo de execução. Estas asserções são checagens instantâneas, podendo estas serem atendidas ou violadas. Como DbC não dá suporte à verificação de asserções temporais, cuja checagem deve ser realizadas sobre vários instantes,então construímos uma técnica que possibilita a verificação comportamental de Sistemas Distribuídos, verificando se a execução apresentada está de acordo com os requisitos comportamentais definidos para o sistema. Inicialmente é necessário definir os requisitos, que devem descrever o comportamento desejado para o sistema. Como estes requisitos devem ser checagens contínuas utilizamos a Lógica Temporal Linear (LTL) para descrever a evolução do comportamento ao longo do tempo. Usamos então LTL para definir o conjunto de propriedades comportamentais especificadas para o sistema distribuído implementado em Java. Cada propriedade comportamental deve ser verificada sobre um conjunto específico de objetos do sistema, são os chamados pontos de interesse. Este pontos têm relação direta e devem obedecer a uma determinada propriedade comportamental. Durante a execução é realizada a captura de informações dos pontos de interesse a serem analisados, esta captura é feita usando a Programação Orientada a Aspectos (POA). A linguagem AspectJ, implementação de POA, possibilita a captura de informações sem a necessidade de modificar o código fonte do sistema a ser analisado. Durante a execução do sistema é realizada a monitoração, além da captura da informação, sendo necessária uma ordenação parcial dos eventos provocados pelos processos que compõem o sistema distribuído. A ordenação é feita com base na relação de causa e efeito entre os eventos, assim usamos o conceito de Relógios Lógicos, que possibilita uma ordenação parcial dos eventos gerados durante a execução do sistema. Após a captura e organização dos eventos, é realizada a verificação comportamental apresentada pelos eventos de acordo com o conjunto de propriedades definidas para tal. Se em algum momento desta verificação alguma propriedade for violada, então dizemos que foi encontrado um comportamento inesperado ou anômalo, de acordo com o especificado. Esta
violação é apresentada para o desenvolvedor ou testador do sistema, que tomará as devidas providências para localizar e corrigir a violação detectada. Como prova de conceito, implementamos a ferramenta DistributedDesignMonitor (DDM), realizando a monitoração de Sistemas Distribuídos implementados na linguagem Java. O DDM é apresentado e discutido através de experimentos realizados com a ferramenta, mostrando como fazer uso da técnica de monitoração. / Verify Distributed Systems is very hard. Some techniques, Model Checking for example,
trying to grant the behavioral correctness analyzing all the execution paths for these systems. However, this technique is limited to check small systems. The Design by Contract technique (DbC) suggests makes a set of assertions that should
be verified at runtime. These assertions are instant checks, which could be satisfied or violated. As DbC does not support the verification of temporal assertions, which check should be done over a lot of instant time for the execution, so we built a technique that verifies the Distributed Systems' behavior, verifying if the system execution is in accordance with the behavior requirements for it Initially is necessary the requirement definition, which should describe the desired system behavior. These requirements should be continuous checks, so we use the Linear Temporal Logic (LTL) to describe the evolution of the behavior over the time. The LTL is used to define set of behavioral properties specified for a Java Distributed System. Each behavioral property should be verified over defined objects of the system, they are the points of interest. These points should obey to the behavioral property defined for them. During the execution the information catch of each point of interest is done by the Aspect Oriented Programming (AOP). The language AspecU makes possible the capture of runtime information without intrusiveness.
During the system execution starts the monitoring, being necessary a partial order of the
events of the distributed system processes. The ordering is done based on the relation of
cause and effect between events, so we use the Logical Clocks to do this partial order.
After the capture and the organization of the events, the behavioral verification is done
in accordance with the specified properties defined for this system. If some violation was
detected during the system verification, so we found an inconsistent or unexpected behavior, in accordance with the specification. This violation is showed to the system developer or tester, which will correct the analyzed system. In this work we implemented the DistributedDesignMonitor (DDM) tool to prove our concept, monitoring Distributed Systems implemented in Java language. O DDM is presented and discussed using experiments, showed how use the monitoring technique
|
18 |
Integração do serviço de diretório LDAP com o serviço de nomes CORBA.Isquierdo, Gustavo Scalco 31 October 2001 (has links)
Esta dissertação apresenta uma solução para a integração do serviço de diretório LDAP com o serviço de nomes CORBA. Descrevemos a implementação de um servidor de nomes CORBA que armazena, num diretório LDAP, as associações entre nomes e referências para objetos. O servidor de nomes CORBA é, portanto, um cliente do serviço de diretório LDAP. Eficiência e flexibilidade são as vantagens desta abordagem. As associações nomereferência ficarão acessíveis tanto para clientes CORBA (através das interfaces do serviço de nomes) como para clientes LDAP (através da API do LDAP). Atributos descritivos poderão ser adicionados às entradas do diretório que representam associações nome-referência. Clientes LDAP poderão utilizar as facilidades de busca no diretório para obter referências cujas entradas satisfaçam determinadas condições. Essas condições podem envolver o nome associado à referência ou outros atributos presentes nas entradas do diretório.
|
19 |
Projeto, implementação e avaliação de uma camada genérica de comunicação em grupo / Projeto, Implementação e Avaliação de Uma Camada Genérica de Comunicação em Grupo (Inglês)Pinto, Leandro Sales Holanda 27 August 2009 (has links)
Made available in DSpace on 2019-03-29T23:16:07Z (GMT). No. of bitstreams: 0
Previous issue date: 2009-08-27 / Relying on generic group communication APIs in the development of distributed applications can be a good design decision for at least two main reasons: (i) performance, with the possibility of selecting the most efficient group communication system for the particular context of the application without the need of code refactoring; and (ii) modularity, with the opportunity to use a loosely coupled software architecture that is independent from any specific group communication implementation. Despite their clear benefits, the current generic APIs only offer basic services for message transmission and membership management, which has hampered their adoption by applications that required higher-level services such as invocation of replicated objects and state transfer between group members. This dissertation presents a
generic group communication layer, called G2CL, which implements a set of high-level group communication services on top of an existing generic API. To show the viability of using G2CL in a real system, the dissertation reports on an initial evaluation of the migration effort and performance impact associated with the use of G2CL as the group communication solution for the JOnAS Java EE open source application server.
Keywords: Distributed Systems, Software Engineering,Group Communication,Generic API / O uso de APIs genéricas de comunicação em grupo na implementação de aplicações
distribuídas pode ser motivado por dois fatores principais: (i) desempenho, com a possibilidade de selecionar o sistema de comunicação em grupo mais eficiente para o contexto da aplicação sem a necessidade de refatoração de código; e (ii) modularidade, através de uma arquitetura de software fracamente acoplada e independente de um sistema de comunicação em grupo específico. Apesar disso, as APIs genéricas de comunicação em grupo atualmente disponíveis oferecem apenas serviços básicos de transmissão de mensagens e gerenciamento de membros, o que tem dificultado a sua adoção por aplicações que requerem serviços de mais alto nível, como invocação remota de objetos replicados e transferência de estado entre membros. Este trabalho apresenta uma camada genérica de comunicação em grupo, chamada G2CL, que implementa um conjunto de serviços de comunicação em grupo de alto nivel sobre uma API genérica existente.
Para demonstrar a viabilidade da utilização da G2CL em um sistema real, o trabalho
relata uma avaliação inicial do esforço de migração e do impacto de desempenho associados ao uso da G2CL como a solução de comunicação em grupo do servidor de aplicação Java EE JOnAS.
Palavras-chave: Sistemas Distribuídos, Engenharia de Software,Comunicação em Grupo,API Genérica
|
20 |
Desenho e implementação da plataforma ICSSantos, Rodolfo Miguel Pinto Leite Brunner January 2008 (has links)
Tese de mestrado integrado. Engenharia Informátca e Computação. Faculdade de Engenharia. Universidade do Porto. 2008
|
Page generated in 0.0427 seconds