IBM Software Symposium 2006 IBM Rational Systems Strategy Bran Selic IBM Distinguished Engineer, Rational CTO Team
Agenda The Systems Space Definitions and Issues Governance and Product Development Tools Strategy 2
The Technical Systems Space Encompasses technical products and devices in which software plays a key role 1 System Development 1A 1A 1A 1B Hardware/software co-development Systems of systems development 1A 2 Electronic Data Management 1B 2 3 Governance of Systems Development Beyond software Collaborative engineering, process management and data governance 3 3
The Technical Systems Space Principal Vertical Sectors Aerospace & Defense Automotive Consumer Electronics Industrial Control Medical Devices Telecom 4
The Issues IBM Software Symposium 2006 Design of technical systems can be an extremely complex problem High probability of failure Fundamental complexity due to: Functionality Concurrency Asynchrony Distribution Multiple disciplines Scale Accidental complexity due to: Semantic gaps Lack of skilled developers Incompatible tools Inadequate tools Disconnected processes 5
Agenda The Systems Space Definitions and Issues Governance and Product Development Tools Strategy 6
Fitting Systems Development into the Business Process A sound business process is Measurable Predictable Repeatable and has clear objectives the measurements are meaningful in terms of business objectives we have the data and knowledge to more accurately assess progress and make predictions The technical development process must fulfill to the objectives of the business process Technical decisions should be made based on business needs and priorities Ensures the delivery of the right product Development should be an integral part of the business process i.e., it should be measurable, predictable, and repeatable 7
What is Governance? Establishing chains of responsibility, authority and communication to empower people (decision rights) Establishing measurement, policy and control mechanisms to enable people to carry out their roles and responsibilities 8
The Governance Lifecycle Establish the Governance Need Document and validate business strategy for products Assess current Define/Refine vision and strategy Review current Governance capabilities and arrangements Lay out governance plan Define the Governance Approach Define/modify governance processes Design policies and enforcement mechanisms Identify success factors, metrics Identify owners and funding model Design governance infrastructure Monitor and Manage the Governance Processes Monitor compliance with policies Monitor compliance with governance arrangements Monitor IT effectiveness metrics Deploy the Governance Model Incrementally Deploy governance mechanisms Deploy governance IT infrastructure Educate and deploy on expected behaviors and practices Deploy policies 9
Governance and Product Development Discover Construct & Test Compose Integrate people Integrate processes Manage and integrate information Gather requirements Model & Simulate Design Business objectives alignment Process control Manage applications & services Manage identity & compliance Monitor business metrics 10
How IBM Facilitates Governance Experienced resource Methodology and processes to assess current capabilities and the organizations Tools and templates formulate the governance strategy Methods, processes and principles to create the Governance Model Technology to help define services and data needs, and instantiate measurements and controls Services to help develop the governance approach Dashboards for viewing business and project metrics Technology for helping measure and monitor performance Services to improve effectiveness Technology to help govern assets across the lifecycle Processes for helping enable governance Services to help implement governance mechanisms 11
Agenda The Systems Space Definitions and Issues Governance and Product Development Tools Strategy 12
IBM Rational Design & Construction Tools Strategy Build on open standards Eclipse, UML 2, MDA, J2EE, etc. Support multiple languages and platforms Java/J2EE, C++, XML, Provide end-to-end traceability and deep integration across roles and assets Integrate requirements, models, code, tests, deployment, defects, etc. Continuously improve lifecycle tool integrations Tools scale to complex, real-world team environments Enable asset-based development Capture, store and reuse design patterns and transformations Consolidate tools onto Eclipse platform A single tool architecture going forward Build an extensible and customizable modeling platform Using standard Eclipse mechanisms and APIs wherever possible Facilitate move to Service-Oriented Architecture Through tools, standards, processes, run-times and services 13
The IBM Rational Software Development Platform Eclipse-based software development Analyst WebSphere Business Integration Modeler & Monitor Rational Software Modeler Architect Rational Software Architect Rational Systems Developer Developer Rational Application Developer Rational Web Developer Rational Systems Developer Tester Rational Functional & Manual Tester Rational Performance Tester Deployment Manager Tivoli Configuration Manager Tivoli Monitoring Customer Extensions 3rd Party ISV Tools Project Manager Executive Rational Team Unifying Platform Rational Portfolio Manager 14
What is Eclipse? An Open Source Project eclipse.org Delivers and supports the technology A Technology Offering Universal platform for integrating development tools Open, extensible architecture based on standards Licensed for royalty free world-wide distribution A Community Commercial vendors, educators and individuals contribute to the project and technology Vendors bring commercial offerings to market Vendors work together to agree on standards and deliver integrated solutions 15
Eclipse: Who s Shipping or Supporting It? TimeStorm Integrated Development Environment (IDE) SUSE LINUX Professional 16
IBM Software Symposium 2006 Extensible SDP Architecture A tools platform Analyst Analyst Architect Architect Software Software Developer Developer Project Project Manager Manager Integration Integration Developer Developer Tester Tester Deployment Deployment Manager Manager Eclipse Eclipse Model Services (UML2 ext, other Meta-Models, Code Gen APIs, ) UML2 CM, Merge, Traceability. Web Tools GEF EMF TPTP others JDT/CDT Team Eclipse Core 17
Governing the Lifecycle of Systems Development Rational Unified Process for Systems Engineering Rational Unified Process/ Method Composer Methodology & process guidance for systems (RUP SE) Device Development Wind River WorkBench Modular Service Offerings Rational RequisitePro or DOORS Business goals Business and system goals and requirements system requirements Rational Portfolio Manager Project investment, resourcing & scheduling DoDAF Rational Systems Developer RAS Asset Repository EmbeddedPlus EmbeddedPlus DoorKeeper SMST System architecture & software design & implementation Rational Manual Tester, PurifyPlus & TestRT Pathfinder PathMate Functional & performance testing and run-time analysis Rational ClearCase, Rational ClearQuest and MultiSite Change management for all types of assets, from electronic designs to software to test assets 18
Model-Driven Development (MDD) An approach to software development in which the focus and primary artifacts of development are models (vs programs) Based on two time-proven methods: (1) ABSTRACTION (2) AUTOMATION Realm of modeling languages start «sc_module» producer out1 start «sc_module» producer out1 Realm of tools SC_MODULE(producer) {sc_inslave<int> in1; int sum; // void accumulate (){ sum += in1; cout << Sum = << sum << endl;} SC_MODULE(producer) {sc_inslave<int> in1; int sum; // void accumulate (){ sum += in1; cout << Sum = << sum << endl;} 19
A Generic Model-Driven Development Process User Needs 1.Extract 3.Validate &Verify System Model 2.Design 4.F&V feedback System Requirements 6.2Refine 5.2.Extract 5.1Refine 9.F&V feedback 7.Validate & Verify Design Model 6.1Design 8.F&V feedback Design Requirements 11.2.Refine 10.2.Extract 10.1.Refine 14.F&V feedback 12.Validate & Verify Implementation Model 11.1.Design 13.F&V feedback Implementation Requirements 16.Verify 15.Refine Implementation NOTE: Different projects may have fewer or more levels of refinement 20
Rational Systems Developer feature overview Application Analysis Automatic anti-pattern and pattern detection (Java) Architectural discovery, analysis, metrics, and stability reporting (Java) Implementation level architectural rules (Java) Modeler UML 2.0 Diagrams for Class, Communication, Component, Composite Structure, Deployment, Activity, Sequence, State, and Use Case OCL Support Automatic diagram generation Pattern content Extensive open API Java-based scripting for extensibility HTML and XML based data extraction and reporting Extensive printing (Windows Only) RAS tools Rose Model Import Traceability Analysis Visual Compare/Merge Life-cycle Integrations Platform Integrations Structural Analysis UML Language Transforms Software Modeler C/C++ Development Tools Java Development Tools Change Management ClearCase LT included Operating Environments Lifecycle Integrations ClearCase ClearQuest Requisite Pro SoDA Platform Integrations Eclipse 3.0.2 IBM SDP UML Language Transforms Pattern/Transform authoring framework and services UML-to-code transforms for Java and C++ Selective language to UML harvesting CORBA IDL C/C++ Development Tools C/C++ editors and build management Compiler and debugger integration UML code editors for C/C++ Java Development Tools Advanced Java tooling - editors, projects, refactoring, etc. UML code editors for Java Code review 21
Model Driven Development: Model your application using UML Simplify the capture of UML models during Analysis and Design Pattern content & authoring support New custom views improve the editing experience Support for UML 2 diagrams: Activity Class Communication Component Composite Structure Deployment Sequence Use Case New Diagram Navigator view provides a diagram filtered view of the models and workspace Inheritance view Diagram links as first-class citizens New properties view In diagram editing to accelerate modeling. 22
Model Driven Development: Transform your conceptual model to code Transformations are optimal for batch style computationally intensive operations Model-to-model Model-to-code Out-of-the box code transforms UML-to-Java/J2SE UML-to-C++ UML-to-CORBA IDL Plus sample model-to-model transforms Transformations may be updated via RAS repository hosted on IBM developerworks 23
Model Driven Development: Domain modeling for Java, C/C++ Perspective for C/C++ Development C/C++ project hierarchical tree view C/C++ editor with syntax highlighting, code completion, and advanced search UML class diagram visualization of C/C++ classes and structs 24
Key Feature: Architectural Analysis, Discovery, and Control Architecture discovery for J2SE High-level software visualization Application architecture is reflected in the running code Analyzing code can help assess its maintainability Govern the architecture with the assistance of rules Template-based rule authoring Anti-pattern and pattern detection Detection of cyclic dependencies, hubs, breakable, etc. Wizard assisted automated quickfix Automatic generation of topic diagrams based on the results of the code analysis Patterns and anti-patterns are rendered in the diagram editor. Navigation to detailed code is supported. Code review pane providing a report of detected issues. Details View providing an overview and avoidance guidance for anti-patterns. 25
Adding Greater Value to Proven Solutions Wind River Wind River Workbench Development Suite leading Eclipse-based IDE for C/C++ device development for RTOS integrated with ClearCase and ClearQuest through Eclipse EmbeddedPlus DOORKeeper Telelogic DOORS integration for RSD / RSM / RSA Systems Modeling and Simulation Toolkit (SMST) (beta Jan 31) add-in to RSD / RSM / RSA that supports OMG SysML standard and model simulation/execution of UML 2.0 and SysML Pathfinder Solutions PathMate - High-performance, configurable C / C++ / Java for embedded platforms based on RSD / RSM / RSA UML 2.0 Models and OMG MDA standards Coverity Prevent Automates detection of defects for C / C++ software as developers write code Extend Enables developers to detect custom defect types in C / C++ Galorath SEER-SEM Software project estimation from RSD / RSM use-case models PTC WindChill ClearCase integration manage all aspects of product data (mechanical, electrical and software) efficiently among development teams and projects Flashline Flashline Eclipse Adapter for the IBM Software Development Platform asset registry LogicLibrary Logidex V 3.5.1.2 asset reuse form RSD 26
Summary IBM Software Symposium 2006 System development in the technical space is an extremely challenging and complex task However, it is possible to eliminate much of the accidental complexity involved in the development of such systems through: Establishment of a governance strategy Integrating development within the governance process Use of model-driven development and corresponding tools The IBM Rational tools strategy is based on the above approach Comprehensive solution that addresses all aspects of both governance and system development Use of open standards Based on the software development platform architecture that allows customization for specific domains and integration of best-in-class tools 27
28
29