|
Full Day Tutorials
Half Day Tutorials
Full-Day Tutorials
Full-Day Tutorial F1
Robert L. Nord, Daniel J. Paulish, Robert W. Schwanke,
and Dilip Soni, Siemens Corporate Research, USA dpaulish@scr.siemens.com
September 10, 2001, 9:00 - 17:00
Software Architecture in a Changing World: Developing Design Strategies
that Anticipate Change
Abstract:
One of the few known certainties when designing a new software architecture
is that the design and its implementation will likely change over time
as market requirements, technologies, and business factors change. Separating
software architecture into multiple views helps reduce complexity and
supports design trade-off decisions. At Siemens we use four main views,
based on best current practice, that address different engineering concerns.
This tutorial will teach experienced software engineers, architects, and
project managers how global analysis can improve your design, and how
to use UML to describe these four views: the conceptual, module, execution,
and code architecture views.
Biographies:
Dr. Schwanke is a senior member of the software architecture program
at Siemens who has successfully applied the four views, as described in
"Applied Software Architecture."
Dr. Paulish is a software project manager at Siemens who is writing "Architecture-Centric
Software Project Management," also to be published by Addison Wesley.
top
Full-Day Tutorial F2
Wolfgang Emmerich, Zuhlke Engineering Ltd, UK, wje@zuehlke.com
Nima Kaveh, University College London, UK, n.kaveh@cs.ucl.ac.uk
September 10, 2001, 9:00 - 17:00
Component Technologies: Java Beans, COM, CORBA, RMI, EJB and the CORBA
Component Model
Abstract:
This full-day tutorial is aimed at both industrial and academic participants,
who wish to get an overview of the local and distributed component technologies
that are currently available. We assume that participants are familiar
with object-oriented programming concepts. We introduce the idea of component-based
development by defining the concept and providing its economic rationale.
We describe how object-oriented programming evolved into local component
models (e.g. Java Beans) and distributed object technologies (e.g. CORBA,
RMI and COM). We then address how these technologies matured into distributed
component models (e.g. Enterprise Java Beans and CORBA). We give an assessment
of the maturity of each of these technologies and sketch how they are
used to build distributed architectures.
Biographies:
Dr. Wolfgang Emmerich is a co-founder, Director and Chairman of Zuhlke
Engineering (UK) Ltd. He has authored a Wiley text on "Engineering Distributed
Objects".
Wolfgang Emmerich has delivered numerous tutorials at international software
engineering conferences. He is also a Senior Lecturer in Computer Science
at University College London. Nima Kaveh investigates model checking techniques
for distributed objects and components during his PhD studies at UCL.
top
Full-Day Tutorial F3
Gregor Kiczales, University of British Columbia, Canada;
gregor@cs.ubc.ca Erik Hilsdale, Xerox PARC, USA; hilsdale@parc.xerox.com
September 11, 2001, 9:00 - 17:00
Aspect-Oriented Programming
Summary:
Aspect-oriented programming (AOP) is a technique for improving separation
of concerns in software design and implementation. AOP works by providing
explicit mechanisms for capturing the structure of crosscutting concerns.
Using traditional techniques the implementation of concerns like exception
handling, multi-object protocols, synchronization, and resource sharing
tends to be spread out across the source code. The lack of modularity
for these concerns makes them more difficult to develop and maintain.
This tutorial will show how to use AOP to implement concerns like these
in a concise modular way. The effect of using AOP on modularity, extensibility,
separate development and overall program comprehensibility will be discussed,
as well as issues in the adoption of AOP into existing projects.
The tutorial will predominantly work with AspectJ, a seamless aspect-oriented
extension to the Java(tm) programming language, and with AspectC, an aspect-oriented
extension to C in the style of AspectJ. It will also include a description
of their underlying model, in terms of which a wide range of AOP langauges
can be understood. Applications of AOP techniques and environments will
include general-purpose programming, operating systems, and embedded systems.
Attendees should have experience doing object-oriented design and implementation,
and should be able to read Java and/or C code. No prior experience with
aspect-oriented programming is required.
The focus of his research is enabling programmers to write programs
that, as much as possible, look like their design. Prior to developing
aspect-oriented programming he worked on open implementation, metaobject
protocols and the CLOS object-oriented programming language. He is co-author
of "The Art of the Metaobject Protocol", a key work in compuational reflection.
He has given numerous invited talks, lectures and tutorials at conferences,
universities and in industry.
Biographies:
Erik Hilsdale is a member of the research staff at Xerox's Palo Alto Research
Center. As a member of the AspectJ project team, he focuses on language
design, pedagogy and compiler implemetation. He has written several conference
and workshop publications in programming languages. He is an experienced
and energetic instructor in programming languages with a long background
with AspectJ.
Gregor Kiczales is Professor of Computer Science and Xerox/Sierra Systems/NSERC
Chair of Software Design at the University of British Columbia. He is
also a Principal Scientist at the Xerox Palo Alto Research Center, where
he leads the group that has developed aspect-oriented programming and
AspectJ.
top
Half-Day Tutorials
Half-Day Tutorial F4
Richard A. Kemmerer, University of California, Santa
Barbara, USA kemm@cs.ucsb.edu
September 11, 2001, 9:00 - 12:30
Internet Security
Abstract
The growth of the Internet and the World Wide Web (www) during the
past few years has been phenomenal. Most every business and government
institution has a web page, and the web and web browsing are fast becoming
the primary source of information for people of all ages. Unfortunately,
the the Internet and the web were designed with little or no concern for
security. This tutorial introduces some known threats to secure Internet
computing and analyzes protection mechanisms and techniques for countering
these threats. Example break-in scenarios that combine different protocol
attacks and an experience compromising an online banking application will
be presented.
Biography:
Richard A. Kemmerer is a Professor and past Chair of the Department of
Computer Science at the University of California, Santa Barbara.
Dr. Kemmerer has written numerous papers on the subject of computer security,
and he is co-author of the book "Computers at Risk: Safe Computing in
the Information Age."
top
Half-Day Tutorial H5
Kurt Wallnau and Robert Seacord, Software Engineering
Institute at CMU; {kcw,rcs}@sei.cmu.edu
September 10, 2001, 9:00 - 12:30
Building Systems from Commercial Components: Method Foundations.
Abstract:
This tutorial describes fundamental ideas of component based development.
The tutorial touches on different categories of component-based development
method, and the problems they address. We then sharpen the focus to one
class of design problem and the essential methodological response to this
class of problem: systems developed from pre-existing components acquired
from commercial sources, where these components are deployed onto operating
system platforms. Topics covered include: evaluation techniques and myths
associated with them; design as search; risk and feasibility as search
criteria; and, representation and management of the search space. A case
study, drawn from first-hand experience on an industrial-scale project,
will be presented to illustrate the main ideas.
Biographies:
Kurt C. Wallnau is a senior member of the technical staff of the Software
Engineering Institute (SEI) at Carnegie Mellon University. He designed
and taught the fall semester MSE course in methods of software development.Mr.
Wallnau is co-author of the book "Building Systems from Commercial Components."
Robert C. Seacord is a senior member of the technical staff at the Software
Engineering Institute and an eclectic technologist. He is co-author of
the book "Building Systems from Commercial Components" as well as more
than 30 papers on component-based software engineering.
top
Half-Day Tutorial H6
Martin Lippert, Stefan Roock, University of Hamburg,
Germany; lippert@informatik.uni-hamburg.de
September 10, 2001, 9:00 - 12:30
Adapting XP to Complex Application Domains
Abstract:
Extreme Programming (XP) works well for small software projects in
not too complex application domains. In many of these projects the rather
simple requirements engineering of XP (customers write story cards) was
suitable. But today we are more often faced with complex application domains
in which the classical XP techniques will not suffice. The tutorial shows
how to adapt extreme programming to complex application domains and for
demanding development tasks. We focus mostly on the requirements engineering
part and show how to enhance XP with interviews, scenarios and system
visions. We also integrate the management perspective into the "planning
game" reconciling this perspective with users' needs. We propose a set
of best-practice methods, we have used in a number of industrial high-risk
projects for different complex application domains.
The tutorial assumes that the participants are familiar with the XP techniques
on a base level. The introduction into XP will be quite short to assure
that we will be able to discusss the advanced topics also.
Bios:
Martin Lippert and Stefan Roock are research assistants at the University
of Hamburg and professional software architects and consultants at APCON
WorkplaceSolutions. They are coaches for professional XP projects and
gained experience in successful XP projects over the past years.
top
Half-Day Tutorial H7
Engin Kirda
September 10, 2001, 13:30 - 17:00
Engineering of Web Services with XML and XSL
Abstract:
The life cycle of a Web service includes the analysis, design, implementation
and maintenance stages. Web service engineering covers all phases of the
Web service life cycle. The majority of Web tools developed so far only
address the implementation phase and lack support for the other stages.
This tutorial shows how to design, implement, and manage flexible, XML/XSL
based Web services. We discuss our methodology and describe our experiences
in maintaining and building the Vienna International Festival Web (www.festwochen.at)
service and give an overview of our Web engineering tools. Further, we
summarize the lessons learned in designing and managing several large,
interactive Web sites and give guidelines for flexible Web service engineering
with XML/XSL.
Biography:
Engin Kirda is a research assistant in the Distributed Systems Group at
the Technical University of Vienna (TUV). His main research interests
are engineering device independent Web services and distributed systems.
He holds a MSc in computer science from TUV. He has built and managed
several large Web services such as the Vienna International Festival and
the Austrian Academy of Science sites.
top
Half-Day Tutorial H8
Barry Boehm, University of Southern California, USA;
boehm@sunset.usc.edu Paul Grünbacher, Johannes Kepler University, Austria;
pg@sea.uni-linz.ac.at
September 10, 2001, 13:30 - 17:00
EasyWinWin: A Groupware-Supported Methodology For Requirements Negotiation
Abstract:
EasyWinWin is a requirements definition methodology that builds on the
win-win negotiation approach and leverages collaborative technology to
improve the involvement and interaction of key stakeholders. With EasyWinWin,
the stakeholders move through a step-by-step win-win negotiation where
they collect, elaborate, and prioritize their requirements, and then surface
and resolve issues.
This tutorial introduces the EasyWinWin negotiation approach and situates
it with respect to other leading requirements determination approaches,
and within the spiral model of software development. We explain the objectives
and deliverables of each step in the methodology, and offer tips and pitfalls
from the field. We give a live demonstration of the collaborative tools
and the methodology in action, and demonstrate facilitation techniques
that keep the process moving forward. Throughout the tutorial, we will
present the highlights from several real-world EasyWinWin projects.
The intended audience are those professionals involved in requirements
definition (e.g. as project managers, engineers, executives, users, customers);
software requirements engineering researchers. The level of presentation
is introductory with no specific background knowledge required.
see also: http://sunset.usc.edu/research/WINWIN/EasyWinWin/
Biographies:
Barry Boehm is TRW Professor of Software Engineering and director of the
Center for Software Engineering at the University of Southern California.
Paul Grünbacher is an assistant professor at the Johannes Kepler University
Linz, Austria.
top
Half-Day Tutorial H9
Michael Mannion, Glasgow Caledonian University, Scotland,
UK; M.A.G.Mannion@gcal.ac.uk Hermann Kaindl, Siemens AG Österreich, PSE,
Austria; hermann.kaindl@siemens.at
September 11, 2001, 9:00 - 12:30
Requirements-Based Product Line Engineering
Abstract
Reuse and requirements are very important for efficient and successful
systems development. This tutorial presents a Method for Requirements
Authoring and Management (MRAM) and reports on some experiences of applying
requirements reuse using the method. MRAM is a method for establishing
product line requirements and for selecting from them. A product line
is a group of products within the same market segment e.g. mobile phones.
TRAM (Tool for Requirements Authoring and Management) supports MRAM, utilising
current proven office technology (MS-Word, MS-Access). The tutorial presents
the results of applying MRAM/TRAM to Product-Line Engineering of a real-world
application.
Biographies:
Professor Michael Mannion is Head of Department of Computing, Glasgow
Caledonian University, Glasgow, Scotland, UK.
Dr. Hermann Kaindl is a Senior Consultant in Requirements Engineering
and Object-Oriented Modeling with the Division of Program and Systems
Engineering at Siemens AG Österreich.
top
Half-Day Tutorial H10
Albert Zündorf, Technical University of Braunschweig,
Germany; zuendorf@ips.cs.tu-bs.de
September 11, 2001, 9:00 - 12:30
From Use Cases to Code -- Rigorous Software Development with the UML
Abstract:
The Rational Unified Process lacks technical guidance for the development
of OO applications. This tutorial fills this gap. We first use UML scenario
diagrams to analyze use-cases. Next, we show a method to analyze scenarios
and to derive UML class diagrams and UML behavior modeling for active
classes and methods. We show how to choose and embed design patterns in
a design and how to employ different architectural styles. From such a
precise design, smart CASE tools generate fully functional implementations.
We explain state-of-the-art code generation concepts for UML and assess
current CASE tools for their code generation capabilities and for their
support through all software development phases more generally.
Biographies:
Dr. Albert Zündorf has a temporary position as full professor in Computer
Science at the Technical University of Braunschweig, Germany. Dr. Zündorf
is leader of the FUJABA case tool project that aims to provide tool support
for round-trip engineering with structural and behavioral design diagrams.
top
Half-Day Tutorial H11
Karl Aberer, EPFL, Switzerland; karl.aberer@epfl.ch Manfred
Hauswirth, Technical University of Vienna, Austria; m.hauswirth@infosys.tuwien.ac.at
September 11, 2001, 13:30 - 17:00
Peer-to-peer information systems: concepts & models, state-of-the-art,
and future systems
Abstract:
The limitations of client/server systems become evident in an Internet-scale
distributed environment. P2P systems offer an alternative to traditional
client/server systems: Every node acts both as a client and a server and
"pays" its participation by providing access to its computing resources.
Systems such as Napster and Gnutella have proven their practical applicability.
In this tutorial we position the P2P paradigm in the design space of distributed
information systems, present underlying models and concepts, and show
the structure, protocols, and algorithms of current systems. Then we elaborate
on the novel requirements for P2P algorithms (resource discovery, complexity,
and scalability) and present future research areas.
Biographies:
Karl Aberer is full professor at EPFL (Lausanne) heading the Distributed
Information Systems Laboratory. His main research interests are on the
self-organization of information systems and databases.
Manfred Hauswirth is an assistant professor for distributed systems at
TU Vienna. His research focuses on distributed systems, e-commerce and
Internet applications.
top
Half-Day Tutorial H12
Alexander Ran, Nokia Research Center, USA; alexander.ran@nokia.com
September 11, 2001, 13:30 - 17:00
Fundamental Concepts for Practical Software Architecture
Abstract:
Architecture of software is a collection of design decisions that are
expensive to change. These include the architecturally significant requirements
(ASR), the conceptual model, system structures, and replicated microstructure
or texture of software. We introduce a system of concepts useful in order
to understand, design, and evaluate architecture of software intensive
systems and system families. Our approach is based on a model that relates
architectural decisions to goals of system stakeholders. We utilize multiple
software structures in order to control important system qualities related
to its development, performance, and evolution. This tutorial should be
useful to engineers and technical managers involved in construction or
evaluation of complex software.
Bios:
Alexander Ran is Principal Scientist of Software Architecture at Nokia
Research Center, where he leads a research group focusing on methods,
tools, and technology for development of complex software that is reliable,
extendible, and efficient in its utilization of computing, communication,
and energy resources.
top
|