Open Access. Powered by Scholars. Published by Universities.®

2008

Discipline
Institution
Keyword
Publication
Publication Type

Articles 1 - 18 of 18

Full-Text Articles in Programming Languages and Compilers

On The Assessment Of Pointcut Design In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid Oct 2008

On The Assessment Of Pointcut Design In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid

Publications and Research

No abstract provided.


Specifying And Verifying Event-Based Fairness Enhanced Systems, Jun Sun, Yang Liu, Jin Song Dong, Hai H. Wang Oct 2008

Specifying And Verifying Event-Based Fairness Enhanced Systems, Jun Sun, Yang Liu, Jin Song Dong, Hai H. Wang

Research Collection School Of Computing and Information Systems

Liveness/Fairness plays an important role in software specification, verification and development. Existing event-based compositional models are safety-centric. In this paper, we describe a framework for systematically specifying and verifying event-based systems under fairness assumptions. We introduce different event annotations to associate fairness constraints with individual events. Fairness annotated events can be used to embed liveness/fairness assumptions in event-based models flexibly and naturally. We show that state-of-the-art verification algorithms can be extended to verify models under fairness assumptions, with little computational overhead. We further improve the algorithm by other model checking techniques like partial order reduction. A toolset named Pat has …


Specifying And Verifying Sensor Networks: An Experiment Of Formal Methods, Jin Song Dong, Jing Sun, Jun Sun, Kenji Taguchi, Xian Zhang Oct 2008

Specifying And Verifying Sensor Networks: An Experiment Of Formal Methods, Jin Song Dong, Jing Sun, Jun Sun, Kenji Taguchi, Xian Zhang

Research Collection School Of Computing and Information Systems

With the development of sensor technology and electronic miniaturization, wireless sensor networks have shown a wide range of promising applications as well as challenges. Early stage sensor network analysis is critical, which allows us to reveal design errors before sensor deployment. Due to their distinguishable features, system specification and verification of sensor networks are highly non-trivial tasks. On the other hand, numerous formal theories and analysis tools have been developed in formal methods community, which may offer a systematic method for formal analysis of sensor networks. This paper presents our attempt on applying formal methods to sensor network specification/verification. An …


Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid Sep 2008

Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Awais Rashid

Publications and Research

Aspect-oriented programming (AOP) strives to localize the scattered and tangled implementations of crosscutting concerns (CCCs) by allowing developers to declare that certain actions (advice) should be taken at specific points (join points) during the execution of software where a CCC (an aspect) is applicable. However, it is non-trivial to construct optimal pointcut expressions (a collection of join points) that capture the true intentions of the programmer and, upon evolution, maintain these intentions. We demonstrate an AspectJ source-level inferencing tool called rejuvenate pointcut which helps developers maintain pointcut expressions over the lifetime of a software product. A key insight into the …


Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu Aug 2008

Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi Khatchadourian, Phil Greenwood, Awais Rashid, Guoqing Harry Xu

Publications and Research

Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach which limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well-founded, we first …


Timed Automata Patterns, Jin Song Dong, Ping Hao, Shengchao Qin, Jun Sun, Wang Yi Jun 2008

Timed Automata Patterns, Jin Song Dong, Ping Hao, Shengchao Qin, Jun Sun, Wang Yi

Research Collection School Of Computing and Information Systems

Timed Automata have proven to be useful for specification and verification of real-time systems. System design using Timed Automata relies on explicit manipulation of clock variables. A number of automated analyzers for Timed Automata have been developed. However, Timed Automata lack composable patterns for high-level system design. Specification languages like Timed Communicating Sequential Process (CSP) and Timed Communicating Object-Z (TCOZ) are well suited for presenting compositional models of complex real-time systems. In this work, we define a set of composable Timed Automata patterns based on hierarchical constructs in time-enriched process algebras. The patterns facilitate the hierarchical design of complex systems …


Holistic Characterization Of Parallel Programming Models In A Distributed Memory Environment, Christopher Bryan May 2008

Holistic Characterization Of Parallel Programming Models In A Distributed Memory Environment, Christopher Bryan

Computer Science and Computer Engineering Undergraduate Honors Theses

The popularity of cluster computing has increased focus on usability, especially in the area of programmability. Languages and libraries that require explicit message passing have been the standard. New languages, designed for cluster computing, are coming to the forefront as a way to simplify parallel programming. Titanium and Fortress are examples of this new class of programming paradigms. This work holistically characterizes these languages and contrasts them with the standard model of parallel programming, and presents benchmark results of small computational kernels written in these languages and models.


