XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification...

21
XSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30 th , Oct, 2000 0.2 Hao Shi 06 th , Nov, 2000 0.3 Yongjun Zhang 11 th , Dec, 2000 0.4 Shi Hao 12 th , Feb, 2001 0.5 Yanling Xiao 12 th , Apr, 2001 Contents 1.Introduction * 1.1 Purpose of this document * 1.2 Scope of the product * 1.3 Terminology * 1.4 Structure of this document *

Transcript of XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification...

Page 1: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

XSTEEL-FUNSPEC-01

XSTEEL Functional Specification

Version Author Date

0.1 Yongjun Zhang 30th, Oct, 2000

0.2 Hao Shi 06th, Nov, 2000

0.3 Yongjun Zhang 11th, Dec, 2000

0.4 Shi Hao 12th, Feb, 2001

0.5 Yanling Xiao 12th, Apr, 2001

Contents

1.Introduction *

1.1 Purpose of this document *

1.2 Scope of the product *

1.3 Terminology *

1.4 Structure of this document *

Page 2: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

1.5 Reference *

2. General Description *

2.1 Environment *

2.2 Function *

2.3 End user *

2.4 General Limit *

2.5 Dependency *

3. General Architecture *

3.2.1 Architecture component diagram *

3.2.2 Architecture Interaction Diagram *

4. Functionality *

4.1 GUI component functionality *

4.2 User Object Generator *

5. Interfaces *

5.1 Internal Interface *

5.2 External Interface *

6. Non-functional requirements *

6.1 Performance *

6.2 Maintainability, reusability and extensibility *

6.3 End user documentation *

6.4 Usability *

6.5 Security *

7. Constraints *

7.1 Software constraints *

7.2 Environment constraints *

1.Introduction

1.1 Purpose of this document

Page 3: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

This document is the functional specification of Xsteel Model-basedObject Editor, which is organised under the course of Tik76.115,Individual Project, at Helsinki University of Technology. Thisdocument covers the functional description of Xsteel Model-basedObject Editor, and will serve as the guide for functionalimplementation throughout the whole project.

1.2 Scope of the productXsteel Model-based Object Editor is an added-on component forXsteel application, which is a commercial product of Finland basedTekla Oy. A trademark of Tekla Oy, Xsteel is a product for steelstructure detailing. Currently, the input of Xsteel user objects is basedon textural user object definition file created by user/developermanually, which is inefficient and error-prone. It is really demandingfor the user/developer to have a graphical object editor such that thecreation and manipulation of user objects may be performedgraphically and interactively.

The project is to provide an add-on Model-based Object Editorsubcomponent to enhance the productivity of the development ofXsteel application. The Xsteel developer can visually manipulate theUI components, define the component property and create desireddefinition file, which can be verified in design time.

1.3 TerminologyVisible UI control UI items, including button, label, part, profile, picture,

parameter, and attribute.

Invisible UI control Commands controlling the global behavior of joint or macro,including command, modify,draw, autodir_type, origin_type,and max_secondaries.

Part Set of Edit boxes used to model Xsteel Part, refer to [1]

Profile Set of Edit boxes used to model Xsteel Profile, refer to [1]

Picture A picture displayed in Dialog. It is related to Xsteel Picture,refer to [1]

Parameter A Edit box along with a check box, related to Xsteel Parameter,refer to [1]

Attribute A combobox with a default value, related to Xstell Attribute,refer to [1], pictures may be displayed inside this combobox.

Command, modify,draw, autodir_type,

Invisible UI related Macro commands in Xsteel, refer to [1]

Page 4: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

origin_type,max_sendaries

Tab Page The base where all visible UI controls reside on.

Dialog A base to hold several Tab Pages and some control Buttons (Forexample, OK button and Cancel button). In Xsteel Model-basededitor, dialog means a integrated UI utility used to manipulatethe joint and macro in real time.

User object An externally defined object in Xsteel product model database.Implementation of user object consists of the user objectdefinition (=inp-file) and the user object executable (= typicallyand exe-file containing one or more user object executablescreated using C-language and a special programming API)

Xsteel application Add-in component for Xsteel containing the implementation ofone or more user objects. Application consists of the executableand definition file

User objectGenerator

A parser translating the visual components to User objectdefinition

Label A textural description of UI control

