32
1 Families (of Products) in Space Professor Mike Hinchey In collaboration with Joaquin Pena, Jim Rash, Manuel Resinas, Antonio Ruiz- Cortes Roy Sterritt, Pablo Trinidad

Families (of Products) in Space

  • Upload
    tallys

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Families (of Products) in Space. Professor Mike Hinchey In collaboration with Joaquin Pena, Jim Rash, Manuel Resinas, Antonio Ruiz-Cortes Roy Sterritt, Pablo Trinidad. NASA as a pioneer. Regular releases of PASS software foresaw agile methods. Human-rated software gets priority. - PowerPoint PPT Presentation

Citation preview

Page 1: Families (of Products) in Space

1

Families (of Products) in Space

Professor Mike Hinchey

In collaboration with Joaquin Pena, Jim Rash, Manuel Resinas, Antonio Ruiz-Cortes Roy Sterritt, Pablo Trinidad

Page 2: Families (of Products) in Space

2

NASA as a pioneer

• Regular releases of PASS software foresaw agile methods.

• Human-rated software gets priority.• Quality and safety are paramount.

Page 3: Families (of Products) in Space

Figure 3. NASA Space Shuttle Time Required to Achieve Number of Cumulative Failures <= F (t) vs. F (t)

0.00

2.00

4.00

6.00

8.00

10.00

12.00

14.00

1 2 3 4 5 6 7 8 9 10

F (t)

t (3

0 d

ay in

terv

als

)

Series1

Series2

Series3

Series4

Series5

Series 1: OI3Series 2: OI4Series 3: OI5Series 4: OI6Series 5: tm = Mission Duration

Page 4: Families (of Products) in Space

4

NASA as a pioneer

• Sees opportunity for reuse in the use of SPLs.

• Has long viewed evolution of complex systems as a product line with large core.

Product Si-1

Set of Core features

Set of Features

A

Set of Features

B

Condition: environment/system Product Si-1

Set of Core features

Set of Features

A

New Set of

Features

Page 5: Families (of Products) in Space

GRAIL

• Grail (Gravity Recovery and Interior Lab) found relevant defect factors in flight software.• Timing parameters particularly problematic.• Grail aims to retain organizational memory and

avoid the same defects in new products.

5

Page 6: Families (of Products) in Space

SPLs

6

Page 7: Families (of Products) in Space

Elektra – software defined radio

7

Page 8: Families (of Products) in Space

Swarm Technologies

• Inspired by swarms of bees and flocks of birds in nature;

• Many application areas:– drug discovery;– communication systems; – environmental monitoring;– exploration.

8

Page 9: Families (of Products) in Space

Swarms of Spacecraft

Coordinated swarms of smaller spacecraft will offer:

• More effective use of solar power;

• Access to areas where large craft could not go;

• Ability to perform more complex tasks;

• Greater accuracy and flexibility.

• Resilience in harsh environments.

9

Page 10: Families (of Products) in Space

Autonomous NanoTechnology Swarm

Three concept sub-missions:

1. Lander Amorphous Rover Antenna (LARA)

2. Saturn Autonomous Ring Array (SARA)

3. Prospecting Asteroid Mission (PAM)

All use (substantially) the same software and similar devices (some on lunar surface, some fly, etc.)

10

Page 11: Families (of Products) in Space

Tet Walkers

11

Page 12: Families (of Products) in Space

LARA Walkers

12

Page 13: Families (of Products) in Space

13

ANTS Concept Mission - PAM

Page 14: Families (of Products) in Space

14

ANTS Concept Mission - PAM

Page 15: Families (of Products) in Space

15

Viewpoints

v

is a set of (partial) transition functions where each transition function maps

ocessason

geceiveMessaeSendMessag

Pr,Re

,Re,

MemoryOutputInputMemory

is a set of (partial) transition functions where each transition function maps

ocessason

geceiveMessaeSendMessag

Pr,Re

,Re,

MemoryOutputInputMemory

goces

goces

goces

goces

goces

goces

easoning

easoning

ingCommunicateceive

ingCommunicateceive

ingCommunicateceive

ingCommunicat

ingCommunicat

ingCommunicatingCommunicat

sinPr.nRemediatioProcessing:17

sinPr.RecoveryProcessing:16

sinPr.DiagnosisProcessing:16

sinPr.PredictionProcessing:17

sinPr.GenerationProcessing:17

sinPr.StorageSortingAndProcessing:17

