Keynote 1: Models. Models. Models. So What?
Stephen J. Mellor
In 1985, in an interview for some then-popular magazine, I was asked when models and model-driven development would become commonplace. "In three years time," I replied confidently. In 1987, I was asked the same question, and my answer remained the same. And 1989. And '91. Were you to ask me the same question today, I would answer it in the same way. Perhaps I should have gone surfing instead.
While my answer has the virtue of consistency, how could I--how could we?--have been so wrong? Of course, we didn't have the technology back then. And we didn't have the computer power that could allow us to ignore certain inefficiencies introduced by abstraction. But have things really changed that much in nearly a quarter of a century? Our tools and computers are certainly better, but it is clear that we have failed to convert the great unwashed to the benefits and wonders of models and model-driven engineering.
This keynote will take a personal view of why we have (let's be positive, shall we?) yet to succeed. It will explore several technical, business and marketing issues that have impeded our progress. And because a keynote is intended to be positive, leaving delegates upbeat and energized, we shall also examine some encouraging indicators that could lead to model-driven engineering soon becoming commonplace. In, oh, let's say, three years?
Stephen J Mellor is an independent teacher and consultant focussed on methods for the construction of real-time and embedded systems. He is the author of Structured Development for Real-Time Systems (way back in 1985), Object Lifecycles, Executable UML, and MDA Distilled. He is also (perhaps surprisingly) a signatory to the Agile Manifesto.
Until recently, he was Chief Scientist of the Embedded Software Division at Mentor Graphics, and founder and some-time president of Project Technology, Inc., before its acquisition. He participates in multiple UML/modeling related activities at the Object Management Group, and was a member of the OMG's Architecture Board, which is the final technical gateway for all OMG standards. Mr Mellor was the Chairman of the Advisory Board to IEEE Software for ten years and a two-time Guest Editor of the magazine, most recently for an issue on Model-Driven Development. He is also adjunct professor at the Australian National University in Canberra, ACT, Australia.
Keynote 2: Interaction Design and Model-Driven Development
Larry L. Constantine, IDSA
Professor, University of Madeira
Throughout the evolution of software development and software engineering methods, human interaction and the interfaces that support it have been too often ignored or treated as secondary concerns. Most modern modeling languages and methods - UML and the unified process most definitely among them - have been devised with a highly focused concern for representing procedures, information, and software structures. The needs of interaction design and designers have been addressed, if at all, in afterthought. Instead of well-conceived notations and techniques, interaction designers have been given awkward adaptations of models conceived for completely different and largely incompatible purposes. Instead of placing users and use at the center of developmental and methodological focus, the dominant modeling languages and methods have relegated them to the periphery. Despite noble calls for rapprochement and valiant attempts to build bridges, the gap between software engineering on the one side and human-computer interaction on the other remains stubbornly deep and wide, filled with misunderstanding and devoid of meaningful integration.
Model-driven development, the latest in a long series of well-intentioned initiatives tracing all the way back to the first so-called auto-coders, is an approach that, like its antecedents, promises to eliminate or radically reduce the need for manual coding by automatically generating software from higher-level descriptions and models. Unfortunately, model-driven development may be on track to perpetuate many of the problems and shortcomings of its forerunners. This presentation will critically examine the place of users, usability, and user interfaces in modern model-based software development methods. It will argue that the user interfaces of software intended for human use are more than mere surface projections of underlying process and information models and that interaction design is more than mere spit-and-polish added onto that surface. It will consider both the promises and the problems in current thinking and will propose specific solutions and new directions grounded in models and techniques tailored to the core issues of interaction design but which are also well integrated with established software engineering models. Outstanding problems and work-in-progress will also be reported.
Larry Constantine, IDSA, is a Professor in the Department of Mathematics and Engineering and Director of the Laboratory for Usage-centered Software Engineering at the University of Madeira, Portugal. An ACM Fellow recognized for his contributions to software design and recipient of the Stevens Award, he is regarded as one of the pioneers of modern software engineering theory and practice whose seminal contributions include data-flow diagrams and the metric concepts of coupling and cohesion. An award-winning designer specializing in interaction design and techniques for enhancing user performance in safety-critical applications, he is a persistent innovator with a number of patents in human-machine interaction to his credit. His publications include more than 175 articles and papers and 17 books in both the human sciences and computer sciences including Software for Use (Addison-Wesley) winner of the Jolt Award as best book of 1999. His papers have been widely reprinted, and his books have been translated into nine languages. He has taught in 20 countries and has worked with leading technology companies throughout the world.
Keynote 3: Architectural Mining: The Other Side of the MDD
Grady Booch, Chief Scientist for Software Engineering
IBM Thomas J. Watson Research Center
A back-of-the-envelope calculation suggests that - very, very conservatively - the world produces well over 33 billion lines of new or modified code every year. Curiously, the moment that code springs into being and is made manifest in a running system, it become legacy. The relentless accretion of code over months, years, even decades quickly turns every successful new project into a brownfield one. Although software has no mass, it does have weight, weight that can ossify any system by creating intertia to change and deadly creeping complexity. It requires energy to make such a system simple, and to intentionally apply that energy requires that one be able to reason about, understand, and visualize the system as built.
Considerable research and labor has been invested in model-driven development for the purposes of transforming models into running systems, and while these efforts have yielded some useful results they have not led to the revolution that some expected. Similarly, considerable work has been undertaken in static and dynamic analysis and design pattern discovery, and while they too have yielded some useful results, these efforts have been rather scattered. Still, we believe that there is much more that can be done. One of the explicit goals we made in the early years of the UML was that it be a language for reasoning about a system, and so in this presentation, we'll reexamine that early goal. In particular, we'll look at efforts to consider the other side of MDD, the mining of the architecture of an as-built system from its source code and its execution.
Grady is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments. He has devoted his life's work to improving the art and the science of software development. Grady served as Chief Scientist of Rational Software Corporation since its founding in 1981 and through its acquisition by IBM in 2003. He now is part of the IBM Thomas J. Watson Research Center serving as Chief Scientist for Software Engineering, where he continues his work on the Handbook of Software Architecture and also leads several projects in software engineering that are beyond the constraints of immediate product horizons. Grady continues to engage with customers working on real problems and is working to build deep relationships with academia and other research organizations around the world. Grady is one of the original authors of the Unified Modeling Language (UML) and was also one of the original developers of several of Rational's products. Grady has served as architect and architectural mentor for numerous complex software-intensive systems around the world in just about every domain imaginable.
Grady is the author of six best-selling books, including the UML Users Guide and the seminal Object-Oriented Analysis and Design with Applications. He writes a regular column on architecture for IEEE Software. Grady has published several hundred articles on software engineering, including papers published in the early '80s that originated the term and practice of object-oriented design (OOD), plus papers published in the early 2000's that originated the term and practice of collaborative development environments (CDE).
Grady is a member of the Association for Computing Machinery (ACM), the American Association for the Advancement of Science (AAAS), and Computer Professionals for Social Responsibility (CPSR), as well as a senior member of the Institute of Electrical and Electronics Engineers (IEEE). He is an IBM Fellow, an ACM Fellow, a World Technology Network Fellow, a Software Development Forum Visionary, and a recipient of Dr. Dobb's Excellence in Programming award as well as three Jolt Awards. Grady was a founding board member of the Agile Alliance, the Hillside Group, and the Worldwide Institute of Software Architects, and now also serves on the advisory board of the International Association of Software Architecture. Additionally, Grady serves on the boards of the Iliff School of Theology and the Computer History Museum. He is also a member of the IEEE Software editorial board. Grady helped establish work at the Computer History Museum for the preservation of classic software and therein has conducted several oral histories for luminaries such as John Backus, Fred Brooks, and Linus Torvalds.
Grady received his bachelor of science from the United States Air Force Academy in 1977 and his master of science in electrical engineering from the University of California at Santa Barbara in 1979.
Grady lives in Thorne Bridge, Colorado, and Maui. His interests include reading, traveling, singing, playing the Celtic harp, Bikram yoga, and kayaking.