A Scalable Approach To Multi-Style Architectural Modeling And Verification, Stephen Wong, Jing Sun, Ian Warren, Jun Sun Apr 2008

A Scalable Approach To Multi-Style Architectural Modeling And Verification, Stephen Wong, Jing Sun, Ian Warren, Jun Sun

Research Collection School Of Computing and Information Systems

Software Architecture represents the high level description of a system in terms of components, external properties and communication. Despite its importance in the software engineering process, the lack of formal description and verification support limits the value of developing architectural models. Automated formal engineering methods can provide an effective means to precisely describe and rigorously verify intended structures and behaviors of software systems. In this paper, we present an approach to support the design and verification of software architectural models using the Alloy analyzer. Based on our earlier work, we propose a fundamental library for specifying system structures in terms …


A Formal Model Of Semantic Web Service Ontology (Wsmo) Execution, Hai H. Wang, Nick Gibbins, Terry R. Payne, Ahmed Saleh, Jun Sun Apr 2008

A Formal Model Of Semantic Web Service Ontology (Wsmo) Execution, Hai H. Wang, Nick Gibbins, Terry R. Payne, Ahmed Saleh, Jun Sun

Research Collection School Of Computing and Information Systems

Semantic Web services have been one of the most significant research areas within the semantic Web vision, and have been recognized as a promising technology that exhibits huge commercial potential. Current semantic Web service research focuses on defining models and languages for the semantic markup of all relevant aspects of services, which are accessible through a Web service interface. The Web service modelling ontology (WSMO) is one of the most significant semantic Web service framework proposed to date. To support the standardization and tool support of WSMO, a formal semantics of the language is highly desirable. As there are a …


Link Lifetimes And Randomized Neighbor Selection In Dhts, Zhongmei Yao, Dmitri Loguinov Apr 2008

Link Lifetimes And Randomized Neighbor Selection In Dhts, Zhongmei Yao, Dmitri Loguinov

Computer Science Faculty Publications

Several models of user churn, resilience, and link lifetime have recently appeared in the literature [12], [13], [34], [35]; however, these results do not directly apply to classical Distributed Hash Tables (DHTs) in which neighbor replacement occurs not only when current users die, but also when new user arrive into the system, and where replacement choices are often restricted to the successor of the failed zone in the DHT space. To understand neighbor churn in such networks, this paper proposes a simple, yet accurate, model for capturing link dynamics in structured P2P systems and obtains the distribution of link lifetimes …


Enforcing Behavioral Constraints In Evolving Aspect-Oriented Programs, Raffi Khatchadourian, Johan Dovland, Neelam Soundarajan Apr 2008

Enforcing Behavioral Constraints In Evolving Aspect-Oriented Programs, Raffi Khatchadourian, Johan Dovland, Neelam Soundarajan

Publications and Research

Reasoning, specification, and verification of Aspect-Oriented (AO) programs presents unique challenges especially as such programs evolve over time. Components, base-code and aspects alike, may be easily added, removed, interchanged, or presently unavailable at unpredictable frequencies. Consequently, modular reasoning of such programs is highly attractive as it enables tractable evolution, otherwise necessitating that the entire program be reexamined each time a component is changed. It is well known, however, that modular reasoning about AO programs is difficult. In this paper, we present our ongoing work in constructing a rely-guarantee style reasoning system for the Aspect-Oriented Programming (AOP) paradigm, adopting a trace-based …


Better Refactoring Tools For A Better Refactoring Strategy, Andrew P. Black Feb 2008

Better Refactoring Tools For A Better Refactoring Strategy, Andrew P. Black

Computer Science Faculty Publications and Presentations

Refactoring tools can improve the speed and accuracy with which we create and maintain software – but only if they are used. In practice, tools are not used as much as they could be; this seems to be because they do not align with the refactoring strategy preferred by the majority of programmers: floss refactoring. We propose five principles that characterize successful floss refactoring tools – principles that can help programmers to choose the most appropriate refactoring tools and also help toolsmiths to design more usable tools.


A Framework For Relationship Pattern Languages, Sudarshan Murthy, David Maier Feb 2008

A Framework For Relationship Pattern Languages, Sudarshan Murthy, David Maier

