220 likes | 359 Views
Using AADL to Model a Protodol Stack. Didier Delanote, Stefan Van Baelen, Wouter Joosen and Yolande Berbers Katholieke Universiteit Leuven. Contents. Modeling process Structural aspect Behavioral aspect Non-functional aspect Conclusion Discussion. Modeling process. Network architecture
E N D
Using AADL to Model a Protodol Stack Didier Delanote, Stefan Van Baelen, Wouter Joosen and Yolande Berbers Katholieke Universiteit Leuven
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion
Modeling process • Network architecture • set of layers and protocols • Layer • collection of services • offered to higher layers, using services from lower layers • Service • set of operations • implemented using protocols • Protocol • format and semantics of messages • specific to one layer
Modeling process • OSI: Open Systems Interconnection reference model interface n protocol n interface n layer n layer n interface n - 1 protocol n - 1 interface n - 1 layer n - 1 layer n - 1 protocol 2 interface 2 interface 2 layer 2 layer 2 protocol 1 interface 1 interface 1 layer 1 layer 1 entity 1 entity 2
Modeling process • UDP/IP concrete protocol stack interface 4 UDP, ICMP interface 4 Transport layer Transport layer interface 3 IP, ARP interface 3 Network layer Network layer MAC interface 2 interface 2 Data link layer Data link layer IEEE 802.3 interface 1 interface 1 Ethernet layer Ethernet layer entity 1 entity 2
Modeling process • Use AADL to model UDP/IP protocol stack • What requirements should this model conform to? • High-level • Implementation independent • Structured • Precise • Significant level of detail • Unambiguous • Complete • Functional properties • Non-functional properties
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion
Data A A System ADL ADL Structural aspect • Let’s go back for a moment… • Hardware and software description • hardware, software and composite components • predefined component categories • execution platform components • application software components • composite components bus Memory Processor Device Process Subprogram Threadgroup Thread
Structural aspect • Model layer, socket, queue,… as packages of subprograms interface 4 package Transport_Layer public -- data types data PDU_Length properties Language_Support::Data_Format=> Positive; end PDU_Length; data Receive_Fifo properties Language_Support::Data_Format=> Record; end Receive_Fifo; -- … -- subprograms subprogram Init end Init; subprogram Bind features socket: inparameter Network_Entity; end Bind; -- … end Transport_Layer; Transport layer interface 3 Network layer interface 2 Data link layer interface 1 Ethernet layer entity 1
Structural aspect • No generic software component in AADL • Model protocol types as data components • So how to model… • a protocol layer • a software cache • a software fifo • a socket • …
Structural aspect • Packages represent logical grouping of component declarations • AADL packages and Ada packages are similar • Can we use packages to introduce structure in the model? UDP/ICMP UDP/ICMP-frame IP IP-frame ARP Ethernet-frame Ethernet layer
Structural aspect • Problem: packages are no more than grouped declarations • no representation in model • no semantic requirements that enforce package structure • nested packages not allowed package Application public --public part of package -- Processes ------------ process UDPIPdriver end UDPIPdriver; … end Application;
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion
Behavioralaspect • Example subprogram Create_Socket features Domain : inparameter Domain; Con_Type : inparameter Connection; Protocol : inparameter Protocol; Socket_Handle : outparameter Valid_Handle; end Create_Socket; • Allow to model method interfaces • Calls in thread implementation • Behavior of subprogram • modeled with behavior annex
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion
Non-functional aspect • Add properties to analyze system for non-functional properties • Some properties are easy to model • pragma Priority (100);becomes • Language_Support::Priority => 100; • for Application_Task'Storage_Size use 2000; becomes • SEI::RAMBudget => 2000.0 B; • Others need to be calculated or measured • Period => 5 ms; • Compute_Execution_Time => 1 ms .. 2ms; • Analyses depending on available properties • Schedulability analysis • Resource allocation analysis • …
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion
Conclusions • Goals • High-level • Implementation-independent • Structured • Precise • Significant level of detail • Unambiguous • Complete • Functional properties • Non-functional properties is it possible to achieve these goals?
Conclusions • Goals • High-level • Implementation independent rather implementation dependent • Structured packages, components and subprograms • Precise • Significant level of detail using language compliance annex, behavior annex,… • Unambiguous close to implementation • Complete • Functional properties structure, behavior and interfaces • Non-functional properties model or measure
Conclusions • Benefits • graphical representation • analysis mechanism • Drawbacks • same abstraction level as code • similar effort • can we make it easier to build an AADL model?
Contents • Modeling process • Structural aspect • Behavioral aspect • Non-functional aspect • Conclusion • Discussion