52856801
Subjectivity in object-oriented systems
5462210
Programming as an Experience: The Inspiration for Self
The Self system attempts to integrate intellectual and nonintellectual aspects of programming to create an overall experience. The language semantics, user interface, and implementation each help create this integrated experience. The language semantics embed the programmer in a uniform world of simple objects that can be modified without appealing to definitions of abstractions. In a similar way, the graphical interface puts the user into a uniform world of tangible objects that can be direcdy manipulated and changed without switching modes. The implementation strives to support the world-of-objects illusion by minimizing perceptible pauses and by providing true source-level semantics without sacrificing performance. As a side benefit, it encourages factoring. Although we see areas that fall short of the vision, on the whole, the language, interface, and implementation conspire so that die Self programmer lives and acts in a consistent and malleable world of objects.
61043025
Auditory icons in large-scale collaborative environments
45789414
A Simple and Unifying Approach to Subjective Objects
Abstract Most object-oriented languages are objective: an object always responds to the same message in the same way. Subjective objects more closely match naturally occurring systems, and they provide consistent solutions to a wide range of problems, problems that otherwise must be solved by varied and specialized mechanisms. Applying a perspective-receiver symmetry principle in designing the subjectivity semantics of an object-oriented language results in a semantically uncluttered language with a surprisingly wide range of utility. We employ this approach in creating the language Us, a subjective version of Self.
5111320
Work rhythms: analyzing visualizations of awareness histories of distributed groups
We examined records of minute-by-minute computer activity coupled with information about the location of the activity, online calendar appointments, and e-mail activity. We present a number of visualizations of the data that exhibit meaningful patterns in users' activities. We demonstrate how the patterns vary between individuals and within individuals according to time of day, location, and day of the week. Some patterns augment the schedule information found in people's online calendars. We discuss applications for group coordination (especially across time zones) plus opportunities for future research. In light of the popularity of instant messaging, this research identifies some of the benefits and privacy risks associated with the uses of online presence and awareness information.
41296063
Prototype-based languages: object lessons from class-free programming
11105386
Automated auditing of design principle adherence
Software design patterns and refactoring browsers are useful tools in developing high-quality software. Object-Oriented Oracle (OOO) is a tool that combines patterns and refactoring and extends them with the ability to recognize when the source-base doesn't adhere to software design principles. OOO relies on sophisticated compiler analyses and a set of heuristics to recognize characteristics of the code where a design principle is applicable, but is not being used. We present an example where the OOO can recognize noncompliance of design rules and the analyses and heuristics that are used to do the recognition. We also discuss other patterns where this approach applies and results from a prototype.
18420869
Simultaneous measurement of steering performance and perceived heading on a curving path
The ability to judge heading (direction of travel) has been the focus of much research, but a role for perceived heading in steering has not been firmly established. Subjects steered down a road consisting of straight and curved segments and made heading judgments along the way. Heading judgments while traversing curved road segments were biased in the direction of the curve by up to 5° and position errors on the same curved roads were highly correlated with heading biases. This correlation was revealed by the simultaneous measurement of steering performance and perceived heading.
2351489
An Empirical Study Using Task Assignment Patterns to Improve the Accuracy of Software Effort Estimation
In most software development organizations, there is seldom a one-to-one mapping between software developers and development tasks. It is frequently necessary to concurrently assign individuals to multiple tasks and to assign more than one individual to work cooperatively on a single task. A principal goal in making such assignments should be to minimize the effort required to complete each task. But what impact does the manner in which developers are assigned to tasks have on the effort requirements? This paper identifies four task assignment factors: team size, concurrency, intensity, and fragmentation. These four factors are shown to improve the predictive ability of the well-known intermediate COCOMO cost estimation model. A parsimonious effort estimation model is also derived that utilizes a subset of the task assignment factors and unadjusted function points. For the data examined, this parsimonious model is shown to have goodness of fit and quality of estimation superior to that of the COCOMO model, while utilizing fewer cost factors.
33698159
On the Development of Commercial Expert Systems
We use our experience with the Dipmeter Advisor system for well-log interpretation as a case study to examine the development of commercial expert system. We discuss the nature of these systems as we see them in the coming decade, characteristics of the evolution process, development methods, and skills required in the development team. We argue that the tools and ideas of rapid prototyping and successive refinement accelerate the development process. We note that different types of people are required at different stages of expert system development: Those who are primarily knowledgeable in the domain, but who can use the framework to expand the domain knowledge; and those who can actually design and build expert systems. Finally, we discuss the problem of technology transfer and compare our experience with some of the traditional wisdom of expert system development.
42162123
A Conceptual Clustering Program for Rule Generation
We present an Interesting Situation Generator (ISG) that assists in the synthesis of interpretation rules from basic domain knowledge. The ISG is a hierarchical clustering program that discovers equivalence classes of situations (e.g. types of geological formations) that give rise to qualitatively distinct manifestations (e.g. different patterns of geophysical measurements corresponding to types of geological formations). The equivalence classes can be used by a rule generator to construct an initial set of interpretation rules of the form manifestation ⇒ situation.