Tutorial 1: Model-driven

Model-driven Engineering of Service-Oriented Architectures Libero Maesano – Simple engineering (F/I)

Tens, hundreds, thousands… applications, systems, devices will be connected and will collaborate in the Internet without direct human involvement. Such architectures, linking companies, government and for-no-profit organizations, will make happen the automation of business processes that support daily activities. Functional and operational dependability and security exigencies will reach levels until now reserved to critical sectors, such as Defense and Critical Infrastructure Utilities. Current software engineering methods and tools are challenged. Service Orientation is a new way of thinking about system (user, organization) collaboration. Model-driven Engineering is a new way of thinking service and system analysis, design, implementation, test and governance. Together, Service-Oriented Architecture (SOA) and Model-driven Architecture (MDA) are the breakthroughs that allow implementing distributed architectures of loosely-coupled systems that collaborate in order to achieve flexible, dependable and secure business automation.

This tutorial is intended to introduce the fundamentals of SOA and MDA, organized in the simpleSOA™ methodological framework, that adopts a strong service-oriented, contract-based, model-driven, pattern-directed approach to service and services architecture engineering. The precise and operational definition of service can be grasped by contrast with the concept of system. A service is a contract, i.e. a collection of formal requirements about functions, interfaces and external behaviors that operates as a set of rights and duties for the service parties. The service contract, thanks to MDA, is a layered set of models at the conceptual, logical and physical levels. A service-oriented architecture is a distributed architecture in which the collaboration among participants (systems, organizations, and users) is carried out through the choreographed exchange of services regulated by contracts. The engineering cycle of services and services architecture is presented through a detailed example.

The first module introduces the fundamental concepts of service, contract and model (MDA) and the activities and products of the engineering cycle. It includes a concise presentation of the Business Motivation Model (BMM), which formalizes the why of a service-oriented architecture, and some hints of the Governance cycle, in which the BMM acts as a pivot.

The second module presents the Service Conceptual Model – in MDA terms, the Computation Independent Model (CIM). The Service CIM is a service business model, a model of the service business, expressed in a standard formalism (Semantics of Business Vocabulary and Business Rules – SBVR) that can be understood and validated by the business people. It includes the business vocabulary, the definition of the business functions and of the business rules that inform, drive and constrain the delivery/use of the business services. The formalism and the model are presented through the example.

The third module presents the Service Logical Model – in MDA terms, the Platform Independent Model (PIM). The Service PIM is a technical model for technical people (architects, developers), that is detailed but abstract from any specific technical platform. It is a formal model of the service functions and of the provider and user external structures (interfaces) and external behaviors, expressed in UML/OCL and its ‘dialects’ (SoaML, QFTP, UML testing Profile). The formalism, the model sub-sections (Function, Object, Interface, Conversation, Choreography, Security, Quality, Sample models), the large Service Patterns library and some hints of the mapping and mechanical transformation from CIM to PIM are presented through the example.

The fourth module presents the Service (and System) Physical Model – in MDA terms, the Platform Specific Model (PSM). The Service and System PSM’s are models of the distributed system structure and behavior in terms of elements and services provided by the underlying technological platforms. As a peculiarity of the contract-based approach, the PSM shall be organized into two sub-models corresponding to: (i) the Service Interoperability PSM (Web services, REST, CORBA … platforms) that is included in the contract and public to participants, and (ii), for each participant, the System Implementation PSM (JEE, .NET, C++, PHP … platforms), not included in the contract and private to the participant. The mapping and mechanical transformation from the PIM to the Web services PSM (XSD, WSDL, UDDI, BPEL …) and some patterns of the JEE and .NET PSM’s are presented through the example.

Learner Outcomes. Attendees will learn: 1. The service-oriented, contract-based, model-driven approach to system collaboration and business automation. 2. Principles and practices of Model-driven Architecture. 3. Service Motivational Analysis and the Business Motivation Model notation (BMM). 4. Service Conceptual (Computation Independent) modeling and formalism (SBVR). 5. Service Logical (Platform Independent) modeling and formalism (UML, OCL, SoaML, QFTP, UML Testing Profile)) 6. Service and System Physical (Platform Specific) models, technologies and notations (Web services, JEE, .NET)

Libero Maesano is Founder and Managing partner of Simple Engineering, a European Group acting as an Architecture firm, school and lab, specialized in services architectures. He is the first author of the simpleSOA™ and simpleSOAD® methodological frameworks. He has over thirty years of international experience in research, development, consulting, management of information systems, industrial systems, operating systems, intelligent systems, distributed systems. He is the author of more than 50 articles, reports and books. He is currently associated professor at ESILV (École Supérieure d’Informatique Léonard de Vinci) and director of the Édition Eyrolles Software Architect series.

Tutorial 2: Complexity Revealed

Complexity Revealed: New Directions in Software and Systems Engineering Dr Joseph K. DeRosa – Consultant (USA)

This Seminar is for software engineers, systems engineers and managers who wish to solve some of their most critical and perplexing problems in large-scale, software-intensive systems. Traditional systems engineering processes and tools have not been adequate to prevent such projects from being habitually late-to-market and over budget – many systems are obsolete before they are delivered, or they otherwise fall short of expectations. When projects are overwhelmed by complexity, they tend to “muddle through” using traditional methods coupled with heroic efforts. Is that any way to run an enterprise?

This Seminar charts a course toward an alternative future for large-scale, software-intensive systems. It presents a new way of thinking – and that new thinking is firmly based on the fundamentals of complexity science. Because it is precisely “complexity” that gives systems their power and longevity, we must learn to harness it for our gain rather than cope with it at our peril.