BitMap A graphical file format

MDL file A specified file used for translating symbolic labels to Englishor other language

Common Tab A tab shared by different Dialog Boxes

INP file Input file for Xsteel, which contains the definitions of userobjects, and is used as the User Interface file for Joint or Macro

1.4 Structure of this documentThis chapter gives a brief introduction of the product and somebackground information of this project. A general specfication ispresented in chapter 2, which defines the envrionment, functional, endusers, some limits and dependencies of this product. The primilaryarchitecture is discussed in chapter 3. After describing thefunctionalities of individual module in chapter 4, this documentarticulates the interface and Non-functionality requirements in chapter5 and 6, respectively. The constraints is analysed in chapter 7.

1.5 Reference1. Xsteel Macro Manual, TEKLA, 1998

2. www.hut.fi/~hguo/Xsteel

2. General Description

Page 5: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

2.1 EnvironmentXsteel Model-based Object Editor serves as a standalone application, which willcommunicate with Xsteel application in file level, that is, the output file of Xsteelmodel-base Object Editor should be read by Xsteel, and manually create User Objectfile should be interpreted and visualized by Xsteel Model-based Object Editor.

The hardware environment of Xsteel Model-based Object Editor is normal DesktopPC, with Windows NT/2000 operating system. Considering the integration withXsteel applications, the PC runs Xsteel Model-based Object Editor should have atleast 128 Mb memory, over 600 MHz CPU and a graphicla card with over 32Mbvideo-memory.

Xsteel Model-based Object Editor doesn’t have any special requirement for thesoftware environment.

2.2 FunctionThe user cases can be categrized into two types, those related to creating and editingUser Objects and those related to file operation. The former is under the function ofGraphical User Interface, and the latter is performed by User Object Generator. Theyare shown in the following pictures.

User Case U101: Create an empty Tab-page

Goal Create an empty tab page to place User Objects

Page 6: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Scope Graphical User Interface

Preconditions A new document is open.

Postconditions An empty tab page created, ready for User Objects editing

Actors End User

Trigger A new tab page request is initialised.

Description A new tab page is added to the original dialog.

Variations If a new document is created, a new dialog with an empty tabpage is created initially.

Exceptions More than 18 Tab pages are created.

Open Issues None

User Case U102: Create a User Object.

Goal Add a new User Object to the current tab page.

Scope Graphical User Interface

Preconditions A tab is opened.

Postconditions The requested User Object is created inside current tab.

Actors End User

Trigger A new User Object request is intialised.

Description The requested User Object is added to the current tab pagewith the properties specified by the end user.

Variations None

Exceptions None

Open Issues None

User Case U103: Modify the properties of User Object

Goal Modify the properties of selected User Object in Run time.

Page 7: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Scope Graphical User Interface.

Preconditions The User Object to be modified is selected.

Postconditions User Object’s properties are modified.

Actors End User

Trigger A modify properties event is initialised.

Description After selecting a user object, user can initialise a request tomodify the properties of this object with specified method.Modifications will be displayed immediately after theoperation.

Variations None

Exceptions The provided value are out of the range of acceptable values.

Open Issues None.

User Case U104: Select a group of User Objects

Goal Select several User Object at a time.

Scope Graphical User Interface.

Preconditions No less than 1 User Object is created.

Postconditions Several objects are selected and marked out.

Actors End User

Trigger A select User Objects event is initialised.

Description The user initialise a request of selecting objects, and thenselecting several objects in an interactive manner.

Variations Different method should be provided for selecting objects.

Exceptions None

Open Issues None

User Case U105: Copy and paste objects between different tab pages.

Page 8: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Goal Copy and paste object through different tab pages.

Scope Graphical User Interface.

Preconditions Set of User Objects is selected or copied memory.

Postconditions User Object are copied or added to destination tab page.

Actors End User

Trigger Copy / paste event initialised by end user.

Description After selecting a group of user objects, the user initialise anevent to copy these selected objects, and paste them intoanother tab-page.

Variations None

Exceptions None

Open Issues None

User Case U201: Import a User Object file

Goal Import a User Object file, which is created manually.

Scope User Object Generator

Preconditions None

Postconditions The User Object file is imported and the object are storedwith the intermediate format.

Actors End User and Xsteel Application

Trigger User requests to import a user object file.

