º Home
      º Organization
      º Travel/Venue
      º Program

Keynote and Invited Speakers

Workshops

Accepted Papers and Presentations

Retrospective on Modularity

Tutorials

Demos

BoF

      º Important Dates
      º Call For Contributions
      º Student Rally

º Student Research Competition

      º Promote AOSD 2011
      º Student Volunteers
      º Past Conferences
      º Registration  

Tutorials

(Tutorials Program Overview)


Understanding Programming Technologies by analogy, examples, and abstraction (Slides)

Ralf Laemmel, Universitat Koblenz-Landau, Germany

Room: Caboclinhos

Abstract: Given the various technical spaces in IT, given the various programming technologies in and between the spaces, how can \Joe the Student Programmer" ever expect to fundamentally understand those spaces and get a conceptual handle on some of these technologies before he ends up in practice and only gets to understand some per-project piece of space and technology? This tutorial gives a sneak preview of a new course on programming technologies that exactly tries to address this diffiult question. The course covers, for example, X/O/R mapping, different programming paradigms, model-driven engineering, and advanced modularization. The spaces and technologies are associated with metadata and megamodels to support analogy and abstraction. The spacesand technologies are systematically demonstrated with a running example: the 101companies example.

Biography: Ralf Lammel is Professor of Computer Science at the Department of Computer Science at the University of Koblenz-Landau since July 2007. In the years 2005-2007, Ralf Lammel was affiliated with Microsoft Corp., where he served on a research and development position with focus on XML technologies. In the years 2001--2004, Ralf Lammel served on a permanent faculty position, at the Free University of Amsterdam, in the Software Engineering department, and he was also affiliated with the Dutch Center for Mathematics and Computer Science (CWI) -- starting in 1999. Ralf Lammel obtained his PhD in Computer Science (dissertation in programming theory) from the University of Rostock (Germany) in December 1998.


Refactoring Course (Slides)

Joseph W. Yoder

Room: Caboclinhos

Abstract: Refactoring code to make it more maintainable and extendable has become a more mainstream practice. Refactoring is the process of changing software without altering its external behavior. It is done in such as way to improve the structure of the code to allow for later extensions or to make maintenance of the code easier. It is important to refactor your code in a disciplined way to minimize disruptions and to allow the system to safely evolve. Improving a systems structure and readability through refactoring enhances its comprehensibility, readability, and maintainability.

This tutorial will teach attendees how to recognize code smells, or signs that code needs to be refactored. It takes you through some of the common refactorings as provided by tools such as the Refactoring Browser and Eclipse and those outlined in Martin Fowlers Refactoring book, teaching you the correct discipline for refactoring your code. Various code examples will be used to illustrate how and when to refactor. Tools and Testing techniques to support refactoring will also be examined. The class will examine how to apply object-oriented design patterns to guide your refactoring decisions.

Biography: Joseph Yoder is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joe is an international speaker and a pattern author of software including architecture, design, and implementation. Joseph specializes in Enterprise Architecture, Object-Oriented Analysis and Design, C#/.NET, Java, Smalltalk, Patterns, Agile Methods, Unit Testing, Adaptable Systems, Refactoring, Reuse, and Frameworks. Joe is a longstanding member of The Hillside Group, a group dedicated to improving the quality of software development. He is the co-author of the Big Ball of Mud pattern, which illuminated many fallacies in the approach to software architecture. Joseph has organized and participated in many international conferences including program chair for the Pattern Languages of Programming Conferences (PLoP, AsianPLoP, and SugarLoaf PLoP). Joe has presented many tutorials and talks at many international conferences such as Agile, CBSoft, JAOO, QCon, PLoP, OOPSLA and ECOOP; including a keynote address at Agile Portugal 2010. Joe currently resides in Urbana, Illinois where he oversees a team of developers who have constructed many systems based on enterprise architecture using the .NET environment. Other projects involve working in both the Java and .NET environments deploying Adaptive Systems or Domain-Specific Languages for clients. Joe thinks software is still too hard to change. He wants do something about this and believes that by using good patterns and by putting the ability to change software into the hands of the people with the domain knowledge, seems to be some promising avenues to solve this problem.


The Theory and Practice of Modern Modeling Language Design (for Model-Based Software Engineering) (Slides)

Bran Selic, Malina Software Corp.

Room: Caboclinhos

