Skip to main content

IBM Leadership Seminars

Seminar Navigation

IBM Programming Languages and Development Environments Seminar 2009
on Innovations in Software Development
April 22, 2009
Organized by IBM Haifa Research Lab


KEYNOTE 1: Software as a Strategic Weapon
Grady Booch

Those of us on the inside of software technology delight in the technical: building complex software-intensive systems is an activity that is full of wickedly difficult scientific and engineering problems. However, those who use our software couldn’t care less: they want less technology, not more; they want their technology to be invisible, hidden in the interstitial space of their world. And yet, software-intensive systems are central to delivering a business's value and in many cases are the platforms from which innovation springs. In this presentation, we'll examine the dance that must go on between business push and technology pull. In particular, we'll examine some of the best practices we've observed that enable innovation while at the same time permit organizations to develop, deliver, operate, and evolve complex software-intensive systems in a repeatable and predictable fashion. Finally, we'll examine some of the forces that weigh upon development organizations, and examine how the developer experience might evolve.

Model-Driven Product-Lines for Embedded Software and for Supply-Chain Companies
Tal Haham and Julia Rubin

We present a novel model-driven framework for software product-lines. Software and systems product-lines engineering are rapidly emerging as an important paradigm, allowing order-of-magnitude improvements in the time to market, maintenance cost, quality, and mass customization support.
Our tools and methodologies facilitate software reuse and support integration, configuration, and delivery of suppliers’ components in the supply-chain domain, enabling transformations into various product artifacts, including build scripts and glue code for the integration of third party suppliers’ components.

Visual Dynamic Model Inspecting with OPM Model-Based Simulation Environment 
Valeriya Perelman, Yevgeny Yaroker and Dov Dori

Conceptual design is a crucial system lifecycle stage, but systematic methods for conceptual design evaluation are not well-developed and existing approaches are unsatisfactory. In this work we describe the implementation and assessment of an advanced simulation environment that can serve conceptual design evaluation purposes using Object-Process Methodology (OPM).
The simulation of the system model is instrumental in understanding and exploring the behavioral aspects of the system under study and uncovering logical and conceptual problems such as incorrect control flow and missing structural relations among objects. The latter is achieved via an intuitive user interface and a host of debugging capabilities, including “lifespan” and “Debug Info” components. Using these components, one can explore the state of any OPM entity and become aware of a variety of potential problems that manifest during the simulation process.

Verification of embedded system’s specification using collaborative simulation of SysML and Simulink models
Ryo Kawahara, Hiroaki Nakamura, Dolev Dotan, Andrei Kirshin, Takashi Sakairi, Shinichi Hirose, Kohichi Ono and Hiroshi Ishikawa

The authors propose an extension of SysML, which enables a description of continuous-time behavior. The authors developed an execution tool, integrated on an Eclipse-based platform, by exploiting the co-simulation of SysML and MATLAB / Simulink. To demonstrate the effectiveness of the tool and the extension to SysML in verifying specifications of an embedded system, we will create a sample model and analyze its execution results by checking constraints on a test case.

Refactoring of Statecharts
Moria Abadi and Yishai Feldman

Statecharts are an important tool for specifying the behavior of reactive systems, and development tools can automatically generate object-oriented code from them. As the system is refactored, it is necessary to modify the associated statecharts as well, performing operations such as grouping or ungrouping states, extracting part of a statechart into a separate class, and merging states and transitions.
Refactoring tools embedded in object-oriented development environments are making it much easier for developers to modify their programs. However, tool support for refactoring statecharts does not yet exist. As a result, developers avoid making certain changes that are too difficult to perform manually, even though design quality deteriorates.

Methodologically, statecharts were meant to enable a systems engineer to describe a complete system, which would then be refined into a concrete implementation (object-oriented or other). This process is not supported by object-oriented development environments, which force each statechart to be specified as part of a class. Automated tool support for refactoring statecharts will also make this kind of refinement possible.

