9882210
MDA: revenge of the modelers or UML utopia?
Modeling is at the core of many disciplines, but it is especially important in engineering because it facilitates communication and constructs complex things from smaller parts. Model engineering or model-driven development, treats software development as a set of transformations between successive models from requirements to analysis, to design, to implementation, to deployment. We discuss UML and MDA tools for developing software models. We also discuss domain specific languages, domain-oriented programming, platform-specific models and model engineering.
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.
16614452
Refactoring as Meta Programming
The importance of refractoring in the development of object oriented programming and management of the evolution of large software systems is discussed. Refractoring is a process that takes an existing program and improves it by transforming the program into a new program that is an improved version of initial program. A major refractoring is always best done as a pair programming activity to reduce risk and manage the complexity. It is stated that while refractoring tools address programs, they seldom address persistent information associated with the current and transformed program.
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.
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.
45997215
The Elusive Search for Business Frameworks
The business framework to enable businesses to achieve software reusability are discussed. The reusability reduces time and expense of development and increase the quality of work. It is stated that implementation of rich domain meta models is needed to cope with the variety and complexity of business frameworks. The business frameworks require the combined skills of framework engineering, domain analysis, and business engineering. It is also stated that the process of solving a business problem is simplified by the use of customized business framework.
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.
5754219
Privacy preserving OLAP
We present techniques for privacy-preserving computation of multidimensional aggregates on data partitioned across multiple clients. Data from different clients is perturbed (randomized) in order to preserve privacy before it is integrated at the server. We develop formal notions of privacy obtained from data perturbation and show that our perturbation provides guarantees against privacy breaches. We develop and analyze algorithms for reconstructing counts of subcubes over perturbed data. We also evaluate the tradeoff between privacy guarantees and reconstruction accuracy and show the practicality of our approach.
2682242
Two Can Keep A Secret: A Distributed Architecture for Secure Database Services
Recent trends towards database outsourcing, as well as concerns and laws governing data privacy, have led to great interest in enabling secure database services. Previous approaches to enabling such a service have been based on data encryption, causing a large overhead in query processing. We propose a new, distributed architecture that allows an organization to outsource its data management to {\em two} untrusted servers while preserving data privacy. We show how the presence of two servers enables efficient partitioning of data so that the contents at any one server are guaranteed not to breach data privacy. We show how to optimize and execute queries in this architecture, and discuss new challenges that emerge in designing the database schema.
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
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.