8,750 research outputs found

    The Stores Model of Code Cognition

    Get PDF
    Program comprehension is perhaps one of the oldest topics within the psychology of programming. It addresses a central issue: how programmers work with and manipulate source code to construct effective software systems. Models can play an important role in understanding the challenges developers and engineers contend with. This paper presents a model of program comprehension, or code cognition, which has been derived from literature found within the disciplines of computing and psychology. Drawing on direct experimentation, this paper argues that a model of code cognition should take account of the visual, spatial and linguistic abilities of developers. The strengths and weaknesses of this model are discussed and further research directions presented

    Mixing multi-core CPUs and GPUs for scientific simulation software

    Get PDF
    Recent technological and economic developments have led to widespread availability of multi-core CPUs and specialist accelerator processors such as graphical processing units (GPUs). The accelerated computational performance possible from these devices can be very high for some applications paradigms. Software languages and systems such as NVIDIA's CUDA and Khronos consortium's open compute language (OpenCL) support a number of individual parallel application programming paradigms. To scale up the performance of some complex systems simulations, a hybrid of multi-core CPUs for coarse-grained parallelism and very many core GPUs for data parallelism is necessary. We describe our use of hybrid applica- tions using threading approaches and multi-core CPUs to control independent GPU devices. We present speed-up data and discuss multi-threading software issues for the applications level programmer and o er some suggested areas for language development and integration between coarse-grained and ne-grained multi-thread systems. We discuss results from three common simulation algorithmic areas including: partial di erential equations; graph cluster metric calculations and random number generation. We report on programming experiences and selected performance for these algorithms on: single and multiple GPUs; multi-core CPUs; a CellBE; and using OpenCL. We discuss programmer usability issues and the outlook and trends in multi-core programming for scienti c applications developers

    Developing a Customer Feedback Instrument to Improve Quality and Increase Usage of Special Education Goal Measurement Software

    Get PDF
    A software programmer at the Southeast Kansas Education Service Center has developed the Skill Demonstration (SD) software for the Special Education classroom. SD has been used by 25 school districts for the past three years. A recent analysis of ‘last user login dates’ was performed revealing a great decline in usage. The goal of this field project was to create an instrument to communicate with SD users to determine reasons for usage decline. The instrument contained 14 questions, which were selected based on SD user interviews and literature research performed about customer/user information satisfaction. The instrument received 21.5% response rate. More than 89% of respondents supported SD being user friendly, conveniently available, providing sufficient information to make useful decisions, displaying clear formatted graphs, tables and data accuracy, keeping data confidentiality, and users were willing to recommend SD to colleagues. The instrument responses also suggested that SD was marketed online very poorly with 2.6% of participants discovering SD online. Forty-one percent of participants initiated communication regarding SD questions, leaving room for encouraging more communication with SD staff. The in-person training was believed to be effective by 79.5% of participants, which can be improved. The participants’ comments provided reasons for SD’s usage decline. SD is currently lacking user-desired features such as additional graphing features, data collection methods and having a bank of pre-entered skills. The conclusion of the project was the programmer would have to meet participants in-person to discuss adding desired features. A recommendation for additional work was for the programmer to encourage users to participate in the instrument again next year and compare next year’s results with the current results

    TANGO: Transparent heterogeneous hardware Architecture deployment for eNergy Gain in Operation

    Get PDF
    The paper is concerned with the issue of how software systems actually use Heterogeneous Parallel Architectures (HPAs), with the goal of optimizing power consumption on these resources. It argues the need for novel methods and tools to support software developers aiming to optimise power consumption resulting from designing, developing, deploying and running software on HPAs, while maintaining other quality aspects of software to adequate and agreed levels. To do so, a reference architecture to support energy efficiency at application construction, deployment, and operation is discussed, as well as its implementation and evaluation plans.Comment: Part of the Program Transformation for Programmability in Heterogeneous Architectures (PROHA) workshop, Barcelona, Spain, 12th March 2016, 7 pages, LaTeX, 3 PNG figure

    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

    The media equation and team formation: Further evidence for experience as a moderator

    Get PDF
    This study extends previous media equation research, which showed that interdependence but not identity leads to team affiliation effects with computers. The current study used an identity manipulation that more closely replicated the manipulation used in traditional team and group formation research than the original media equation research in this area. The study also sought further evidence for the relationship between experience with computers and behaviour reflecting a media equation pattern of results. Sixty students from the University of Queensland voluntarily participated in the study. Participants were assigned to one of three conditions: control, human team (a team made of only humans) or human-computer team (a team made of computers and humans). Questionnaire measures assessing participants’ affective experience, attitudes and opinions were taken. Participants of high experience, but not low experience, when assigned to either of the team conditions enjoyed the tasks completed on the computer more than participants who worked on their own. When assigned to a team that involved a computer, participants of high experience, but not low experience, reacted negatively towards the computer (in comparison to high experience participants working on their own or on a team without a computer as a team member) – rating the information provided by the computer lower, rating themselves as less influenced by the computer and changing their own ratings and rankings to be less like those of the computer. These results are interpreted in light of the ‘Black Sheep’ literature and recognized as a media equation pattern of results

    Embedding Spatial Software Visualization in the IDE: an Exploratory Study

    Full text link
    Software visualization can be of great use for understanding and exploring a software system in an intuitive manner. Spatial representation of software is a promising approach of increasing interest. However, little is known about how developers interact with spatial visualizations that are embedded in the IDE. In this paper, we present a pilot study that explores the use of Software Cartography for program comprehension of an unknown system. We investigated whether developers establish a spatial memory of the system, whether clustering by topic offers a sound base layout, and how developers interact with maps. We report our results in the form of observations, hypotheses, and implications. Key findings are a) that developers made good use of the map to inspect search results and call graphs, and b) that developers found the base layout surprising and often confusing. We conclude with concrete advice for the design of embedded software maps.Comment: To appear in proceedings of SOFTVIS 2010 conferenc
    • …
    corecore