868 resultados para Computer Engineering|Computer science
Resumo:
Concurrent programs are hard to test due to the inherent nondeterminism. This paper presents a method and tool support for testing concurrent Java components. Too[ support is offered through ConAn (Concurrency Analyser), a too] for generating drivers for unit testing Java classes that are used in a multithreaded context. To obtain adequate controllability over the interactions between Java threads, the generated driver contains threads that are synchronized by a clock. The driver automatically executes the calls in the test sequence in the prescribed order and compares the outputs against the expected outputs specified in the test sequence. The method and tool are illustrated in detail on an asymmetric producer-consumer monitor. Their application to testing over 20 concurrent components, a number of which are sourced from industry and were found to contain faults, is presented and discussed.
Resumo:
The rise of component-based software development has created an urgent need for effective application program interface (API) documentation. Experience has shown that it is hard to create precise and readable documentation. Prose documentation can provide a good overview but lacks precision. Formal methods offer precision but the resulting documentation is expensive to develop. Worse, few developers have the skill or inclination to read formal documentation. We present a pragmatic solution to the problem of API documentation. We augment the prose documentation with executable test cases, including expected outputs, and use the prose plus the test cases as the documentation. With appropriate tool support, the test cases are easy to develop and read. Such test cases constitute a completely formal, albeit partial, specification of input/output behavior. Equally important, consistency between code and documentation is demonstrated by running the test cases. This approach provides an attractive bridge between formal and informal documentation. We also present a tool that supports compact and readable test cases; and generation of test drivers and documentation, and illustrate the approach with detailed case studies. (C) 2002 Elsevier Science Inc. All rights reserved.
Resumo:
This paper discusses a document discovery tool based on Conceptual Clustering by Formal Concept Analysis. The program allows users to navigate e-mail using a visual lattice metaphor rather than a tree. It implements a virtual. le structure over e-mail where files and entire directories can appear in multiple positions. The content and shape of the lattice formed by the conceptual ontology can assist in e-mail discovery. The system described provides more flexibility in retrieving stored e-mails than what is normally available in e-mail clients. The paper discusses how conceptual ontologies can leverage traditional document retrieval systems and aid knowledge discovery in document collections.
Resumo:
A adoção da ação afirmativa denominada cotas nas universidades federais - reserva de vagas para estudantes que tenham cursado integralmente o ensino médio em escolas públicas - continua sendo polêmica, mesmo após a sanção da Lei nº.12.711 de 2012, o que torna oportuna a contribuição aos estudos a respeito da utilização desse sistema nas universidades públicas brasileiras. Este trabalho teve por objetivo estudar o desempenho acadêmico de alunos cotistas do Centro de Ciências Jurídicas e Econômicas e do Centro Tecnológico da Universidade Federal do Espírito Santo – UFES, no período de 2008 a 2013, considerando as duas entradas anuais nos referidos cursos. O presente estudo analisou o aproveitamento acadêmico dos alunos de 15 cursos de graduação ofertados pelos Centros nominados buscando saber em quais cursos e disciplinas existem diferenças significativas de desempenho, a partir do coeficiente de rendimento acadêmico (CRA) e da média final das disciplinas cursadas por alunos cotistas e não cotistas, visando a propor ações institucionais para a redução dessas diferenças. Na pesquisa, de caráter quantitativo, utilizou-se o método estatístico de análise de variância ANOVA. A partir das análises realizadas foi possível inferir a existência de diferenças de rendimento nos cursos de engenharia,principalmente em disciplinas de cálculo e álgebra. O curso de Direito, por sua vez, apresentou diferença significativa de desempenho, não obstante as médias não estarem abaixo do índice necessário para a aprovação. Quando a comparação é feita considerando o sexo, verificou-se no curso de Ciências Econômicas e Ciências da Computação uma disparidade significativa de rendimento em favor dos alunos do sexo feminino cotistas em detrimento dos não cotistas do mesmo sexo.
Resumo:
Over the last decade, software architecture emerged as a critical issue in Software Engineering. This encompassed a shift from traditional programming towards software development based on the deployment and assembly of independent components. The specification of both the overall systems structure and the interaction patterns between their components became a major concern for the working developer. Although a number of formalisms to express behaviour and to supply the indispensable calculational power to reason about designs, are available, the task of deriving architectural designs on top of popular component platforms has remained largely informal. This paper introduces a systematic approach to derive, from CCS behavioural specifications the corresponding architectural skeletons in the Microsoft .Net framework, in the form of executable C and Cω code. The prototyping process is fully supported by a specific tool developed in Haskell
Resumo:
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually oriented towards the imperative or object paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird-Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general, alternative to slicing functional programs
Resumo:
This paper reports on the development of specific slicing techniques for functional programs and their use for the identification of possible coherent components from monolithic code. An associated tool is also introduced. This piece of research is part of a broader project on program understanding and re-engineering of legacy code supported by formal methods
Resumo:
Program slicing is a well known family of techniques intended to identify and isolate code fragments which depend on, or are depended upon, specific program entities. This is particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, and corresponding tools, target either the imperative or the object oriented paradigms, where program slices are computed with respect to a variable or a program statement. Taking a complementary point of view, this paper focuses on the slicing of higher-order functional programs under a lazy evaluation strategy. A prototype of a Haskell slicer, built as proof-of-concept for these ideas, is also introduced
Resumo:
Program slicing is a well known family of techniques used to identify code fragments which depend on or are depended upon specific program entities. They are particularly useful in the areas of reverse engineering, program understanding, testing and software maintenance. Most slicing methods, usually targeting either the imperative or the object oriented paradigms, are based on some sort of graph structure representing program dependencies. Slicing techniques amount, therefore, to (sophisticated) graph transversal algorithms. This paper proposes a completely different approach to the slicing problem for functional programs. Instead of extracting program information to build an underlying dependencies’ structure, we resort to standard program calculation strategies, based on the so-called Bird- Meertens formalism. The slicing criterion is specified either as a projection or a hiding function which, once composed with the original program, leads to the identification of the intended slice. Going through a number of examples, the paper suggests this approach may be an interesting, even if not completely general alternative to slicing functional programs
Resumo:
March 19 - 22, 2006, São Paulo, BRAZIL World Congress on Computer Science, Engineering and Technology Education
Resumo:
5th. European Congress on Computational Methods in Applied Sciences and Engineering (ECCOMAS 2008) 8th. World Congress on Computational Mechanics (WCCM8)
Resumo:
An increasing amount of research is being developed in the area where technology and humans meet. The success or failure of technologies and the question whether technology helps humans to fulfill their goals or whether it hinders them is in most cases not a technical one. User Perception and Influencing Factors of Technology in Everyday Life addresses issues of human and technology interaction. The research in this work is interdisciplinary, ranging from more technical subjects such as computer science, engineering, and information systems, to non-technical descriptions of technology and human interaction from the point of view of sociology or philosophy. This book is perfect for academics, researchers, and professionals alike as it presents a set of theories that allow us to understand the interaction of technology and humans and to put it to practical use.
Resumo:
The way humans interact with technology is undergoing a tremendous change. It is hard to imagine the lives we live today without the benefits of technology that we take for granted. Applying research in computer science, engineering, and information systems to non-technical descriptions of technology, such as human interaction, has shaped and continues to shape our lives. Human Interaction with Technology for Working, Communicating, and Learning: Advancements provides a framework for conceptual, theoretical, and applied research in regards to the relationship between technology and humans. This book is unique in the sense that it does not only cover technology, but also science, research, and the relationship between these fields and individuals' experience. This book is a must have for anyone interested in this research area, as it provides a voice for all users and a look into our future.
Resumo:
Mestrado em Engenharia Electrotécnica e de Computadores
Resumo:
The study of biosignals has had a transforming role in multiple aspects of our society, which go well beyond the health sciences domains to which they were traditionally associated with. While biomedical engineering is a classical discipline where the topic is amply covered, today biosignals are a matter of interest for students, researchers and hobbyists in areas including computer science, informatics, electrical engineering, among others. Regardless of the context, the use of biosignals in experimental activities and practical projects is heavily bounded by the cost, and limited access to adequate support materials. In this paper we present an accessible, albeit versatile toolkit, composed of low-cost hardware and software, which was created to reinforce the engagement of different people in the field of biosignals. The hardware consists of a modular wireless biosignal acquisition system that can be used to support classroom activities, interface with other devices, or perform rapid prototyping of end-user applications. The software comprehends a set of programming APIs, a biosignal processing toolbox, and a framework for real time data acquisition and postprocessing. (C) 2014 Elsevier Ireland Ltd. All rights reserved.