11.10.2013 Views

Preserving Software Quality Characteristics from Requirements ...

Preserving Software Quality Characteristics from Requirements ...

Preserving Software Quality Characteristics from Requirements ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

<strong>Preserving</strong> <strong>Software</strong> <strong>Quality</strong> <strong>Characteristics</strong><br />

<strong>from</strong> <strong>Requirements</strong> Analysis to Architectural Design<br />

EWSA 2006<br />

Holger Schmidt and Ina Wentzlaff<br />

University Duisburg-Essen · Faculty of Engineering<br />

Department of Computer Science · <strong>Software</strong> Engineering<br />

Germany<br />

September 5th, 2006<br />

1 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Motivation: Handling of <strong>Quality</strong> <strong>Characteristics</strong><br />

➠ <strong>Software</strong> systems have quality characteristics<br />

➠ such as usability and security<br />

Problems:<br />

➠ many established mechanisms to provide quality<br />

characteristics, but choosing a suitable mechanism for a<br />

certain aspect is difficult<br />

➠ adequate handling of quality characteristics at different<br />

stages of the software life cycle is a very challenging task<br />

Contribution:<br />

➠ pattern-based software development method for building<br />

high quality software<br />

➠ preserving quality characteristics using a role-driven<br />

mapping of requirements analysis documents to<br />

architectural design artifacts<br />

2 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Problem Frames<br />

in general<br />

➠ invented by Michael Jackson (no, not the singer )<br />

➠ patterns considering different classes of software<br />

development problems<br />

➠ means for requirements engineering<br />

for quality<br />

➠ localize quality characteristics in relation to a subset of<br />

overall system functionality<br />

➠ Usability: HCI Frames<br />

➠ Security: security problem frames and<br />

concretized security problem frames<br />

3 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Pattern Example: Problem Frame<br />

“Commanded Workpiece Display”<br />

CWPD<br />

machine<br />

WP!Y2<br />

MA!E1<br />

MA!E2<br />

workpiece<br />

display<br />

Y5<br />

Y4<br />

OP!E3<br />

operator<br />

E3<br />

Req.<br />

E3 {operator events}<br />

E1 {machine commands}<br />

Y2 {workpiece status} corresponds to desired status Y4<br />

3 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Application Example: Chat<br />

System Mission<br />

Duck<br />

Elephant Mouse<br />

A text-message-based communication platform shall be<br />

developed which allows multi-user communication via private<br />

I/O-devices.<br />

4 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Overview: <strong>Software</strong> Development Method<br />

Step 1 Understand the problem situation<br />

Step 2 Decompose complex problem into<br />

several simple subproblems<br />

Step 3 Fit subproblems to problem frames<br />

Step 3a Identify quality characteristics<br />

Step 3b Classify subproblems according to<br />

quality demands<br />

Step 3c Resolve conflicting<br />

quality characteristics<br />

Step 4 Instantiate corresponding architectural styles and<br />

design patterns<br />

Step 5 Compose final software out of several subsolutions<br />

Result abstract implementation concept which constitutes<br />

a starting point for further development<br />

5 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Pattern Example: Problem Frame<br />

“Commanded Workpiece Display”<br />

(simplified diagram)<br />

CWPD<br />

machine<br />

workpiece<br />

display<br />

operator<br />

Req. On behalf of an operator<br />

workpiece changes will be executed<br />

and indicated on a display.<br />

Req.<br />

6 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Pattern Example: HCI Frame<br />

“Commanded Workpiece Display”<br />

CWPD<br />

machine<br />

Usability concerns:<br />

workpiece<br />

meta inform.<br />

workpiece<br />

display<br />

operator<br />

1. Information about a workpiece shall be provided.<br />

2. The operator of a workpiece shall be indicated.<br />

Usability<br />

Req.<br />

6 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Instance Example: HCI Frame Diagram<br />

“Commanded Workpiece Display”<br />

CWPD<br />

machine<br />

Chat<br />

ID<br />

Text−<br />

message<br />

Display<br />

User<br />

workpiece<br />

meta inform.<br />

workpiece<br />

display<br />

operator<br />

R1 Users can phrase text-messages,<br />

Elephant<br />

which are shown on their private graphical displays.<br />

Usability<br />

R5 Each text-message is related to its respective user, so<br />

that the originator of a message can be identified. 6 / 15<br />

R5<br />

R1


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Instance Example:<br />

Security Problem Diagram for Anonymity<br />

Chat<br />

User<br />

ID<br />

Receiving<br />

users<br />

Security concern (Anonymity):<br />

subject<br />

identity<br />

malicious subject<br />

Duck<br />

Elephant<br />

SR User’s ID shall be unknown to receiving users.<br />

SR<br />

Mouse<br />

7 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Identify Conflicting <strong>Quality</strong> <strong>Characteristics</strong><br />

Conflict at interface Chat ID<br />

Security concern:<br />

The identity of an operator<br />

shall be anonymous<br />

Usability demand:<br />

The operator of a workpiece<br />

shall be indicated<br />

CWPD<br />

machine<br />

Chat<br />

ID<br />

Text−<br />

message<br />

Display<br />

User<br />

display<br />

vs.<br />

workpiece<br />

meta inform.<br />

workpiece<br />

operator<br />

Security<br />

SR<br />

Usability<br />

R5<br />

R1<br />

8 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Instance Example: Concretized Security Problem<br />

Diagram for Pseudonymity<br />

Chat<br />

User<br />

ID<br />

subject<br />

identity<br />

pseudonym<br />

Nickname<br />

malicious subject<br />

Receiving<br />

users<br />

Duck<br />

CSR User’s nickname shall be known,<br />

but ID shall be unknown to receiving users.<br />

Elephant<br />

CSR<br />