R.eactiveReasoningR:50

R.eliberatveReasoningD:50

.orMessageErrR:1

.derMessageLeaR:50

.kerMessageWorR:50

.eErrorSendMessag:1

.eLeaderSendMessag:50

.eWorkerSendMessag:50

2

2

2

2

2

2

2

2

1

2

2

1

2

2

lkklkklk nmnmn kkkkk nmmnmn )(

goces

goces

goces

goces

goces

goces

easoning

easoning

ingCommunicateceive

ingCommunicateceive

ingCommunicateceive

ingCommunicat

ingCommunicat

ingCommunicatingCommunicat

sinPr.nRemediatioProcessing:17

sinPr.RecoveryProcessing:16

sinPr.DiagnosisProcessing:16

sinPr.PredictionProcessing:17

sinPr.GenerationProcessing:17

sinPr.StorageSortingAndProcessing:17

R.eactiveReasoningR:50

R.eliberatveReasoningD:50

.orMessageErrR:1

.derMessageLeaR:50

.kerMessageWorR:50

.eErrorSendMessag:1

.eLeaderSendMessag:50

.eWorkerSendMessag:50

2

2

2

2

2

2

2

2

1

2

2

1

2

2

lkklkklk nmnmn kkkkk nmmnmn )(

otherwise

AGEERROR_MESS

RTH(msg) = EAif

AGEEARTH_MESS

RKER(msg) = WOif

SAGEWORKER_MES

SSENGER(msg) = ME if

MESSAGEMESSENGER_

ADER(msg) = LEif

SAGELEADER_MES

msginleaderCOMLEADER

msgconvi

msgconvi

msgconvi

msgconvi

msgconvi

convi

sender

sender

sender

sender

case

?._

,,

,,

,,

,,

,,

,

otherwise

AGEERROR_MESS

RTH(msg) = EAif

AGEEARTH_MESS

RKER(msg) = WOif

SAGEWORKER_MES

SSENGER(msg) = ME if

MESSAGEMESSENGER_

ADER(msg) = LEif

SAGELEADER_MES

msginleaderCOMLEADER

msgconvi

msgconvi

msgconvi

msgconvi

msgconvi

convi

sender

sender

sender

sender

case

?._

,,

,,

,,

,,

,,

, ),,(' ingCommsTracklModesGoalmemory ),,(' ingCommsTracklModesGoalmemory

217ProcessingRemediation

216ProcessingRecovery

216ProcessingDiagnosis

217ProcessingPrediction

217ProcessingGeneration

217ProcessingSortingAndStorage

Processing

250ReasoningReactive

250ReasoningDeliberatveReasoning

11ReceiveMessageError

250ReceiveMessageLeader

250ReceiveMessageWorker

11SendMessageError

250SendMessageLeader

250SendMessageWorker

Communicating

Identity

pfActions leading to the agent state

Agent State

217ProcessingRemediation

216ProcessingRecovery

216ProcessingDiagnosis

217ProcessingPrediction

217ProcessingGeneration

217ProcessingSortingAndStorage

Processing

250ReasoningReactive

250ReasoningDeliberatveReasoning

11ReceiveMessageError

250ReceiveMessageLeader

250ReceiveMessageWorker

11SendMessageError

250SendMessageLeader

250SendMessageWorker

Communicating

Identity

pfActions leading to the agent state

Agent State

5.5.00

25.25.5.0

25.25.5.0

25.25.5.0

P

Communicating

Reasoning

ProcessingInitial state

0.5

0.5

0.5

1

0.25

0.25

0.25

0.25 Communicating

Reasoning

ProcessingInitial state

0.5

0.5

0.5

1

0.25

0.25

0.25

0.25

5.5.00

25.25.5.0

25.25.5.0

25.25.5.0

P

Communicating

Reasoning

ProcessingInitial state

0.5

0.5

0.5

1

0.25

0.25

0.25

0.25 Communicating

Reasoning

ProcessingInitial state

0.5

0.5

0.5

1

0.25

0.25

0.25

0.25

[Processing] SendMessage (Leader, Worker) [Communicating]

[Reasoning] SendMessage (Leader,Worker)[Communicating]

[Communicating]ReasoningDeliberatve(Leader)[Reasoning]

[Processing] SendMessage (Leader, Worker) [Communicating]

[Reasoning] SendMessage (Leader,Worker)[Communicating]

[Communicating]ReasoningDeliberatve(Leader)[Reasoning]

Swarm Formal Method Model and Outline

Page 16: Families (of Products) in Space

MAS-PL approach

16

Page 17: Families (of Products) in Space

Plan Model

17

Page 18: Families (of Products) in Space

Role Model

18

Page 19: Families (of Products) in Space

19

MaCMAS Traceability Model

Explore Universe

Explore and Discover

Set Objetive and Approach

FlightSearch

new objective

Inform objective

EvaluateInterest

Avoid Crashing

Avoid run aout of power

Protect from solar

storms

measure image

Send Data Earth

Self-Protection

Ab

str

ac

tio

n

La

ye

r 1

Ab

str

ac

tio

n

La

ye

r 2

Ab

str

ac

tio

n

La

ye

r 4

Ab

str

ac

tio

n

La

ye

r 3

Measuresolar storms

Switch off sub-sytems

Use sail as a shield

...

...

...

...

......

Move

Snake Amoeba Rolling

Walk

Gas prop.

Use Sail to Orbit

and flight

Analyse

measure X-ray

Mandatory Optional

At least one of them

Only one of them

DigitalCamera

Optical Camera

If father present, the heir is:

Dependency

Page 20: Families (of Products) in Space

20

Feature Model

Explore Universe

Explore and Discover

Set Objetive and Approach

FlightSearch

new objective

Inform objective

EvaluateInterest

Avoid Crashing

Avoid run aout of power

Protect from solar

storms

measure image

Send Data Earth

Self-Protection

Ab

str

ac

tio

n

La

ye

r 1

Ab

str

ac

tio

n

La

ye

r 2

Ab

str

ac

tio

n

La

ye

r 4

Ab

str

ac

tio

n

La

ye

r 3

Measuresolar storms

Switch off sub-sytems

Use sail as a shield

...

...

...

...

......

Move

Snake Amoeba Rolling

Walk

Gas prop.

Use Sail to Orbit

and flight

Analyse

measure X-ray

Mandatory Optional

At least one of them

Only one of them

DigitalCamera

Optical Camera

If father present, the heir is:

Dependency

Page 21: Families (of Products) in Space

Features and Roles

21

Space

<<Environment>>Solar Disc

stormVector: Vector3stormIntensity:Real

SelfProtecSS

StormVector: Vector3stormIntensity : RealasteroidRelativePos: PosstormType: StormTypes

Role Goal: Self-protectionmRI Meassure Storms Goal: Protect from solar stormmRI offSubSys Goal: Protect from solar stormmRI SailAsShieldGoal: Protect from solar storm

SelfProtecSS

SelfProtecSS

SelfProtecSS

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

offSubSysGoal: Power off subsystemsPattern: self-procedure

In: Out: SelfProtecSS.stormIntensity

SailAsShieldGoal: Use sail as shieldPattern: self-procedure

In: Out: SelfProtecSS.stormVector SelfProtecSS.stormIntensity

MeassureStormsGoal: Meassure Storm RiskPattern: Sense Environment

In: Space.stormVector Space.stormIntensity

Out: SelfProtecSS.stormIntensity SelfProtecSS.stormVector

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

Avoid Crashing

Avoid run aout of power

Protect from solar

storms

Self-Protection

Measuresolar storms

Switch off sub-sytems

Use sail as a shield

Avoidcrashing

AvoidOut power

Prot.Solar St

SelfSelf--ProtectionProtectionRoleRole

<<<<environmetenvironmet>>>>SpaceSpace

Ab

stra

ctio

nL

ayer

3A

bst

ract

ion

Lay

er4

Page 22: Families (of Products) in Space

Commonality

22

Page 23: Families (of Products) in Space

Commonalities

23

0%

20%

40%

60%

80%

100%

120%

AV

OID

-CR

AS

HIN

G

EX

PLO

RE

-AN

D-D

ISC

OV

ER

EX

PLO

RE

-UN

IVE

RS

E

MO

VE

SE

AR

CH

-NE

W-O

BJE

CT

IVE

SE

ND

-DA

TA

-EA

RT

H

SE

LF-P

RO

TE

CT

ION

SE

T-O

BJE

CT

IVE

-AN

D-A

PP

RO

AC

H

ME

AS

UR

E

AV

OID

-OU

T-P

OW

ER

PR

OT

EC

T-F

RO

M-S

OLA

R-S

TO

RM

S

ME

AS

UR

E-S

OLA

R-S

TO

RM

S

SW

ITC

H-O

FF

-SU

BS

YS

TE

MS

US

E-S

HA

IL-A

S-A

-SH

IELD

OR

BIT

AN

D F

LIG

HT

WA

LK

ME

AS

UR

E-I

MA

GE

GA

S-P

RO

PA

GA

TIO

N

US

E-S

AIL

-OR

BIT

-FLI

GH

T

ME

AS

UR

E-X

RA

Y

ME

AS

UR

E-T

EM

PE

RA

TU

RE

EV

ALU

AT

E-I

NT

ER

ES

T

INF

OR

M-O

BJE

CT

IVE

AM

OE

BA

RO

LLIN

G

SN

AK

E

SE

LF-H

EA

LIN

G

LEA

RN

OP

TIC

AL-

CA

ME

RA

DIG

ITA

L-C

AM

ER

A

CO

MM

ON

AL

ITY

Threshold = 60%

Page 24: Families (of Products) in Space

Composition

24

A) Plan Model

