practical model-driven development with the ibm® software

35
® IBM Software Group © 2005 IBM Corporation Practical Model-Driven Development with the IBM® Software Development Platform Osmond Ng ([email protected] ) Technical Consultant, IBM HK SWG

Upload: others

Post on 12-Sep-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practical Model-Driven Development with the IBM® Software

®

IBM Software Group

© 2005 IBM Corporation

Practical Model-Driven Development with theIBM® Software Development Platform

Osmond Ng ([email protected])Technical Consultant, IBM HK SWG

Page 2: Practical Model-Driven Development with the IBM® Software

IBM Software Group

2

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 3: Practical Model-Driven Development with the IBM® Software

IBM Software Group

3

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 4: Practical Model-Driven Development with the IBM® Software

IBM Software Group

4

The Challenges of Enterprise Software Development

Ever-increasing complexity in the operational environments

J2SE, J2EE, .NetWeb, Handhelds, disconnectedLegacy integration, modernizing

Ever-expanding choices to make on development solutions

Programming Languages, scripting LanguagesIDE’s, testing tools

Ever-changing nature how software gets created

Globally development teamsOutsourcingCompliance and Regulations

More Layers,More Servers,More Frameworks,More “Moving Parts”,

More Complexity

Page 5: Practical Model-Driven Development with the IBM® Software

IBM Software Group

5

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 6: Practical Model-Driven Development with the IBM® Software

IBM Software Group

6

Modeling: The Key to Managing Software ComplexityModeling is the standard approach in engineering to

Manage ComplexityMitigate Risk

Software development is the same asevery other kind of engineering in this respect

Maybe you have to

But then, maybe you should

Well, maybe you shouldn’t’

Page 7: Practical Model-Driven Development with the IBM® Software

IBM Software Group

7

Modeling: The Key to Managing Software Complexity

What people are saying today about software modeling*“…ensures that customers get what they ask for”“…allows me to create domain-specific areas of expertise and bring in the right people at the right time”“…allows me to better understand my enterprise at different levels of detail for different stakeholders”“…higher levels of reuse, reduce overall costs

Those who have adopted software modeling are finding that itimproves technical quality, reduces business costs,

and better manages risk.

Source: IBM whitepaper, The Value of Modelinghttp://www3.software.ibm.com/ibmdl/pub/software/rational/web/whitepapers/ValueOfModeling.pdf

Page 8: Practical Model-Driven Development with the IBM® Software

IBM Software Group

8

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 9: Practical Model-Driven Development with the IBM® Software

IBM Software Group

9

What is Model-Driven Development (MDD)?

The encapsulation of business logic and industry best practices into models

The use of these models for application development, code generation, testing, and maintenance

Modeling helps you work at higher levels of abstraction

Higher levels of abstraction lead to higher productivity

Modeling helps you work at higher levels of abstraction

Higher levels of abstraction lead to higher productivity

Page 10: Practical Model-Driven Development with the IBM® Software

IBM Software Group

10

UML – The Language ofModel-Driven Development

Model-driven development is aided by acommon language across all stakeholders

Unified Modeling Language (UML) is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive systemUML allows software architects, designers and developers to specify, visualize, construct, and document all aspects of a software system

Model-driven development is aided by acommon language across all stakeholders

Unified Modeling Language (UML) is the standard language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive systemUML allows software architects, designers and developers to specify, visualize, construct, and document all aspects of a software system

Page 11: Practical Model-Driven Development with the IBM® Software

IBM Software Group

11

UML – The Language ofModel-Driven Development

Key leaders from IBM Rational led the original development of UMLToday, UML is managed by the Object Management Group (OMG)

Key leaders from IBM Rational led the original development of UMLToday, UML is managed by the Object Management Group (OMG)

Page 12: Practical Model-Driven Development with the IBM® Software

IBM Software Group

12

UML – The Language of Model-Driven Development

1967Foundations of OO (Nygaard, Goldberg, Meyer,Stroustrup, Harel, Wirfs-Brock, Reenskaug,…)

Foundations of OO (Nygaard, Goldberg, Meyer,Stroustrup, Harel, Wirfs-Brock, Reenskaug,…)

JacobsonJacobsonBoochBoochRumbaugh

UML 1.1 (OMG Standard)