blue animal<br />

Mouse<br />

8 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Deriving Design<br />

Aim: smooth transition <strong>from</strong> analysis to design<br />

➠ Maintaining identified quality characteristics<br />

➠ Role-driven mapping of problem frames to architectural<br />

styles and design patterns<br />

machine<br />

...<br />

model<br />

Controller Chat<br />

Textmessage<br />

myModel<br />

myView<br />

initialize(Model,View)<br />

handleEvent<br />

update<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

model<br />

view<br />

ID<br />

Display<br />

➠ Each found frame instance assigns values to accordant<br />

subsolution patterns<br />

➠ Composing final software out of several subsolutions<br />

9 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

CWPD<br />

machine<br />

Chat<br />

ID<br />

Text−<br />

message<br />

Display<br />

User<br />

workpiece<br />

meta inform.<br />

workpiece<br />

display<br />

operator<br />

Usability<br />

R5<br />

R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

CWPD<br />

machine<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Text−<br />

message<br />

Display<br />

user<br />

workpiece<br />

meta inform.<br />

workpiece<br />

display<br />

operator<br />

Usability<br />

R5<br />

R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Text−<br />

message<br />

Display<br />

user<br />

workpiece<br />

meta inform.<br />

workpiece<br />

display<br />

Usability<br />

R5<br />

R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

attach<br />

call service<br />

Model<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Identity<br />

Textmessage<br />

MessageText<br />

TMMeta:ID<br />

editTM<br />

workpiece<br />

meta inform.<br />

user<br />

workpiece<br />

display<br />

Usability<br />

R5<br />

Display R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

attach<br />

call service<br />

Model<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Identity<br />

Textmessage<br />

MessageText<br />

TMMeta:ID<br />

editTM<br />

user<br />

display<br />

Usability<br />

R5<br />

Display R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

attach<br />

call service<br />

Model<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Identity<br />

Textmessage<br />

MessageText<br />

TMMeta:ID<br />

editTM<br />

getData<br />

attach<br />

create Display<br />

manip.<br />

display<br />

user<br />

TMDisplay<br />

Usability<br />

R5<br />

R1<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Model-View-Controller Architecture<br />

of Chat Application (Usability)<br />

attach<br />

call service<br />

Model<br />

Chat<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

control<br />

ID<br />

Identity<br />

Textmessage<br />

MessageText<br />

TMMeta:ID<br />

editTM<br />

getData<br />

attach<br />

create Display<br />

manip.<br />

user<br />

TMDisplay<br />

10 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Proxy Architecture<br />

of Chat Application (Security)<br />

User!sendTM<br />

Chat<br />

User<br />

ID<br />

subject<br />

identity<br />

pseudonym<br />

Nickname<br />

malicious subject<br />

Receiving<br />

users<br />

CSR<br />

11 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Proxy Architecture<br />

of Chat Application (Security)<br />

RealSubject<br />

Chat_if<br />

sendTM(Subject,TM)<br />

Chat<br />

sendTM(Nickname,TM)<br />

User!sendTM<br />

User<br />

ID<br />

Nickname<br />

ChatProxy<br />

sendTM(ID,TM)<br />

subject<br />

Identity<br />

Pseudonym<br />

Proxy<br />

CSR<br />

sendTM(id : ID,tm : TM){<br />

Chat.sendTM(getNickname(id),tm);<br />

}<br />

11 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Summary of Chat Application Architecture<br />

ChatApplication<br />

Model<br />

network<br />

send/receive messages use display services user input<br />

Nickname<br />

ID<br />

Textmessage<br />

MessageText<br />

TMMeta<br />

editTM<br />

View<br />

Display<br />

display user<br />

Controller<br />

Chat<br />

read data <strong>from</strong> model execute user control<br />

use model services<br />

phraseTM<br />

sendTM<br />

signUpChatSession<br />

ChatProxy<br />

sendTM<br />

12 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Conclusion<br />

➠ Patterns help<br />

◮ avoiding omissions<br />

◮ covering functional as well as quality characteristics<br />

➠ Method allows stepwise solution of given development problem:<br />

◮ Understanding the problem situation and<br />

decomposing it into several subproblems<br />

◮ Identifying functional and quality characteristics and<br />

instantiating accordant (specialized) patterns as<br />

HCI Frames, and (concretized) security problems frames<br />

◮ Deal with conflicting quality characteristics<br />

◮ Instantiate corresponding architectural styles and<br />

design patterns by a role-driven mapping preserving<br />

specified quality characteristics<br />

➠ Result is a starting point for low-level design and<br />

implementation<br />

13 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

Future Work<br />

➠ Elaborate more on<br />

◮ conflict resolution<br />

◮ role-driven mapping<br />

◮ influence of domain knowledge<br />

➠ Develop (relatively) complete pattern catalogues<br />

◮ especially for software quality characteristics<br />

➠ Consider later phases of software development life cycle,<br />

e.g. low-level design and coding<br />

◮ integration of component technology<br />

◮ and aspect-orientation<br />

➠ Formalize description of frames<br />

◮ extension of pattern language<br />

➠ Tool-Support<br />

14 / 15


EWSA06<br />

Schmidt,<br />

Wentzlaff<br />

Introduction<br />

Problem Frames<br />

Application<br />

Example: Chat<br />

<strong>Software</strong><br />

Development<br />

Method<br />

<strong>Quality</strong><br />

Frames<br />

HCIFrames<br />

(Concretized)<br />

Security<br />

Problem Frames<br />

Conflict<br />

Resolution<br />

Derive Design<br />

Composed<br />

Architecture<br />

Conclusion &<br />

Future Work<br />

THE END of talk, but time for a chat<br />

Let’s talk it over!<br />

15 / 15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!