Introduction to Modelling John Daniels Syntropy Limited, UK © Syntropy Limited 2004.

35
Introduction to Modelling John Daniels Syntropy Limited, UK www.syntropy.co.uk © Syntropy Limited 2004

Transcript of Introduction to Modelling John Daniels Syntropy Limited, UK © Syntropy Limited 2004.

Page 1: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

Introduction to Modelling

John Daniels

Syntropy Limited, UK

www.syntropy.co.uk

© Syntropy Limited 2004

Page 2: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

You all know what modelling is…

Page 3: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Spend a lot of time drawing loads of these…

{creditCardDetails->isEmpty( ) =customer.creditAccount->notEmpty( )}

DeliveryAddress

addLine1addLine2postCodetown

CreditAccount

numberbalance

GeneralLedger

Supplier

name

StockReplacementOrder

orderDateorderQuantity

1

0..*

1

0..*

Catalogue

CatalogueItem

stockLeveltitleeditioncomposerminStockLevelstockRequestsidreorderQtypriceExVAT

1

*

1

*

*

1

*

1

CreditCardDetails

accountNumberexpiryDate

Customer

firstNamesecondNameprefixcustomerNumberpasswordemailAddress

*

1

*

1

1

0..1

1

0..1

OrderItem

qty

*

1

*

1

Posting

amountdate

1

0..*

1

0..*

Order

expectedDeliveryDateorderCreationDate*0..1 *0..1

0..*

1

0..*

1

1

1..*

1

1..*

0..*

1

0..*

1

Page 4: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

..throw them away and get on with the code

• But wait!

• Isn’t the code also a model?

• So what exactly do we mean by “model”?

