systematic architecture design

46
Systematic Architecture Design David Ameller <[email protected]>

Upload: gessi-upc

Post on 28-Jan-2015

119 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Systematic Architecture Design

Systematic Architecture Design

David Ameller

<[email protected]>

Page 2: Systematic Architecture Design

2

Outline

1. Introduction2. Motivation example3. NFR-aware MDD process4. SAD contributions5. Arteon6. Conclusions and future work

Systematic Architecture Design

Page 3: Systematic Architecture Design

3

Systematic Architecture Design

1. INTRODUCTION

Page 4: Systematic Architecture Design

4

Systematic Architecture Design

1.1 (Initial) Objective

Why?NFRs is one of our topics of interest

It is problem with critical consequencesMost existing MDD approaches do not consider NFRs

Define a MDD framework that integrates NFRs

Page 5: Systematic Architecture Design

5

Systematic Architecture Design

1.2 Main topics

Semi-automatic treatment

NFRs MDDAdaptable process

Page 6: Systematic Architecture Design

6

1.3 MDD definition

“Model-driven development is simply the notion that we can construct a model of a system that we can then transform into the real thing”S. Mellor et al., “Model-Driven Development”. IEEE Software, 2003.

Systematic Architecture Design

M2M

M2T

PIM

PSM

Code

HelloWorld

Show()

HelloWorld

Show()

Swing

POJO

JDBC

…show() { print(“Hello World”);

}…

Page 7: Systematic Architecture Design

7

• Modify the M2M transformation in order to support specific NFRs

E.g. Add SOA to the M2M transformation

Increases complexity, longer production if new transformation is needed

• Modify the PSM, the M2T transformation and the generated code

E.g. Modify the code to obtain a service application

Longer production, lower reliability, and worse maintenance

1.4 State of practice

• NFRs are dealt outside of the MDD processSystematic Architecture Design

This situation is even worse if we consider the current tool limitations

Page 8: Systematic Architecture Design

8

1.5 The role of NFRsSystematic Architecture Design

Req. "The system shall keep our current Data Base Management System (DBMS)”

Many prominent researchers say that NFRs mainly impact on the architecture, more concretely in the decision making process.

Req. "The system shall detect and report unauthorised data accesses”

Security

Integrability

Architectural decisions

Technological decisions

Page 9: Systematic Architecture Design

9

Systematic Architecture Design

2. MOTIVATION EXAMPLE

Page 10: Systematic Architecture Design

10

2. Motivation example (I)• ACME travel agency web portal

• We consider two different scenarios:A. ACME luxury offers vacation packages to exotic

destinations in 5-star hotels.

B. ACME world-wide offers hundreds of packages from other transportation and accommodation sites.

Systematic Architecture Design

Page 11: Systematic Architecture Design

11

2. Motivation example (II)• Both scenarios have common functionalities

User management, payment facilities, searches• But some NFRs are different:

Systematic Architecture Design

ACME Luxury ACME World-wide

Security “The system shall detect and report unauthorised data accesses”

“The system shall detect and report unauthorised data accesses”

Scalability Not important, low expected visitors

“The system should be prepared to high connection demands to ensure the success of the portal”

Page 12: Systematic Architecture Design

12

2. Motivation example (III)• Starting the decision making

The type of application• It is a constraint of the system to be a web application

The architecture of the system• In this example, we focus on the deployment view

Systematic Architecture Design

Page 13: Systematic Architecture Design

13

• Architectural decisions

2. Motivation example (IV)

Single-Server Configuration DBMS separated Firewall Replication

Performance Poor Average Neutral ImproveSecurity Poor Good Improve NeutralAvailability Poor Poor Neutral ImproveMaintenance Good Average Damage DamageScalability Poor Poor Neutral ImproveComplexity Good Average Damage Damage

Systematic Architecture Design

The table is based on S. Ceri et al., Designing Data-Intensive Web Applications, 2002.

Page 14: Systematic Architecture Design

14

2. Motivation example (V)Systematic Architecture Design

ACME Luxury

ACME World-wide

Different NFR specifications lead to different software systems

Our position is that it should be possible to generate both systems with a MDD process that considers NFRs

Page 15: Systematic Architecture Design

15

Systematic Architecture Design

3. NFR-AWARE MDD PROCESS

Page 16: Systematic Architecture Design

16

Systematic Architecture Design

3. Our proposal

