by Judith Bishop and Nigel Horspool
by Tony Clark
by Joe Kiniry, Gary Leavens, Erik Poll, David Cok, Fintan Fairmichael, and Dan Zimmerman
by Dov Dori
by Oscar Nierstrasz
Judith Bishop, University of Pretoria, South Africa
Nigel Horspool, University of Victoria, Canada
Attendees should be competent in Java 1.4 and C# 1.0 programming and have some exposure to design patterns. This is a medium level tutorial.
Design patterns are elegant, accepted and proven ways to tackle common programming problems. It has been recognized for over a decade that design patterns are one of the key mechanisms for implementing reliable and maintainable software. This practical tutorial explains how to use the latest features of C# 3.0 to code a selection of the classic Creational, Structural, and Behavioural design patterns. In particular, it examines how advances in language design can narrow the gap for implementing design patterns in terms of readability, writability, maintainability and traceability. These new solutions fully incorporate C# 3.0's modern object-oriented features such as delegates, generics, LINQ and reflection. The challenges that face design pattern implementation, in particular efficiency, are discussed and the promise of reusable design patterns examined. Some attention will also be paid to the choices to be made between different patterns and implementations, using examples drawn from areas as diverse as the latest social networks (Facebook, Flickr, blogs), games, embedded systems and many others. Attendees will come away with a clear idea of the value of using modern object-oriented constructs in design patterns.
About the Presenters
Judith Bishop is a professor of computer science at the University of Pretoria, South Africa, specializing in the application of programming languages to distributed systems and web-based technologies. She is internationally known as an advocate of new technology. Her 15 books on languages such as Pascal, Java and C# have been published in six languages.
Nigel Horspool is a professor of computer science at the University of Victoria, Canada. He researches in programming language implementation in general and compiler technology in particular. He is co-editor of the journal Software: Practice and Experience and author or co-author of three books.
A general background in programming, high-level languages and language grammars would be an advantage, but is not required.
XMF is a language engine that has been designed to support the development of domain specific languages. XMF is open-source under EPL and is supported by a number of materials including the book: Superlanguages: Developing Applications and Languages with XMF. XMF, the book and other supporting materials are freely available. This tutorial aims to provide an interactive introduction to using XMF for developing domain specific languages.
About the Presenter
Tony Clark is a director of Ceteva and is a highly experienced Software Tool and Solution Architect with over 20 years experience of Language Engineering and DSL based Software Engineering. Tony has worked in both Industry and Academia where he lead a research team that developed the initial XMF engine. Tony is a highly experienced consultant, has contributed to a number of software standards, and has published many technical articles.
Joe Kiniry (with the assistance of Gary Leavens, Erik Poll, David Cok, Fintan Fairmichael, and Dan Zimmerman)
Any Java programmer who wishes to improve the quality of their software should attend. Also, educators who want to use BON, JML, and/or ESC/Java2 in teaching, as a gentle way to introduce students to state-of-the-art specification and verification techniques and tools supporting formal methods, should also attend this tutorial.
This tutorial introduces the BON specification language and BONc tool, the JML annotation language and tool suite, and ESC/Java2 via their integrated and interactive use within the Eclipse IDE. BON is a high-level textual and graphical systems specification language. BON supports seamless, reversible system specification from concept, requirements, and feature analysis all the way down to formal contracts of object-oriented and structured systems.
BONc is a tool suite for using the BON specification language. It currently supports parsing, typechecking, and generating XHTML documentation for BON specifications.
The Java Modeling Language (JML) is a behavioral interface specification language that can be used to specify the behavior of Java modules. It combines the Design by Contract approach of Eiffel and the model-based specification approach of the Larch family of interface specification languages, with some elements of the refinement calculus. JML has a Java-based syntax and semantics, thus is easy to learn for Java programmers.
ESC/Java2 is a tool that checks that a program is consistent with its annotation. It also detects, at compile time, common programming errors that ordinarily are not detected until run time, and sometimes not even then; for example, null dereference errors, array bounds errors, type cast errors, and race conditions. While ESC/Java uses a theorem prover, it feels to a programmer more like a powerful type checker.
Because (1) BON is a simple language which has the look-and-feel of English, (2) JML is familiar to Java programmers, and (3) ESC/Java2 just feels like a typechecker, we believe that they are an excellent way to gently introduce programmers to formal methods.
ESC/Java2 and JML have been deeply integrated into the Eclipse development environment, under the auspices of the European Union Framework 6 research program "Mobius". Within this large research project, many tools and technologies have been integrated to construct the Mobius Program Verification Environment (PVE), a customized version of Eclipse. The PVE looks and feels like Eclipse, but has numerous capabilities that helps one focus on program analysis, design, development, testing, verification, and maintenance using hidden, powerful static checkers, theorem provers, and more. BONc will be integrated into a future version of the PVE.
About the Presenters
Joseph Kiniry is a lecturer in the School of Computer Science and Informatics at
University College Dublin. He was previously in the SoS Group at
Radboud University Nijmegen. He earned his Ph.D. in Computer
Science from the California Institute of Technology. Joe is the
coauthor of ESC/Java2 and has contributed to, or led the
development of, several other verification tools.
Gary Leavens is a Professor in the School of Electrical Engineering and Computer Science, University of Central Florida. Gary is the creator of the Java Modeling Language and leads the development of the JML Tool Suite.
Erik Poll is a Lecturer in the SoS Group at Radboud University Nijmegen. He earned his Ph.D. in Computer Science from the University of Eindhoven.
David Cok is a Director of the Imaging Science Division within Kodak's R&D Laboratories in Rochester, New York. He earned his Ph.D. in Physics at Harvard University. He has participated in and led software development projects for research and commercialization. David is the co-author of ESC/Java2 and an expert on program verification, JML, Java, and related topics.
Fintan Fairmichael is a PhD student working under the supervision of Joe Kiniry at University College Dublin. He is the architect and author of the BONc tool suite. He earned a BSc in Computer Science at University College Dublin with first class honors in 2005 and an M.Sc. with distinction at the University of Oxford. Fintan is an IRCSET fellow.
Dan Zimmerman is an Assistant Professor at the University of Washington, Tacoma. As inventor of the Dynamic UNITY formalism, Daniel M. Zimmerman received a Ph.D. in Computer Science from the California Institute of Technology for his work in formal methods for distributed systems design and development in 2002.
Basics of object technology and UML.
The OMG Systems Modeling Language (SysML™) is a modeling language for specifying, analyzing, designing, and verifying complex systems that may include hardware, software, information, personnel, procedures, and facilities. The language provides graphical representations for modeling system requirements, behavior, structure, and integration with domain-specific engineering analyses. Since SysML represents a subset of UML 2.0 with several extensions, it has the advantage of being based on a recognized and acceptable standard used in the software engineering community. However, being based on UML, SysML has inherited the drawbacks of UML, which are primarily the lack of a coherent, integrative view of the system's structure and behavior. Object-Process Methodology (OPM) is a holistic systems paradigm that enables modeling the structure and behavior of complex systems visually and textually at the same time using a single unifying model. OPM has clear, formal, single-model semantics expressed bi-modally via graphics and natural language. Taught at leading institutions of higher education and used in Industry, OPM has evolved as a significant extension of Object technology. The tutorial will discuss SysML and how it is applied in practice in systems engineering projects, teach OPM principles and applications, and most importantly, show how OPM complements SysML by adding a comprehensive unifying view, from which the various SysML views are derived, and how to automatically generate natural language specification of the modeled system that is equivalent to the system model.
About the Presenter
Professor Dov Dori is Head of the Information Systems Engineering Area at the Faculty of Industrial Engineering and Management, Technion, Israel Institute of Technology, and Research Affiliate at Massachusetts Institute of Technology. Professor Dori received his B.Sc. in Industrial Engineering and Management from the Technion in 1975, M.Sc. in Operations Research from Tel Aviv University in 1981, and Ph.D. in Computer Science from Weizmann Institute of Science, Israel, in 1988. His research interests include Software Engineering, Complex Systems Modeling, Systems Engineering and Architecture, and Information Systems Engineering. Prof. Dori has developed Object-Process Methodology (OPM), a holistic systems paradigm for conceptual modeling, presented in his 2002 book (by Springer). Prof. Dori has won the Technion Klein Award for OPM and the Hershel Rich Technion Innovation Award for OPCAT, the OPM supporting software. Prof. Dori authored six books and over 100 journal publications and book chapters. Currently he is Associate editor of Systems Engineering and is on the Editorial Board of three other journals. He is Fellow of the International Association for Pattern Recognition and Senior Member of IEEE and ACM.
Participants should have some experience with object-oriented programming. No prior experience with Smalltalk is assumed.
Participants are encouraged to bring laptops and work on simple exercises during the tutorial to directly experience the language and environment.
Squeak is a modern open-source development environment for the classic Smalltalk-80 programming language. This tutorial will provide a hands-on introduction to Smalltalk,
to the Squeak development environment, and to modern methods and tools for developing
The course material will drawn from the author´s newly published book on Squeak as well as from a recently given Masters level course.
About the Presenter
Oscar Nierstrasz is a Professor of Computer Science at the Institute of Computer
Science (IAM) of the University of Bern, where he founded the Software Composition Group
in 1994. He is the author of over a hundred publications and co-author of the books Object-Oriented Reengineering Patterns and Squeak by Example.
Prof. Nierstrasz has been active in the international object-oriented research community,
serving on the programme committees of the ECOOP, OOPSLA, ESEC and many other
conferences, and as the Programme Chair of ECOOP '93, ESEC/FSE '99 and MoDELS '06.
He has served several times as president and vice-president of CHOOSE, the subgroup on object-oriented systems and environments of the Swiss Informatics Society.
Initial Call for Tutorials
TOOLS EUROPE 2008 invites applications for tutorials in the topics covered at TOOLS Europe 2008. Tutorials are normally one half-day (3 hours) or a full day (6 hours). A non-exhaustive list of topics of interest to the conference can be found in the call for papers.
The plain text or PDF application should include
- Duration (half/full-day)
- CV(s)/biographies of the presenter(s)
- Abstract (200 words)
- Level of subject (beginner, intermediate, advanced) and any necessary prior skills and experience of attendees
- Relevance to TOOLS
- A set of bibliographic references related to the main topic of the tutorial
Accepted tutorials offer the following package:
- paid fees for all TOOLS events for one person
- one hotel room paid for up to 3 nights
- one travel allocation of 500 euros
The TOOLS organization reserves the right to cancel a tutorial without any financial obligation up to one month before the first day of the conference.