This Tutorial embraces complexity as a powerful force in systems. It sifts through the wealth of available information to bring forth the underpinnings for successful engineering of such systems. It is by no means a panacea for success, but seeks to answer several key questions:

• What is complexity? What is it not? • Are current methods sufficient? • What are the basic principles of the new methods? • What are some of the new methods? • How should we organize for and manage complex system developments? • What are the research topics? • What are the practical implications for engineers and managers?

The Tutorial begins with a history of systems engineering before moving into the rationale, scope and context of complex systems engineering. It discusses the changes that have brought about the need for new methods. It defines complex systems, differentiating them from systems that are merely complicated or difficult. It explains a number of applicable fundamentals and lays out three essential methods of complex systems engineering: Development through Adaptation, Strategic Technical Planning and Enterprise Governance. It also defines several Enterprise Systems Engineering Processes and cites case studies that have successfully applied them.[1]

With complexity revealed, several important outcomes become possible for attendees:

• Managers better organize complex developments • Students and practitioners meet the challenges of complex software and systems developments • Computer and Systems Science researchers identify new topics to further the body of knowledge

Many software and systems engineers have already begun to apply the principles of complexity science to their work. Come to the Tutorial and find out what it’s all about and where it can take you.

[1] Much of the material presented summarizes chapters written by the presenter in a recent book (G.R. Rebovitch and B.E. White (Ed), Enterprise Systems Engineering, Advances in the Theory and Practice, Boca Raton, FL, CRC Press – Taylor Francis Group, July 2010)

Dr Joseph DeRosa has over 25 year experience in software and systems engineering. He retired from the MITRE Corporation as Director of Systems Engineering, where he oversaw the systems engineering of numerous major government programs and participated in research in complex systems. He is now an industry consultant specializing in complex systems engineering. He has delivered papers on the subject worldwide at IEEE, INCOSE and ICSSEA conferences and delivered a keynote address at ICSSEA 2008. He was a former staff member at Massachusetts Institute of Technology (MIT) Lincoln laboratory and Director of Business Development for LINKABIT Corporation, as well as an industry consultant to many aerospace firms. He has a PhD in Electrical Engineering and did post-graduate studies at the Santa Fe Institute, the New England Complex Systems Institute and Babson College Business School.

Tutorial 3: Architecture 4.0

Architecture 4.0: A way to simplify information system engineering Hervé Crespel – X4IT (F)

The concept of information system has emerged about 25 years ago and still remains set-up with great differences in different enterprises. It is true that an information system is naturally complex. But it seems that the real complexity, as embedded in software, is coming from other sources. It is also true that information systems’ costs and complexity are going on parallel increasing, despite of promises of IT vendors. A relevant question is to understand why information systems are so different from an enterprise to another and why it is so difficult to share the same information system between several companies. This question becomes more relevant at this moment where cloud computing is opening a new age of computing architecture, with the promise to provide the same on-line service to many.

This tutorial is intended to focus new lights on enterprise information system. The first step is to have a comprehensive definition of what is an enterprise information system. It will be very useful for setting-up appropriate management and organization, after understanding what are the true places of software architecture, information system urbanism, and enterprise architecture. The second step is to see how computing has evolved during the last 40 years in order to understand if we can learn enough, from experiences and mistakes, in order to reach a sustainable model of information systems. The third step is to define such a model, showing how it is compliant with enterprise needs. At the end, this tutorial will give some keys for improving information management. And it could provide the most intrepid designers with relevant tools for transforming their information system.

Founded on Lemoigne’s work, the first module explains what a system is, what is an enterprise, what is an information system. Based on these Cartesian definitions, it allows defining information system urbanism as a system and enterprise architecture as well. The big picture proposes new vocabulary in order to have a consistent definition of the whole system and its parts.

The second module explains how information system urbanism has evolved from city planning to enterprise architecture. It explains why any enterprise needs a CIO and what her or his main goal is.

Based on real enterprise needs and technology evolution, the third and fourth modules present Architecture 4.0, the next generation of information system architecture and explains how it melts the best elements coming from previous generations with new proven edge solutions. This architecture 4.0 is built and explained, step by step, software pillar by software pillar. Attendees will discover what the real purpose of cloud computing is, fitting the new stake of service distribution. At the end, they will see that architecture 4.0 is not only a sustainable canvas for building modern IT architecture but also reveals as a new model able to simplify representation and management of information systems.

This tutorial is a summary of an Information System Architecture learning course already given in several countries. It is being detailed within an e-book which could be soon available on-line.

Learner Outcomes: Attendees will learn: 1. A comprehensive definition of an information system and why it is so important to have a unique CIO in any company. 2. Evolvement of information system urbanism and enterprise architecture and their current state of art. 3. Evolvement of Information technology through three generations of information system architecture. 4. The right place of cloud computing and why it allows to do things which were almost impossible before. 5. What is Architecture 4.0 and how to melt the software practices that are mandatory for building modern software? 6. What is service distribution, how to build this tier, and what the underlying business stakes are?

Hervé Crespel, pioneer of object design and agile software, has 31 years of experience in a very large information system. Melting theory, management and practice, as CIO, CTO, innovation director, software quality control director and urbanism and enterprise architecture leader, he has acquired a wide knowledge from technical to functional, able to manage IT experts, and to make programs, architecture or large budget decisions. He has introduced in his company the first PC, the first laser printer, or the first network. He was also introducing pdf and CD-ROM in 1994, Java in 1997, XML in 1999 or Adobe Flex in 2005. Now retired, he is running a small company with the purpose to cross and exchange the best practices for doing sustainable software.