Software Architectural Descriptions in CCS and PI-calculus Sandeep - - PowerPoint PPT Presentation

software architectural descriptions in ccs and pi calculus
SMART_READER_LITE
LIVE PREVIEW

Software Architectural Descriptions in CCS and PI-calculus Sandeep - - PowerPoint PPT Presentation

Outline Overview of CCS Formalizing Software Connectors References Software Architectural Descriptions in CCS and PI-calculus Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay April 12, 2010 Sandeep Nimmakuri Guide:Prof.


slide-1
SLIDE 1

Outline Overview of CCS Formalizing Software Connectors References

Software Architectural Descriptions in CCS and PI-calculus

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi

IIT Bombay

April 12, 2010

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-2
SLIDE 2

Outline Overview of CCS Formalizing Software Connectors References

Outline

1 Overview of CCS 2 Formalizing Software Connectors 3 References

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-3
SLIDE 3

Outline Overview of CCS Formalizing Software Connectors References

Outline

1 Overview of CCS 2 Formalizing Software Connectors 3 References

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-4
SLIDE 4

Outline Overview of CCS Formalizing Software Connectors References

Why CCS and PI calculus

Description of architectures Formalization architectures

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-5
SLIDE 5

Outline Overview of CCS Formalizing Software Connectors References

Agent

Figure: Agent

C = in(x).C ′(x) C(x) = out(x).C [Mil82]

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-6
SLIDE 6

Outline Overview of CCS Formalizing Software Connectors References

Basic Combinators

Summation A + B Composition A | B Restriction A = a.ta..A B = a.B C = (A | B)\a Relabeling A = a.b.A B = a1.b1.B C = x.y.C now we can say that A is same as C[a/x,b/y] B is same as C[a1/x,b1/y]

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-7
SLIDE 7

Outline Overview of CCS Formalizing Software Connectors References

labeled transition

Figure: Transition

A = a.A′ + b.A B = b.B + c.B now transition can be defined as A | B a − → A′|B [kV06]

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-8
SLIDE 8

Outline Overview of CCS Formalizing Software Connectors References

Outline

1 Overview of CCS 2 Formalizing Software Connectors 3 References

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-9
SLIDE 9

Outline Overview of CCS Formalizing Software Connectors References

Semaphore

Figure: Semaphore

Semaphore = p.v.Semaphore P1 = p.v.P1 P2 = p.v.P2 SEM = Semaphore | P1 | P2 [MMP00]

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-10
SLIDE 10

Outline Overview of CCS Formalizing Software Connectors References

No two process are in critical section at same time whenever there is p then eventually finally v should be present prop p1 = AG(not(< tp >< tp >tt)) prop p2 = AG(not(< tp >tt) ∨ AF(< tv >tt))

Table: CTL properties for Semaphore

proc Semaphore = p.tp.v.tv.Semaphore proc P1 = ’p.’v.P1 proc P2 = ’p.’v.P2 proc SEM = (Semaphore | P1 | P2)\{p,v}

Table: CWB-mahine for Semaphore

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-11
SLIDE 11

Outline Overview of CCS Formalizing Software Connectors References

Pipe

Figure: Pipe

Pipe = in.out.Pipe —–use of Pipe——— Source = in.Source Destination = out.Destination PIPE = Source | Pipe | Destination

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-12
SLIDE 12

Outline Overview of CCS Formalizing Software Connectors References

The data sent to the pipe must read by first in first out basis by the destination There does not exist two writings of data into the pipe without reading the formar by destination Likewise there does not exist two readings of data without writing into the pipe by source

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-13
SLIDE 13

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = AG(not(< in >< in > tt)) prop p2 = AG(not(< out >< out > tt)) prop p3 = AG(not(< in > tt) ∨ AF(< out > tt))

Table: CTL properties for Pipe

proc Pipe = in.tin.’out.Pipe —–use of Pipe——— proc Source = ’in.Source proc Destination = out.tout.Destination proc PIPE = (Source | Pipe | Destination)\{in,out}

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-14
SLIDE 14

Outline Overview of CCS Formalizing Software Connectors References

Procedure Call

Figure: ProcedureCallConnector

PC = in.din.dout.out.PC ————use of procedure call——— CallingProcedure = in.out.CallingProcedure CalledProcedure = din.dout.CalledProcedure PROC = CalledProcedure|CallingProcedure | PC

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-15
SLIDE 15

Outline Overview of CCS Formalizing Software Connectors References

Whenever Calling function makes ProcedureCall eventually there will always be respnce from called mathod Whenever Called function responces there will be prior call from calling function There is possibilty that calling function makes call followed by PC connector generates the request to the Called Procedure and reply from Called procedure and that forwarded to the Calling functions this sequence of actions may repeat infinite times

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-16
SLIDE 16

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = AG(not(< tin > tt) ∨ AF(< tout > tt)) prop p2 = AG(not(< tout > tt)∪ < tin > tt) prop p3 = max X = < t >< tin >< t >< tdin >< t > < tdout >< t >< tout >X Proc PC = in.tin.’din.dout.tdout.’out.PC ————use of procedure call ——— proc CallingProcedure = ’in.out.tout.CallingProcedure proc CalledProcedure = din.tdin.’dout.CalledProcedure proc PROC = CallingProcedure|CalledProcedure| PC \ {in,out,din,dout}

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-17
SLIDE 17

Outline Overview of CCS Formalizing Software Connectors References

Shared Data

Figure: SharedDataConnector

SharedData = read.SharedData + write.SharedData ————Use of Shared Data—————- User1 = read.User1 + write.User1 User2 = read.User2 + write.User2 SHARE = SharedData | User1 | User2 [AG94]

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-18
SLIDE 18

