Mda and separation of aspects an approach based on multiples views and subject oriented design
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design PowerPoint PPT Presentation


  • 45 Views
  • Uploaded on
  • Presentation posted in: General

MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design. Quercus Software Engineering Group Computer Science Department University of Extremadura, Spain Pablo Amaya, Carlos González and Juan M. Murillo. Outline. Introduction Model-Driven Architecture

Download Presentation

MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Mda and separation of aspects an approach based on multiples views and subject oriented design

MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design

Quercus Software Engineering Group

Computer Science Department

University of Extremadura, Spain

Pablo Amaya, Carlos González and Juan M. Murillo


Outline

Outline

  • Introduction

    • Model-Driven Architecture

    • The problem!!

  • The proposal

    • Case study

    • Subject Oriented PIM and PSM

    • Traceability, evolution and change impact

  • Conclusions and future works

MDA and Separation of Aspects: an approach based on Viewpoints


Introduction

transformation

transformation

Introduction

CIM

  • Model-Driven Architecture

    • OMG’s initiative

    • To enable Model-Driven Development

    • Three abstraction levels

    • To improve

      • development of large complex system

PIM

PSM

MDA and Separation of Aspects: an approach based on Viewpoints


Introduction1

Introduction

  • Large complex systems

    • e-government

  • Software development with MDA

    • Problems

      • Each model becomes large and monolithic

        • Models are not manageable, reusable, adaptable, etc.

        • Transformations between models are too complex.

    • Objectives

      • To improve :

        • modeling

        • traceability

        • evolution

  • Solution: Separation of Aspects in all MDA levels.

MDA and Separation of Aspects: an approach based on Viewpoints


Introduction2

Introduction

Crosscutting Concerns

==

Aspects

Aspect-Oriented

Software Development

In all levels MDA

Communication

Functionality

Security

CIM2

CIM3

CIM1

CIMN

Viewpoints

PIM2

PIM3

PIM1

PIMN

PSM2

PSM3

PSM1

PSMN

skateholder concerns

MDA and Separation of Aspects: an approach based on Viewpoints


Mda and separation of aspects an approach based on multiples views and subject oriented design

Case Study

Subject Oriented Design

Composition Patterns

Use Case  Subject or CP

MDA and Separation of Aspects: an approach based on Viewpoints


Mda and separation of aspects an approach based on multiples views and subject oriented design

Subject Oriented PIM and PSM

MDA and Separation of Aspects: an approach based on Viewpoints


Mda and separation of aspects an approach based on multiples views and subject oriented design

Subject Oriented PIM and PSM

Transformation/Mapping

Transformation/Mapping

MDA and Separation of Aspects: an approach based on Viewpoints


Traceability evolution and change impact

>

>

e

g

}

r

e

e

m

m

a

<

N

<

y

b

{

>

>

e

g

<

}

<

r

e

m

e

e

r

m

g

m

e

{

>

a

>

b

<

y

N

N

<

a

m

y

e

}

b

{

<<viewCIM>>

<<viewCIM>>

<<viewCIM>>

Traceability, evolution and change impact

StakeInstructorUser

StakeStaffUser

StakeSecExpert

Authenticate

>

>

t

c

a

r

package resolving

package expedient

package security

User

e

t

n

i

>

<

<

>

t

c

i

<

<

a

t

e

r

a

c

t

n

>

>

New

r

Authenticate

e

t

<

n

Expedient

<

User

Create

i

>

o

<

v

>

e

t

<

r

l

c

a

<

<

a

Create

o

p

r

v

e

>

r

e

l

resolving

a

t

>

p

n

>

>

i

<

resolving

Recover

<

<

<

o

v

e

r

l

a

p

>

>

Recover

Expedient

Expedient

CIM

<<interact>>

Transformation

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

StakeStaffUser

<<viewPIM>>

StakeSecExpert

Penalty

Expedient

User

package expedient

<<viewPIM>>

<<subject>>

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

>

>

package resolving

e

<<subject>>

g

getAmount()

getId()

getPersonalData()

}