Description A user object file is imported into, and all objects included inthis file are converted to intermediate format. This user objectfile can be verified by Xsteel application.

Variations None

Exceptions File format is not correct.

Open Issues None

User Case U202: Export a User Object file

Page 9: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Goal Export a User Object file in the form which can be recognizedby Xsteel application.

Scope User Object Generator.

Preconditions A dialog with at least a tab page is presented.

Postconditions All the controls in current dialog are converted into XsteelUser Objects.

Actors End User and Xsteel Application

Trigger Event requesting export

Description The controls in current dialog are converted to the format ofXsteel User Objects, and stored in a file specified by user.This generated user object file may be verified by Xsteelapplication.

Variations None

Exceptions None

Open Issues None

User Case U203: Save an intermediate file

Goal Save the User Objects into an intermediate file

Scope Graphical User Interface.

Preconditions Some User Objects have already been created.

Postconditions User Objects are saved.

Actors End User

Trigger Save event initialised by the user.

Description User Objects are stored in the format of intermediate file,which can be used for future manipulation.

Variations None

Exceptions None

Open Issues None

User Case U204: Open an intermediate file

Page 10: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Goal Open an existing intermediate file

Scope Graphical User Interface.

Preconditions An existing intermediate file.

Postconditions All the user objects in the intermediate file are interpreted anddisplayed in a dialog.

Actors End User

Trigger En event initialised by the end user.

Description User selects an existing intermediate file, all the user objectsin this file will be converted to the relative data structure andstored in the memory. A dialog will open to show all theobject.

Variations None

Exceptions File format is not correct.

Open Issues None.

User Case U205: Visualise User Objects

Goal Visualise the User Objects of User Object file or intermediatefile

Scope Graphical user Interface and User Object Generator

Preconditions An existing file, User Object file or intermediate file

Postconditions User Objects are shown in the dialog.

Actors End User

Trigger Event intialised by user.

Description After importing or opening a relevant file, all the user objectswill be visualized in a newly opened dialog box.

Variations None

Exceptions File format is not correct.

Open Issues None

Page 11: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

2.3 End userTwo different kinds of Users are classified, they are the common end user and Xsteelapplication Users. Usually, these two users are the same, however, due to thefunctional requirements of them are different, it is more rational to divide them intotwo categories.

For the common end user, they will use Xsteel Model-base Object Editor to createXsteel user objects and export them in User Object file. What the user can manipulateand see are graphical controls, which are then converted into Xsteel User objects.

The basic requirement of Xsteel application user for Xsteel Model-based ObjectEditor is the same as common end users. However, they want specially to check andverify the user objects create manually, and they are more interested in modify theuser object interactively by using Xsteel Model-based Object Editor.

2.4 General LimitBasically, Xsteel Model-based Object Editor is an dialog editor, with the ability tocreate and manipulate all the UI controls in an interactive manner. Different sets of UIcontrols are related to different User Objects in Xsteel, which constrains theextendibility of this program. For example, if new user objects are introduced in thefuture, it will be quite sophisticate to add the relevant UI control in Xsteel Model-based Object Editor to enable the user to manipulate it interactively.

Another constraint is the interoperability. Xsteel Model-based Object Editor will bedeveloped with Visual C++ by Microsoft, which means it can only run underWindows platform, and because the original version of Xsteel application wasdeveloped in Unix, there will be problems for Xsteel Model-based Object Editor to beintegrated with these Xsteel application.

2.5 DependencyThe product will serve as an added-on component of Xsteel application, and it ishighly dependent of Xsteel applications. If the user object file format is changed dueto certain reason, the inner data structure of Xsteel Model-based Object Editor willnot be changed by the User Object Generator should be changed accordingly.

3. General ArchitectureXsteel general architecture can be described by main component relationship andinteraction between main component.

3.2.1 Architecture component diagram

Page 12: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Xsteel components relation analysis:

GUI components: is the ultimate graphics handling component of Xsteel UIcomposer. In the front end, It contains a UI graphical editting tools like VB UIeditting tools. In the back end, it maintains a serializable Xsteel component object list.It include Object graphical Editor, Object property Editor, Object list serializer.

Object Graphical Editor: In short words, it’s a graphics tools and more precisely awindows oriented graphics handling. It can be divided again into:

