Operating System
Component: At OS structural level, components are Linux Kernel, System Shared Library, and system utilities, etc.
Connector: Function call, such as system call, acts as connectors between these components.
Interface:
Link:
Example: As we discussion previously, the Linux Operating system has the following structural figure:

To simplify our discussion here, the three major components of Linux: LinuxKernel, system libraries and system utilities, have the following xADL-type structural figure:


<!- - Namespace declaration - - >
<?xml version = “1.0” encoding = “UTF-8” ?>
<xArch xmlns = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”
xmlns:instance = “http://www.ics.uci.edu/pub/arch/xArch/instance.xsd”
xmlns:types = “http://www.ics.uci.edu/pub/arch/xArch/types.xsd”
xmlns:xlink = “http://www.w3.org/1999/xlink”
xmlns:xsi = “http://www.w3.org/2000/10/XMLSchema-instance”>
<types:archStructure xsi:type = “types:ArchStructure”>
<!- - Component: User Utility Programs Description- - >
<types:component instance:id = “UserUtilityProgramsComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>System Utility</types:description>
<types:interface instance:id = “SsytemUtilityCompBottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>UserUtilityPrograms.Bottom</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href = “#tUserUtilityPrograms” />
</types:component>
<!- - Component: System Shared Library Description- - >
<types:component instance:id = “SystemLibraryComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>SystemSharedLibrary</types:description>
<types:interface instance:id = “SystemLIbraryTop” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>SystemLibrary.Top</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tTopType”/>
</types:interface>
<types:interface instance:id = “SystemLibraryBottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>SystemLibrary.Bottom</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href = “#tSystemLibrary” />
</types:component>
<!- - Component: Linux Kernel Description- - >
<types:component instance:id = “LinuxKernelComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>LinuxKernel</types:description>
<types:interface instance:id = “LinuxKernelTop” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>LinuxKernel.Top</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tTopType”/>
</types:interface>
<types:interface instance:id = “LinuxKernelBottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>LinuxKernel.Bottom</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href = “#tLinuxKernel” />
</types:component>
<!- - Component: Loadable Kernel Module Description- - >
<types:component instance:id = “LoadableKernelModuleComp” xsi:type = “types:Component”>
<types:description xsi:type = “instance:Description”>loadable module</types:description>
<types:interface instance:id = “LoadableKernelModuleTop” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>LoadableKernelModule.Top</types:description>
<types:direction xsi:type = “instance:Direction” >inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “ #tTopType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href = “#tLoadableKernelModule” />
</types:component>
<!- - Connector: Con1(UserUtilityPrograms-SystemSharedLibrary) Description- - >
<types:connector instance:id = “con1” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” >connector1</types:description>
<types:interface instance:id = “Con1Top” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con1.Top</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tTopType”/>
</types:interface>
<types:interface instance:id = “Con1Bottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con1.Bottom</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href= “#tConnector1” />
</types:connector>
<!- - Connector: Con2(LinuxKernel-SystemSharedLibrary) Description- - >
<types:connector instance:id = “con2” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” >connector2</types:description>
<types:interface instance:id = “Con2Top” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con2.Top</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tTopType”/>
</types:interface>
<types:interface instance:id = “Con2Bottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con2.Bottom</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href= “#tConnector2” />
</types:connector>
<!- - Connector: Con3(LinuxKernel- LoadableKernelModule) Description- - >
<types:connector instance:id = “con3” xsi:type = “types:Connector”>
<types:description xsi:type = “instance:Description” >connector3</types:description>
<types:interface instance:id = “Con3Top” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con3.Top</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tTopType”/>
</types:interface>
<types:interface instance:id = “Con3Bottom” xsi:type = “types:Interface”>
<types:description xsi:type = “instance:Description”>Con3.Bottom</types:description>
<types:direction xsi:type = “instance:Direction:>inout</types:direction>
<types:type xlink:type = “simple” xlink:href = “#tBottomType”/>
</types:interface>
<types:type xlink:type = “simple” xlink:href= “#tConnector3” />
</types:connector>
<!- - Link: User Utility Programs –Con1 Description- - >
<types:link instance:id = “link1” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>System Utility-Con1</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#UserUtilityProgramsBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Con1Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<!- - Link: SystemSharedLibrary –Con1 Description- - >
<types:link instance:id = “link2” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>SystemSharedLibrary-Con1</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#SystemLibraryTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Con1Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<!- - Link: SystemSharedLibrary –Con2 Description- - >
<types:link instance:id = “link3” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>SystemSharedLibrary-Con2</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#SystemLibraryBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Con2Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<!- - Link: LinuxKernel –Con2 Description- - >
<types:link instance:id = “link4” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>LinuxKernel-Con2</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Con2Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#LinuxKernelTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<!- - Link: LinuxKernel –Con3 Description- - >
<types:link instance:id = “link5” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>LinuxKernel-Con3</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#LinuxKernelBottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#Con3Top” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
<!- - Link: LoadableKernelModule –Con3 Description- - >
<types:link instance:id = “link6” xsi:type = “types:Link”>
<types:description xsi:type = “instance:Description”>LoadableKernelModule-Con3</types:description>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “Con3Bottom” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
<types:point xsi:type = “types:Point”>
<instance:anchorOnInterface xlink:href = “#LoadableKernelModuleTop” xsi:type = “instance:XMLLink” xlink:type = “simple”/>
</types:point>
</types:link>
</types:archStructure>
… …