Guidelines for Developing a System Architectural Design for a Generic Information Sharing System
 
 

Walt Scacchi

(Wscacchi@ics.uci.edu)

M271/F271
Spring 2003

Latest Revision:24 February 2003




Architectural Design Principles

 

Partitioning Concerns

Partitioning Guidelines


 
 

The following hyperlinks lead to object templates that constitute an architectural design for an information sharing system. Many template attributes appear in more than one place. When this occurs, the description of the values to be input generally can be found in the System Configuration section.

System Configuration

System Visualization

System Icon

XML Models of Enterprise System Architecture (Optional--Extra Credit)
 
 
 
 

System Architectural Configuration

System Architectural Configuration specifies all of the component parts and connector pieces interconnected via component-connector interfaces into a whole system.

Every element of your Information Sharing System should be specified with the appropriate descriptive information between the corresponding beginning <tag> and ending </tag>. The indented tags designate the attributes of an element. Only the attributes require entry of descriptive information.

Note descriptive information should be specified for each of the components within <System-Components>. Also, it will often (but not always) be the case that a component has only one type of connector, which provide its inputs and require its outputs.

You will need to make copies of the <Component> template; one copy for each of your system components. Then fill in the required information for each component. For example, if your system has ten components, then your need ten component templates in your system configuration.

Next, the system configuration is primarily a composition of descriptive information in an object-based (or entity-relation) modeling scheme. However, most of the descriptive information you need to fill in should already be described in your System Specification document. Thus, if things work out in a reasonable manner, you should be able to cut and paste the information from your System Specification into the appropriate component attribute fields.

Last, comments in this type font (Times New Roman) in the reusable templates below (in Arial font) should be deleted after you enter the appropriate descriptions. Example values for a given attribute or field in the templates is also shown in Arial font. Example values should also be deleted.
 
 
 
 

<System Configuration>

<Narrative>

Include a brief narrative description of the system.

</Narrative>

<Host-Id>

For example, http://catalyst.gsm.uci.edu. Otherwise, enter unknown unless you know the current Internet address

</Host-Id>

<Author>

The name and email address of the person who created this architectural design. For example, Walt Scacchi (wscacchi@uci.edu).

</Author>

<Version>

A timestamp in the form, year/month/day/hour/minute (e.g., 2003/05/16/21:00), to designate when this system architecture was last updated.

</Version>

<Last-Modified-By>

The name and email address of the person who last modified this architectural design. For example, Walt Scacchi (wscacchi@uci.edu).

</Last-Modified-By>
 
 

<System-Components>

For each (software) component in your system, fill in the following component template.

<Component>

    <Component-Identifier> </Component-Identifier>

    <Component-Type> </Component-Type>

    <Narrative> </Narrative>

    <Interface>

        <Connector-Interface-Type>

Remember, you just enter one of {API, Protocol, Information Bus, ODBC/JDBC, or Other}for each connector interface associated with the current component. Unless you do something ambitious, your most common choices are either API or Protocol.         </Connector-Interface-Type>
 
 

        <Input-Provided-From>

<Component-Identifier>

A system component that provides inputs to this component.

</Component-Identifier>

        <Inputs>

        Each input for a component can be specified using the following template.

            <Input-Object>

<Input-Object-Identifier> </Input-Object-Identifier>

<Narrative> </Narrative>

<Object-Type>

The object type corresponds to that which can be used to associate the object to a specific application, or to some common MIME object type. For example, for a Catalyst Web page, the object type is HTML, and the associated application may be MS Internet Explorer. </Object-Type> <Object-Attributes>

    <Object-Attribute-Identifier>

    Insert object attribute name here.

    </Object-Attribute-Identifier>

    <Attribute-Value-Range>

Insert object attribute value range (e.g., upper and lower bound, if known). If the value range is unknown to you, simply enter unknown.     </Attribute-Value-Range>

    <Attribute-Exceptional-Values>

Insert object attribute exceptional values. If the exceptional values are unknown to you, simply enter unknown.     </Attribute-Exceptional-Values>

</Object-Attributes>
 

<Object-Error-Signals> Enter description of error signals or messages that are exported by the component if a processing error occurs. If you do not know what kinds of error conditions or signals occur, simply enter unknown. </Object-Error-Signals>
        </Input-Object>

    </Inputs>

    </Input-Provided-From>
 
 

    <Output-Provided-To>

            <Component-Identifier>

            A system component receiving output from this component.

            </Component-Identifier>

    <Outputs>

Each output can be specified using the following template. Values are similar to those described above for input objects.         <Output-Object> <Output-Object-Identifier> </Output-Object-Identifier>

<Narrative> </Narrative>
 

<Object-Type> The object type corresponds to that which can be used to associate the object to a specific application, or to some common MIME object type. For example, for a Catalyst Web page, the object type is HTML, and the associated application may be MS Internet Explorer. </Object-Type> <Object-Attributes>

    <Object-Attribute-Identifier>

    Insert object attribute name here.

    </Object-Attribute-Identifier>

    <Attribute-Value-Range>

Insert object attribute value range (e.g., upper and lower bound, if known). If the value range is unknown to you, simply enter unknown.     </Attribute-Value-Range>

    <Attribute-Exceptional-Values>

Insert object attribute exceptional values. If the exceptional values are unknown to you, simply enter unknown.     </Attribute-Exceptional-Values>

</Object-Attributes>
 

<Object-Error-Signals> Enter description of error signals or messages that are exported by the component if a processing error occurs. If you do not know what kinds of error conditions or signals occur, simply enter unknown. </Object-Error-Signals>
    </Output-Object>

    </Outputs>
 
 

</Interface>

</Component>

This ending tag denotes the end of the template for one component. Remember, to create and fill-in this kind of template for each system component.

</System-Components>

</System Configuration>
 
 

System Visualization

A system visualization is a graphic diagram or system-only rich picture that depicts a visual arrangement of the system components, connectors and interfaces.

A visual diagram for your Information Sharing System should be specified with the appropriate descriptive information between the corresponding beginning <tag> and ending </tag>. The indented tags designate the attributes of an element. Only the attributes require entry of descriptive information.

<System-Visualization>

<Narrative> </Narrative>

<Author> </Author>

<Version> </Version>

<Last-Modified-By> </Last-Modified-By>

<Graphic>

<! -- Insert a picture or graphic image here> </Graphic>

</System-Visualization>
 
 
 
 

System Icon

A system icon is an image that denotes a "short-cut" to invoking the system.

A system icon for your Information Sharing System should be specified with the appropriate descriptive information between the corresponding beginning <tag> and ending </tag>. The indented tags designate the attributes of an element. Only the attributes require entry of descriptive information.

<System-Icon>

<Narrative> </Narrative>

<Author> </Author>

<Version> </Version>

<Last-Modified-By> </Last-Modified-By>

<Icon>

<! -- insert a picture or graphic icon here>

</Icon>

<System-Invocation>

<! -- insert the system start command or URL associated with the system icon >

</System-Invocation>

</System-Icon>

XML Models of Enterprise System Architecture (Optional--Extra Credit)

Every element of your Information Sharing System should be specified with the appropriate descriptive information.