Abstract: Model-based software engineering (MBSE), while not a panacea, has demonstrated its effectiveness in mitigating some of the most critical design problems in developing complex software systems. This tutorial focuses on a vital component of MBSE: the design of modeling languages and related technologies such as model-to-model transformations and automated code generation. In contrast to traditional programming languages, whose primary purpose is to specify design implementations such that they can be realized by a computer, modeling languages must satisfy a broader set of objectives, since the role of models typically covers more than just specification. This imposes significant challenges for language designers, often requiring expertise beyond what suffices for programming language design.

The first part of the tutorial covers the overall MBSE landscape: the rationale behind it, key developments, the current states of the art and practice, the role of modeling languages, and, finally, major open problems. Next, the general structure of modeling languages is described and fundamental design issues are identified. Different approaches to modeling language definition along with supporting technologies are then reviewed, and guidelines for their practical application are given. Standard widespread modeling languages, including EMF, UML, and MOF, are used to illustrate both good and bad design practices. Special emphasis is placed on the design of domain-specific modeling languages. The final part of the tutorial is dedicated to a review of model transformation technologies, including both model-to-model and model-to-code methods.

Biography: Bran Selic is President of Malina Software Corp., a Canadian company that provides consulting services to major corporate clients and government institutions worldwide. He is also Director of Advanced technology at Zeligsoft Limited in Canada and a Visiting Scientist at Simula Laboratories in Oslo, Norway. In 2007, Bran retired from IBM Canada, where he was an IBM Distinguished Engineer, and was responsible for setting the strategic direction for software development tools for technical systems. In addition, he is an adjunct professor of computer science at the University of Toronto and at Carleton University (Ottawa, Canada), as well as a guest lecturer and researcher at the University of Sydney (Australia) and at INSA (Lyon, France). With close to 40 years of practical experience in designing and implementing large-scale industrial software systems, Bran has pioneered the application of model-driven development methods in real-time and embedded applications. In this domain, he has led numerous research projects, authored and edited several textbooks and numerous technical papers and chaired major conferences dedicated to these problems. In addition, he was one of the principal contributors to several technical standards related to OMGӮs Model-Driven Architecture initiative, including chairing the committee responsible for the widely adopted UML modeling language standard. In addition, Bran is one of the founders and a member of the steering committee of the Centre of Excellence for Research in Adaptive Systems (CERAS), an institute established by the Ontario Centres of Excellence and the IBM Center for Advanced Studies. Bran received his Dipl.Ing degree in 1972 and his Mag.Ing degree in 1974, both from the University of Belgrade in Yugoslavia.




Rulemakers and Toolmakers: Adaptive Object-Models as an Agile Division of Labor (Slides)

Joseph W. Yoder

Room: Frevo

Abstract: Agile practices liberate us from the straightjackets of top-down design. But, the ease with which requirements can change encourages users to overwhelm us with requests for features. The result: Featuritis, which promotes hasty construction of poorly designed software to support those features. The design of an expressive domain model might get lost in the rush to write working code. Adaptive Object-Models support changeable domain modules by casting business rules as interpreted data and representing objects, properties and relationships in external declarations. Now users can change the system domain models themselves as their business dictates without having to deal with programmers at all. It’s the ultimate in agility!

Biography: Joseph Yoder is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. Joe is an international speaker and a pattern author of software including architecture, design, and implementation. Joseph specializes in Enterprise Architecture, Object-Oriented Analysis and Design, C#/.NET, Java, Smalltalk, Patterns, Agile Methods, Unit Testing, Adaptable Systems, Refactoring, Reuse, and Frameworks. Joe is a longstanding member of The Hillside Group, a group dedicated to improving the quality of software development. He is the co-author of the Big Ball of Mud pattern, which illuminated many fallacies in the approach to software architecture. Joseph has organized and participated in many international conferences including program chair for the Pattern Languages of Programming Conferences (PLoP, AsianPLoP, and SugarLoaf PLoP). Joe has presented many tutorials and talks at many international conferences such as Agile, CBSoft, JAOO, QCon, PLoP, OOPSLA and ECOOP; including a keynote address at Agile Portugal 2010. Joe currently resides in Urbana, Illinois where he oversees a team of developers who have constructed many systems based on enterprise architecture using the .NET environment. Other projects involve working in both the Java and .NET environments deploying Adaptive Systems or Domain-Specific Languages for clients. Joe thinks software is still too hard to change. He wants do something about this and believes that by using good patterns and by putting the ability to change software into the hands of the people with the domain knowledge, seems to be some promising avenues to solve this problem.


