450 likes | 886 Vues
Discussion of Model-Driven Development Model-Driven Architecture. Douglas Gulledge IBM Certified Consulting IT Specialist IBM Rational. Collaborative works leveraged from:. Alan W Brown William T Smith Distinguished Engineer Rational Product Manager, MDD IBM Rational IBM Rational. Topics.
E N D
Discussion ofModel-Driven Development Model-Driven Architecture Douglas GulledgeIBM Certified Consulting IT SpecialistIBM Rational Collaborative works leveraged from: Alan W Brown William T SmithDistinguished Engineer Rational Product Manager, MDDIBM Rational IBM Rational
Topics • Models Model-Driven Development Model-Driven Architecture • MDA Solutions Illustrated • Summary
Topics • Models Model-Driven Development Model-Driven Architecture • MDA Solutions Illustrated • Summary
Key Concepts ModelsFocus on Abstraction and Communication • Resultant artifacts generated using a modeling language to represent various aspects of a system under consideration Model-Driven Development (MDD)Focus on Innovation and Reasoning • Models are used to reason about the problem domain and the solution domain anddetermine the relationships between models to provide dependencies that record the process by which solutions are derived Model-Driven Architecture (MDA)Focus on Prescriptive Application • Style of enterprise application development and integration based on using automated tools to build system-independent models and transform them to efficient implementations
The Art and Science of MDD and MDA • MDD techniques are used to reason about a problem domain and the solution domain and determine the relationships between models to provide dependencies that record the process by which solutions are derived -- the art of innovation. • MDA techniques are used to determine the prescriptive applications and usage of models and the framework for applying transformations between them such that the models themselves can both automate development and be incorporated in a "live" manner into an overall Enterprise Architecture -- the science of application. • Prescriptive: • Define the kinds of models produced with precise semantics • We can establish rules for: • Automating many of the steps to convert one model representation to another • Tracing between modeling elements • Analyzing characteristics of these models • Addressing these concerns: • Model important aspects of the problem domain and the solution domain • Separate platform-independent aspects from platform-specific aspects • Leverage open standards to define the models and their transformations • Apply tool automation to create modeling content and apply transformations
What About The Model “Driven” Aspect of MDA? Business Modeling Per Vision Requirements Modeling Per Vision Analysis and Design Modeling Per Vision includes mix of conceptual elements and previously implemented solution components. e.g. Use solution-specific UML 2.0, profiles, patterns, transformations, visualizations Apply Transformations to Generate/Seed Implementation Apply Transformations to Harvest/Reconcile Models Complete implementation details with assistance of visual editing tools e.g. UML Visualization editors in IBM Rational RSx/RAD, Class Designer in Microsoft Visual Studio .NET
7F 3A 2D FF Value Acceleration of the Modeling Value Curve Model-Code Sync Semantic Modeling (UML), CBD OO, computer-drawn diagrams, CBD 3GLs, pseudocode (“textual modeling”) Assembler, hand-drawn diagrams Model-Enabled Analytics, Compliance Business-Driven SOA Development Design Contract Mgmt Protocols Patterns-Based Engineering Asset-Based Development Open, Extensible Modeling Platform Time 50s, 60s, 70s, early 80s late 80s -early 90s late 90s early 00s 2007
Topics • Models Model-Driven Development Model-Driven Architecture • MDA Solutions Illustrated • Summary
Product Lifecycle Management as product innovation increasingly comes from software Security and Regulatory Compliance as enterprises struggle to comply with new regulations J2EE and .NET: Two de-facto standards for new development & equally pervasive in large enterprises Open Source dev tools will continue to emerge and become viable options for the mass market Integrated Tools Sets: Analysts believe this market will grow, but customers are skeptical about execution Collaboration: Driven by diffusion of SD talent & capacity, time-to-market pressures and software proliferation Fusion of Business & IT as IT increasingly becomes viewed as a core business competency Current Market Trends: 2007 and Beyond … The use of Modeling Tools to link IT with Business
Rational Modeling Tool Packaging Rational Software Architect Rational Developer for z Rational Application Developer Rational Systems Developer WebSphere Development Client for i Rational Software Modeler WebSphere IntegrationDeveloper Rational Elite Support for Eclipse Eclipse
MDD Primary Scenarios • Model-driven Business Integration (Business-driven development – BDD) • “Solve the right business problems” • Connecting business, IT, and operations • Model-driven Rapid Application Development • “Be productive” • Leveraging models for code generation • Model-driven Design and Construction • “Be efficient and effective” • Creating domain-specific languages and domain-specific transformations • Model-driven System Integration • “Support integration across the life-cycle” • Managing assets and controlling change in team-based projects
MDD Primary Scenarios • Model-driven Business Integration (Business-driven development – BDD) • “Solve the right business problems” • Connecting business, IT, and operations • Model-driven Rapid Application Development • “Be productive” • Leveraging models for code generation • Model-driven Design and Construction • “Be efficient and effective” • Creating domain-specific languages and domain-specific transformations • Model-driven System Integration • “Support integration across the life-cycle” • Managing assets and controlling change in team-based projects
Business Understand Business & Elicit Requirements Model Business Process IBM Rational Unified Process Develop Iteratively Focus on Architecture Continuously Ensure Quality Manage Change & Assets Discover & Design Development Operations Monitor & Manage Transform, Integrate & Build Test & Deploy Model-driven Business Integration (BDD) • Document and specify As-Is Process with Metrics • Specify and construct goals, objectives and requirements • Apply Technology to Improve the Process • Model the To-Be Process…. • Model and simulate business processes • Model Applications and Data • Analyze the financials & prioritize the areas that bring maximum business value • Harvest existing assets • Identify / prepare existing assets or reuse • Design system architecture • Audit processes and improvements • Make Iterative Improvements • Model the Next As-Isand To-Be Process…. • Rapid integration and/or app development • Visual construction and programmatic code generation • Functional and load testing • Generate XML code & manage UML blueprints & Automated Workflow • Apply Patterns to Accelerate Development • Manage testing, requirements, configuration, and project management
Metadata Repository Leveraging Industry Solutions / Models Business Issues • Component Business Model • Express business content in IT-usable formats Relationship Marketing Profitability Underwriting Risk Compliance Foundation Models Industry Content Models Data Process Application • IBM’s Insurance Application Architecture (IAA) Models • IBM’s Information Framework (IFW) Banking Industry • Access & use contentwith SWG tools Platform Independent Models Full Lifecycle Management & Governance Build Solution RDA WBM RSA • SWG Tools • Model-driven development Platform Specific Models Applications& Resources Components Services Business Processes Run time • Vertical integration Metadata Repository
Rational RequisitePro Rational Portfolio Manager WebSphere Business Modeler Document Business Strategy Create FinancialReports & ROIEstimates Understand Risk, Project Costs, and ROI Run-time Statistics Capture Business Goals, Objectives and Requirements BusinessAnalyst Identify and Manage Projects and Resources Business Strategist Trace Business Objectives, Requirements & Create Business Use Case Outlines Create, Simulate & Analyze As-Is Business Model Create, Simulate, Analyze and Optimize To-Be Business Model Create Observation Model with KPIs & export to Monitor UML Project Manager BPEL • Runtime • WebSphere Process Server • WebSphere Portal • WebSphere Business Monitor Rational Software Architect WebSphere Integration Developer Choreograph services using BPEL, WSDL, etc. Create & Manage SystemRequirements and Use Cases Rational Application Developer Implement Services, & expose as Web Services Architect Configure Human Task Manager (including Ad-Hoc) & Client Monitor Integration Developer Trace Requirements & Architect System Use Case Realizations EAR EAR Develop Portlets (App UI and Monitor) Developer Database Developer Model Services Use Business Rules, State Machines, Web Services, Adapters, ESB, etc. EAR Deploy/Run Business Operations Manager Verify Quality Rational Functional Tester Rational Performance Tester Tester IBM Rational Team Unifying Platform BDD in the Larger Context
MDD Primary Scenarios • Model-driven Business Integration (Business-driven development – BDD) • “Solve the right business problems” • Connecting business, IT, and operations • Model-driven Rapid Application Development • “Be productive” • Leveraging models for code generation • Model-driven Design and Construction • “Be efficient and effective” • Creating domain-specific languages and domain-specific transformations • Model-driven System Integration • “Support integration across the life-cycle” • Managing assets and controlling change in team-based projects
Rapid Web Application Development • Visually create, manage, and construct entire Web sites • Useful for working with a collection of Web pages that make up a Web site • Easily visualize (and manipulate) the structure of a Web site • Automated creation and maintenance of Navigation bars • Maintain a consistent look and feel of a Web site Site Structure • Visual Tools supporting … • JavaServer Faces(JSF) • Drag and drop UI components • Eliminates coding for rich, highly functional Web apps • Service Data Objects (SDOs) • Single data interface for accessing backend systems/data • Emerging standard proposed jointly IBM & BEA • No coding to integrate back end data sources Drag & drop JSF components Page Templates Style Sheets Design editor Page Data Data Objects Point-and-click data connectivity Property editor
Rapid Application Development for Business Developers - EGL The Outside World MQ, Call, Web Srvc, … DB2 … SQL, WAS, CICS Enable broad class of business developers for leading-edge technical work …supports Text-based UI’s for migration of existing apps …builds on top of Websphere Studio Tools, like Page Designer. iSeries pSeries Productivity, High Quality Deploy optimally to diverse platforms …Highly productive and intuitive 4GL, simplifies complex runtimes & enhances quality by reducing amount of code needed zSeries EGL Developers who need to solve Business Problems, not Technology Problems xSeries
Rational Software Modeler enables visual modeling and designing of software • Standards-based modeling for teams • Model applications more productively than ever with UML 2 • Leverage the Eclipse open and extensible platform • Rich team modeling support including diagrammatic model compare-merge • Effective communication and evaluation of designs • Traceability • Link requirements to analysis, design • Extensibility • Automate modeling and development activities with custom model-based patterns and transformations • Encapsulate business logic and industry best practices into models
Rational Software Architect promotes governance of application architecture with modeling support & traceability All of Rational Software Modeler plus all of Rational Application Developer plus… • Maintain architectural integrity and compliance • Process Guidance • Visually compare and merge model and implementation changes • Extend traceability links from design to implementations • Perform architectural analysis of Java code bases, discover patterns and antipatterns • Accelerate SOA development • Model and develop well-architected services • Use included transformations to generate WSDL.XSD, BPEL, SCDL, Java, EJB, … • Increase team productivity and quality • Use models to drive application development, code generation, testing, and maintenance • Asset browser for accessing reusable assets • Early detection of architecture inconsistencies
Visualize Java method bodies • Facilitates understanding and application’s behavior by providing visualization of detailed code • Diagrams can be integrated in Javadoc reports “Topic” diagram for method is automatically updated/refreshed when method is updated Integrated with the Java Package view Leverages UML 2.0 sequence diagram constructs for loops, conditionals, etc… Alternate abstract viewof method behavior Select method to be visualized using UML
Visualize Dynamic Behavior at Runtime • Runtime analysis • Memory leak detection • Performance profiling • Code coverage measurement • Thread analysis • Execution flow visualization • Optimized reliability independent of deployment-related concerns
Visualize and Graphically Edit Code– Microsoft Visual Studio .NET Class Designer C# project Diagrams stored in .cd files C# palette Direct depictions of code, UML-like notation 24
MDD Primary Scenarios • Model-driven Business Integration (Business-driven development – BDD) • “Solve the right business problems” • Connecting business, IT, and operations • Model-driven Rapid Application Development • “Be productive” • Leveraging models for code generation • Model-driven Design and Construction • “Be efficient and effective” • Creating domain-specific languages and domain-specific transformations • Model-driven System Integration • “Support integration across the life-cycle” • Managing assets and controlling change in team-based projects
Model-driven Design and Construction • Many uses of models across the life-cycle • Teams create and manage different abstract representations of the system • These models establish a set of dependencies between artifacts across the life-cycle • The development process consists of creating these artifacts, deriving new artifacts, and maintaining dependencies
RSA RSA Patterns RSA Transformations RSA Transformation Extensions Cheat Sheets Code Snippets Code Macros UML Profiles constraints / validations OCL Model templates Eclipse Design Pattern Toolkit (DPTK) Java Emitter Templates (JET) JMerge Model Transformation Framework (MTF) UML2 (API) Eclipse Modeling Framework (EMF) XMI MDD Technologies and Extensibility Options • Other Technologies • Generative Model Transformer (GMT) • Model Driven Development integration (MDDi) • Eclipse Plugin Development Environment (PDE) • Java Developer Toolkit (JDT)
Leverage patterns and transformations Patterns can be authored/applied and used as recipes or building blocks to refine a model or implementation at its level of abstraction. Transformations can be authored to create traceability links between the source and the target of the transformation. Domain Model Model-to-Model Transformations Domain Patterns Application Model Application Patterns Transformations Functional Patterns Model-to-Code Transformations Implementation Implementation / Code Patterns Rule/constraints-based transformations can be authored to transform models in a batch style operation. Transformations are authored using Java and the Eclipse PDE. Transformations can leverage functional patterns when they execute. Enterprise Patterns: Common J2EE design level patterns WebSphere Platform Messaging Patterns: Extends the Enterprise Patterns to add ESB connectivity using WebSphere Platform Messaging State Oriented Portal Pattern: Speeds up portal development via state based high level modeling
Patterns Pattern rendered as a collaboration to support incremental application • “Pattern-apply” experience is highly interactive • Evolution of the XDE patterns story based on lessons learned • “Pattern-authoring” experience provides flexibility using Open API • GOF design pattern content • Additional patterns provided via RAS repository on Developer Works • Examples: SOA / Web Service design patterns, IBM WebSphere patterns Support “drag-and-drop” of pattern parameters into the collaboration New patterns view providing outline and description of the pattern
Transformations • Transformations are optimal for “batch” style computationally intensive operations • Model-to-model • Model-to-text • Out-of-the box transforms • UML-to-J2EE/Java • UML-to-C++ • Sample out-of-the-box model-to-model transforms • Additional updates via RAS repository hosted on DeveloperWorks • Examples: Web Services transformations, XSD transformations
State of the Industry … • Systems Integrators seem to be on the-leading-edge of developing large and small pattern libraries • They are motivated to both solve development problems but to also brand and separate themselves from the rest of the pack • Complete solutions (address significant content) are via transformations not accumulated patterns • The promise that developing enough low level patterns to sufficiently assemble a real life application is far from here • Presently there is just not enough design model level pattern content • Asset management seems to be key infrastructure component to be considered in the near future • Model debugging and more sophisticated model support is lagging, but will be needed before MDD can replace source code editing
MDD Primary Scenarios • Model-driven Business Integration (Business-driven development – BDD) • “Solve the right business problems” • Connecting business, IT, and operations • Model-driven Rapid Application Development • “Be productive” • Leveraging models for code generation • Model-driven Design and Construction • “Be efficient and effective” • Creating domain-specific languages and domain-specific transformations • Model-driven System Integration • “Support integration across the life-cycle” • Managing assets and controlling change in team-based projects
Model-driven System Integration • Leverage knowledge across projects and teams • Managing and reusing assets • Using best practices to unify teams • Manage dependencies among assets • Tracing impact of change • Automating monitoring and feedback of events • Open, integrated tool platform • Using tools based on a shared meta-model • Extending the tools for domain-specific needs
Metadata Repository Leveraging Industry Solutions / Models Business Issues • Component Business Model • Express business content in IT-usable formats Relationship Marketing Profitability Underwriting Risk Compliance Foundation Models Industry Content Models Data Process Application • IBM’s Insurance Application Architecture (IAA) Models • IBM’s Information Framework (IFW) Banking Industry • Access & use contentwith SWG tools Platform Independent Models Full Lifecycle Management & Governance Build Solution RDA WBM RSA • SWG Tools • Model-driven development Platform Specific Models Applications& Resources Components Services Business Processes Run time • Vertical integration Metadata Repository
Topics • Models Model-Driven Development Model-Driven Architecture • MDA Solutions Illustrated • Summary
Summary - Key Concepts ModelsFocus on Abstraction and Communication • Resultant artifacts generated using a modeling language to represent various aspects of a system under consideration Model-Driven Development (MDD)Focus on Innovation and Reasoning • Models are used to reason about the problem domain and the solution domain anddetermine the relationships between models to provide dependencies that record the process by which solutions are derived Model-Driven Architecture (MDA)Focus on Prescriptive Application • Style of enterprise application development and integration based on using automated tools to build system-independent models and transform them to efficient implementations
Summary - Lessons and Best Practices • Focus needs to be on productivity and predictability of running systems • Its about code generation • ….but also focus on Integration, communication, and repeatability • Its about much more than code generation • Don’t get confused between models, MDD, and MDA • Many approaches to capture and automate knowledge • Appropriate practices are needed in support of these • Changing mindset to a model-drive approach takes time • Introduce modeling “by all means necessary”! • Provide the support structure necessary for all reuse approaches