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.
1329133
Model driven development: the case for domain oriented programming
In this paper, we offer an alternative vision for domain driven development (3D). Our approach is model driven and emphasizes the use of generic and specific domain oriented programming (DOP) languages. DOP uses strong specific languages, which directly incorporate domain abstractions, to allow knowledgeable end users to succinctly express their needs in the form of an application computation. Most domain driven development (3D) approaches and techniques are targeted at professional software engineers and computer scientists. We argue that DOP offers a promising alternative. Specifically we are focused on empowering application developers who have extensive domain knowledge as well as sound foundations in their professions, but may not be formally trained in computer science.We provide a brief survey of DOP experiences, which show that many of the best practices such as patterns, refactoring, and pair programming are naturally and ideally practiced in a Model Driven Development (MDD) setting. We compare and contrast our DOP with other popular approaches, most of which are deeply rooted in the OO community.Finally we highlight challenges and opportunities in the design and implementation of such languages.
1209785
Ubiquitous applications: embedded systems to mainframe
Over the last 10 years, Smalltalk has moved from the “Parc” to Main Street as a standard object-oriented (OO) fifth generation language (5GL) for enterprise computing. To meet the needs of application developers, Smalltalk environments and tools have matured from the original research implementations to full-featured, multiplatform development environments. A recent study of development tools conducted by Software Productivity Research in Massachusetts for a software productivity consortium ranked Smalltalk first in most categories. What is surprising about this study is the application: a demanding telephone switch traditionally dominated by C or proprietary talc languages such as Chill, Protel, and Plex. The fact that Smalltalk ranked so highly is a testimony that Smalltalk is an application 5GL that scales. This article discusses the major technical challenges addressed by Smalltalk implementors and application developers working on a wide spectrum of applications.
206483087
State Machines
We are surrounded by real-world state machines: ballpoint pen retractor mechanisms, vending machines, washing-machine controllers, digital watches. They are a trivial but underused technology that can simplify how we implement programs that must track how they got to their current state before handling a new event. However, many programmers feel that state machines are only useful when they're developing communication protocol stacks, which is not an everyday activity. This is unfortunate. State machines can be appropriate in surprising circumstances. Correctly applied, they will result in faster, more modular, less coupled, and easier to maintain code. State machines make it easy to eliminate duplication, honoring the DRY principle. They also let you write more expressive code, because you can specify intent and implementation independently. These are all good, pragmatic, reasons to investigate them further, so let's look at some simple state machine implementations and problems they can solve.
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.
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
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.
41519577
Anonymizing Tables
We consider the problem of releasing tables from a relational database containing personal records, while ensuring individual privacy and maintaining data integrity to the extent possible. One of the techniques proposed in the literature is k-anonymization. A release is considered k-anonymous if the information for each person contained in the release cannot be distinguished from at least k–1 other persons whose information also appears in the release. In the k-Anonymityproblem the objective is to minimally suppress cells in the table so as to ensure that the released version is k-anonymous. We show that the k-Anonymity problem is NP-hard even when the attribute values are ternary. On the positive side, we provide an O(k)-approximation algorithm for the problem. This improves upon the previous best-known O(klog k)-approximation. We also give improved positive results for the interesting cases with specific values of k — in particular, we give a 1.5-approximation algorithm for the special case of 2-Anonymity, and a 2-approximation algorithm for 3-Anonymity.