Tutorials

The ICSE tutorial program provides conference participants with the opportunity to gain new insights, knowledge, and skills in a broad range of areas of software engineering. Tutorials will be held on 16 and 17 May 2005 (Monday and Tuesday during ICSE). See the details below associated with each tutorial to identify the times of each full or half day tutorial.

Note: All tutorials will follow the ICSE '05 standard daily schedule.

Full Day Tutorials


F1
Rules of Thumb for Secure Software Engineering
F2
The Software Engineering of Agent-Based Intelligent Adaptive Systems
F3
Spiral Development of Software-Intensive Systems of Systems


Half Day Tutorials


H1
Financially Informed Requirements Prioritization
H2
Component-Based Software Engineering for Embedded Systems
H3
Story Driven Modeling - A Practical Guide to Model Driven Software Development
H4
Understanding Metamodeling
H5
Software Visualization
H6
Engineering Safety-Related Requirements for Software-Intensive Systems
H7
Model-Based Testing
H8
Reverse Engineering of Object-Oriented Code
H9
An Architect's Guide to Enterprise Application Integration with J2EE and .NET
H10
Transformations of Software Models into Performance Models
H11
Aspect-Oriented Programming
H12
What You always Wanted to Know about Agile Methods But Did Not Dare to Ask


F1: Rules of Thumb for Secure Software Engineering
Holger Peine (Fraunhofer IESE, Kaiserslautern, Germany)
16 May 2005 - Monday - Full Day
Director's Row #48 [Floor Plan]

Abstract:
This tutorial will teach important guiding principles to avoid security problems in the design and implementation of software. It does not address finding security problems in existing systems. No specific technology is taught, but general principles of good security engineering. We start with a short refresher on software security, motivated by a small piece of real-world software (a Java applet for login) found insecure.

The main part of the tutorial will then present 20 rules of secure software development in the form of Do's and Dont's, such as "Make components with differing privileges" or "Validate data from lower-privileged sources". Each rule is illustrated by examples of good and bad practice, and by discussions of inherent problems and possible trade-offs against other goals of software development. The audience is invited to contribute their own experience in these discussions. We will continue with some considerations on the general benefits and limitations of such a rule-based approach.

Finally, the initial example of the login application is revisited, and the audience is invited to critique the applications design in the light of the new knowledge. The tutorial will close with a short direction to security patterns as "the next step" from the general rules.


Presenter's Biography:

Dr. Holger Peine received a diploma in computer science ("with distinction") and worked as a research assistant at Kaiserslautern University of Technology (Germany), doing research in operating systems, distributed systems, networking, and security. He received a Ph.D. in computer science ("with distinction") for his award-winning research in run-time support for mobile code, and was the designer and principal implementer of the Ara platform for secure execution of general mobile code.

Following this, he joined the IT security department at the Fraunhofer IESE research institute in Kaiserlautern, developing tools for the security evaluation of IT systems and performing security evaluations of software, systems and processes. Lately he became the lead of a newly-founded task force researching techniques and tools for the development of secure software.

^ Top

F2: The Software Engineering of Agent-Based Intelligent Adaptive Systems
Leon Sterling, Thomas Juan (University of Melbourne, Australia)
16 May 2005 - Monday - Full Day
Director's Row #47 [Floor Plan]

Abstract:
Future software systems will be intelligent and adaptive, and will have the ability to seamlessly integrate with smart applications that have not been explicitly designed to work together. Traditional software engineering approaches offer limited support for the development of intelligent systems. To handle the tremendous complexity and the new engineering challenges presented by intelligence, adaptiveness and seamless integration, developers need higher-level building blocks, or development constructs. Agent concepts are natural to describe intelligent adaptive systems. Agent based technologies and software engineering techniques have benefited significantly from recent research in software engineering and have matured to offer useful insights and concrete practices to mainstream software engineers.

