1 67 - - PDF document

1
SMART_READER_LITE
LIVE PREVIEW

1 67 - - PDF document

! "# o Carnegie Mellon Carnegie Mellon


slide-1
SLIDE 1

1

  • Carnegie Mellon

Carnegie Mellon

  • !
  • "#

n

  • n

$ n %##

  • #&'

(

n ) ' ' )

*

)+!

  • ,#-
  • n

).) n , n ) #

  • )#

n & ! n &! n . ! n ) !

A B C D /

!

  • #

n #" n #" n ) " n " n )" n " n 0

"

  • 1

) )

  • Always include a legend
  • Define precisely what the boxes mean
  • Define precisely what the lines mean
  • Don’t mix viewtypes unintentionally

n Recall: Module (classes), C&C (components)

  • Supplement graphics with explanation

n Very important: rationale (architectural intent)

  • Do not try to do too much in one diagram

n Each view of architecture should fit on a page n Use hierarchy

2

+$#3

  • # ) #.

n # n "# ) ) 4

  • )

#

slide-2
SLIDE 2

2

5

67+

  • !

" ! "

  • #
  • $
  • %&

'(

8

67

  • &%

) *)

  • *)
  • +

)

  • !

" ! "

  • *)
  • !"
  • #
  • 9

+$:

  • ;

#

  • :#&##

)

(

  • !
  • "#

!

+#73

! $!

  • %
  • &
  • %
  • &
  • $
  • '(
  • )$
  • $
  • !

) ! )

  • !

$

  • !
  • $

*

  • $

+ $

  • , !-

! ,$!- ,'(

  • ) #
  • <)
  • + # '

#=))>=?

  • ))='

n ##) n ## n ##.#)@<). ##># ''A? n ##&) #

slide-3
SLIDE 3

3

*

# =))

  • B #

n C# n ; #<)) # n ) # n #@ #))) n n = n : # n ) #

/

  • @D
  • @

1

  • D

n #+#'+#'+#'0

  • #

n

  • n

C

  • C#

n ")

2

#

  • #

n C# # A

  • n

# # A

Component Port

5

C

  • n

C# # E=

  • +

>&“#”?

Connector Role

8

  • n

=& ##A

Attachment

slide-4
SLIDE 4

4

9

  • n

#'' '

  • (

C#")

Connector Component Port Role Attachment Binding Binding Attachment Representation

  • %

n

  • #)!

n #

  • # )!

n C

  • !

n 3

  • # !

n '# ''A

  • )))'# '

')AA#! n , #

  • +>+?

n 6!

  • )
  • ;.)#))7
  • n
  • B. #'E)+'

n )'' n ) .#F $G.)H )

  • ##

))7)$

n

  • B. #)&)

n )) # n ))'# ))

*

7 #

  • #)!

n )#&) n ## n . # # # !

  • ## )!

n ! n #! n )!

?

/

  • B. # #&
  • B. # #

A

n # n 0 A n ##

Client Client Client Server

Incomplete!

Client Client Server

Complete

Client Server

slide-5
SLIDE 5

5

1

  • B. #&)
  • % # #.
  • >?

&I A

  • B. #+#) #.

J A

2

#)

  • ))

n "#) n ) ##

  • > #' #?'A#'

A #'0

  • B. #

n ## # ### n #

  • +#

n , n :

5

C

Component Type naïve-client = { Port Request = { Property protocol = rpc-client }; Property request-rate : integer << default = 0; units = “rate-per-sec” >>; Invariant forall p in self.Ports | (p.protocol = rpc-client); Invariant size(Ports) <= 5; Invariant request-rate >= 0; Heuristic request-rate <= 100; }

8

  • B. #
  • &

J

n ## n C

  • &)@)

##

n ' #' #. #)

9

  • +#$

n 8 ##>'' 0? n #> $' '#? n ,#

  • )#

)

n +B) ) *8 &#

*(

State Query Command Submit Command Notif. Measurement Query State Update State Notification Constraint Execution

slide-6
SLIDE 6

6

*

  • B. #C
  • #)
  • !"
  • >

##?

numberOfPorts (self, MeasurementNotifReqrPortT) == numberOfPorts (self, MeasurementQueryProvPortT)

*

&)C

**

C

  • C/GB $(

E#A,( @ & ' @AB# E#A

  • D##

< A,< ## )A, AH

*/

&)C

  • #)
  • #"$
  • >

##?

> 6>' E?K? A ):#J >??F

  • L0

*1

<) ##

  • % ## '

)###

  • &##

#

  • ;#)#

n $) )# )#) n &) ))) #'

  • *2

n F n C$.) '&

n n C$.) '&

n "&#)# n J $F #A

slide-7
SLIDE 7

7

*5

  • +GH '
  • 6&

#

n #' n ##' n A

  • 6# .#'
  • *8
  • B. #

#

B#

*9

B#