UML 1.3 (extensibility)UML 1.3 (extensibility)UML 1.4 (action semantics)UML 1.4 (action semantics)

UML 1.5UML 1.5

1996

1997

1998

20011Q-2003

3Q-2003

UML 2.0 (MDA)

The Evolution of UML

Page 13: Practical Model-Driven Development with the IBM® Software

IBM Software Group

13

What is Model-Driven Development?Different Stakeholders, Different Models

Business ModelVisualization of business processes

Use Case ModelVisualization of functional requirements

Analysis Model“What” the system must do to realize the functional requirements

User Experience ModelVisualization of user interaction with the system

Design Model“How” the system will realize the functional requirements

Data ModelVisualization of persistent storage

Implementation ModelVisualization of the code

Page 14: Practical Model-Driven Development with the IBM® Software

IBM Software Group

14

What is Model-Driven Development?Model-driven development is not “one size fits all”

Level of abstraction

You can model at various levels of abstraction and detail

The key is to choose the level that’s right for your project and team

You can model at various levels of abstraction and detail

The key is to choose the level that’s right for your project and team

Text-basedcoding

Code visualization& visual editing

Modeling &code

generationVisualprogramming

Model execution

Patterns-Based

Development

Modeltransforms

Business modeling

Adopt the right level of modeling for your needs

Development time savings

Page 15: Practical Model-Driven Development with the IBM® Software

IBM Software Group

15

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 16: Practical Model-Driven Development with the IBM® Software

IBM Software Group

16

What is “Model-Driven Architecture”?Business

functionality and behavior

Business Business functionality and functionality and

behaviorbehavior

Standard mappingStandard Standard mappingmapping

Design of the solution based on a specific platform like J2EE

Design of the solution Design of the solution based on a specific based on a specific platform like J2EEplatform like J2EE

PlatformPlatform--Independent Independent

ModelModel

PlatformPlatform--Specific Specific ModelModel

An OMG initiative

Different levels of abstraction via multi-models

Platform Independent

Platform Specific

Transform from one level to another

PlatformArchitect

Page 17: Practical Model-Driven Development with the IBM® Software

IBM Software Group

17

What Is “Model-driven Architecture”?

MDA is a particular style of model-driven developmentMDA defines a philosophy for how models should be used in the development process

Distinct models at particular levels of abstractionNotion of model transformations (model-to-model, model-to-code)Strong separation of concerns across spectrum from business to implementation

MDA is not yet itself an OMG standardIt’s based on UML and other OMG standardsThere is a set of specifications for MDA

MDA is in an early adopter phase – customer stories are emergingInitial MDA guide over-simplified modeling abstractions (CIM, PIM, PSM)Of all the ways to practice model-driven development, MDA is at the top of the food chain—the most sophisticated, and potentially the most powerfulRational Software Architect supports a wide and granular set of MDD styles of development, with MDA being but oneVisit our MDA Information Center, http://www-306.ibm.com/software/rational/mda/

Page 18: Practical Model-Driven Development with the IBM® Software

IBM Software Group

18

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 19: Practical Model-Driven Development with the IBM® Software

IBM Software Group

19

What do we mean by“Practical Model-Driven Development”

Why don’t more developers model their software?Is it cultural?

“Just give me an editor and a debugger”“We can’t afford modeling tools”“Modeling is documentation — I hate doing documentation”“In the past we’ve tried and failed.

The key reasons are the perceptions thatModeling is hardModeling will

Page 20: Practical Model-Driven Development with the IBM® Software

IBM Software Group

20

Practical Model-Driven DevelopmentUp-front Investment

Code Wizards,Class explorer

UML codeVisualization

and edit

OMG MDA

Use CaseDiagrams

ActivityDiagrams

CodeAnalysis

UML EJBtransforms

BusinessProcessmodels

AssetBased

Development

ExecutableModels

Time to realize the benefits

To a developer practical model-driven developmentRequires low up-front investmentResults in high short-term benefits

Page 21: Practical Model-Driven Development with the IBM® Software

IBM Software Group

21

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?

Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 22: Practical Model-Driven Development with the IBM® Software

IBM Software Group

22

A Quick Look at the NewRational Design and Construction Tool Set

EclipseEclipse

