<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="behavior.xsl"?>
  <behavioral manifest="scanner.xml" version="2.0">
    <file>"P2-Connect to Server.xml"</file>
    <Author>Huang, Yi-Yang</Author>
    <version No="1.1" date="10/25/01">Jim Fawcett</version>
    <!--
      This is a behavioral desciption of a scanner process below manifestScanner. It has a sibling process 
      "xmlTran" that aids in conversion between xml and normal text. You may not need it really but i 
      just added for demo.  This XML file doesn't refer to childs but has inputs & outputs specifically 
      mentioned here.  You have to put them if you have any.  Also the manifest which refers this process 
      behavioral desciption is manifestScanner.
    -->
 
    <process name="Connect to Server (2)">
      This process is responsible for connecting Client to Server. It uses .net Remoting to pass and receive
      message between Client and Server. It also responsible to record the user name and machine IP of the server in an xml file
    </process>

    <diagram diagramTitle="">
      <!--scanner.htm-->
    </diagram>

    <inputs>
      <input variable="connect command">
        <def>user ask to connect server</def>
        <text>Command which received from user interface ask to connect to server.</text>
      </input>
      
      <input variable="file">
        <def>config file</def>
        <text>The configuration file which record server IP and machine name.</text>
      </input>
    </inputs>

    <outputs>
      <output variable="comm obj">
        <def>communication object</def>
        <text>The communication object is responsible for communicate with server using .Net remoting.</text>
        <connectsToTitle>(3) Receive msg</connectsToTitle>
        <connectsToFile>P3-Receive msg.xml</connectsToFile>
      </output>
      
      <output variable="comm obj">
        <def>communication object</def>
        <text>The communication object is responsible for communicate with server using .Net remoting.</text>
        <connectsToTitle>(5) Create msg</connectsToTitle>
        <connectsToFile>P5-Create msg.xml</connectsToFile>
      </output>
      
      <output variable="error">
        <def>connect error</def>
        <text>The error message notify user that client can not connect to server</text>
      </output>
    </outputs>

    <requirements>
    
      <test No="Connect to Server_1">
        <traces to="A.3.1.34"/>
        <def>provide all the controls</def>
        <text>
        The machine name and IP address of the server shall be encoded in an XML-based configuration file.
        This avoids user specification, but still allows for changing Foundry Server location without modifying any code.
        </text>
      </test>
      
      <test No="Connect to Server_2">
        <traces to="A.3.1.29"/>
        <def>disassociation and deletion</def>
        <text>
        The Foundry shall support the deletion of software components(manifests or files)
        only by a FOUNDRY administrator.
        </text>
      </test>
      
      <test No="Connect to Server_3">
        <traces to="derived"/>
        <def>fail to connect</def>
        <text>
        Shall notify user if the client cannot establish connection to server.
        </text>
      </test>
      
      <test No="Connect to Server_4">
        <traces to="derived"/>
        <def>before and during login</def>
        <text>The client shall read in the RI name before connecting to the foundry server, and shall send the RI name and client IP , when establishing a connection to the server.</text>
      </test>

<test No="Connect to Server_5">
        <traces to="derived"/>
        <def>After login</def>
        <text>The client shall display the names of all the module, program and system manifests on establishing connection to the Foundry server</text>
      </test>
      
    </requirements>
    <!--
      The sibling tag, below, is used to identify lower level process descriptions.  Sibling tags have a visibility
      attribute, allowing them to be part of the parent's behavior model, or excluded, at the descretion of the
      behavior RI.
    -->
    <sibling ref="child2.xml" manifest="xmlTran.xml" visible="false"></sibling>
  </behavioral>