This paper describes a case study that shows the usefulness of refactoring support for statecharts, and presents an initial catalog of relevant refactorings. We show that a top-down refinement process helps identify the tasks and classes in a natural way.

SimWiz – Demonstration of an Expert System-like User Interface for Simulation
Moshe Pollatschek

Abstract. System simulation is a standard tool of the industrial engineer; it is used to investigate systems with stochastic behavior in industry and services such as a job shop or a call center. Building a credible model is a real challenge for industrial engineers.
According to the latest technology, models are prepared with the aid of software that has an inventory of building blocks such as Arena, SimEvent, or SimProcess. The model is formulated by selecting appropriate building blocks from the available inventory offered by the specific software, setting their parameters, and connecting them. The connections describe the entities’ routes while the building blocks specify what happens with them at various points along their route. The blocks are available, but there is no basic plan for modeling.
We will propose an interface and demonstrate it using a program called SimWiz. (SimWiz may be downloaded from It leads the user through a series of questions and supplies directions like an expert system. The user does not have to guess how to use basic building blocks to construct a credible model.

KEYNOTE 2 : 2010 Architecture Odyssey: The future of BPM, SOA, Business Architecture and Enterprise Architecture in our Industry
Sridhar Iyengar

The last few years have seen new architectural approaches arrive at an increasing pace. In the mid 1990s we saw the arrival of industry standards like the Unified Modeling Language (UML) and Meta Object Facility (MOF) which anchored Model Driven Architecture (MDA). Then came XML, Web Services and the world of Service Oriented Architecture (SOA). We are also beginning to see the emergence of Business Architecture standards like Business Process Modeling Notation (BPMN) and Business Process Maturity Model (BPMM) and IBM’s Component Business Model (CBM).

What do we see in the looking glass when these architectural ideas start clashing and converging? Increased focus on connecting Business Architectures & IT/Systems Architectures. This session traces the evolution of Architectural trends and paints a picture of how emerging industry architecture trends and standards are shaping industry & methods (ex: CBM, SOMA), tools and middleware (SOA Foundation). We will conclude with an update on recent news from OMG, Open Group & the industry (including IBM) in their BPM and Business Architecture related efforts.

System Grokking – A Novel Technology for Software Understanding, Validation and Evolution
Dany Moshkovich, Maayan Goldstein, Avital Gutman and Vadim Vasilov

The complexity of software systems is continuously growing across a wide range of application domains. System architects are often faced with large, complex systems, and systems whose semantics may be difficult to understand, hidden, or even still evolving. Raising the level of abstraction of such systems can significantly improve their usability.
We have therefore developed System Grokking—software architect assistance technology designed to support incremental and iterative user-driven understanding, validation, and evolution of complex software systems through higher levels of abstraction. It enables semi-automatic discovery, manipulation, and visualization of groups of domain-specific software elements and the relationships between them, to represent high-level structural and behavioral abstractions.

IDE Support For Example Embedding
Ohad Barzilay, Orit Hazzan and Amiram Yehudai

We use empirical qualitative software engineering research to characterize Example Embedding (EE) as a software activity—a collection of fine-grained techniques, which, together, assemble an abstract key notion in software development. This unique perspective lays the foundations for building an activity catalogue, forming new software practices, affecting the development process, and motivating IDE enhancements. This empirically driven approach highlights IDE contextual usage with respect to the software development "eco system" in order to increase developers’ productivity.

Freedom - End User Programming for the Web
Nili Guy, Asaf Adi, Maya Barnea, Samuel Kallner, Yoav Rubin and Gal Shachor

Freedom is a model-driven, web-based, end-user development platform that is optimized for business users. Freedom simplifies development by quickly focusing on the business goal at hand, using the visual attribute of the task as the development abstraction using WYSIWYG editing. End-user development quality concerns are addressed in Freedom through division of labor and a task-related focus. To reduce barriers to adoption by business users, improve the end-user experience, and simplify integration, Freedom leverages Web 2.0 technologies such as AJAX and REST.

Leadership Seminars by year