8,750 research outputs found
The Stores Model of Code Cognition
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
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
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
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
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
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
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
- …