14393969
Programming with Models? Modeling with Code. The Role of Models in Software Development
In practice, engineers work with partial descriptions (models) and add/remove model elements at each level of abstraction. Models describe a slice of life – not life itself. Modelers use many different models to explore different aspects of the thing being modeled such as requirements, data, behavior, event/time, security, flow, process, activity, performance, quality, usability, etc. These models can take many forms and be expressed through many different tools including systems dynamics, prototypes, textual and visual models of artifacts and their relationships. It is important to note that UML is just one of many models representations which may be used in this process. The set of central relations in model-driven engineering and object-oriented technology are fundamentally different. The two central relations in object-oriented technology are isA and isPartOf. In model engineering the key relations are isBasedOn, isLike, and isRepresentedBy. These inherently one-to-many and partial relationships are often mistakenly confused with OOP relationships. Trying to use one set of relations, as a central interpretation, in the wrong context, can lead to serious problems. Models provide a representation of partial truths about the software system, but only the final code contains the actual truth.
11005034
Fostering software robustness in an increasingly hostile world
Software can kill. What are you doing to stay alive? Our world faces an increasingly hostile environment with challenges in complexity, technology, social engineering and clashing cultures. Failure to achieve sufficient software robustness can lead to customer dissatisfaction, financial loss, or in extreme cases -- loss of life. This panel brings together differing contexts and solution approaches.
14636461
Introducing object-oriented programming into the computer science curriculum
In recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now available which support the major concepts of object-oriented programming; namely message-passing, classes, generic operations and inheritance. Experience in the paradigm is increasingly supporting the view that object-oriented programming may be to the 80's what structured programming was to the 70's in terms of its influence on software development.
After reviewing the notions of object-oriented programming, we describe our experiences in introducing the object-oriented paradigm into the Computer Science curriculum. The impact was felt in four courses dealing with data types and data structures, programming languages, software engineering, and compiler construction. In addition, we describe the use of the Smalltalk environment in advanced course and project work. We chronicle our experiences in the expectation that they will be of benefit to other educators considering adopting the object-oriented paradigm. Finally, we review the potential benefits of introducing object-oriented programming into the computer science curriculum.
3170175
Using Objects To Design and Build Radar ESM Systems
This paper describes the application of object-oriented programming to the design of a multiprocessor ESM testbed. The ESM testbed uses an object-oriented development environment which integrates Smalltalk and C language tools with the Harmony real-time operating system in a shared memory multiprocessor. All development for an application is done using personal computers which are themselves processors in the real-time testbed. We first discuss two aspects of the ESM testbed: a framework for investigating ESM signal processing algorithms based on an object-oriented emitter database and blackboard objects which implement probabilistic reasoning; and an object-oriented ESM simulation environment which illustrates the use of object-oriented techniques for the development of complex real-time systems. In the second part of the paper we describe our software engineering approach and tools. Throughout the paper, the role played by object-oriented programming in the design of hybrid multiprocessors is highlighted.
34406304
Agile Experiences
The proponents of various Agile Methodologies often share anecdotal evidence about how their favorite methodologies work. Come to this panel to hear first-hand experiences of those who have applied these methodologies in their organizations.
53234593
Actra-a multitasking/multiprocessing smalltalk
5902879
Achieving anonymity via clustering
Publishing data for analysis from a table containing personal records, while maintaining individual privacy, is a problem of increasing importance today. The traditional approach of de-identifying records is to remove identifying fields such as social security number, name etc. However, recent research has shown that a large fraction of the US population can be identified using non-key attributes (called quasi-identifiers) such as date of birth, gender, and zip code [15]. Sweeney [16] proposed the k-anonymity model for privacy where non-key attributes that leak information are suppressed or generalized so that, for every record in the modified table, there are at least k−1 other records having exactly the same values for quasi-identifiers. We propose a new method for anonymizing data records, where quasi-identifiers of data records are first clustered and then cluster centers are published. To ensure privacy of the data records, we impose the constraint that each cluster must contain no fewer than a pre-specified number of data records. This technique is more general since we have a much larger choice for cluster centers than k-Anonymity. In many cases, it lets us release a lot more information without compromising privacy. We also provide constant-factor approximation algorithms to come up with such a clustering. This is the first set of algorithms for the anonymization problem where the performance is independent of the anonymity parameter k. We further observe that a few outlier points can significantly increase the cost of anonymization. Hence, we extend our algorithms to allow an ε fraction of points to remain unclustered, i.e., deleted from the anonymized publication. Thus, by not releasing a small fraction of the database records, we can ensure that the data published for analysis has less distortion and hence is more useful. Our approximation algorithms for new clustering objectives are of independent interest and could be applicable in other clustering scenarios as well.
206569252
Minimal Steiner Trees for Rectangular Arrays of Lattice Points
We construct minimal Steiner trees for any square or rectangular array of integer lattice points on the Euclidean plane.
22841183
Graham's problem on shortest networks for points on a circle
Suppose a configurationX consists ofn points lying on a circle of radiusr. If at most one of the edges joining neighboring points has length strictly greater thanr, then the Steiner treeS consists of all these edges with a longest edge removed. In order to showS is, in fact, just the minimal spanning treeT, a variational approach is used to show the Steiner ratio for this configuration is at least one and equals one only ifS andT coincide. The variational approach greatly reduces the number of possible Steiner trees that need to be considered.
208947786
STREAM: The Stanford Stream Data Manager
8044870
The Steiner ratio conjecture for six points
The Steiner problem is to find a shortest network (tree) S in the plane R 2 connecting a given set X of n points. Let T be a shortest tree connecting the points of X and with vertices only at these points. T is called a minimal spanning tree. Let L S and L T denote the lengths of S and T, respectively, and let ρ=L S /L T . ρ is called the Steiner ratio. In this paper one proves the Steiner ratio conjecture for six points. One uses a variational approach