package com.fastnloose.utilities;/** * @author danielsj */public class Stopwatch {

protected long display, snap;

/** * Constructor for Stopwatch. */public Stopwatch() {

super();display = 0;snap = 0;

}

public void start() {snap =

System.currentTimeMillis();}

public long stop() {display = display +

(System.currentTimeMillis() - snap);snap = 0;return display;

}

public void reset() {display = 0;

}

Page 5: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Are our models “mathematical models”?

Page 6: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Are they “scale models”?

Page 7: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Are they “theoretical models”?

Page 8: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Definitely not this kind of model…

Page 9: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

A software “model” is

• partly about visualisation– abstraction for clarity

– pictures worth thousands of words

• sometimes about algorithms– expression in a convenient form

• often not really a model at all, more a set of instructions– a recipe

Page 10: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Modelling has a long history in software

Page 11: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

So why the interest now?

• Cost, Complexity and Communication – Can’t understand large systems at the code level

– Systems are increasingly about multiple interacting processes - far beyond the “design of the program”

– Much coding is repetitive and inefficient

– Teams need a shared understanding

– Better communication with the customer

Page 12: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

“Model-Driven Development”

• MDD puts (graphic, abstract) models at the centre of the development process– Use of models to allow customers, analysts and

developers to visualise, share and discuss requirements, design ideas, solutions

– Use of models to allow newcomers to see the big picture quickly

– Need tools that can move quickly and easily between code and diagrams

Page 13: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

The world of (agile) MDD

Customer

Brilliant Software Ltd

Analyst

queries, animations, scenarios

stories

SoftwareDeveloper

requirements

queries

demonstrations of working software

RequirementsModel

DesignModel

DesignModel

DesignModel

ideas

understanding

Page 14: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Reasons why modelling is working now

• A better understanding of the purpose of models

• Standardisation of modelling languages

• Advances in automated model transformations

Page 15: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Perspectives and intentions

Page 16: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Model perspectives

ConceptualModel

Software Specification

Model

Software Implementation

Model

How the problem domain operates

Required behaviour of

software

Internal design of software

Concerned with:

Page 17: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

What is the nature of the problem?

• Often we simply want ways to understand a complex situation

• We can build a model for this!

• This is nothing to do with software design

• Examples:– Corporate information models

– Business processes

• Conceptual models

Page 18: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

What should this system do?

• Part of requirements definition is specifying:– what information the system must manage

– how the system should react to inputs

• We can build a model for this!

• Says what, not how

• Examples:– Data models

– Stimulus/response mechanisms

• Specification models

The World The Software

Page 19: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

How is this system constructed?

• Technicians often need ways of understanding how a system has been built or is to be built

• We can build a model for this!

• The content of these models is influenced by the implementation technology

• Examples:– Software structure models

– Control flow models

• Implementation models

Page 20: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Conceptualmodel

<<concept>>Order

deliveryCharge: Money

<<concept>>UrgentOrder

<<dynamic>>

S/W specification model

<<type>>Order

deliveryCharge: MoneyisUrgent: Boolean

beUrgent()

Implementation model

<<class>>Order

getDeliveryCharge(): MoneyisUrgent(): BooleanbeUrgent()

<<class>>DeliveryStrategy

getCharge(): Money

<<class>>RegularDelivery

getCharge(): Money

<<class>>UrgentDelivery

getCharge(): Money

1

Same name, different perspective

Page 21: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Model intentions

Intention:

Sketch

Blueprint

Program

Informal, partial, not designed for automation. Intended as human-to-human communication.

Formal, fairly complete, precise. Intended to be translated, manually or automatically, into another blueprint or a

program.

Intended to be executed by a “machine”, not translated into another model. Takes inputs, generates outputs.

Page 22: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Put the two dimensions together…

Sketch

Blueprint

Program

Description of a problem situation

(partial) Description of some s/w that is to

be built

Spec. for a problem situation

Spec. for some s/w that is to be built

Spec for how some s/w was/should be

built (e.g. rev. eng.)

Ideas about how some s/w

was/should be built

Simulation of a problem situation

Simulation of some s/w that is to be built

ORSoftware that can be used directly (with a very smart machine)

Software that can be used directly

ConceptualModel

Software Specification

Model

Software Implementation

Model

Page 23: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Modelling Languages

Page 24: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

UML

Unified Modeling Language

• The UML is a standardised language for describing the structure and behaviour of things

• UML emerged from the world of object-oriented programming

• UML has a set of notations, mostly graphical

• There are tools that support some parts of the UML

Page 25: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

UML is

• big– notations for classes, components, composites, deployment,

activities, interactions, collaborations, use cases, state machines, etc., etc; it’s own textual logic language (OCL); profiles for everything you can imagine; etc., etc.

• general purpose– can be used for anything, but…

– has to be tailored for specific usages

• increasingly positioned for blueprints and programs

• a standard!

Page 26: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Common usage of UML notations

Use case

Class diagram

Seq./comm. diagram

Activity diagram

Statechart

Conceptual S/W spec Implementation

boundary interactions

information models

class/component structures

class/component structures

required object interactions

designed object interactions

business processes

algorithms

object lifecycles object lifecycles

Page 27: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Architectural Description Languages

• Special-purpose languages for describing systems– components

– connectors

– configurations

• E.g.: ACME, AESOP, UniCon, Wright, Darwin– tend to combine text with diagrams

• Industry isn’t interested, and

• UML is now positioned in this space

see http://sunset.usc.edu/~neno/papers/TSE-ADL.pdf for a survey

Page 28: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

“Gregor-grams”

• Rare example of a useful ADL

• A language for Enterprise Application Integration

• Devised by Gregor Hohpe, ThoughtWorks

• Highly specialised and very visual

see www.eaipatterns.com

© ThoughtWorks 2004

Page 29: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Domain-Specific Languages

• A language whose elements are specific to the problem domain

• Semantics specific to the problem domain!

• Build a “machine” that can execute this language

call

calendarmonth

CallRecord

call length

base rate: £/s

call length

friend discount rate: £/s

store

friends calls

other calls

-

bill

billing period

store

+-

© Microsoft 2004, used with permission

Page 30: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Model Transformations

Page 31: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

a situation in the world software that supports

the situation

The basic principle of object-oriented design:

Objects identified in a situation in the world can be directly represented as software objects in a computer system that interacts with the situation

We want seamlessness...

Page 32: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

The model of the problem is refined into a design for implementation

The problem model and the implementation design

are based on quite different sets of concepts

TransformationElaboration

but how do we obtain it?

The great 1980’s debate

versus

Page 33: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

The result?

Transformation won

because:

• The world isn’t software

• We want portability (or so we say…)– the OMG MDA story

Page 34: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

www.syntropy.co.uk Syntropy Limited

Transformations in MDA

Sketch

Blueprint

Program

ConceptualModel

Software Specification

Model

Software Implementation

Model

PIM to PIM PIM to code

PIM to PSMPSM to PSM

PSM to code

PIM to PIM

Page 35: Introduction to Modelling John Daniels Syntropy Limited, UK  © Syntropy Limited 2004.

that was an

Introduction to Modelling

John Daniels

Syntropy Limited, UK

www.syntropy.co.uk