Dynamic UI component creation. It means to create UI controls likebutton, edit box, combobox, bitmap in runtime. The runtime creationof UI object in MFC platform is proved to be robust. But in practicalimplememntation it require a bit more consideration, because you cannot predefine a non-exist controls and its behavior. So we need toregister/handles message handler of runtime created component incustom way.

Page 13: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Controls reposition and resize: Controls must be repositioned whenuser click and drag it into new preferred location . And controls likebitmap and buttons, edit box must provide resize functionality to meetthe practical demands. Although it seems easy operation to the enduser, but you when we take into consideration that when a logical setof controls(e.g a joint parts, it includes several edit boxs, check boxand they are positioned related to each other.) When one of the partscontrol gets repositioned, the effect must be reflect to all the otherscontrols of part. Thus we list carefully separate them out to be onesubcomponent of GUI, as it’s the need of windows control. We need tohandle the windows control postion/size message in a more logicalpoint of view.

Object property editor: It’s a obvious feature of UI controls. There is generally twosets of property associated with certain control. One is graphical point of view, otheris from Xsteel point of view. When user switch between different controls, theproperty sheet should update automatically.

From graphical point of view: a UI control is associated with its window size andwindow position(in the context of parent window). It’s style: 3D , color, resizable, taborder.

From xsteel component point of view: Identifier, Xsteel types(types of parameters),thickness.

Object list serializer: You can think that as a intermediate persistent storage betweenXsteel object list in memory and the final output of INP macro file. The reason forobject list serializer is that you need to save your unfinished Xsteel UI design workbefore you can finally createINP macro files. The object serializer will maintain a listof Xsteel objects in the scope of Xsteel tab page, because it’s in the requirement apart(tab) is reusable for other joint(a group of tabs). Serialization and deserializationis a reliable and applicable feature in MFC(Microsoft foundation class).

UOG: User Object Generator. It can be viewed as a quite independent components inXstell UI composer. It’s the ultimate component verify and analysis the Xsteel Objectlist and generate the INP macro file. This is the end of Xsteel UI composer and thebeginning of Xsteel applications from Tekla Oy. UOG contains control generator andtabs generator. Tekla Oy has published a Xsteel macro programming manual abouthow to create macros in a correct syntax. That’s the rule to keep Xsteel UI composerand Xsteel applications in consistent.

Control generator: Tekla Oy have predetermined a set of Macro definition of UI inputfields: Parts, profiles,Pictures , parameters, attribute. Of those input fields, parameters, pictures and parameters are associated with single control and label. While parts andprofiles are groups of controls with logical relation and graphical position relation. InINP macro file, Control macro is represented by one line.

Page 14: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Tab generator: upper level of generator. The actual INP macro is in hierachy order.The Joint component contains steel Parts component. Steel part component contains

Parameters, attributes, picture and profile, so on. In INP macro file, the syntax for theupper level to contain the lower level entity is by a pair of braces. Tabs can bereferenced if you have defined it in global level.

3.2.2 Architecture Interaction Diagram

Xsteel object list is the core of whole architecture. Whether the architecture design issuccessful or not is mainly depend on that. Following we depict the input/outputrelation regard the component interaction diagram:

Object Graphical Editor:

Output: Xsteel object.

Object Property Editor:

Input : Current Xsteel object property.

Output: New Xsteel object property.

Object serailizer:

Input: When doing serialize, input is Xsteel Object list in memory. When doingdeserialize, input is saved files.

Output: It’s a reverse of input.

Control generator:

Input: Xsteel object

Output: a line of macro for that control

Page 15: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Tab generator:

Input: Xsteel object list

Output: INP macro files

4. Functionality

4.1 GUI component functionalityRefer to the architecture analysis section. We classify the GUI functionality intoObject Graphic Editor(GUI-OGE); Object Property Editor(GUI-OPE); ObjectSerializer(GUI-OS).

The functionality specification is highlighted with Priority level; implementation phase;mandatory or optional.GUI-OGE -1 Providing all visible UI controls

Priority: 1 / Required: mandatory / Phase: 1GUI editor must provide essential graphical items include: label which may be toggle on/off;editor box with variable length; CheckBox with default value, and bitmap checkbox; BitmapImage, resize is not required; Tab page; Standard buttons

GUI-OGE -2 Positioning of controls