Rational Software Architect

Rational Software Architect

Rational Software Modeler

Rational Software Modeler

Rational Application Developer for WebSphere

Rational Application Developer for WebSphere

Rational Web Developer for WebSphere

Rational Web Developer for WebSphere

J2EE/EJB & Portal DevelopmentComponent TestingCode Review & Runtime AnalysisUML Visual EditorsConfiguration Management

J2EE/EJB & Portal DevelopmentComponent TestingCode Review & Runtime AnalysisUML Visual EditorsConfiguration Management

Web DevelopmentWeb Services DevelopmentRich Client DevelopmentXML & Database ToolsJava Generation ToolsUnit Test

Web DevelopmentWeb Services DevelopmentRich Client DevelopmentXML & Database ToolsJava Generation ToolsUnit Test

UML 2.0 modelingPattern/Transform AuthoringReusable Asset Browser

UML 2.0 modelingPattern/Transform AuthoringReusable Asset Browser

UML Language TransformsStructural Review & ControlC/C++ Development Tools

UML Language TransformsStructural Review & ControlC/C++ Development Tools

Page 23: Practical Model-Driven Development with the IBM® Software

IBM Software Group

23

Getting to Know Rational Software Architect

Demo: Overview of Rational Software Architect

Page 24: Practical Model-Driven Development with the IBM® Software

IBM Software Group

24

A Quick Intro to UML for Java developers

Name Compartment

Attribute Compartment

Operation Compartment

A Class is represented by a rectangle with compartments

Stereotype – what kind of a UML class is it?

Page 25: Practical Model-Driven Development with the IBM® Software

IBM Software Group

25

A Quick Introduction to UML for Java developers

Generalization (inherits)

Realization (implements)

Association

Page 26: Practical Model-Driven Development with the IBM® Software

IBM Software Group

26

A Quick Intro to UML for Java developers

Use

Page 27: Practical Model-Driven Development with the IBM® Software

IBM Software Group

27

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 28: Practical Model-Driven Development with the IBM® Software

IBM Software Group

28

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 29: Practical Model-Driven Development with the IBM® Software

IBM Software Group

29

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 30: Practical Model-Driven Development with the IBM® Software

IBM Software Group

30

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 31: Practical Model-Driven Development with the IBM® Software

IBM Software Group

31

Overview

The Challenges of Enterprise Software DevelopmentModeling: The Key to Managing Software ComplexityWhat is Model-Driven Development?What is Model-Driven Architecture?What do we mean by “Practical Model-Driven Development”?Practical Model-Driven Development withRational Software Architect

Browse and Topic Diagram CreationStatic Sequence Diagram CreationArchitectural Discovery DiagramsStructural Analysis Code ReviewJ2EE Development Using UML Transformations

Page 32: Practical Model-Driven Development with the IBM® Software

IBM Software Group

32

SummaryModeling is the key to managing the complexity and risks associated with today’s enterprise software systems.Model-driven development helps teams work at higher levels of abstraction, which leads to higher productivity“Practical model-driven development” refers to tools and techniques that allow developers to rapidly gain the benefits ofmodel-driven development with little up-front investment.

Rational Software Architect is IBM’s premier design & development tool enabling model-driven development and model-driven architecture. It incorporates all the capabilities in Rational Application Developer for WebSphere for building scaleable Web, Web services, Java, J2EE and portal applications

Page 33: Practical Model-Driven Development with the IBM® Software

IBM Software Group

33

Resources

Learn about the technologyIBM Rational® Software Architect Product Page

http://www.ibm.com/developerworks/rational/products/rsa– Contains pointers to training, tutorials, articles, and many other resources

related to model-driven development and model-driven architecture

Hands-on learningIBM Rational Software Architect Trial Version

http://www.ibm.com/developerworks/downloads/r/rswaOther IBM Rational Trial Versions are at http://www.ibm.com/rational

Click on “Trials and Betas”

Modeling and MDA BooksAhmed, K. Developing Enterprise Java Applications with J2EE and UMLEeles, P. Building J2EE Applications with the Rational Unified Process

Page 34: Practical Model-Driven Development with the IBM® Software

IBM Software Group

34

Questions

Page 35: Practical Model-Driven Development with the IBM® Software

IBM Software Group

35