uml 2.0 why should i care and what should i do - …...why should i care about uml? (any version)...

27

Upload: others

Post on 29-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,
Page 2: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

UML 2.0: Why Should I Care?

And What Should I Do?

Page 3: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Cameron Skinner

Embarcadero

www.embarcadero.com

EMBARCADERO

Page 4: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

John Hogg

IBM Rational

www.rational.com

IBM Rational software

IBM Software Group | Rational software

Page 5: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

IBM Software Group | Rational software

UML 2.0: Why Should I Care?UML 2.0: Why Should I Care?§ Reason #1: structure modelling§ Better architectural communication

4A nice-to-have, but not a fundamental change…

§ MDA enabler!4Generate better applications faster

Page 6: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

IBM Software Group | Rational software

Full benefits of model-driven development require structural code generation from the model

•Faster development•Higher quality

Structures Enable Model-Driven Architecture

0%

Behaviour

Structure

Hand coding

% G

ener

ated

Cod

e

100%

90%

Page 7: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

IBM Software Group | Rational software

Automating Structure Generation Enables Control

• It’s not what you draw, it’s what you do with it• Code Generation

– Shorter time-to-market, better quality

• Model-Driven Testing– Full control of stubbing

• Thread Assignment– Inheritance of controlling threads

• Build Minimization– Full two-way encapsulation

• And more…

Page 8: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

IBM Software Group | Rational software

UML 2.0: Where Are We?

• We’re not there yet• Official UML 2.0 adoption

~October 2003• Official UML 2.0 availability

~October 2004– I.e., no more changes

Page 9: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

IBM Software Group | Rational software

UML 2.0: What Should I Do?• Learn UML 2.0

– Forewarned is forearmed– But be careful of what you’re taught

today…

• Be wary of “UML 2.0 today!” claims• Understand how to apply UML 2.0, not

just draw it• Get ready for the future of software

development

Page 10: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Dirk Epperson

Kabira

www.kabira.com

Page 11: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Levels of Abstraction

Page 12: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Why should I care about UML?(any version)

§ Before UML modelers spent as much time arguing whether arrows should be round or pointy, as they did about the viability of modeled systems.

§ Current programming practice is tied too much to lines of code.

§ Model Driven Architecture (MDA) gives us the level of abstraction required to get above the fray of the lines of code!

§ UML is virtually necessary for MDA (see the first point) and is nearly sufficient for MDA.

Page 13: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

UML 2.0

§ The Good News§ More ways to express a concept§ Action Semantics§ Foundation for MDA

§ The Bad News§ Expression comes at the cost of Complexity§ How many developers can create a fully semantically

correct, verifiable, executable model?

§ More than one way to do the same thing§ Java learned a lesson from C++ about this.

Page 14: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

§ Shakespeare and Dickens were able to use the full expression of the English Language.

§ But newspaper reporters use a vocabulary of only about 1,000 words to get the story across.

§We are in danger of ending up with a UML that only a Shakespeare can use!§This does not bode well for the longevity of UML.

Where is this heading?

Page 15: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

What is needed…

§ A profile which describes UML for mere mortals.§ An executable context which provides a normal

mode of MDA.§ An audit context which will guarantee the

executability of a model.

Page 16: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Pete Rivett

Adaptive

www.adaptive.com

Adaptive

Page 17: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

Joaquin Miller

Lovelace Computing

www.joaquin.net

Page 18: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

Why Should I Care?

§ Obscurity, complexity, and over-ambition

§ Consistency, capability, and quality

§Minor quirks and major advances

Page 19: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

“I gave desperate warnings againstthe obscurity, the complexity, and

the over-ambition of the new designbut my warnings went unheeded.

I conclude that there are two ways ofconstructing a design:

One way is tomake it so simple that

there are obviously no deficiencies

and the other way is tomake it so complicated that

there are no obvious deficiencies.”Tony Hoare

Turing Award Lecture, 1980

Lovelace

Page 20: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

Consistency: great care has been taken, to good effect

Capability: significant gains,building on other established standards

Quality: much improved

Page 21: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

ClassifierInstanceSpecification+classifier

0..*

Instance

«instantiate»

No objects in UML 2 models[but instanceSpecificationswill fill the void]

Minor quirks

Page 22: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

Classifier

TypeTypedElement

Association

+type

0..1

Type distinct from specification[but only one type per element]

Associations may be typed

Major advancements

Page 23: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

y:S3Triangle

sideA = 4 sideB = 4 sideC = 4

draw ()

x:A2S1Triangle

angleA = 60° angleB = 60° sideC = 4

draw ()

Equilateral

« instance » « instance »

Same type, different implementation

Page 24: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

Right

y:S3Triangle

sideA = 3 sideB = 4 sideC = 5

draw ()

« instance » « instance »

x:S3Triangle

sideA = 4 sideB = 4 sideC = 4

draw ()

Equilateral

Different type, same implementation

Page 25: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

Lovelace

As you use UML 2,think about UML 3

CommunityUML

www.cuml.org

And What Should I Do?

Page 26: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,

This is a workshop.

Let’s work!

Page 27: UML 2.0 Why Should I Care And What Should I Do - …...Why should I care about UML? (any version) Before UML modelers spent as much time arguing whether arrows should be round or pointy,