• We explore two variants of the MDD process: Automatic and Interactive

Drive

Compliance

ADsNFRs

A MDD process should be able to deal with NFRs and should be able to certify that the result is compliant with the initial NFRs

Page 17: Systematic Architecture Design

17

3.1 Automatic NFR-aware MDD

• All requirements are specified at PIM level

• We propose to use M2M transformations able to deal with NFRs (M2March, M2Mtech)

• We propose an intermediate model (PIM/PSM) to reflect architectural decisions made from NFRs

• The code (software product) is compliant with the stated NFRs

Systematic Architecture Design

Page 18: Systematic Architecture Design

18

3.2 Interactive NFR-aware MDD

• The first approach is conceptually sound but may be too complex

• In this case PIM is unaware of NFRs

• We propose to use human interaction to obtain NFRs (with architectural and technological consequences)

• Hybrid approaches are possible

Systematic Architecture Design

Page 19: Systematic Architecture Design

19

3.3 Firewall example• Deciding the need of firewall components

Systematic Architecture Design

Page 20: Systematic Architecture Design

20

3.4 Benefits of our proposal

NFRs are fully integrated into MDDNo need to modify the codeArchitectural decisions depend on NFRsKnowledge reuse

Systematic Architecture Design

VS.

Page 21: Systematic Architecture Design

21

3.5 Drawbacks of our proposal

New model (PIM/PSM) need to be maintainedNew transformations are neededWe need to maintain the architectural knowledge

Systematic Architecture Design

VS.

Page 22: Systematic Architecture Design

22

Systematic Architecture Design

4. SAD CONTRIBUTIONS

Page 23: Systematic Architecture Design

23

NFRs

AK MDD

Help

to d

iscov

er a

nd

reas

on a

bout

Adaptable process

Need of detailed knowledge

Architectural design as part of the process

NFRs

AK MDD

PSMF+NF

PIMF+NF

CodeF+NF

4.1 From MDD to Architecture• What do we need to do?

The main effort should be to include architectural design as part of the MDD.

Systematic Architecture Design

M2MArch

M2T

PIM/PSMF+NF

M2MTech

Page 24: Systematic Architecture Design

24

PIMNF Human support

PIMF

PSMF+NF

Systematic Architecture Design

4.2 SAD Overview

Context

PIMNF

Architecturaldecisions

M2MArch

M2MTech

Architecturalviews

SRSNF

SAD

Page 25: Systematic Architecture Design

25

Systematic Architecture Design

4.2 SAD Overview

Requirements analysis

Human support

SRSNFContext

Architecturaldecision-making

Architecturaldecisions

Quality GoalsAnd

Constraints

Page 26: Systematic Architecture Design

26

Systematic Architecture Design

4.3 Quark method

Knowledge acquisition

Page 27: Systematic Architecture Design

27

Systematic Architecture Design

4.4 Arteon

Arteon

Require-ments

Rationale Structural Elements MDD

Stakeholder needs

Constraints and goals to fulfill

Architecturalelementsto use

Transformationsto apply

Architecturedesign

* One of the design principles recommended the separation of ontology concepts in modules

Page 28: Systematic Architecture Design

28

Systematic Architecture Design

4.5 ArchiTech• Implemented as Eclipse Plugin

To be near the MDD community• Knowledge management is already

implemented• We are working now on the Decision-Making

part of the tool As a difference, the tool will use a question-answer

mechanism to obtain the non-functional aspects• Implemented by Oriol Collell

Page 29: Systematic Architecture Design

29

Systematic Architecture Design

4.6 Empirical studies• “How do Software Architects consider Non-Functional

Requirements: A Survey” Electronic survey, 60 software architects.

• “How do Software Architects consider Non-Functional Requirements: An Exploratory Study” 13 semi-structured interviews.

• “The role of quality attributes in service-based systems design” Electronic survey, 31 SOA software architects.

• Everis collaboration 9 semi-structured interviews.

Page 30: Systematic Architecture Design

30

Systematic Architecture Design

5. ARTEON

Page 31: Systematic Architecture Design

31

Systematic Architecture Design

5.1 Introduction

AK1 = Design + Decisions + Rationale

1Kruchten et al. “Building up and reasoning about architecture knowledge”, 2006.

Ontology-based AK Support System

Page 32: Systematic Architecture Design

32

Systematic Architecture Design

