Sunday, 26 October
Monday, 27 October
With Adaptive Software Development, Crystal, Extreme Programming, Feature Driven Development, Lean Development, and Scrum the ecosystem of agile methods seems to stabilize. Though they all use different metaphors and approaches to software development, their hands-on results are so similar that readers may ask themselves, whether they are really different methodologies. Practitioners have had the best results combining elements of different agile methodologies — a possibility that defines a common species in biology.
This sequel to last year's OOPSLA workshop "Commonalities of Agile Methodologies" explores this question in depth in a highly interactive setting. It may work on questions like "What is different anyhow and why?", "What forces drive particular solutions?", or "How does a solution deal with limitations?".
Following the success of object technology, the next advance is likely to be the introduction, adoption and widespread use of agent technology for business applications. Agents, building as they do in part on objects, require careful design. Appropriate methodologies for constructing agent-oriented systems may rely to some degree on OO methodologies, but their distinct autonomy of an agent means that these agent-oriented processes cannot be as deterministic as they have been in object-oriented developments. Support for emergent processes is required as well as further modifications to existing OO processes.
The overall goal of the workshop is to consolidate a research agenda for the next five years that will enable agent-oriented methodologies to become of "commercial strength" and to be widely adopted by industry.
During the last decade, Object-Oriented/Component Based Development has gained a wide acceptance from both academics and practitioners as the current optimal technology for software development. This has led to the creation of a plethora of OO methodologies and, more recently, OO processes. Many attempt to provide a "one size fits all" process.
An alternative that we explore in this workshop is to construct and/or tailor a process specifically for the organization by use of the technique of process engineering. While the creation of process components is reasonably mature, the guidelines to help organizations construct their own process from these process components are little understood. The workshop aims to create concrete advice to organizations on process construction and process tailoring. This will require interchange of ideas and experiences between researchers and practitioners.
Today, domain-specific visual languages provide a viable solution to raise the level of abstraction beyond coding. Industrial experience has shown productivity improvements of 5-10 times. We believe that it is time to start talking about Domain-Specific Modeling as the new paradigm for developing applications and product families for a given domain/platform.
In domain-specific modeling the models are constructed using concepts that represent things in the application domain, not concepts of a given programming language. The modeling language follows the domain abstractions and semantics, allowing developers to perceive themselves as working directly with domain concepts. Together with generators and components DSM can automate a large portion of software production.
Industry/academic experience reports
The theme of this workshop is patterns for retrospectives. Retrospectives are important, not only for object technology, but for any human activity: to provide time for reflection, to improve on performance, and to increase our understanding of the task at hand. The Principles Behind the Agile Manifesto state that, "At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly." There have been articles and an excellent book (Norm Kerth's Project Retrospectives) written on this topic but as is the case for many domains, experts know much that novices do not. We believe that documenting expertise in patterns is an excellent way to share knowledge.
The goal of this workshop is to begin documenting patterns for retrospectives and looking for a pattern language structure.
According to the Jargon File a "killer app" is an "application that actually makes a sustaining market for a promising but under-utilized technology." A "killer example" provides clear and compelling motivation for a design pattern or design principles. An example is "killer" if it compels someone to spontaneously "buy-in" to that design pattern or technique.
"Killer examples" are important pedagogically because they get students on-board and excited about design in general and design patterns in particular. They are useful to convince peers or employees, not familiar with object-oriented design, that design patterns are central to good object-oriented practices and that they are not an esoteric topic that is best left to expert.
The workshop's goal is to bring together educators and developers who have "killer examples" to share. Pre-workshop activities encourage interaction and refinement of examples prior to the workshop.
While OO has become ubiquitously employed for design, implementation, and even conceptualization, many practitioners recognize the concomitant need for other programming paradigms according to problem domain. Nevertheless, the choice of a programming paradigm is strongly influenced by the supporting programming language facilities. In turn, choice of programming language is usually a practical matter: one cannot generally afford to use a language not in the mainstream. We seek answers to the question of how to address the need for other programming paradigms in the general context of OO languages.
Can OO programming languages effectively support other programming paradigms? The tentative answer seems to be affirmative, at least for some paradigms; for example, significant progress has been made for the case of (higher order, polymorphic) functional programming in C++.
This workshop seeks to bring together practitioners and researchers in this emerging field to 'compare notes' on their work--describe existing, developing, or proposed techniques, idioms, methodologies, language extensions, or software for expressing non-OO paradigms in OO languages and the .NET framework; or theoretical work supporting or defining the same. Work-in-progress reports are welcomed.
Keywords: multiparadigm programming, object-oriented languages
In software development projects it is necessary to find a common understanding of the architectural concept model. Concepts might be, for example, Business Objects, Services, or Forms. They provide the common "language" of the architects. To implement an adequate system architecture it is crucial for any software developer to share this "language."
Usually a class structure alone cannot provide enough strength of expression to represent a concept model, since concepts might include several classes and even other software artifacts.
We are looking for a structure above the class level, which comprises and communicates the additional semantics of the concept model. We will discuss ontologies to describe this structure.
Ideally, the concepts themselves, their relations, hierarchies, and extension points, i.e. the ontology, should be detectable on source code level. We will examine modularization concepts and component models for implementation.
Papers can range from academic research to practical experiences.
Keywords: Ontology, Modularization, Architecture
Open-Source software development moved into the focus of common interest a couple of years ago and by now, software engineers learned a lot about the dos and don'ts which often prove beneficial even for industrial software development projects. However, there are many more ways in which industrial software development can benefit from open-source communities — and vice versa.
In this workshop, we will elaborate on different aspects that help to establish this mutual benefit.
The goal of the workshop is to help advance the current practice of gathering performance characteristics of middleware implementations through benchmarking. The workshop will serve as a meeting point between middleware developers and middleware users as two representative groups that are typically involved in middleware benchmarking but tend to have different requirements. Positions are solicited especially from people with previous or impending benchmarking experience.
The participants of the workshop will identify requirements and obstacles of middleware benchmarking and form a position on issues such as designing a framework that would allow the design, running and evaluating a diverse range of benchmarks over a diverse range of middleware, designing benchmark criteria that would allow for a meaningful comparison of results collected over different platforms, designing a framework suitable for regular regression testing, or providing means to verify the benchmarking results and their applicability to specific usage situations.
Keywords: middleware, benchmarking, performance evaluation
Most of the practices of Extreme Programming are beneficial to students in their computer science courses. But in order to teach students properly, pedagogical changes are needed as early as CS1. This workshop seeks participants who have significant ideas for changes that can be made in early computer science courses that involve integrating any of the practices of Extreme Programming or other agile methodologies.
Would-be participants should send in a short position paper outlining one or two ideas they have. During the workshop, participants will critically discuss the ideas that have been suggested and explore any new ones that arise. Participants will agree to allow their ideas to be shared via a web page to be posted in various CS educational resources repositories.
Software patterns have had a positive impact on how software is built and how organizations work. They have had relatively little impact on education, however. This workshop will bring together experienced educators and industrial trainers to investigate how this might be changed. There are many questions to be answered: Should students write patterns? Use Patterns? Should patterns inform how we teach? What we teach? What are the benefits and challenges of using and teaching patterns in education? What kinds of patterns are most effective: design patterns, elementary patterns, pedagogical patterns and organizational patterns?
This workshop will feature a range of presentation formats, including short presentations, exercise demos, and discussions. A major goal of the workshop will be to decide on the desirability and feasibility of holding a future EduPLoP, directed at educators and students.
The main goals of software reuse are to increase quality, reduce cost, and shorten development cycles. The interesting question in this context is: How to achieve reuse in constrained environments? In desktop and enterprise systems, object-orientation, components, frameworks, service-oriented architectures and, most recently, model-driven development are proposed as cornerstones for efficient reuse. In constrained environments (i.e. embedded and real time systems, PDAs, smart phones, settop boxes) reuse is not as simple, because most reuse techniques imply some kind of overhead: memory, performance, or determinism.
This workshop explores practical reuse techniques for constrained environments. Potential topics include, but are not limited to:
Model Driven Architecture (MDA) is an initiative by the OMG to leverage UML-based modeling techniques to insulate abstract software system specifications from implementation dependencies. The workshop focuses on generative techniques that can be used to realize MDA. We aim to bring together practitioners, researchers, academics, and students to discuss the state-of-the-art of generative techniques in the context of MDA. The OOPSLA'02 workshop on this topic was highly successful and led to the launch of the Generative Model Transformer (GMT) open source initiative.
Topics of interest include:
The goal is to share experience, consolidate successful techniques, and identify the most promising application areas and open issues for future work.
Agile Contracts. Are these two words an oxymoron? Contracts have played a very important role in the business of software development; in fact, much of this work is in fact done 'under contract'. Organizations adopting agile methodologies are finding it hard to write contracts for software development without compromising the core values and practices. The Agile Contracts workshop is your chance to help the agile community identify ways contracts can be structured and worded to support agile software development.
Come prepared to participate! Come and participate in the discussion about how to structure agile software development contracts and take away many great ideas, no matter which side of a software development contract you find yourself.
"I learned more from this workshop than from any other session," said one Agile Contracts Workshop participant at XP 2003. Use gaming theory to understand the motivations of contracting parties. Share examples of a contract structure, which had either good or bad effects on agile software development. Work with a small team to devise a contracting strategy, which supports agile software development.
Leave a Legacy. The good ideas generated in this workshop will be posted to the web for all to see.
The goal of this workshop is to foster precise, explicit, and elegant OO specifications of business and system semantics, independently of any (possible) realization. Substantial progress has been made in these areas, both in academia and in industry. However, in too many cases only lip service to semantic issues has been provided, and as a result the systems we build or buy are all too often excessively complex or (this is not an exclusive or) are not what they are supposed to be. Doing better than that requires both a clear understanding of the problem semantics within the context of their business and technological environments, and an abstract, precise and explicit specification of that semantics.
The specific theme this year is on striving for simplicity. In order to simplify IT systems, we need to use abstraction — in C.A.R.Hoare's words, "only abstraction enables a manager or a chief programmer to exert real technical control". The same considerations apply to understanding, modeling and making (strategic, tactical and operational) decisions about businesses.
UML (Unified Modeling Language) has been widely accepted by the industry as the lingua franca for modeling object-oriented applications. In recent years, UML profiles such as the Common Warehouse Metamodel (CWM), the UML Profile for Enterprise Distributed Object Computing (EDOC) and the UML Profile for Enterprise Application Integration have defined specialized modeling languages for particular problems. The ISO Reference Model for Open Distributed Processing (RM-ODP) calls for systems to be designed with multiple viewpoints. These viewpoints represent different abstractions and might be implemented as different modeling languages for expression of the particular concepts and relationships relevant to the point of view. These languages should be integrated or otherwise reconciled to achieve a consistent overall system design.
The purpose of this workshop is to explore the characteristics of models of information systems that address areas of concern beyond the structure of programs, and to consider the implications of integrating such models to develop a comprehensive, consistent model of a system.
Pervasive Computing has become a reality and is further emerging. And even though Pervasive Computing is still in its infancy, no one can deny its potential to change how we live and do business. Pervasive Computing is pointing toward a future in which the networking web will be extended to an ever larger number of players, to smaller machines, houses, appliances, etc., which are increasingly becoming more intelligent. Applications and architectures are becoming multi modal and aware of their context. This web will allow machines to interact with other machines and humans. The sheer number of players interacting with each other and their penetration in our daily lives, such as household appliances, is going to make the impact even more formidable.
In some respects, pervasive solutions contain many elements from standard e-Business systems and are implemented with the same or similar technology. However, the combination of the pervasiveness of computing functionality and internet access, together with possibilities such as the remote monitoring of events and pushing information to users and machines, or the creation of location-aware services, is a new paradigm. Clearly, the well-known Web 'Request/Response' model, as implemented through WAP or i-mode is not enough. Disconnected Work, Intelligent Notification, Ad Hoc Networks, and Data Replication are just a few samples usage patterns where Pervasive Computing goes beyond 'internet for small screens'.
We believe Object Technology is playing a major part in shaping up this new computing paradigm. In some ways, objects can be regarded as becoming highly dynamic and more pervasive, 'living' on even the smallest device. The computing model is becoming even more distributed, possibly using Web Services as the prime means for cooperation.
workshop will bring together practitioners who have been actively involved in the development of Pervasive Computing solutions, researchers who have been working in this area, and people who have been involved in the definition of standards. The goal is to identify recurring architecture themes and patterns typically used to build such systems, or raise issues and gaps for implementation that need to be resolved.
The workshop is a sequel to similar sessions from the previous years at OOPSLA. It will start off with a short presentation of accepted papers and will then be highly interactive, aiming for tangible outcomes, such as sketches of reference architectures or patterns identified in this field.
Reengineering and evolution are important for long-lived software systems. Change and growth in the system's requirements and functionality occur in all kinds of systems — and it is especially critical to manage the evolution process in modern agile and extreme software processes. The management of change and growth may in fact become a daily activity, so a well defined set of techniques and tools for doing reengineering are critical to success.
This workshop picks up from the results of the OOPSLA '02 workshop "Tackling the Discovery Costs of Evolving Software Systems."
Participants will present and discuss encapsulation and reverse engineering techniques, impact of reengineering on software processes, organizational concerns, and experiences in managing software change "in the extreme".
Semantics underlie the fundamental problems that business stakeholders and system developers constantly cope with when integrating enterprise systems. Well-known issues, such as semantics description, expression of common semantics across systems and interoperability of data and processes, are amplified in the enterprise arena. Enterprise integration, although related to it, is not synonymous to technical systems integration. More complex forms of communication and coordination are required and encompass the multifaceted dimensions of the business (i.e., technical, organizational and human).
The importance of identifying ways to define, model and express semantics at a business level is highlighted by the growing importance of the application of ontologies to the development and re-engineering of enterprise systems. Also semantics is driving emerging technologies such as the semantic web, GRID systems and web services.
This workshop is aimed at bringing together researchers and practitioners with diverse cultural and professional backgrounds in order to discuss and analyze the different semantic issues and perspectives of enterprise integration.
Keywords: enterprise/systems integration, semantics, ontology, services.
To ensure return on technology investments, companies need to align IT projects to their Business Strategy. Today a technology solution has many stakeholders, requiring systems to be developed in a multi-stakeholder context.
The key stakeholders include:
Stakeholders often have conflicting objectives. Moreover, differing sub-cultures and ways of working and communicating contribute to communication barriers and the possibility of project failure.
This workshop explores ways of realizing an effective bridge to close communication gaps and to create a shared vision and plan for realization among different stakeholders. The benefits of having an effective way to translate a Business Strategy into optimal technology solutions include:
The workshop will look into approaches for accelerated solution design that can reliably translate and connect core business requirements into the best choices for enabling technology and software implementations. In particular, the workshop will solicit submissions that summarize substantive candidates of such approaches for presentation and subsequent cross-comparison and analysis. Workshop attendees will discuss, analyze and attempt to distill the essence of what makes these approaches work looking for a core set of similar features, activities, constructs and results produced that have proven to be effective and reliable.
One possible example of such a common feature -- the use of solution stories -- appears to foster a common understanding of ideas and confidence in proposed capabilities for given domains. As one of the probable items of focus, the workshop will seek to confirm that this is a common feature, and to understand why. The overall goal and result of the workshop will be to catalog the most important, common features or activities of the best approaches and how and why each works, whether by itself or in combination with the rest.
The eclipse platform (http://www.eclipse.org) is designed for building integrated development environments (IDEs) for object-oriented application development. The eclipse Technology eXchange workshop will feature presentations of about 12 papers that describe the use of the eclipse open source as a code base for teaching and research, or for support of a community service. The presenters will report on their projects and explore potential new uses of eclipse and improved usability of the core eclipse technology. Technical leaders of the eclipse community will be available throughout the workshop to answer questions and participate in the technology exchange.
keywords: object-oriented programming, integrated development environment
See the call for papers and other information: http://witanweb.ca/eTX/
The objective of this workshop is to have a detailed technical discussion on requirements for future virtual machines and advanced languages from an applications perspective.
Issues such as what features and their virtual machine implementations actually promote object reuse. What has worked in the past? Has the original design goals of the respective participants in their respective object architectures been met. What problems were encountered during the commercial deployment of their respective architectures? What do the participants see as the direction they believe that virtual machine technology will take in the near future, as well as over the long haul?
Web services and service-oriented architectures are promising technology. However, they are still fraught with problems and issues: operational issues, quality of service, functional and methodology related.
In this workshop we aim to identify real industry experiences (successes or failures) in designing and implementing web services based systems. And we look for research papers aiming at identifying and alleviating major bottlenecks and issues related to service-oriented architectures, web services and dynamically re-configurable architectures.
This workshop builds on the Object Oriented Web Services workshops in previous OOPSLA conferences and sets a slightly different direction, aimed at consolidating web services and service-oriented architecture best practices and patterns.