Outline Overview of CCS Formalizing Software Connectors References

There is a possibility of reading the data by user1 and again read by user2 . This sequence may repeat infinite number of times. There is a possibility of writing the data by user1 and again write by user2 . This squence of actions happens infinite number of times There is a possibility that reading the data and writing the data by signle process. This sequenceo of actions may repeat infinite times. There is a possibility that writing the data and reading the data by signle process. This sequenceo of actions may repeat infinite times.

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-19
SLIDE 19

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = max X = < t >< tread >< t >< tread >X prop p2 = max X = < t >< twrite >< t >< twrite >X prop p3 = max X = < t >< tread >< t >< twrite >X prop p4 = max X = < t >< twrite >< t >< tread >X proc SharedData = read.tread.SharedData + write.twrite.SharedData ————Use of Shared Data—————- proc User1 = ’read.User1 + ’write.User1 proc User2 = ’read.User2+ ’write.User2 proc SHARE = SharedData | User1 | User2 \ { read,write }

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-20
SLIDE 20

Outline Overview of CCS Formalizing Software Connectors References

Figure: CSconnector

CSConnector = req.vreq.vres.res.CSConnector —————————use of CS Connectors——— Client = req.res.Client Server = vreq.vres.Server CS = Client | CSConnector | Server

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-21
SLIDE 21

Outline Overview of CCS Formalizing Software Connectors References

Whenever client makes a request eventually there will always be respnce from server Whenever Server responces there will be prior request from Client There is possibilty that Client makes request followed by CSconnector generates the request to the Server and responce from Server and that forwarded to the Client this sequence of actions may repeat infinite times

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-22
SLIDE 22

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = AG(not(< treq > tt) ∨ AF(< tres > tt)) prop p2 = AG(not(< tres > tt)∪ < treq > tt) prop p3 = max X = < t >< treq >< t >< tvreq >< t > < tvres >< t >< tres >X proc CSConnector = req.treq.’vreq.vres.tvres.’res.CSConnector —————————use of CS Connectors——— proc Client = ’req.res.tres.Client proc Server = vreq.tvreq.’vres.Server proc CS = Client | CSConnector | Server \ { req,res,vres,vreq }

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-23
SLIDE 23

Outline Overview of CCS Formalizing Software Connectors References

Event Channel

Figure: EventChannel

EventChannel = gen . notify . EventChannel ———Use of Event Channel———— EventGenerator = gen . EventGenerator EventHandler = notify . EventHandler EVENT = EventGenerator | EventChannel | EventHandler

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-24
SLIDE 24

Outline Overview of CCS Formalizing Software Connectors References

Whenever event is generated by the event generator there will be notification to the event handler Whenever event notifcation to event handler there will be prior event generation There is a possibility of Event generation and event notification . This sequence of actions may repeat infinite time

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-25
SLIDE 25

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = AG(not(< tgen > tt) ∨ AF(< tnotify > tt)) prop p2 = AG(not(< tnotify > tt) ∪ AF(< tnotify > tt)) prop p1 =max X = < t >< tgen >< t >< tnotify >X proc EventChannel = gen.tgen. ’notify . EventChannel ———Use of Event Channel———— proc EventGenerator = ’gen . EventGenerator proc EventHandler = notify.tnotify. EventHandler proc EVENT = EventGenerator | EventChannel | EventHandler\{ gen,notify }

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-26
SLIDE 26

Outline Overview of CCS Formalizing Software Connectors References

Linkage

Figure: Linkage

Linkage = reqLink.connect.Linkage ——–Use Of Linkage Event—————– Module1 = reqLink.Module1 Module2 = connect.Module2 LINKAGE = Module1 | Linkage | Module2

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-27
SLIDE 27

Outline Overview of CCS Formalizing Software Connectors References

Whenever request for Link to module2 by the Module1 there will be connection to the module2 Whenever connection between module1 and module2 there will be prior request link by the module1 There is a possibility of request link and connection . This sequence of actions may repeat infinite time

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-28
SLIDE 28

Outline Overview of CCS Formalizing Software Connectors References

prop p1 = AG(not(< treqLink > tt) ∨ AF(< tconnection > tt)) prop p2 = AG(not(< tconnection > tt) ∪ AF(< treqLink > tt)) prop p1 =max X = < t >< treqLink >< t >< tconnection >X proc Linkage = reqLink.treqLink.’connect.Linkage ——–Use Of Linkage Event—————– proc Module1 = ’reqLink.Module1 proc Module2 = connect.tconnect.Module2 proc LINKAGE = Module1 | Linkage | Module2

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-29
SLIDE 29

Outline Overview of CCS Formalizing Software Connectors References

Outline

1 Overview of CCS 2 Formalizing Software Connectors 3 References

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-30
SLIDE 30

Outline Overview of CCS Formalizing Software Connectors References

Robert Allen and David Garlan. Formalizing architectural connection. In ICSE ’94: Proceedings of the 16th international conference

  • n Software engineering, pages 71–80, Los Alamitos, CA,

USA, 1994. IEEE Computer Society Press. Aswin kumar V. Architectural Interaction Modeling. 2006.

  • R. Milner.

A Calculus of Communicating Systems. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1982. Nikunj R. Mehta, Nenad Medvidovic, and Sandeep Phadke. Towards a taxonomy of software connectors.

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus

slide-31
SLIDE 31

Outline Overview of CCS Formalizing Software Connectors References

In ICSE ’00: Proceedings of the 22nd international conference

  • n Software engineering, pages 178–187, New York, NY, USA,
  • 2000. ACM.

Sandeep Nimmakuri Guide:Prof. Rushikesh K. Joshi IIT Bombay Software Architectural Descriptions in CCS and PI-calculus