5.2 Arteon overview

Arteon

Require-ments

Rationale Structural Elements MDD

Stakeholder needs

Constraints and goals to fulfill

Architecturalelementsto use

Transformationsto apply

Architecturedesign

* One of the design principles recommended the separation of ontology concepts in modules

Page 33: Systematic Architecture Design

33

Systematic Architecture Design

5.3 Structural Elements (I)

File PHP

Apache

MySQL

Page 34: Systematic Architecture Design

34

Systematic Architecture Design

5.3 Structural Elements (II)Logical Development

Deployment Platform

File PHP

Apache

MySQL

Page 35: Systematic Architecture Design

35

Systematic Architecture Design

5.3 Structural Elements (III)

Page 36: Systematic Architecture Design

36

Systematic Architecture Design

ArchitecturalView

ArchitecturalFramework

Style StyleVariation Component Implemen-

tation

ArchitecturalElement

5.3 Structural Elements (IV)

1*

belong_to

*

belong_to

ViewModel

ArchitecturalView

ArchitecturalFramework

ArchitecturalElement *

Page 37: Systematic Architecture Design

37

Systematic Architecture Design

5.3 Structural Elements (V)3-layer style(Layered style)

Web deployment(DBMS separated)

Web development(Package based)

LAMP(Stack solution)

Architectural views have their own styles

Page 38: Systematic Architecture Design

38

Systematic Architecture Design

5.3 Structural Elements (VI)Variations: • DAO• Controllers• Replication• OSS

Components: • Class, Layer• Package• Server• Script language

DAO and data-mapper are not combinable

Layers are composed by classes

Page 39: Systematic Architecture Design

39

Systematic Architecture Design

ArchitecturalView

ArchitecturalFramework

Style StyleVariation Component Implemen-

tation

ArchitecturalElement

5.3 Structural Elements (VII)

* *incompatible_with

1 *< variation_for

* *connectable_with

* *composable_with

* *< apply_to

* *implementable_with

*1..*

< apply_to

{ Disjoint }

* *related_tospecializes

0..1 *

Style StyleVariation Component Implemen-

tation

Page 40: Systematic Architecture Design

40

Systematic Architecture Design

5.4 Reasoning module (I)

* /set_action_over

Decision

Decisional Element

Existence Decision

PropertyDecision

Element Property

Quality Attribute

Attribute

1..*

**

/give_value1..*

*

/set_condition

{ disjoint, complete}

{ disjoint, complete}

* *

*

*

impose /have_impact_onDecision

Decisional Element

Existence Decision

PropertyDecision

Element Property

Quality Attribute

Attribute

ArchitecturalElement

Page 41: Systematic Architecture Design

41

Systematic Architecture Design

5.4 Reasoning module (II)

* /set_action_over1..*

**

/give_value1..*

*

/set_condition

{ disjoint, complete}

{ disjoint, complete}

* *

*

*

impose /have_impact_onDecision

Decisional Element

Existence Decision

PropertyDecision

Element Property

Quality Attribute

Attribute

ArchitecturalElement

“use only OSS”

Property “License” equal “OSS”

Property “License”

Element “Apache”

Element “Apache” has the value “OSS” for the property “License”

Page 42: Systematic Architecture Design

42

Systematic Architecture Design

5.5 Benefits of Arteon

Ontology-based AK Support System

Share AK between architects

Reuse AK between projects

Community oriented solution

More reliability to architecture design

Decision-making guidance

Page 43: Systematic Architecture Design

43

Systematic Architecture Design

6. CONCLUSIONS AND FUTURE WORK

Page 44: Systematic Architecture Design

44

6.1 Conclusions• We have…

Formulated an NFR-aware general process• Explored variations of this process• Compared all different alternatives

Described the SAD role and its contributions• ArchiTech, Arteon, Quark, …

Went into the details of Arteon

Systematic Architecture Design

Page 45: Systematic Architecture Design

45

6.2 Future work• Our research agenda includes:

In relation to the presented work• Consider the bottom-up process• Include correctness and completeness• Implement the key-parts of the framework• Modeling NFRs as part of the MDD process

Drive empirical studies to:• Obtain Architectural Knowledge• Understand the architectural design practice (NFRs)• Validate the ontology in a case studyS

ystematic Architecture Design

Page 46: Systematic Architecture Design

Comments and Questions

David Ameller<[email protected]>