Priority: 1 / Required: mandatory / Phase: 1Position can be either absolute position or relative position. Form page which holds control can bedivided into predefined section.

GUI-OGE -3 Manipulating of control

Priority: 1 / Required: mandatory / Phase: 1Tab frame doesn’t need to be resized. But the length of editbox and combobox is required to beadjustable. Controls in editing should be highlighted.

GUI-OGE -4 Providing consistent lookPriority: 1 / Required: Optional / Phase: 2

Because we are still unsure whether the way Xsteel application interpret the macro UIcomponent is in consistent with the way we draw the UI component. In order not tolet user be confused, we need to control the style.

GUI-OGE -5 Handling the predefined control setPriority: 1 / Required: mandatory / Phase: 1

In Xsteel , meaningful atom control is predefined control set, which include part, attribute,parameter. In Xsteel, move and resize applies to those set. So resize of parameter will resize all theedit box in equal length.

GUI-OGE -6 Handling static custom controlsPriority: 1 / Required: mandatory / Phase: 1Static custom controls, like bolt_structure, long_hole and extra_lengh, which is not visible indesign time, but the size should be reserved.

Page 16: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

GUI-OGE -7 Manipulating control setPriority: 1 / Required: mandatory / Phase: 2The user shall be able to use cut, copy and paste for any selected group of controls.

GUI-OPE -1 Runtime feature of controlPriority: 1 / Required: mandatory / Phase: 1

The runtime content of control should be displayed after user apply certain

Input resource. Picture control shows the Bitmap file.Combobox shows the selection list. Tab ,label show the title. Parameter shows default value or empty. GUI-OPE -2 Editing properties for visible UI controls

Priority: 1 / Required: mandatory / Phase: 1For Joint, a general tab should be provided first. For all visual controls inside a tab page, aproperty editing tool should be able to activate to manipulate the visual appearance, position anddefault contents. The modifications of visual properties should be visualized in an effective way.The property editing tool should be context sensitive, that means, it will show different propertiesfor relevant controls.

GUI-OPE -3 Editing properties for invisible UI controlsPriority: 1 / Required: mandatory / Phase: 2

Xsteel UI certainly contains features which is not necessary to be visible, but they are stillessential part of complete Joint. All predefined or undetermined component should be include increation menu. Object property Editor should prompt the end user of them.

GUI-OPE -4 Supporting Common TabPriority: 1 / Required: mandatory / Phase: 2

One globally defined tab may be share by different dialog.

GUI-OS -1 INP FilePriority: 1 / Required: Mandatory / Phase: 1

All the UI dialog, should keep consistent with INP file(end user file), instead of using intermediatefile designed in T1. So the change in INP file will reflect to UI forms in run-time.

4.2 User Object GeneratorThe main functionality of User Object Generator is to provide an external interfacefor Xsteel Model-based Object Editor to communicate with Xsteel applications. Thefunctionality of UOG can be summerized as follow:

UOG-EXT-1 User Object Generating

Priority: 1/Required: Mandatory/Phase: 2

All the UI controls inside current dialog should be converted to related User Objectsand outputed into an external file.

UOG-EXT-2 User Object Parsing

Page 17: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

Priority: 1/Required:Mandatory/Phase:2

UOG should be able to parse the User Object file and convert them into internalformat, with which the GUI can show them immediately.

UOG-EXT-3 Tab Page Sharing

Priority: 2/Requried:Mandatory/Phase:3

Shared tab-pages are detected by UOG, and outputed to different User Object files.

MDL-IMM-1 Multilingual file Importing

Priority: 3/Required:Mandatory/Phase:3

MDL file can be imported into Xsteel Model-based Object Editor, and the content ofMDL file should be shown in another view.

MDL-IMM-2 Multilingual file Exporting

Priority: 3/Required: Mandatory/Phase 3

After being edited, MDL file should be able to be exported with the standard MDLfile format.

5. InterfacesGenerally, system interfaces can be divided into two categories, those related tohardware and those related to software. In Xsteel Model-based Object Editor, thewhole product will run in a normal desktop PC, and no special hardware interface isneeded. Moreover, because this is a single-thread standalone program, which won’tinteract with any other program at any level during the runtime. The only externalinterface is the User Object file, which is interpreted by Xsteel applications.