B) Role Model

Measure risk of solar

stormsProtecting

[SelProtecSC.stormIntensity > RiskForSystemsFactor]

SailAsShield

[SelProtecSC.stormIntensity > RiskForSystemsFactor]

offSubSysMeasureStorms

Space

<<Environment>>Space

stormVector: Vector3stormIntensity:Real

SelfProtecSC

StormVector: Vector3stormIntensity : RealasteroidRelativePos: PosstormType: StormTypes

Role Goal: Self-protectionmRI Measure Storms Goal: Protect from solar stormmRI offSubSys Goal: Protect from solar stormmRI SailAsShieldGoal: Protect from solar storm

SelfProtecSC

SelfProtecSC

SelfProtecSC

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

offSubSysGoal: Power off subsystemsPattern: self-procedure

In: Out: SelfProtecSC.stormIntensity

SailAsShieldGoal: Use sail as shieldPattern: self-procedure

In: Out: SelfProtecSC.stormVector SelfProtecSC.stormIntensity

MeasureStormsGoal: Measure Storm RiskPattern: Sense Environment

In: Space.stormVector Space.stormIntensity

Out: SelfProtecSC.stormIntensity SelfProtecSC.stormVector

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

A) Plan Model

OrbitingAfter

Measure

[Dist(relativePos,Astero-idRelativePos)<dist]