This tutorial presents the state of the art in agent research from a software engineering perspective, focusing on practices that are applicable today. We will walk the audience through analysis, design and verification of a portion of a real-world problem: a Smart Home Network. We show how agent concepts more naturally match the engineering challenges of such systems like trust between adaptive components. The audience will have hands-on experience with analyzing and designing parts of the Smart Home Network and receive a detailed ROADMAP on how to incorporate agent technologies into their current projects.


Presenters' Biography:

Leon Sterling serves as Adacel Chair of Software Innovation and Engineering at the University of Melbourne since 2002. He has a B.Sc.(hons.) from Melbourne in 1976, and a Ph.D. from Australian National University in Canberra in 1981. His overseas academic career includes three years at the University of Edinburgh, U.K., one year at the Weizmann Institute, Israel, and ten years at Case Western Reserve University, USA. He returned to Australia in 1995, and served as Head of the Computer Science and Software Engineering Department at the University of Melbourne for almost six years. His research interests include software engineering, agent technology, logic programming, and artificial intelligence. He has represented Software Engineering in several forums, including serving on the joint Board on Software Engineering of Engineers Australia and the Australian Computer Society. He has published widely, including popular books such as "The Art of Prolog" and "The Practice of Prolog".

Thomas Juan received a bachelor of engineering (software) and a bachelor of science from the University of Melbourne. He is currently finishing his PhD at the same university. His work in the area of Agent Oriented Software Engineering has been well regarded in the AOSE community. He presented a tutorial on Agent Oriented Software Engineering with Leon Sterling at 2004 IEEE/WIC/ACM International Joint Conference on Intelligent Agent Technology (IAT'04).

^ Top

F3: Spiral Development of Software-Intensive Systems of Systems
Barry Boehm, A. Winsor Brown (University of Southern California, USA), Richard Turner (George Washington University, USA)
17 May 2005 - Tuesday - Full Day
Director's Row #43 [Floor Plan]

Abstract:
Commercial, public service, and national security organizations are finding it increasingly attractive to integrate component system capabilities from many different "best of breed" sources to achieve their objectives. In doing so, they find that they are increasingly dependent on software to integrate the systems and to rapidly adapt them in response to competitive opportunities or threats, new technologies, or new organizational priorities.

The resulting software-intensive systems of systems (SISOS) offer significant benefits, but come with significant new types of risks, such as simultaneous satisfaction of multiple stakeholders and quality attributes, and integration and rapid adaptation of multiple heterogeneous software products and COTS products.

This tutorial provides software engineers, managers and researchers with an understanding of and emerging capabilities for practicing "Software engineering in the very large". It identifies the major opportunities and risks involved in software-intensive systems of systems, presents experience-based techniques for realizing the opportunities and mitigating the risks. It provides extensions of the risk-driven spiral model that are being used for SISOS development processes, and provides case study exercises to give participants experience in applying the techniques in representative situations.


Presenters' Biography:

Dr. Barry Boehm is TRW Professor of Software Engineering and Director, USC Center for Software Engineering. His contributions to the field include the Constructive Cost Model (COCOMO), the Spiral Model of the software process, the Theory W (win-win) approach to software management and requirements determination. He is a Fellow of the primary professional societies in computing (ACM), aerospace (AIAA), electronics (IEEE), and systems engineering (INCOSE), and a member of the U.S. National Academy of Engineering.

A. Winsor Brown, Assistant Director of the USC Center for Software Engineering, has over 25 years of experience in software development, engineering and management gained in aerospace, industrial and commercial applications. He is a co-author with Barry Boehm of the book Software Cost Estimation with COCOMO II.

Dr. Richard Turner is a Research Professor in Engineering Management and Systems Engineering at the George Washington University. In support of the U.S. Department of Defense, he supports identifying and transitioning new software technology into software-intensive defense systems. He was on the CMMI development team and is a co-author of CMMI Distilled, as well as a co-author with Barry Boehm of Balancing Agility and Discipline.

^ Top

H1: Financially Informed Requirements Prioritization
Jane Cleland Huang (DePaul University, Chicago, USA), Mark Denne (Veritas, USA)
16 May 2005 - Monday - Morning
St. Louis Ballroom F [Floor Plan]

Abstract:
This tutorial introduces a financially responsible approach to requirements prioritization that enhances the value creating potential of a systems development project. The approach which is part of the Incremental Funding Method (IFM), is described in the book "Software by Numbers: Low-risk, High-Return Development". Tutorial attendees will learn how to decompose a system into "chunks" of revenue-generating functionality known as Minimal Marketable Features (MMFs), to carefully sequence those MMFs in order to maximize the overall value of the project, and to manipulate other project metrics such as reducing the initial funding investment, or decreasing the time to reach break-even status. A gentle introduction to financial analysis will also equip participants to analyze and understand the impact of other requirements prioritization decisions upon the financial returns of a project. IFM is equally effective in both traditional and agile software development environments.

This tutorial is particularly relevant to software development professionals and project managers interested in getting more value from their projects, and also for academics wanting to learn financial analysis skills that can be applied in a general software engineering environment.


Presenters' Biography:

Dr. Jane Cleland-Huang is an Assistant Professor at DePaul University's School of Computer Science, Telecommunications, and Information Systems. Her research interests include Value-based Software Engineering, Requirements Traceability, and Process Models. She is Associate Director of the Institute of Software Engineering in Chicago, and director of the DePaul Center for Applied Requirements. She has published peer reviewed papers on requirements traceability and software development and recently coauthored the book "Software by Numbers: Low-risk, High-Return Development", which describes a financially informed approach to software development. Dr.Cleland-Huang is a member of the IEEE Computer Society and has a PhD from the University of Illinois at Chicago.

Mark Denne is a Senior Principal at Veritas Software. He leads Veritas' Utility Computing consultancy team in the USA. Prior to this he was at Sun Microsystems for 10 years, where his roles included (i) overseeing the creation of business and infrastructure solutions for Grid Computing, (ii) managing the New York City Java Center, leading Java architects and designers working with financial services and media clients, and (iii) being Sun's chief architect for Citibank's financial services portal, now "Citibank Onlin", voted "best online banking site" by Forbes Magazine and "best financial portal" by Yahoo.

He has a Masters Degree in Computer Science from Cambridge University. His book "Software by Numbers: Low-risk, High-Return Development", published by Prentice Hall and co-authored by Jane Cleland-Huang, documents radical new financial models for profitable low-risk software development. He lives and works in Mountain View, CA.

^ Top

H2: Component-Based Software Engineering for Embedded Systems
Ivica Crnkovic (Mälardalen University, Sweden)
16 May 2005 - Monday - Afternoon
St. Louis Ballroom F [Floor Plan]

Abstract:
Component-based development (CBD) is established as a standard approach in many domains. Although attractive, CBD has not been widely adopted in domains of embedded systems. Embedded systems are computer systems that are parts of larger systems providing with services these systems. They vary from ultra small devices to large distributed systems. The experience has shown that existing technologies cannot be directly used for development of embedded systems. The main reason is inability of these technologies to cope with the important concerns of embedded systems, such as resource constraints, real-time or dependability requirements. However an increasing understanding of principles of CBD makes it possible to utilize these principles in implementation of different component-based models more appropriate for embedded systems. The aim of this tutorial is to point to the opportunity of applying this approach for development and maintenance of embedded systems. The tutorial gives insights into basic principles of CBD, the main concerns and characteristics of embedded systems and possible directions of adaptation of component-based approach for these systems. Different types of embedded systems and approaches for applying CBD are presented and illustrated by examples from research and practices. Also, challenges and research directions of CBD for embedded systems are discussed.


Presenters' Biography:

Ivica Crnkovic is a professor of industrial software engineering at Mälardalen University, Sweden. He is the author of more than 50 refereed papers on software engineering topics and a co-author and co-editor of two books: "Building Reliable Component-Based Systems", and "Implementing and Integrating Product Data Management and Software Configuration Management". He has been co-program chair and co-organizer of several workshops and conferences related to component-based software engineering such as CBSE 2004 symposium, CBSE3-CBSE6 workshops at ICSE conferences, Euromicro conference CBSE tracks 2000-2004, etc. He is participating in several research projects related to component-based development and embedded systems (PACC SEI/CMU project in cooperation with ABB Robotocs, ARTIST Network of excellence, Swedish Foundation for Strategic Reseach project SAVE, etc.). Prof. Crnkovic is teaching several undergraduate and graduate courses in software engineering and component-based software engineering. He also held tutorials, seminars and specialized courses at different conferences, events or industrial events.

^ Top

H3: Story Driven Modeling - A Practical Guide to Model Driven Software Development
Albert Zündorf (Universität Kassel, Germany)
16 May 2005 - Monday - Morning
St. Louis Ballroom A [Floor Plan]

Abstract:
The Rational Unified Process lacks practical guidance for the development of object oriented applications. Model Driven Software Development (MDD) proposes to do most of these development steps at the model level of abstraction. This tutorial takes the MDD idea and examplifies such a development process. The tutorial guides the user from textual requirements descriptions through UML scenario modeling to the derivation of test case specifications, class diagrams and UML behavior models and finally to the implementation of the desired system. The tutorial employs a running example that allows to illustrate the modeling activities for each development phase and the guidelines for each modeling step. We discuss how existing CASE tools may be used in such an approach and how the Fujaba environment supports our development process.


Presenters' Biography:

Albert Zündorf has studied Computer Science at RWTH Aachen University, Germany from 1984 until 1990. In 1994 he finished his PhD still at RWTH Aachen. Then he spent 6 years at University of Paderborn doing his Habilitation. After 2 years as a step-in Professor at University of Braunschweig he has become a full professor for software engineering at University of Kassel in 2002. Albert Zündorf is initiator and one of the technical leaders of the Fujaba CASE tool project.

^ Top

H4: Understanding Metamodeling
Thomas Kühne (TU Darmstadt, Germany)
16 May 2005 - Monday - Afternoon
St. Louis Ballroom A [Floor Plan]

Abstract:
Metamodeling not only directly underpins the specification of modeling languages such as the UML, but is also the foundation for making the OMG's MDA vision come true. This tutorial starts by motivating metamodeling as an advanced way of creating software and then goes on to explore its fundamental principles. In particular, important new metamodeling concepts such as the distinction between ontological and linguistic instance-of relationships, the unification of class and object facets and deep instantiation are introduced. A metamodeling framework suitable for MDA is constructed step-by-step and then used to explain and critique the OMG's various metamodeling technologies. This information furnishes modelers with the heuristics they need to more effectively utilize OMG metamodeling technology and to know when metamodeling concepts are suitable and when they are not. The tutorial ends with some methodological advice on how to model in the presence of more than two modeling levels (objects & classes).


Presenters' Biography:

Thomas Kühne is an Assistant Professor at the Darmstadt University of Technology. Prior to that he was an Acting Professor at the University of Mannheim and before that a researcher at the University of Kaiserslautern and a Lecturer at Staffordshire University (UK). His interests are centered on object technology, programming language design and metamodeling. He received a Ph.D. and M.Sc. from the Darmstadt University of Technology, Germany in 1998 and 1992 respectively. Prof. Kuehne can draw from considerable presentation and teaching experience especially from courses held at Staffordshire University. In particular, Dr. Kuehne already has given a full course on metamodeling at the Darmstadt University of Technology.

^ Top

H5: Software Visualization
Stephan Diehl (Katholische Universität Eichstätt, Germany)
16 May 2005 - Monday - Morning
Director's Row #46 [Floor Plan]

Abstract:
This half-day tutorial gives an overview of the current state-of-the-art in software visualization. Software visualization encompasses the development and evaluation of methods for graphically representing different aspects of software, including its structure, its execution, and its evolution. In contrast to visual programming and diagramming for software design, software visualization is not so much concerned with the construction, but with the analysis of programs and their development process. Software visualization combines techniques from areas like software engineering, programming languages, data mining, computer graphics, information visualization and human-computer interaction. Topics covered in this tutorial include static program visualization, algorithm animation, visual debugging, as well as the visualization of the evolution of software. In particular we identify common principles illustrated by many examples and give pointers to tools available today.


Presenters' Biography:

Stephan Diehl is a full professor for computer science at Catholic University Eichstätt. He studied computer science and computational linguistics at Saarland University, and as a Fulbright scholar at Worcester Polytechnic Institute, Massachusetts. He got his PhD from Saarland University as a scholar of the German Research Foundation (DFG) working in the group of Prof. Reinhard Wilhelm. Stephan Diehl's research interests include programming languages and compiler design, web technologies, educational software and visualization, in particular software visualization. He teaches courses on software visualization at university as well as in industry and has been heavily involved in various international software visualization related events.

^ Top

H6: Engineering Safety-Related Requirements for Software-Intensive Systems
Donald G. Firesmith (Software Engineering Institute, Pittsburgh, USA)
16 May 2005 - Monday - Afternoon
Director's Row #46 [Floor Plan]

Abstract:
Many software-intensive systems have significant safety ramifications, and inadequate requirements are a major cause of accidents involving such systems. Yet, there is too little interaction and collaboration between the requirements and safety communities. Most requirements engineers and safety engineers know little about each others’ discipline. Also, safety engineering usually concentrates on architecture and design rather than requirements because hazard analysis typically involves system components, the failure of which could cause accidents. This results in safety-related requirements that are ambiguous, incomplete, and even missing.

This tutorial covers the basic concepts of safety engineering including hazards, safety risks based on harm severities and likelihood of hazards / accidents, safety integrity levels (SILs), and safety assurance evidence levels (SEALs). The tutorial then discusses the four major kinds of safety-related requirements including safety requirements (a form of quality requirement based on safety as a factor in a quality model), safety-significant requirements (including safety-critical functional, data, interface, and non-safety quality requirements), requirements for safety subsystems, and safety constraints. Techniques are provided for engineering these requirements as well as associated examples. Next a process is provided for engineering safety-related requirements. Finally, attendees will be led through the engineering of the different kinds of safety-related requirements for an example safety-critical system.


Presenters' Biography:

Donald Firesmith is a senior member of the technical staff at the Software Engineering Institute (SEI), where he works in the Acquisition Support Program helping the United States Department of Defense acquire large complex systems of software-intensive systems. With over 25 years of industry experience, he has published 5 software engineering books, primarily in the areas of process and object orientation. He is currently working on a book on the engineering of safety-related requirements for software-intensive systems. He has published dozens of technical articles and spoken at numerous conferences as well as been the program chair or on the program committee of several conferences. Over the last four years, he has developed a website (www.donald-firesmith.com) documenting the world's largest repository and class library of free reusable, open-source process components, which process engineers can use to create project-specific processes (methods).

^ Top

H7: Model-Based Testing
Alexander Pretschner (ETH Zürich, Switzerland)
17 May 2005 - Tuesday - Morning
Director's Row #47 [Floor Plan]

Abstract:
Model-based testing has become increasingly popular in recent years. Major reasons include (a) the need for quality assurance for increasingly complex systems, (b) the emerging model-centric development paradigm (e.g., UML and MDA) and its seemingly direct connection to testing, and (c) the advent of test-centered development methodologies.

Model-based testing relies on execution traces of behavior models. They are used as test cases for an implementation: input and expected output. This complements the ideas of model-driven testing. The latter uses static models to derive test drivers to automate test execution. This assumes the existence of test cases, and is, like the particular intricacies of OO testing, not in the focus of this tutorial.

We cover major methodological and technological issues: the business case of model-based testing within model-based development, the need for abstraction and inverse concretization, test selection, and test case generation. We (i) discuss different scenarios of model-based testing, (ii) present common abstractions when building models and their consequences for testing, (iii) explain how to use functional, structural, and stochastic test selection criteria, and (iv) describe today's test generation technology.
We provide both practical guidance and a discussion of the state-of-the-art. Potentials of model-based testing in practical applications and future research are highlighted.


Presenters' Biography:

Alexander Pretschner is a senior research associate with the chair for Information Security at ETH Zurich, Switzerland. Master's degrees in computer science from RWTH Aachen, Germany, and the University of Kansas, as a Fulbright scholar. PhD on model-based testing of reactive systems from TU Munich, Germany. 35 papers on model-based testing and development, CASE support, discrete-continuous systems, and personalization in international journals and conference/workshop proceedings. Co-organization of a 2004 international Dagstuhl seminar on model-based testing; co-organization of ICSE 04 and 05 workshops on SW engineering for automotive systems. Industrial projects on testing with BMW, EADS-M, Siemens, and Giesecke+Devrient. Member of the program committee of a dozen international conferences and workshops. Research interests include testing, model-based development, information security, and the application of formal methods in industry. Current research focus in model-based testing on re-usable test case specifications, modeling methodology, and empirical investigations.

^ Top

H8: Reverse Engineering of Object-Oriented Code
Paolo Tonella (ITC-irst, Povo, Italy)
17 May 2005 - Tuesday - Afternoon
Director's Row #47 [Floor Plan]

Abstract:
During software evolution, programmers devote most of their effort to the understanding of the structure and behavior of the given system. For Object-Oriented code, this comprehension task might be particularly hard, due to the typically high usage of delegation, resulting in multiple, scattered entities contributing to the same function. Design views offer an invaluable help, but they are often not aligned with the code, when they are not missing at all. Reverse engineering of these views from the code is thus an appealing option in such a context.

This tutorial describes some of the most advanced techniques that can be employed to reverse engineer several design views from the source code. The recovered diagrams, represented in UML (Unified Modeling Language), include class, object, interaction (collaboration and sequence), state and package diagrams. A unifying static code analysis framework used by most of the involved algorithms is presented at the beginning of the tutorial. A single running example is referred all over the presentation, in order to clarify the mechanics of the various techniques. Trade-offs (e.g., static vs. dynamic analysis), limitations and expected benefits are also discussed.

Presenters' Biography:

Paolo Tonella received his laurea degree cum laude in Electronic Engineering from the University of Padua, Italy, in 1992, and his PhD degree in Software Engineering from the same University, in 1999, with the thesis "Code Analysis in Support to Software Maintenance". Since 1994 he has been a researcher of the Software Engineering group at ITC-irst, Trento, Italy. He participated in several projects on software analysis and testing.

Paolo Tonella published over 20 journal papers, 4 book chapters, and 30 conference papers. He is in the Steering Committee of SCAM (General Chair of SCAM 2005) and WSE, and in the Program Committee of IWPC. He regularly reviews papers for journals, among which the IEEE Transactions on Software Engineering. At the beginning of 2005, Springer-Verlag will publish the book: P. Tonella and A. Potrich, "Reverse Engineering of Object Oriented Code" ISBN: 0-387-40295-0, containing most of the material presented in this tutorial.

^ Top

H9: An Architect's Guide to Enterprise Application Integration with J2EE and .NET
Ian Gorton (National ICT, Australia), Anna Liu (Microsoft, Australia)
17 May 2005 - Tuesday - Morning
Director's Row #48 [Floor Plan]

Abstract:
Architects are faced with the problem of building enterprise scale information systems, with streamlined, automated internal business processes and web-enabled business functions, all across multiple legacy applications. The underlying architectures for such systems are embodied in a range of diverse products known as Enterprise Application Integration (EAI) technologies.

In this tutorial, we highlight some of the major problems, approaches and issues in designing EAI architectures and selecting appropriate supporting technology. The tutorial presents a range of the common architectural patterns frequently used for EAI applications. It also explains Service Oriented Architectures as the current best practice architectural framework for EAI. It then describes the state-or-the-art in EAI technologies that support these architectural styles, and discusses some of the key design trade-offs involved when selecting an appropriate integration technology (including buy versus build decisions).

Presenters' Biography:

Ian Gorton is a Senior Researcher at National ICT Australia. Until Match 2004 he was Chief Architect in Information Sciences and Engineering at the US Department of Energy's Pacific Northwest National Laboratory. Previously he has worked at Microsoft and IBM, as well as in other research positions. His interests include software architectures, particularly those for large-scale, high-performance information systems that use commercial off-the-shelf (COTS) middleware technologies. He received a PhD in Computer Science from Sheffield Hallam University.

Anna Liu is an architect advisor at Microsoft Australia. She evangelizes architecture and works with large enterprises in understanding and solving their enterprise application integration challenges. Her interests include designing and implementing robust service oriented architectures, and distilling patterns and best practices. She has previously held a visiting scientist position at the Software Engineering Institute, Carnegie Mellon University. She received a PhD in Computer Engineering from the University of New South Wales, Australia.

^ Top

H10: Transformations of Software Models into Performance Models
Vittorio Cortellessa, Antinisca Di Marco, Paola Inverardi (Università dell'Aquila, Italy)
17 May 2005 - Tuesday - Afternoon
Director's Row #48 [Floor Plan]

Abstract:
It is widely recognized that in order to make performance validation an integrated activity along the software lifecycle it is crucial to be supported from automated approaches. Easiness to annotate software models with performance parameters (e.g. the operational profile) and automated translations of the annotated models into "ready-to-validate" models are the key challenges in this direction. Several methodologies have been introduced in the last few years to address these challenges. The tutorial introduces the attendance to the main methodologies for annotating and transforming software models into performance models. The tutorial roadmap is as follows: (i) we introduce the topic and place it within the wider domain of non-functional validation of software systems; (ii) we describe the methodologies to annotate and transform models; we support this description by using a common simple case study to show them at work as well as to emphasize their similarities/differences; (iii) we classify the methodologies basing on different dimensions and parameters; (iv) finally, we give some ideas about the future directions in this research area.

Presenters' Biography:

Vittorio Cortellessa holds a Laurea in Computer Science from University of Salerno (1991) and a Ph.D. in Computer Science from University of Roma "Tor Vergata" (1995). He was a Post-doc fellow at the European Space Agency (ESRIN, 1997) and a Post-doc at University of Roma "Tor Vergata"(1998-1999). From 2000-2001, he was Research Assistant Professor at CSEE, West Virginia University, and Research Contractor at DISP, University of Roma "Tor Vergata". Since 2002 he has been an Assistant Professor at University of L'Aquila (Italy). He has been involved in several research projects in the areas of performance analysis of software/hardware systems, component-based software systems, fault-tolerant systems and parallel discrete event simulation, which are his main research areas. He serves as a referee for conferences and journals in these areas.

Antinisca Di Marco is a Ph.D. Student in Computer Science at University of L'Aquila. She graduated in Computer Science at the University of L'Aquila in 2001. Her main research interests are: Software Architecture, Software Performance Analysis, Integration of Functional and Non-functional software validation. She is interested in predictive performance analysis of Software Architecture (SA). She is also interested in integrating the results of different analyses made on SA in order to support validation and verification of SAs, as well as in techniques to dynamically manage the performance of software systems at run time through monitoring, reconfiguration and performance model evaluation.

Paola Inverardi is a professor at the Computer Science Department at University of L'Aquila. Her research interests are in the field of the application of formal techniques to the development of software systems. These include software specification and verification of concurrent and distributed systems, deduction systems, and Software Architectures. Current research interests mainly concentrate in the field of software architectures specifically addressing the verification and analysis of software architecture properties, both behavioral and quantitative. On these topics she collaborates with several national and international companies. Recently she is working on the design and development of mobile applications.

^ Top

H11: Aspect-Oriented Programming
Gregor Kiczales (University of British Columbia, Vancouver, Canada)
17 May 2005 - Tuesday - Morning
Director's Row #46 [Floor Plan]

Abstract:
Aspect-oriented programming (AOP) is changing the way software is developed. AOP builds on previously modularity techniques like procedures and object-oriented programming. AOP goes beyond these techniques by supporting the modularization of crosscutting concerns. AOP can make it possible to develop modular designs and implementations of concerns like synchronization policies, business rules, resource management, architecture enforcement, security rules, persistence layer interaction, performance optimizations and many others.

By making code more modular, AOP makes software easier to design, develop, maintain, evolve and deploy, and makes software and software designs more valuable.

This tutorial provides a deep introduction to AOP. We will cover the problems AOP solves, conceptual underpinnings, mechanisms, how to read and write simple aspects, how to "think aspects" at the design and code levels, tool support, reusable aspects, aspect patterns, and an overview of strategies companies have used to execute effective adoption of AOP. We will also discuss current AOP research, and how that work relates to commercial use of the technology.

Presenters' Biography:

Gregor Kiczales is Professor of Computer Science at the University of British Columbia. His work is directed at enabling programmers to write programs that, as much as possible, look like their design. He has pursued this goal in a number of projects, including CLOS and its metaobject protocol, open implementations of system software and middleware, and aspect-oriented programming. He led the Xerox PARC project that developed aspect-oriented programming and AspectJ. He is author, with Danny Bobrow and Jim des Rivieres of "The Art of the Metaobject Protocol".

^ Top

H12: What You always Wanted to Know about Agile Methods But Did Not Dare to Ask
Frank Maurer, Grigori Melnik (University of Calgary, Canada)

17 May 2005 - Tuesday - Afternoon
Director's Row #46 [Floor Plan]

Abstract:
A fleet of emerging agile methods is both gaining popularity and generating lots of controversy. Real-world examples argue for and against agile methods. This high-level overview tutorial provides background to understand how agile teams are trying to solve modern software development issues. A detailed comparison of agile methods vs. Tayloristic methods is given. This is followed by an examination of the main practices of individual methods (including eXtreme Programming, Scrum, Agile Modeling, DSDM, Crystal, FDD, Lean Programming). In order to highlight agile methods strengths and limitations, some empirical evidence is presented and analyzed. Participants will discuss what is needed for agile methods to cross the chasm from early adopters to the mainstream of software development. Among other topics, the tutorial addresses the issues of knowledge sharing, project management, and social implications of agile methods.
This tutorial is aimed at developers, managers, QA specialists, business customers and academics who are new to agile methods and who would like to acquire basic knowledge of underlying agile practices as well as to discuss - from a business perspective - the benefits of and issues with applying agile approaches. No prior experience with agile methods needed.


Presenters' Biography:

Frank Maurer is a Professor and an Associate Head of the Department of Computer Science at the University of Calgary. His research interests are agile software methodologies, e-Business software engineering, Web engineering, globally distributed software development, experience and knowledge management. He is a member of Agile Alliance and a Certified Scrum Master. He is also a founding member of The Canadian Agile Network - Le Réseau Agile Canadien and a founding member of the board of the Calgary Agile Methods User Group. Frank Maurer was also involved with the agile community as a Program Co-chair for XP Agile Universe 2003, and a program committee member in 2002 and 2004. Dr Maurer was the program committee member and/or program committee chair of various conferences and workshops in the areas of software engineering, knowledge engineering, agile methods, and distributed software development.

Grigori Melnik is a researcher and an educator with 11 years of academic and 6 years of industrial experience. He is currently an Instructor at the University of Calgary and a Lead Instructor at SAIT Polytechnic. Grigori holds MSc in Applied Mathematics, MSc in Economics and is currently finishing Ph.D. in Computer Science. His primary research area is empirical evaluation of capabilities of agile methods. Other areas include e-business software development, distributed software engineering, and distance education. Grigori has been involved in several high-profile industrial projects (including Microsoft Canada Money and Microsoft Canada SmallBiz portals). More recently he has served as a founding co-moderator of Calgary Agile Methods User Group and a coordinator of The Canadian Agile Network - Le Réseau Agile Canadien. Grigori has been on the XP Agile Universe Program Committee since 2003. He is a Certified Scrum Master and a member of ACM, Agile Alliance, CADE, IEEE, IEEE Computer Society, IFPUG, and SIAM.

^ Top