Monday, September 6th
The tutorial presents the state-of-the-art in
methodologies and tools for round-trip-engineering of object-oriented software
systems. Round-trip-engineering allows designing an application, (semi-)
automatically deriving its implementation, manually adapting and completing
this implementation, automatically updating the design documents, allowing
desing changes, updating the implementation without loss of manually created
code, etc. Design documents cover not only (UML) class diagrams but also
behavior diagrams like message sequence charts, collaboration diagrams,
state charts, and activity diagrams.
In addition, round-trip engineering with design
patterns is addressed. This covers design by combining design patterns,
implementation of design patterns (including code generation), and the
recognition of standard design patterns in code fragments.
Dr. Wilhelm Schäfer is a full professor in Computer Science at the University of Paderborn, Germany. Prior appointments have been at the University of Dortmund and McGill University in Montreal and head of the R&D department of a medium-size software house.
Dr. Albert Zuendorf is an assistant professor in Computer Science at the University of Paderborn, Germany. He has a strong background in case tool construction and software design and software engineering and re-engineering.
The Rational Unified Process is a Software Engineering Process developed and commercialized by Rational. It captures many of the best practices in modern software development in a form that is suitable for a wide range of projects and organizations. It uses the UML as the principal notation for the several models that are built and refined during the development. The objectives of this tutorial are to introduce the Rational Unified Process, to explain its architecture and representation, and to show some of its benefits, in particular the merits of an iterative approach, focusing first on the development and validation of a robust architecture.
Philippe Kruchten is director of process development at Rational Software Canada, in Vancouver, in charge of the Rational Unified Process. He has some 25 years of experience in the design of large software-intensive systems in the areas of telecommunication, compilation, defense and aerospace.
OPEN is the premier third-generation, process-focussed, public domain OO methodology. It is documented in a number of professional-level texts. In this tutorial, a beginner's level presentation, OPEN is introduced through a number of case studies using UML as the notation. OPEN is described and examples of how it is tailored to specific application projects is given along with its use in OO modelling using the Object Management Group's UML standard for metamodel and notation. No prior knowledge of either OPEN or UML is required but general understanding of OO concepts will be assumed.
Dr Bhuvan Unhelkar (MDBA, MSc, PhD, MACS)
has 17 years of professional IS experience including Consulting and Senior
roles in Product Development and Quality Assurance. Currently as Chief
Operating Officer at CASE digital Inc., a Californian software company,
he is responsible for the company's operations as well as directions in
Australia, India and USA. Bhuvan holds Doctorate from University of Technology,
Sydney (UTS). His recent book with CRC Press titled "After the Y2K Fireworks:
Business and Technology Strategies" has hit the book stores world-wide
in May'99, and which concentrates on survival and resurrection
strategies using object-oriented techniques for
'Y2K-hit' organisations. He is Member of Australian Computer Society, Software
Quality Association and Australian Software Metrics Association.
The KAOS methodology is aimed at supporting the
whole process of requirements elaboration -- from the high-level goals
to be achieved to therequirements, objects, and operations to be assigned
to the various agents in the system and its environment. GRAIL is a tool
designed to support KAOS
analyses.
The tutorial will explain what KAOS modelling
consists of, how requirements are elaborated with Kaos. Industrial projects
that have used Kaos will be reviewed. Recent research on (i) the use of
scenarios to elicit requirements, (ii) obstacle, divergence, and conflict
management in
requirements specifications will be overviewed.
Dr. Robert Darimont is the manager of the Software Enginnering Group at CEDITI, the IT transfer center of the university of Louvain (B). He leads industrial projects using Kaos, and helps companies to adopt up to date and precompetitive software engineering technologies.
The Unified Modeling Language (UML) aims to become the standard notation for development and documentation of object-oriented software. We present a short introduction to the UML from a fundamental perspective and introduce the nine UML diagram forms. As a central description element of UML, we use the Object Constraint Language (OCL). Employing OCL, we indicate the formal interpretation of UML class diagram features and touch current problems with the formal semantics of UML. We also show, how the formal interpretation contributes to providing methodological hints for class diagram development.
Martin Gogolla is Professor for Database
Systems at the University of Bremen. His research interests include development
methods, in particular object-oriented ones, and their fundamental properties.
On these subjects he has published papers and books and participated in
projects. Further information is available at
http://www.db.informatik.uni-bremen.de.
Code mobility allows a distributed application
to relocate its components at run-time. This possibility has been made
popular by Java and a myriad of other languages and systems. However, the
research area is still quite immature, and there is a strong need for a
systematic approach towards understanding the key characteristics of code
mobility as well as for a careful analysis of the benefits provided.
The tutorial will illustrate a taxonomy of mobile
code technologies, architectural paradigms, and applications. The taxonomy
will provide a terminological basis, as well as a precise characterization
of the founding concepts of the research area. As a case study, the tutorial
will also present a quantitative assessment of mobile code technologies
and paradigms in the context of network management.
Gian Pietro Picco is a Visiting Assistant Professor at Washington University, St.Louis, MO, USA. His current research interests are in distributed systems that exhibit logical mobility of code or physical mobility of hosts, and in the relationships between these two forms of mobility.
Good software engineering requires a process and a means by which to measure both the success of this process and the quality of the product. Software engineering metrics are thus a vital component to all software development organizations aspiring to high quality. An integrated (management and technical) viewpoint is taken in which product metrics are examined in the context of the object-oriented paradigm and a good software engineering process.
Simon Moser, Ph. D., is project manager
and quality system manager at Bedag Informatik, Berne Switzerland (www.bedag.ch).
In 1997, he was a research fellow funded by the Swiss National Science
Foundation with Prof. Brian Henderson-Seller's group at Swinburne University
of Technology in Melbourne (AUS). He is the developer of the System Meter
software sizing and estimation method suited for conventional and object-oriented
software and software design (UML). He has successfully applied this method
in over 40 projects. Prior to this, he applied the well-known Function
Point software sizing and estimation method in over 100 projects. He has
published a number of scientific papers on the topic of software metrics
in journals and at conferences. The most recent publication is "Cost estimation
based on business models", The Journal of Systems and Software, Vol. 47(4),
Sept. 1999, Elsevier Science Inc. Simon is a member of the ACM and the
OPEN Consortium.
Subject-oriented programming (SOP) is a practical approach to object-oriented programming-in-the-large. SOP addresses some well-known limitations of object-oriented development without forcing developers to adopt new languages or abandon the object-oriented paradigm. These limitations include weaknesses in: non-invasive system extension and evolution; large-scale reuse and integratrion; system decomposition; and multi-team and decentralized development.
This tutorial will provide an in-depth examination of the SOP approach and will show developers how to use it, both conceptually and using tool support. It will include a set of exercises to be worked through by participants alone and interactively. Tutorial participants will learn how to identify and address, using subject-oriented programming, some difficult and pervasive problems in their own large-scale object-oriented software development activities. They will also learn how to leverage subject-oriented programming to facilitate the use of design patterns, frameworks, and reusable components in software systems.
Harold Ossher and Peri Tarr of the
IBM Thomas J. Watson Research Center will present this tutorial.
Harold Ossher co-invented subject-oriented programming in 1993, and multi-dimensional
separation of concerns, which subject-oriented programming supports, in
1998-1999. He manages a group that has built C++ support and prototype
Smalltalk support for subjects, and is currently building support for Java(TM).
Peri Tarr co-invented the multi-dimensional software engineering paradigm.
She leads the tool development effort for
subject-oriented programming support for Java(TM).
She has has been exploring issues in the application of subject-oriented
programming and multi-dimensional software engineering to a wide range
of problems throughout the software development lifecycle.
Unfortunately cancelled!
Testing consumes approximately 40% of the cost of developing and maintaining a software system. Yet, testing is not taught on a formal basis in most institutions. This tutorial is designed to introduce the audience to practical cost effective test case design techniques for every level of software testing from unit to user acceptance. A discussion of how to determine quality testing rather than execute quantities of tests will open the tutorial followed by explanation and exercises of various techniques. The attendees will acquire skills and techniques for immediate application to their current project.
Karen Bishop-Stone has taught seminars on Software Testing and Quality Assurance Management internationally since 1980. She is the owner of Testware Associates, Inc., a firm dedicated to the independent testing and quality management of software
Current software development processes take place in a globally distributed setting comprising diverse documentation. In addition, software development environments are composed of different object stores, user interfaces, and tools, where all these components are independently created. XML and its related technologies can be used to provide support for software development and to manage these documents. This tutorial introduces XML to Software Engineers by presenting the main features of XML and focuses on its use in Software Engineering applications. The tutorial reflects the development of a new technology and our understanding of the importance of this technology for Software Engineers in general. The tutorial is intended for software practitioners, managers, teachers, researchers, and students at all levels.
Andrea Zisman is a Post Doctoral
Research Fellow in the Software Systems Engineering Group, in the Department
of Computer Science at University College London. She has published extensively
in the area of Distributed Databases and B-Trees. Details can be found
at: http://www.cs.ucl.ac.uk/staff/A.Zisman.
Anthony Finkelstein is a Professor at
University College London and is an internationally recognised researcher
in the area of software systems engineering and in particular in requirements
engineering. He has published more than 160 papers in these areas and held
research grants totaling in excess of £6m. Details can be found at:
http://www.cs.ucl.ac.uk/staff/A.Finkelstein.
Object-oriented (OO) programs typically have a
natural modularity that makes them easier to develop and maintain than
purely procedural programs. But many common design concerns are difficult
to modularize using OOP; instead they tend to cut across a system's class
structure. Common crosscutting concerns include multi-object protocols,
certain design patterns, performance optimizations, synchronization constraints
and distribution issues.
Aspect-oriented programming (AOP) provides constructs
that can capture cross-cutting concerns in a clear and modular way.
This tutorial presents AOP, shows how to design and program with the AspectJ
extension to Java(tm), and discusses the new kinds of modularity AspectJ
supports.
Gregor Kiczales is a principal scientist
at the Xerox Palo Alto Research Center. His research is focused on
a range of topics in software design, including object-oriented programming,
metaobject protocols, open implementation and aspect-oriented programming.
He is a co-author of "The Art of the Metaobject Protocol". He is
a member of the AspectJ design team.