June 1995 - Vol. 38 No. 6

June 1995 issue cover image

Features

Opinion

Process cost and value analysis

After years of pursuing fragments of a solution to the challenges of software engineering, including the development of methods, tools, and the like, the software engineering community has come to realize that over-emphasizing any one of these areas to the exclusion of others is incorrect. The community now recognizes that well-defined and well-supported processes are the critical issue for producing high-quality software systems on-time and within budget.
Research and Advances

Cognition and software development

Not long ago, programmers controlled computers by arranging wires on a control panel built into the side of a large floor-standing machine. Today palm-sized pointing devices are used to drag and drop visual images on machines smaller than a notebook. Dramatic differences like these make it easy to forget that software development still revolves around the needs of the computer at the expense of the needs of developers and end users.
Research and Advances

Why looking isn’t always seeing: readership skills and graphical programming

Many believe that visual programming techniques are quite close to developers. This article reports on some fascinating research focusing on understanding how textual and visual representations for software differ in effectiveness. Among other things, it is determined that the differences lie not so much in the textual-visual distinction as in the degree to which specific representations support the conventions experts expect.
Research and Advances

Discovering the way programmers think about new programming environments

An interesting usability study of a prototype development environment for the Dylan programming language is presented here. This study's purpose is to determine just how close the prototype is to developers. New approaches to source code organization and to the relationship between the environment and the application being developed are introduced. An asessment of how effectively the prototype conveys these innovations to Dylan developers is also given, followed by some proposed improvements.
Research and Advances

Cognitive bias in software engineering

Developer's thought processes are a fundamental area of concern. Cognitive scientist have discovered that people's intiative inferences and probality judgments do not strictly conform to the laws of logic or mathematics, and that people are willing to provide plausible explanations for random events. This article examines the role these phenomena might have in software development, ultimately concluding that what are cast as one-sided software development guidelines often can be recast beneficially as two-sided trade-offs.
Research and Advances

From programming environments to environments for designing

Though there have been advances in end-user programming, complex applications still need professional developers. This inspired look at the future of creating complex software explores the shift from programming environments to design environments, discussing environments that help developers satisfy end-users' cognitive needs and help deal with contextual issues such as the aesthetic, practical, and social properties of the application and the users. A strong case is made that design environments will need to provide robust support for communication between developers and end users.
Research and Advances

Sixteen questions about software reuse

Software reuse is the use of existing software knowledge or artifacts to build new software artifacts. Reuse is sometimes confused with porting. The two are distinguished as follows: Reuse is using an asset in different systems; porting is moving a system across environments or platforms. For example, in Figure 1 a component in System A is shown used again in System B; this is an example of reuse. System A, developed for Environment 1, is shown moved into Environment 2; this is an example of porting.
Research and Advances

Auction allocation of computing resources

Standard methods for allocating computing resources normally employ schedulers and either queue or priority schemes. Alternative methods utilizing marketlike processes are being investigated, with direct applicability to evolving distributed systems. In this article, we present results of simulations of an auction allocation is which computing tasks are provided sufficient intelligence to acquire resources by offering, bidding, and exchanging them for funds.
Research and Advances

Comparing data modeling formalisms

Accurate specification and validation of information requirements is critical to the development of organizational information systems. Semantic data models were developed to provide a precise and unambiguous representation of organizational information requirements [9, 17]. They serve as a communication vehicle between analysts and users. After analyzing 11 semantic data models, Biller and Neuhold [3] conclude that there are essentially only two types of data modeling formalisms: entity-attribute-relationship (EAR) models and object-relationship (OR) models. Proponents of each claim their model yields “better” representations [7] than the other. There is, however, little empirical evidence to substantiate these claims.

Recent Issues

  1. January 2025 cover
    January 2025 Vol. 68 No. 1
  2. December 2024 CACM cover
    December 2024 Vol. 67 No. 12
  3. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  4. October 2024 CACM cover
    October 2024 Vol. 67 No. 10