5.1 Internal InterfaceThe internal interface links the User Object Generator and Graphical User Interfacetogether. Object List in Visual C++ provides a good base for implementing theinternal interface. That is, UOG and GUI share the common User Object List, andwhenever GUI modifies the User Object List, UOG will detect it. All the operationsmodifying the UI controls in GUI will affect the User Object List, and thecorrespondent operation will happen to the User Object List, such as copy, delete andpaste.

5.2 External InterfaceAs mentioned before, User Object file is the only external interface through whichXsteel Model-based Object Editor communicate with outside environment. In the userobject file, every statement is related to an user object, including a set of parameterswhich defines the properties of this user object. Following is excerpt from a userobject file.

Page 18: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

joint(29,"j_End_plate")

{

icon(1, 3, xs_joint_29, tip_j29)

origin_type( collision )

part( "j_end_plate",tpl1, bpl1, hpl1, pos2, mat2,

, partname2)

part( "j_console",tpl2, bpl2, hpl2, pos1, mat, ,

partname)

profile( "j_lconsole",lprof, , )

part( "j_fitting_plate",tpl3,, , pos3, mat3, pos4,

partname3)

part( "j_folded_plate",tpl4, bpl4, hpl4, , )

part("j_stiffeners",tj1, bj1, hj1, pos5, mat4, ,

partname4)

part("j_upper_horiz_stiff", tj3, bj3, hj3, pos6,

mat5, , partname5)

part("j_lower_horiz_stiff", tj2, bj2, hj2, pos7,

mat6, , partname6)

tab_page("","jd_Picture",1)

{

picture("jnt_pict_j29", 255, 180)

parameter(" Endplate from sec upper edge",e1,

distance, number,2)

parameter(" Endplate from sec lower edge",e2,

distance, number,7)

parameter(" Edgedist fitting plate horiz",rwf,

distance, number,4)

}

6. Non-functional requirements

6.1 PerformanceIn our case Model-base Object Editor may turn out to be slow when user designed UIlist grow. However, because the typical computing environment of Xsteel developeris powerful enough, performance doesn’t need to be a problem of concern.

Page 19: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

6.2 Maintainability, reusability and extensibilityThe source code and documentation must be written in a way that makes them easy tomaintain and develop. Uniform coding conventions, to be specified later, must befollowed. End user documentation requirements are specified in section .

6.3 End user documentationThe documentation will consist of a product reference manual, a product user's guideas well as complete online help. All documentation will be written in English.

The product reference manual contains a description of all UI manipulating features,internal architecture and justifications for important design decisions. The libraryuser's guide, which may or may not be a separate document from the referencemanual, explains the use of the application for somebody beginning to work with itand contains examples of how to use the Application.

6.4 UsabilityThe end product should be user friendly. The appearance of all the controls should beunambiguous and intuitive. The layout the whole user interface is compatible withstandard Windows style. And to facilitate the use of this program for different users,different set of methods for identical operations should be devised for users withdifferent degrees of proficiency. For example, hot keys should be defined for anyoperation, which will increase the productivity of advance users dramatically.

6.5 SecurityNo special security requirement is defined for Xsteel Model-based Object Editor,however, the output directory should be protected from malicious operations. Thesecurity level of Xsteel Model-based Object Editor is the same as Xsteel applications,which is enforced by Xsteel application users.

7. Constraints

7.1 Software constraintsXsteel Model-based Object Editor is initially considered as an added-on component ofXsteel application. Basically, the end product is a dialog editor with the ability tocreate and edit all the basic UI controls existing in a traditional dialog, however,because it is Xsteel specified, it is difficult to use it in a general level. Anotherconstraints is this product is highly dependent of Xsteel applications. When new userobject types are added to Xsteel application, great effort is needed to extend theModel-base Object Editor to handle these new object types.

7.2 Environment constraintsVisual C++ will be the only programming language for Xsteel model-based ObjectEditor. Originally, Xsteel applications were developed under UNIX platform, which

Page 20: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

isn’t compatible with Object Editor. The only functional platform is WindowsNT/2000, which constrains the application of this product.

Page 21: XSTEEL Functional Specification - · PDF fileXSTEEL-FUNSPEC-01 XSTEEL Functional Specification Version Author Date 0.1 Yongjun Zhang 30th, Oct, 2000 0.2 Hao Shi 06th, Nov, 2000 0.3

This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.