Measure

[Orbiter.MeasureFi-nished(astModel)]

EscapeOrbit

[not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)]

AdjustOrbit

InformOrbit

Inform Measures

[Orbiter.MeasureFi-nished(astModel)]

EscapeOrbit

Asteroid

Orbiter

1..n

<<Environment>>Asteroid

relativePos: PospData:Data

MeasureGoal: Measure AsteroidPattern: Environmental Int.

In: Orbiter.aste- roidRelativePos

Out: pMeassu- rer.astModel

1..n

OrbitModeller

astData:AteroidDataorbitM: OrbitModel

CalculateOrbit(AsteroidData)::OrbitModel

Role Goal: Calculate orbitsmRI Goals: send orbit models

Report OrbitGoal: Report Orbit

Pattern: CollaborationIn: OrbitMo- deller.orbitM

Out: Orbiter.orbitM

Postcondition:Orbiter.astModel <> empty

Instantiation Rule:(Orbiter.allInstances -> forAll (c | SWARM.pMeasureMeasurers.includes(c))

Guard: Dist(relativePos,AsteroidRelativePos)<dist

Measurer

Orbiter

Orbiter

orbitM: OrbitModelrelativePos: PosasteroidRelativePos: PosastData: AstDataastModel: AstModel

AdjustOrbit(relativePos,orbitM)PProcessData(m:Measure)::ModelPMeasureX(input)::pMeasureAmIInsideOrbit(Pos,OrbitModel)::BoolMeasureFinished(AstModel)::Bool

Role Goal: Maintain Orbit and MeasuremRI Measure Goal: GetModelmRI Orbits Goal: Get the Orbit Model

Receiver

listOfModels:ModellistOfSenders:Sender

Role Goal: Know ModelmRI Goals: get Model

Orbiter

Report Measures

Goal: Distribute results

Pattern: CollaborationIn: Orbiter.astModel

Out: Receiver.astModel

Receiver

1..n

1..n

AdjustOrbit

Goal: Distribute results

Pattern: self-procedureIn: Orbiter.orbitM

Out: Receiver.astModel

Orbiter

EscapeOrbit

Goal: Escape an Orbit

Pattern: self-procedureIn: Orbiter.orbitM

Out:

Orbiter

Postcondition:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:Orbiter.MeasureFi-nished(astModel)

B) Role Model