r

e

e

AuthenticatUser

m

m

<<subject>>

a

<

N

<

getTypePenalty()

getDate()

...

CreatResolving

y

b

{

...

...

notifyResolve()

<<subject>>

b

i

n

RecovExpedient

[

d

<

setAmount()

U

setInstructor()

.....

<

<

s

m

e

e

r

r

,

g

e

g

>

{

>

e

b

y

t

N

setDateExpiration()

storeResolve()

A

a

m

n

e

}

t

e

c

e

d

.....

e

n

t

D

PIM

a

t

a

(

)

>

]

Transformation

bind[<User,getPersonalData()>]

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

Penalty

Expedient

User

StakeStaffUser

<<viewPIM>>

StakeSecExpert

package expedient

<<viewPIM>>

<<subject>>

getAmount()

getId()

getPersonalData()

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

package resolving

getTypePenalty()

getDate()

...

<<subject>>

AuthenticatUser

<<subject>>

...

...

notifyResolve()

CreatResolving

setAmount()

setInstructor()

.....

<<subject>>

i

n

d

b

setDateExpiration()

storeResolve()

RecovExpedient

(

)

>

]

a

t

a

e

n

t

D

e

c

e

d

A

n

t

r

,

g

e

t

U

s

e

[

<

.....

]

>

)

(

a

t

a

D

l

a

n

o

s

r

e

<<subject>>

P

t

PSM

e

g

,

r

JSPserver

e

s

U

<

[

d

n

i

b

MDA and Separation of Aspects: an approach based on Viewpoints


Traceability evolution and change impact1

>

>

e

g

}

r

e

e

m

m

a

<

N

<

y

b

{

>

>

e

g

<

}

<

r

e

m

e

e

r

m

g

m

e

{

>

a

>

b

<

y

N

N

<

a

m

y

e

}

b

{

<<viewCIM>>

<<viewCIM>>

<<viewCIM>>

Traceability, evolution and change impact

StakeInstructorUser

StakeStaffUser

StakeSecExpert

Authenticate

>

>

t

c

a

r

package resolving

package expedient

package security

User

e

t

n

i

>

<

<

>

t

c

i

<

<

a

t

e

r

a

c

t

n

>

>

New

r

Authenticate

e

t

<

n

Expedient

<

User

Create

i

>

o

<

v

>

e

t

<

r

l

c

a

<

<

a

Create

o

p

r

v

e

>

r

e

l

resolving

a

t

>

p

n

>

>

i

<

resolving

Recover

<

<

<

o

v

e

r

l

a

p

>

>

Recover

Expedient

Expedient

CIM

<<interact>>

Transformation

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

StakeStaffUser

<<viewPIM>>

StakeSecExpert

Penalty

Expedient

User

package expedient

<<viewPIM>>

<<subject>>

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

>

>

package resolving

e

<<subject>>

g

getAmount()

getId()

getPersonalData()

}

r

e

e

AuthenticatUser

m

m

<<subject>>

a

<

N

<

getTypePenalty()

getDate()

...

CreatResolving

y

b

{

...

...

notifyResolve()

<<subject>>

b

i

n

RecovExpedient

[

d

<

setAmount()

U

setInstructor()

.....

<

<

s

m

e

e

r

r

,

g

e

g

>

{

>

e

b

y

t

N

setDateExpiration()

storeResolve()

A

a

m

n

e

}

t

e

c

e

d

.....

e

n

t

D

PIM

a

t

a

(

)

>

]

Transformation

bind[<User,getPersonalData()>]

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

Penalty

Expedient

User

StakeStaffUser

<<viewPIM>>

StakeSecExpert

package expedient

<<viewPIM>>

<<subject>>

getAmount()

getId()

getPersonalData()

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

package resolving

getTypePenalty()

getDate()

...

<<subject>>

AuthenticatUser

<<subject>>

...

...

notifyResolve()

CreatResolving

setAmount()

setInstructor()

.....

<<subject>>

i

n

d

b

setDateExpiration()

storeResolve()

RecovExpedient

(

)

>

]

a

t

a

e

n

t

D

e

c

e

d

A

n

t

r

,

g

e

t

U

s

e

[

<

.....

]

>

)