Computer Science Faculty Publications and Presentations

A relationship pattern is an abstraction of a recurring need when establishing relationships among information elements in specific contexts. By developing or leveraging a relationship pattern, modelers can solve a class of problems once and describe many relationship types at once. We have developed a framework for specifying relationship patterns and pattern languages (sets of patterns) in both modeling-language-independent and modeling-language-specific ways. We describe this framework both informally and formally. We provide examples of some commonly observed relationship patterns and show how to use them in ER with the help of a relationship pattern language called Exemplar. We also provide …


Scalable Concurrent Hash Tables Via Relativistic Programming, Josh Triplett Jan 2008

Scalable Concurrent Hash Tables Via Relativistic Programming, Josh Triplett

Computer Science Faculty Publications and Presentations

Existing approaches to concurrent programming often fail to account for synchronization costs on modern shared-memory multipro- cessor architectures. A new approach to concurrent programming, known as relativistic programming, can reduce or in some cases eliminate synchronization overhead on such architectures. This approach avoids the costs of inter-processor communication and memory access by permitting processors to operate from a relativistic view of memory provided by their own caches, rather than from an absolute reference frame of memory as seen by all processors. This research shows how relativistic programming techniques can provide the perceived advantages of optimistic synchronization without the useless parallelism …


Patterns Of Aspect-Oriented Design, Black P. Andrew, James Noble, David J. Pearce, Arno Scmidmeir Jan 2008

Patterns Of Aspect-Oriented Design, Black P. Andrew, James Noble, David J. Pearce, Arno Scmidmeir

Computer Science Faculty Publications and Presentations

Aspect-oriented programming languages are becoming commonplace, and programmers are accumulating experience in building and maintaining aspect-oriented systems. This paper addresses how the use of these languages affects program design: how aspect-oriented languages change the design space, which designs should be emulated and which avoided, and the strengths and weaknesses of particular kinds of design. We identify five patterns of aspect-oriented design: Spectator, Regulator, Patch, Extension, and Heterarchical Design. For each pattern, we describe the problem it solves, show how aspect-oriented language features are used in the pattern, give characteristic examples of the pattern’s use, and assess its benefits and liabilities. …


Digital Cs1 Study Pack Based On Moodle And Python, Atanas Radenski Jan 2008

Digital Cs1 Study Pack Based On Moodle And Python, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Books and Book Chapters

We believe that CS1 courses can be made more attractive to students:

  • by teaching a highly interactive scripting language – Python
  • by using an open source course management system - such as Moodle - to make all course resources available in a comprehensive digital study pack, and
  • by offering detailed self-guided online labs

We have used Moodle [1] and Python [2] to develop a "Python First" digital study pack [3] which comprises a wealth of new, original learning modules: extensive e-texts, detailed self-guided labs, numerous sample programs, quizzes, and slides. Our digital study pack pedagogy is described in recent ITiCSE …


Set Linear Algebra And Set Fuzzy Linear Algebra, Florentin Smarandache, W.B. Vasantha Kandasamy, K. Ilanthenral Jan 2008

Set Linear Algebra And Set Fuzzy Linear Algebra, Florentin Smarandache, W.B. Vasantha Kandasamy, K. Ilanthenral

Branch Mathematics and Statistics Faculty and Staff Publications

In this book, the authors define the new notion of set vector spaces which is the most generalized form of vector spaces. Set vector spaces make use of the least number of algebraic operations, therefore, even a non-mathematician is comfortable working with it. It is with the passage of time, that we can think of set linear algebras as a paradigm shift from linear algebras. Here, the authors have also given the fuzzy parallels of these new classes of set linear algebras. This book abounds with examples to enable the reader to understand these new concepts easily. Laborious theorems and …


The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev Jan 2008

The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev

Mathematics, Physics, and Computer Science Faculty Articles and Research

In response to a long-lasting anticipation by the Java community, version 1.5 of the Java 2 platform - referred to as Java 5 - introduced generic types and methods to the Java language. The Java 5 generics are a significant enhancement to the language expressivity because they allow straightforward composition of new generic classes from existing ones while reducing the need for a plethora of type casts. While the Java 5 generics are expressive, the chosen implementation method, type erasure, has triggered undesirable orthogonality violations. This paper identifies six cases of orthogonality violations in the Java 5 generics and demonstrates …