22,456 research outputs found

    An Extended Stable Marriage Problem Algorithm for Clone Detection

    Full text link
    Code cloning negatively affects industrial software and threatens intellectual property. This paper presents a novel approach to detecting cloned software by using a bijective matching technique. The proposed approach focuses on increasing the range of similarity measures and thus enhancing the precision of the detection. This is achieved by extending a well-known stable-marriage problem (SMP) and demonstrating how matches between code fragments of different files can be expressed. A prototype of the proposed approach is provided using a proper scenario, which shows a noticeable improvement in several features of clone detection such as scalability and accuracy.Comment: 20 pages, 10 figures, 6 table

    My boy builds coffins. Future memories of your loved ones

    Get PDF
    The research is focus on the concept of storytelling associated with product design, trying to investigate new ways of designing and a possible future scenario related to the concept of death. MY BOY BUILDS COFFINS is a gravestone made using a combination of cremation’s ashes and resin. It is composed by a series of holes in which the user can stitch a text, in order to remember the loved one. The stitching need of a particular yarn produced in Switzerland using some parts of human body. Project also provides another version which uses LED lights instead of the yarn. The LEDs - thanks to an inductive coupling - will light when It will be posed in the hole. The gravestone can be placed where you want, as if it would create a little altar staff at home. In this way, there is a real connection between the user and the dearly departed

    Logic Programming Applications: What Are the Abstractions and Implementations?

    Full text link
    This article presents an overview of applications of logic programming, classifying them based on the abstractions and implementations of logic languages that support the applications. The three key abstractions are join, recursion, and constraint. Their essential implementations are for-loops, fixed points, and backtracking, respectively. The corresponding kinds of applications are database queries, inductive analysis, and combinatorial search, respectively. We also discuss language extensions and programming paradigms, summarize example application problems by application areas, and touch on example systems that support variants of the abstractions with different implementations

    The Chain of Quality through Integrated Product Development

    Get PDF
    Today, it is almost impossible to find a manufacturer who has not been significantly influenced by the quality culture, but it is evident that some are doing more to improve their product quality than others are. The so-called "Chain of Quality" through integrated product development is a useful metaphor since it recognises that quality is a continuing topic of attention throughout the product development process and that discrete, quality related activities in the process are inter-linked. Depending upon how the product development process is modelled, the chain can be viewed as open or closed with single or parallel threads. In this paper, the overall purpose of the chain, the nature and identity of its many links and the relationship of the chain to the product development process will be discussed. In so doing, this paper will present an overall picture of important product development strategies and practices that can have a key impact on product quality

    Introductory Programming and the Didactic Triangle

    Full text link
    In this paper, we use Kansanen's didactic triangle to structure and analyse research on the teaching and learning of programming. Students, teachers and course content are the three entities that form the corners of the didactic triangle. The edges of the triangle represent the relationships between these three entities. We argue that many computing educators and computing education researchers operate from within narrow views of the didactic triangle. For example, computing educators often teach programming based on how they relate to the computer, and not how the students relate to the computer. We conclude that, while research that focuses on the corners of the didactic triangle is sometimes appropriate, there needs to be more research that focuses on the edges of the triangle, and more research that studies the entire didactic triangle. © 2010, Australian Computer Society, Inc

    Interim research assessment 2003-2005 - Computer Science

    Get PDF
    This report primarily serves as a source of information for the 2007 Interim Research Assessment Committee for Computer Science at the three technical universities in the Netherlands. The report also provides information for others interested in our research activities

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache

    Learning by gaming:ANT and critical making

    Get PDF
    Relationships among theory, gaming, learning and socio-technical design are explored in the two contributions which compose the section. The theory in question is ANT, re-interpreted through critical making - an umbrella term for various distinctive practices that link traditional scholarship in the humanities and social sciences to forms of material engagement. Sergio Minniti describes an ongoing project called Game of ANT, which draws upon the critical making approach to design an interactive technology and a workshop experience through which scholars and students can conceptually-materially engage with ANT, hence exploring and approaching it from novel points of view. Game of ANT adopts the Latourian vision of technoscience as war and physically embodies this idea by proposing a sort of war game during which participants play the roles of human or non-human actors engaging with the competitive dynamics of socio-technical life. The commentary by Stefano De Paoli proposes new directions to develop the project, by deepening the concept of game and its value for design and learning processes.</p

    Sound and Precise Malware Analysis for Android via Pushdown Reachability and Entry-Point Saturation

    Full text link
    We present Anadroid, a static malware analysis framework for Android apps. Anadroid exploits two techniques to soundly raise precision: (1) it uses a pushdown system to precisely model dynamically dispatched interprocedural and exception-driven control-flow; (2) it uses Entry-Point Saturation (EPS) to soundly approximate all possible interleavings of asynchronous entry points in Android applications. (It also integrates static taint-flow analysis and least permissions analysis to expand the class of malicious behaviors which it can catch.) Anadroid provides rich user interface support for human analysts which must ultimately rule on the "maliciousness" of a behavior. To demonstrate the effectiveness of Anadroid's malware analysis, we had teams of analysts analyze a challenge suite of 52 Android applications released as part of the Auto- mated Program Analysis for Cybersecurity (APAC) DARPA program. The first team analyzed the apps using a ver- sion of Anadroid that uses traditional (finite-state-machine-based) control-flow-analysis found in existing malware analysis tools; the second team analyzed the apps using a version of Anadroid that uses our enhanced pushdown-based control-flow-analysis. We measured machine analysis time, human analyst time, and their accuracy in flagging malicious applications. With pushdown analysis, we found statistically significant (p < 0.05) decreases in time: from 85 minutes per app to 35 minutes per app in human plus machine analysis time; and statistically significant (p < 0.05) increases in accuracy with the pushdown-driven analyzer: from 71% correct identification to 95% correct identification.Comment: Appears in 3rd Annual ACM CCS workshop on Security and Privacy in SmartPhones and Mobile Devices (SPSM'13), Berlin, Germany, 201
    • 

    corecore