The Aspect-Oriented User Requirements Notation: Aspects, Goals, and Scenarios (Slides)

Gunter Mussbacher, University of Ottawa

Room: Frevo

Abstract: The User Requirements Notation (URN) is a recent modeling standard, published by the International Telecommunication Union in November 2008, that supports the elicitation, analysis, specification, and validation of requirements. URN is the first standard that combines modeling concepts and notations for goals and intentions (mainly for non-functional requirements, quality attributes, and reasoning about alternatives) and scenarios (mainly for operational requirements, functional requirements, and performance and architectural reasoning). Changes to requirements are inevitable and ideal requirements models should cope with change efficiently. However, crosscutting requirements make changing requirements more difficult, since change impact is more complicated and costly to manage due to scattered and tangled requirements models. Therefore, it is necessary even at the requirements stage to model crosscutting concerns (aspects) independently, but also to compose aspects with other requirements in a way that will allow the entire set of requirements to be analyzed and validated.

In this tutorial, we discuss aspect-oriented requirements models. In particular, we concentrate on goal-based and scenario-based requirements engineering with the Aspect-oriented URN (AoURN). AoURN is an extension to the URN standard and a strong candidate for inclusion in future versions of the standard as it aims to address the aforementioned issues. AoURN allows for a thorough introduction to aspect-oriented requirements engineering, as goals and scenarios are commonly used requirements engineering techniques and AoURN contains two very different modeling notations for goals and scenarios that require tailored approaches for aspect-oriented modeling. Particular emphasis is placed on AoURN's advanced composition mechanisms that allow for interleaved and semantics-enhanced compositions. The definition of aspect-oriented models, however, is only a first step that needs to be complemented by aspect-oriented approaches for any existing analysis and validation techniques. Consequently, the built-in URN analysis techniques for stakeholder trade-offs and scenario test suites are discussed from an aspect-oriented point of view.


Biography: Gunter Mussbacher received a M.Sc. degree in computer science from Simon Fraser University in 1999, and a Ph.D. in computer science from the University of Ottawa in 2010. In his thesis, he developed the Aspect-oriented User Requirements Notation (AoURN), a framework that enables goal-oriented, scenario-based, and aspect-oriented modeling in a unified way. After his M.Sc., he worked as a research engineer for the Strategic Technology department of Mitel Networks, where he applied and taught URN concepts. He has published in the Requirements Engineering Journal (REJ) and in the Transactions on Aspect-Oriented Software Development (TAOSD), and co-edited with Daniel Amyot the URN standard (ITU Recommendation Z.151 11/2008). He is also teaching software engineering undergraduate courses as well as URN and AoURN tutorials for industry and at international conferences. His general research interests lie in requirements engineering, URN, aspect-oriented modeling, and patterns. Dr. Mussbacher is an organizer and program committee member of Early Aspects (EA), Aspect-oriented Modeling (AOM), and Systems Analysis and Modelling (SAM) workshops since 2008. For details see: http:/www.site.uottawa.ca/~gunterm/.



Modularizing Crosscutting Concerns with Ptolemy (Slides)

Hridesh Rajan, Iowa State University

Room: Caboclinhos

Abstract: We present Ptolemy, our programming language that improves separation of crosscutting concerns, and its development environment. A crosscutting concern is a requirement whose implementation is spread across and mixed with the code of other requirements. There has been attempts to improve separation of crosscutting concerns, e.g. by aspect-oriented languages and implicit-invocation design style, but none give software developers expressiveness of quantification and modular reasoning at the same time. Ptolemy has both these properties important for scalable software engineering.

Biography: Hridesh Rajan is an Assistant Professor in the Department of Computer Science at Iowa State University, where he has been since August 2005. He received his MS and PhD in Computer Science from the University of Virginia in 2004 and 2005 respectively. He received his undergraduate degree from Institute of Technology, Banaras Hindu University(IT-BHU) in 2000. Before his graduate studies at UVA, he worked for Lucent Technologies, India (Bell Labs, India) as a Member of Technical Staff. Hridesh's research interests include programming language design, semantics, and implementation and software engineering. Hridesh received the National Science Foundation CAREER award in 2009 and LAS Award for Early Achievement in Research in 2010. Hridesh is a co-designer of the Eos and Ptolemy languages.





 

 

Diamond Sponsors

 

Platinum Sponsors

 

Gold Sponsors

 

Silver Sponsors

 

Bronze Sponsors

 

ACM Student Research Competition Sponsor

 

In Cooperation With

 

Organizing Sponsors