+

•Compose Roles•Compose Plans•Assign new plans to executing agents

Page 25: Families (of Products) in Space

Composition

25

Page 26: Families (of Products) in Space

Composed Role Model

26

Page 27: Families (of Products) in Space

Composed Plan Model

27

Page 28: Families (of Products) in Space

Policies

28

If a spacecraft is orbiting and measuring an Role Model

asteroid and it measures that there exists risk of a solar storm, Interaction

the spacecraft must first escape the orbit and later Interaction

power down subsystems and use its sail as a shield Interaction Interaction

Page 29: Families (of Products) in Space

Policy Builder

29

MaCMAS Policy BuilderMaCMAS Policy Builder

Composed Model Initial Model 1 Initial Model 2 Initial Model ...

ABC If Then After Before And Or First Second nth ...

If a spacecraft is orbiting and mesuring an asteroid and it meassures a solar storm, then ….

File Edit View Help

Traceability List of elementsRole Models

Orbiting and mesuring

meassures

Self Protec from solar...

mRIs

Ontologies

...meassures

...

spacecraft

Build policy

Space

<<Environment>>Space

stormVector: Vector3stormIntensity:Real

SelfProtecSC

SelfProtecSC

SelfProtecSC

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

offSubSysGoal: Power off subsystemsPattern: self-procedure

In: Out: SelfProtecSC.stormIntensity

SailAsShieldGoal: Use sail as shieldPattern: self-procedure

In: Out: SelfProtecSC.stormVector SelfProtecSC.stormIntensity

MeasureStormsGoal: Measure Storm RiskPattern: Sense Environment

In: Space.stormVector Space.stormIntensity

Out: SelfProtecSC.stormIntensity SelfProtecSC.stormVector

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

Asteroid

Orbiter

1..n

<<Environment>>Asteroid

relativePos: PospData:Data

MeasureGoal: Measure AsteroidPattern: Environmental Int.

In: Orbiter.aste- roidRelativePos

Out: pMeassu- rer.astModel

1..n

OrbitModeller

astData:AteroidDataorbitM: OrbitModel

CalculateOrbit(AsteroidData)::OrbitModel

Role Goal: Calculate orbitsmRI Goals: send orbit models

Report OrbitGoal: Report Orbit

Pattern: CollaborationIn: OrbitMo- deller.orbitM

Out: Orbiter.orbitM

Postcondition:Orbiter.astModel <> empty