(

a

t

a

D

l

a

n

o

s

r

e

<<subject>>

P

t

PSM

e

g

,

r

JSPserver

e

s

U

<

[

d

n

i

b

MDA and Separation of Aspects: an approach based on Viewpoints


Adding aspects viewpoints

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

StakeStaffUser

<<viewPIM>>

StakeSecExpert

package expedient

<<viewPIM>>

<<subject>>

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

>

>

package resolving

e

<<subject>>

g

}

r

e

e

AuthenticatUser

m

m

<<subject>>

a

<

N

<

CreatResolving

y

b

{

<<subject>>

i

n

d

b

>

RecovExpedient

>

(

)

>

]

a

t

a

e

n

t

D

e

c

e

d

A

n

t

r

,

g

e

t

U

s

e

[

<

e

g

<

}

<

r

e

m

e

e

r

m

g

m

]

e

{

>

>

a

>

b

)

<

y

(

N

N

a

<

a

t

a

m

y

e

D

}

b

l

a

{

n

o

s

r

e

<<subject>>

P

t

e

g

,

r

JSPserver

e

s

U

<

[

d

n

i

b

<<viewCIM>>

<<viewCIM>>

<<viewCIM>>

Adding Aspects -- viewpoints

StakeInstructorUser

StakeStaffUser

StakeSecExpert

New requirement

package resolving

package expedient

package security

i

<

<

t

e

r

a

c

t

n

>

>

New

Authenticate

<

Expedient

<

User

>

o

v

>

e

t

r

l

c

a

a

Create

p

r

>

e

t

>

n

i

<

resolving

<

<

<

o

v

e

r

l

a

p

>

>

Recover

Expedient

Persistence

<<interact>>

bind[<{Expedient,Use},{setInstructor(),storeResolve(),notifyResolve()}>]

<<viewPIM>>

StakeStaffUser

<<viewPIM>>

Repository

StakeSecExpert

package expedient

<<viewPIM>>

<<subject>>

StakeInstructorUser

NewExpedient

package security

<ClassAuth,

_AuthOp(..)>

>

>

package resolving

e

<<subject>>

g

}

r

e

e

AuthenticatUser

m

m

<<subject>>

a

<

N

<

CreatResolving

y

b

{

<<subject>>

b

i

n

RecovExpedient

[

d

<

U

<

<

s

m

e

e

r

r

,

g

e

g

>

{

>

e

b

y

t

N

A

a

m

n

e

}

t

e

c

e

d

e

n

t

D

To add these aspect to the three levels

a

t

a

(

)

>

]

bind[<User,getPersonalData()>]

Complete views or aspects can be modeled and can be added to MDA repositoires

MDA and Separation of Aspects: an approach based on Viewpoints


Conclusions and future works

Conclusions and Future Works

  • Improvements in MDA

    • Concurrent Development

    • Evolution

      • Change Impact

        • Additive vs Invasive

      • Change propagation

    • Traceability

    • Models more reusable, manageable and adapatable

    • To allow us to develop aspect repositories

  • Future work directions

    • In general: To mature the proposal

      • A Foundation for view repositories

    • To model CIM with other diagrams

      • Workflow, domain models,activity diagrams. etc.

    • To enhance relationships between views

    • Intregation of views at model or code level

      • Order of composition

    • Consistency Check

    • Transformations between aspect-models

MDA and Separation of Aspects: an approach based on Viewpoints


Mda and separation of aspects an approach based on multiples views and subject oriented design1

MDA and Separation of Aspects: An approach based on multiples views and Subject Oriented Design

Quercus Software Engineering Group

University of Extremadura, Spain

Pablo Amaya, Carlos González and Juan M. Murillo

http://quercusseg.unex.es

[email protected]


  • Login