.# !

  • )#

$ !

  • :)

!

  • :)

!

  • #

&!

  • :@

#!

Hospital MIS System

simple-server

  • p-db-1

pharmacy-ui

p-ui

microbiology-ui

m-ui

  • m-db-1

infectious-diseases-ui trend-tracker

i-ui p-db-2 m-db-2

/(

E)J&+(

  • "$)&

n E $)# >A)A'D,D6'? n #

  • n

:$)M# n #AA' # 'M )$

  • $)&)#

$A

n N&' '

/

E)J&+(

  • n

)M n ) #M

  • #

n M$ n .#'# n M..#

/

E)J&

  • ;<> #?
  • ) M#)$
  • )$)
  • $)
  • = M ##
  • +)#M#
  • J )M
  • <'AA'#&

n , '$)M #F&## n D$ # )"' )M># ?

slide-8
SLIDE 8

8

/*

J##

n → #) # n + → )#)

  • #
  • ;E)J&

#

//

#)D

n M #) # .)

n )M

n #

  • C#

n )

/1

)

Family PerformanceFam = { Component Type PerformanceComponent = { perf-replication : int; perf-overloaded : boolean; perf-serviceTime : float; perf-responseTime : float; perf-utilization : float; … } Connector Type PerformanceConnector = { perf-delayTime : float; … } … }

/2

)++D

Family WebThreeTier extends PerformanceFam with { Component Type BrowserT extends PerformanceComponent with {…} Component Type SqlDataStore extends PerformanceComponent with {…} Component Type BusinessLogic extends PerformanceComponent with {…} … }

/5

)

System med-informatics : ThreeTierFam = { Component infectious-diseases-ui : BrowserT = {…}; Component microbiology-ui : BrowserT = {…}; Component pharmacy-ui : BrowserT = {…}; Component simple-server : ServerT = { Property perf-replication = 10; … }; Component trend-tracker : ServerT = { Property perf-replication = 1; … }; . . .

/8

  • EJB. #=#

; # ##

n n n

Hospital MIS System

simple-server

  • p-db-1

pharmacy-ui

p-ui

microbiology-ui

m-ui

  • m-db-1

infectious-diseases-ui trend-tracker

i-ui p-db-2 m-db-2

Component microbiology-db = { Ports {…}; Property localPerformance = [ replication = 2; serviceTime = 1000ms;

  • utputMessagePaths = […];

]; Property computedPerformance = [ … ? ]; };

slide-9
SLIDE 9

9

/9

  • EJB. #B )

#

Hospital MIS System

simple-server

  • p-db-1

pharmacy-ui

p-ui

microbiology-ui

m-ui

  • m-db-1

infectious-diseases-ui trend-tracker

i-ui p-db-2 m-db-2

+ # # ## )

System hospitalMIS = { … Property systemPerformance = [ avgResponseTime = 2784ms; avgSystemMsgs = 2.342; ]; Component microbiology-db = { Ports {…}; Property localPerformance = […]; Property computedPerformance = [ avgResponseTime = 2143ms; avgQueueLength = 0.923; avgUtilization = 0.48;

  • verloaded = false;

]; }; };

1(

  • , >))?

n ## ## n )# > #? n ## n

  • , >?

n ##

1

C

  • +G&H >

?

1

)!

1*

))

  • ) # &##
  • %

n ###$ $& n

  • B. >A)A'?)
  • %

n

  • n

.# #

  • &'

n ##A n

  • D. ###)

n C$))##

  • &'

n

  • n

& ) n # #

1/

  • B. #C#
  • "##C"&

)

n C# n ) &

  • ,

n # n #)''#

  • D .#

A

slide-10
SLIDE 10

10

11

C

  • C! Lλ+
  • λ #-
  • + #
  • 12

C"&) B. #

R1 R2 Rn

... Serial Composition

∏ =

= n i i sys

R R

1 Parallel Composition ...

R1 R2 Rn

( )

∏ − − =

= n i i sys

R R

1

1 1

15

C"&) >C"? #

  • # #

n

  • n
  • n

n

  • + #

>?A

n D'O95P' 'GB.)C"&) H';+ C#;B951(

18

C"B. #

)N@ Q

WWW Server

2 failures/1000h

Database A 3 Database A 1 Database A 2 Java Client 10 server machine client machine

) ( 10 2 4 2 1 3 2 ≥ + = = = + + + = n for n client

server system client server

λ λ λ λ λ

88.7% 80.3% 72.6% 65.7% 59.5%

0% 25% 50% 75% 100%

1 2 3 4 5

Number of clients Overall System Reliability (after 10 hours)

* Example borrowed from [AbdAllah97] ! Lλ+

19

#)"

  • )@)##!
  • ,)!
  • D## #!
  • D #)!
  • D #)

)!

  • ,D ##'))!
  • ,D 'D!

F1 F2 Pipe

2(

E