Instantiation Rule:(Orbiter.allInstances -> forAll (c | SWARM.pMeasureMeasurers.includes(c))

Guard: Dist(relativePos,AsteroidRelativePos)<dist

Measurer

Orbiter

SelfProtectingOrbiter

orbitM: OrbitModelrelativePos: PosasteroidRelativePos: PosastData: AstDataastModel: AstModel

StormVector: Vector3stormIntensity : RealstormType: StormTypes

AdjustOrbit(relativePos,orbitM)PProcessData(m:Measure)::ModelPMeasureX(input)::pMeasureAmIInsideOrbit(Pos,OrbitModel)::BoolMeasureFinished(AstModel)::Bool

Role Goal: Maintain Orbit and Measure and self protectionmRI Measure Goal: GetModelmRI Orbits Goal: Get the Orbit Model

mRI Measure Storms Goal: Protect from solar stormmRI offSubSys Goal: Protect from solar stormmRI SailAsShieldGoal: Protect from solar storm

Receiver

listOfModels:ModellistOfSenders:Sender

Role Goal: Know ModelmRI Goals: get Model

Orbiter

Report Measures

Goal: Distribute results

Pattern: CollaborationIn: Orbiter.astModel

Out: Receiver.astModel

Receiver

1..n

AdjustOrbit

Goal: Distribute results

Pattern: self-procedureIn: Orbiter.orbitM

Out: Receiver.astModel

Orbiter

EscapeOrbit

Goal: Escape an Orbit

Pattern: self-procedureIn: Orbiter.orbitM

Out:

Orbiter

Postcondition:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:Orbiter.MeasureFi-nished(astModel) or (SelProtecSC.stormIntensity > RiskForSystemsFactor)

1..n

1..n

1..n

1..n

1..n

1..n

1..n

1..n

Model Elements

Policy Builder

Model Builder

Page 30: Families (of Products) in Space

30

MaCMAS Policy BuilderMaCMAS Policy Builder

Composed Model Initial Model 1 Initial Model 2 Initial Model ...

ABC If Then After Before And Or First Second nth ...

If a spacecraft is orbiting and mesuring an asteroid and it meassures a solar storm, then ….

File Edit View Help

Traceability List of elementsRole Models

Orbiting and mesuring

meassures

Self Protec from solar...

mRIs

Ontologies

...meassures

...

spacecraft

Build policy

Space

<<Environment>>Space

stormVector: Vector3stormIntensity:Real

SelfProtecSC

SelfProtecSC

SelfProtecSC

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

offSubSysGoal: Power off subsystemsPattern: self-procedure

In: Out: SelfProtecSC.stormIntensity

SailAsShieldGoal: Use sail as shieldPattern: self-procedure

In: Out: SelfProtecSC.stormVector SelfProtecSC.stormIntensity

MeasureStormsGoal: Measure Storm RiskPattern: Sense Environment

In: Space.stormVector Space.stormIntensity

Out: SelfProtecSC.stormIntensity SelfProtecSC.stormVector

Guard: SelProtecSC.stormIntensity > RiskForSystemsFactor

Asteroid

Orbiter

1..n

<<Environment>>Asteroid

relativePos: PospData:Data

MeasureGoal: Measure AsteroidPattern: Environmental Int.

In: Orbiter.aste- roidRelativePos

Out: pMeassu- rer.astModel

1..n

OrbitModeller

astData:AteroidDataorbitM: OrbitModel

CalculateOrbit(AsteroidData)::OrbitModel

Role Goal: Calculate orbitsmRI Goals: send orbit models

Report OrbitGoal: Report Orbit

Pattern: CollaborationIn: OrbitMo- deller.orbitM

Out: Orbiter.orbitM

Postcondition:Orbiter.astModel <> empty

Instantiation Rule:(Orbiter.allInstances -> forAll (c | SWARM.pMeasureMeasurers.includes(c))

Guard: Dist(relativePos,AsteroidRelativePos)<dist

Measurer

Orbiter

SelfProtectingOrbiter

orbitM: OrbitModelrelativePos: PosasteroidRelativePos: PosastData: AstDataastModel: AstModel

StormVector: Vector3stormIntensity : RealstormType: StormTypes

AdjustOrbit(relativePos,orbitM)PProcessData(m:Measure)::ModelPMeasureX(input)::pMeasureAmIInsideOrbit(Pos,OrbitModel)::BoolMeasureFinished(AstModel)::Bool

Role Goal: Maintain Orbit and Measure and self protectionmRI Measure Goal: GetModelmRI Orbits Goal: Get the Orbit Model

mRI Measure Storms Goal: Protect from solar stormmRI offSubSys Goal: Protect from solar stormmRI SailAsShieldGoal: Protect from solar storm

Receiver

listOfModels:ModellistOfSenders:Sender

Role Goal: Know ModelmRI Goals: get Model

Orbiter

Report Measures

Goal: Distribute results

Pattern: CollaborationIn: Orbiter.astModel

Out: Receiver.astModel

Receiver

1..n

AdjustOrbit

Goal: Distribute results

Pattern: self-procedureIn: Orbiter.orbitM

Out: Receiver.astModel

Orbiter

EscapeOrbit

Goal: Escape an Orbit

Pattern: self-procedureIn: Orbiter.orbitM

Out:

Orbiter

Postcondition:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:not (Orbiter.AmIInsideOrbit(Orbi-ter.relativePos,Orbiter.orbitM)

guard:Orbiter.MeasureFi-nished(astModel) or (SelProtecSC.stormIntensity > RiskForSystemsFactor)

1..n

1..n

1..n

1..n

1..n

1..n

1..n

1..n

Model Elements

Policy Builder

Model Builder

Enhanced R2D2

Enhanced MaCMAS

Modeling

Elements

Policy analysis

Parts to modifyin XMI format

C

Page 31: Families (of Products) in Space

31

Any problem in computer science can be solved with another layer of indirection.

But that usually will create another problem.

David Wheeler

Page 32: Families (of Products) in Space

32

Thank Youhttp://www.lero.ie