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 *
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
This document is the functional specification of Xsteel Model-based Object Editor, which is organised under the course of Tik76.115, Individual Project, at Helsinki University of Technology. This document covers the functional description of Xsteel Model-based Object Editor, and will serve as the guide for functional implementation throughout the whole project. 1.2 Scope of the product Xsteel Model-based Object Editor is an added-on component for Xsteel application, which is a commercial product of Finland based Tekla Oy. A trademark of Tekla Oy, Xsteel is a product for steel structure detailing. Currently, the input of Xsteel user objects is based on textural user object definition file created by user/developer manually, which is inefficient and error-prone. It is really demanding for the user/developer to have a graphical object editor such that the creation and manipulation of user objects may be performed graphically and interactively. The project is to provide an add-on Model-based Object Editor subcomponent to enhance the productivity of the development of Xsteel application. The Xsteel developer can visually manipulate the UI components, define the component property and create desired definition file, which can be verified in design time. 1.3 Terminology Visible UI control Invisible UI control UI items, including button, label, part, profile, picture, parameter, and attribute. 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 Parameter Attribute Command, modify, draw, autodir_type, A picture displayed in Dialog. It is related to Xsteel Picture, refer to [1] A Edit box along with a check box, related to Xsteel Parameter, refer to [1] A combobox with a default value, related to Xstell Attribute, refer to [1], pictures may be displayed inside this combobox. Invisible UI related Macro commands in Xsteel, refer to [1]
origin_type, max_sendaries Tab Page Dialog User object Xsteel application User object Generator Label BitMap MDL file Common Tab The base where all visible UI controls reside on. A base to hold several Tab Pages and some control Buttons (For example, OK button and Cancel button). In Xsteel Model-based editor, dialog means a integrated UI utility used to manipulate the joint and macro in real time. An externally defined object in Xsteel product model database. Implementation of user object consists of the user object definition (=inp-file) and the user object executable (= typically and exe-file containing one or more user object executables created using C-language and a special programming API) Add-in component for Xsteel containing the implementation of one or more user objects. Application consists of the executable and definition file A parser translating the visual components to User object definition A textural description of UI control A graphical file format A specified file used for translating symbolic labels to English or other language A tab shared by different Dialog Boxes INP file Input file for Xsteel, which contains the definitions of user objects, and is used as the User Interface file for Joint or Macro 1.4 Structure of this document This chapter gives a brief introduction of the product and some background information of this project. A general specfication is presented in chapter 2, which defines the envrionment, functional, end users, some limits and dependencies of this product. The primilary architecture is discussed in chapter 3. After describing the functionalities of individual module in chapter 4, this document articulates the interface and Non-functionality requirements in chapter 5 and 6, respectively. The constraints is analysed in chapter 7. 1.5 Reference 1. Xsteel Macro Manual, TEKLA, 1998 2. www.hut.fi/~hguo/xsteel 2. General Description
2.1 Environment Xsteel Model-based Object Editor serves as a standalone application, which will communicate with Xsteel application in file level, that is, the output file of Xsteel model-base Object Editor should be read by Xsteel, and manually create User Object file should be interpreted and visualized by Xsteel Model-based Object Editor. The hardware environment of Xsteel Model-based Object Editor is normal Desktop PC, with Windows NT/2000 operating system. Considering the integration with Xsteel applications, the PC runs Xsteel Model-based Object Editor should have at least 128 Mb memory, over 600 MHz CPU and a graphicla card with over 32Mb video-memory. Xsteel Model-based Object Editor doesn t have any special requirement for the software environment. 2.2 Function The user cases can be categrized into two types, those related to creating and editing User Objects and those related to file operation. The former is under the function of Graphical User Interface, and the latter is performed by User Object Generator. They are shown in the following pictures. User Case U101: Create an empty Tab-page Goal Create an empty tab page to place User Objects
Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Graphical User Interface A new document is open. An empty tab page created, ready for User Objects editing End User A new tab page request is initialised. A new tab page is added to the original dialog. If a new document is created, a new dialog with an empty tab page is created initially. More than 18 Tab pages are created. User Case U102: Create a User Object. Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Add a new User Object to the current tab page. Graphical User Interface A tab is opened. The requested User Object is created inside current tab. End User A new User Object request is intialised. The requested User Object is added to the current tab page with the properties specified by the end user. User Case U103: Modify the properties of User Object Goal Modify the properties of selected User Object in Run time.
Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Graphical User Interface. The User Object to be modified is selected. User Object s properties are modified. End User A modify properties event is initialised. After selecting a user object, user can initialise a request to modify the properties of this object with specified method. Modifications will be displayed immediately after the operation. The provided value are out of the range of acceptable values.. User Case U104: Select a group of User Objects Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Select several User Object at a time. Graphical User Interface. No less than 1 User Object is created. Several objects are selected and marked out. End User A select User Objects event is initialised. The user initialise a request of selecting objects, and then selecting several objects in an interactive manner. Different method should be provided for selecting objects. User Case U105: Copy and paste objects between different tab pages.
Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Copy and paste object through different tab pages. Graphical User Interface. Set of User Objects is selected or copied memory. User Object are copied or added to destination tab page. End User Copy / paste event initialised by end user. After selecting a group of user objects, the user initialise an event to copy these selected objects, and paste them into another tab-page. User Case U201: Import a User Object file Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Import a User Object file, which is created manually. User Object Generator The User Object file is imported and the object are stored with the intermediate format. End User and Xsteel Application User requests to import a user object file. A user object file is imported into, and all objects included in this file are converted to intermediate format. This user object file can be verified by Xsteel application. File format is not correct. User Case U202: Export a User Object file
Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Export a User Object file in the form which can be recognized by Xsteel application. User Object Generator. A dialog with at least a tab page is presented. All the controls in current dialog are converted into Xsteel User Objects. End User and Xsteel Application Event requesting export The controls in current dialog are converted to the format of Xsteel User Objects, and stored in a file specified by user. This generated user object file may be verified by Xsteel application. User Case U203: Save an intermediate file Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Save the User Objects into an intermediate file Graphical User Interface. Some User Objects have already been created. User Objects are saved. End User Save event initialised by the user. User Objects are stored in the format of intermediate file, which can be used for future manipulation. User Case U204: Open an intermediate file
Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Open an existing intermediate file Graphical User Interface. An existing intermediate file. All the user objects in the intermediate file are interpreted and displayed in a dialog. End User En event initialised by the end user. User selects an existing intermediate file, all the user objects in this file will be converted to the relative data structure and stored in the memory. A dialog will open to show all the object. File format is not correct.. User Case U205: Visualise User Objects Goal Scope Preconditions Postconditions Actors Trigger Description Variations Exceptions Open Issues Visualise the User Objects of User Object file or intermediate file Graphical user Interface and User Object Generator An existing file, User Object file or intermediate file User Objects are shown in the dialog. End User Event intialised by user. After importing or opening a relevant file, all the user objects will be visualized in a newly opened dialog box. File format is not correct.
2.3 End user Two different kinds of Users are classified, they are the common end user and Xsteel application Users. Usually, these two users are the same, however, due to the functional requirements of them are different, it is more rational to divide them into two categories. For the common end user, they will use Xsteel Model-base Object Editor to create Xsteel user objects and export them in User Object file. What the user can manipulate and see are graphical controls, which are then converted into Xsteel User objects. The basic requirement of Xsteel application user for Xsteel Model-based Object Editor is the same as common end users. However, they want specially to check and verify the user objects create manually, and they are more interested in modify the user object interactively by using Xsteel Model-based Object Editor. 2.4 General Limit Basically, Xsteel Model-based Object Editor is an dialog editor, with the ability to create and manipulate all the UI controls in an interactive manner. Different sets of UI controls are related to different User Objects in Xsteel, which constrains the extendibility of this program. For example, if new user objects are introduced in the future, it will be quite sophisticate to add the relevant UI control in Xsteel Modelbased Object Editor to enable the user to manipulate it interactively. Another constraint is the interoperability. Xsteel Model-based Object Editor will be developed with Visual C++ by Microsoft, which means it can only run under Windows platform, and because the original version of Xsteel application was developed in Unix, there will be problems for Xsteel Model-based Object Editor to be integrated with these Xsteel application. 2.5 Dependency The product will serve as an added-on component of Xsteel application, and it is highly dependent of Xsteel applications. If the user object file format is changed due to certain reason, the inner data structure of Xsteel Model-based Object Editor will not be changed by the User Object Generator should be changed accordingly. 3. General Architecture Xsteel general architecture can be described by main component relationship and interaction between main component. 3.2.1 Architecture component diagram
Xsteel components relation analysis: GUI components: is the ultimate graphics handling component of Xsteel UI composer. In the front end, It contains a UI graphical editting tools like VB UI editting 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 a windows oriented graphics handling. It can be divided again into: Dynamic UI component creation. It means to create UI controls like button, edit box, combobox, bitmap in runtime. The runtime creation of UI object in MFC platform is proved to be robust. But in practical implememntation it require a bit more consideration, because you can not predefine a non-exist controls and its behavior. So we need to register/handles message handler of runtime created component in custom way.
Controls reposition and resize: Controls must be repositioned when user click and drag it into new preferred location. And controls like bitmap and buttons, edit box must provide resize functionality to meet the practical demands. Although it seems easy operation to the end user, but you when we take into consideration that when a logical set of controls(e.g a joint parts, it includes several edit boxs, check box and they are positioned related to each other.) When one of the parts control gets repositioned, the effect must be reflect to all the others controls of part. Thus we list carefully separate them out to be one subcomponent of GUI, as it s the need of windows control. We need to handle the windows control postion/size message in a more logical point of view. Object property editor: It s a obvious feature of UI controls. There is generally two sets of property associated with certain control. One is graphical point of view, other is from Xsteel point of view. When user switch between different controls, the property sheet should update automatically. From graphical point of view: a UI control is associated with its window size and window position(in the context of parent window). It s style: 3D, color, resizable, tab order. 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 between Xsteel object list in memory and the final output of INP macro file. The reason for object list serializer is that you need to save your unfinished Xsteel UI design work before you can finally createinp macro files. The object serializer will maintain a list of Xsteel objects in the scope of Xsteel tab page, because it s in the requirement a part(tab) is reusable for other joint(a group of tabs). Serialization and deserialization is a reliable and applicable feature in MFC(Microsoft foundation class). UOG: User Object Generator. It can be viewed as a quite independent components in Xstell UI composer. It s the ultimate component verify and analysis the Xsteel Object list and generate the INP macro file. This is the end of Xsteel UI composer and the beginning of Xsteel applications from Tekla Oy. UOG contains control generator and tabs generator. Tekla Oy has published a Xsteel macro programming manual about how to create macros in a correct syntax. That s the rule to keep Xsteel UI composer and Xsteel applications in consistent. Control generator: Tekla Oy have predetermined a set of Macro definition of UI input fields: Parts, profiles,pictures, parameters, attribute. Of those input fields, parameters, pictures and parameters are associated with single control and label. While parts and profiles are groups of controls with logical relation and graphical position relation. In INP macro file, Control macro is represented by one line.
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 the upper level to contain the lower level entity is by a pair of braces. Tabs can be referenced 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 is successful or not is mainly depend on that. Following we depict the input/output relation 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 doing deserialize, input is saved files. Output: It s a reverse of input. Control generator: Input: Xsteel object Output: a line of macro for that control
Tab generator: Input: Xsteel object list Output: INP macro files 4. Functionality 4.1 GUI component functionality Refer to the architecture analysis section. We classify the GUI functionality into Object Graphic Editor(GUI-OGE); Object Property Editor(GUI-OPE); Object Serializer(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: 1 GUI 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; Bitmap Image, resize is not required; Tab page; Standard buttons GUI-OGE -2 Positioning of controls Priority: 1 / Required: mandatory / Phase: 1 Position can be either absolute position or relative position. Form page which holds control can be divided into predefined section. GUI-OGE -3 Manipulating of control Priority: 1 / Required: mandatory / Phase: 1 Tab frame doesn t need to be resized. But the length of editbox and combobox is required to be adjustable. Controls in editing should be highlighted. GUI-OGE -4 Providing consistent look Priority: 1 / Required: Optional / Phase: 2 Because we are still unsure whether the way Xsteel application interpret the macro UI component is in consistent with the way we draw the UI component. In order not to let user be confused, we need to control the style. GUI-OGE -5 Handling the predefined control set Priority: 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 the edit box in equal length. GUI-OGE -6 Handling static custom controls Priority: 1 / Required: mandatory / Phase: 1 Static custom controls, like bolt_structure, long_hole and extra_lengh, which is not visible in design time, but the size should be reserved.
GUI-OGE -7 Manipulating control set Priority: 1 / Required: mandatory / Phase: 2 The user shall be able to use cut, copy and paste for any selected group of controls. GUI-OPE -1 Runtime feature of control Priority: 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: 1 For Joint, a general tab should be provided first. For all visual controls inside a tab page, a property editing tool should be able to activate to manipulate the visual appearance, position and default 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 properties for relevant controls. GUI-OPE -3 Editing properties for invisible UI controls Priority: 1 / Required: mandatory / Phase: 2 Xsteel UI certainly contains features which is not necessary to be visible, but they are still essential part of complete Joint. All predefined or undetermined component should be include in creation menu. Object property Editor should prompt the end user of them. GUI-OPE -4 Supporting Common Tab Priority: 1 / Required: mandatory / Phase: 2 One globally defined tab may be share by different dialog. GUI-OS -1 INP File Priority: 1 / Required: Mandatory / Phase: 1 All the UI dialog, should keep consistent with INP file(end user file), instead of using intermediate file designed in T1. So the change in INP file will reflect to UI forms in run-time. 4.2 User Object Generator The main functionality of User Object Generator is to provide an external interface for Xsteel Model-based Object Editor to communicate with Xsteel applications. The functionality 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 Objects and outputed into an external file. UOG-EXT-2 User Object Parsing
Priority: 1/Required:Mandatory/Phase:2 UOG should be able to parse the User Object file and convert them into internal format, 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 of MDL 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 MDL file format. 5. Interfaces Generally, system interfaces can be divided into two categories, those related to hardware and those related to software. In Xsteel Model-based Object Editor, the whole product will run in a normal desktop PC, and no special hardware interface is needed. Moreover, because this is a single-thread standalone program, which won t interact with any other program at any level during the runtime. The only external interface is the User Object file, which is interpreted by Xsteel applications. 5.1 Internal Interface The internal interface links the User Object Generator and Graphical User Interface together. Object List in Visual C++ provides a good base for implementing the internal interface. That is, UOG and GUI share the common User Object List, and whenever GUI modifies the User Object List, UOG will detect it. All the operations modifying the UI controls in GUI will affect the User Object List, and the correspondent operation will happen to the User Object List, such as copy, delete and paste. 5.2 External Interface As mentioned before, User Object file is the only external interface through which Xsteel Model-based Object Editor communicate with outside environment. In the user object file, every statement is related to an user object, including a set of parameters which defines the properties of this user object. Following is excerpt from a user object file.
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 Performance In our case Model-base Object Editor may turn out to be slow when user designed UI list grow. However, because the typical computing environment of Xsteel developer is powerful enough, performance doesn t need to be a problem of concern.
6.2 Maintainability, reusability and extensibility The source code and documentation must be written in a way that makes them easy to maintain and develop. Uniform coding conventions, to be specified later, must be followed. End user documentation requirements are specified in section. 6.3 End user documentation The documentation will consist of a product reference manual, a product user's guide as 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 library user's guide, which may or may not be a separate document from the reference manual, explains the use of the application for somebody beginning to work with it and contains examples of how to use the Application. 6.4 Usability The end product should be user friendly. The appearance of all the controls should be unambiguous and intuitive. The layout the whole user interface is compatible with standard 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 with different degrees of proficiency. For example, hot keys should be defined for any operation, which will increase the productivity of advance users dramatically. 6.5 Security No special security requirement is defined for Xsteel Model-based Object Editor, however, the output directory should be protected from malicious operations. The security 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 constraints Xsteel Model-based Object Editor is initially considered as an added-on component of Xsteel application. Basically, the end product is a dialog editor with the ability to create 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. Another constraints is this product is highly dependent of Xsteel applications. When new user object types are added to Xsteel application, great effort is needed to extend the Model-base Object Editor to handle these new object types. 7.2 Environment constraints Visual C++ will be the only programming language for Xsteel model-based Object Editor. Originally, Xsteel applications were developed under UNIX platform, which
isn t compatible with Object Editor. The only functional platform is Windows NT/2000, which constrains the application of this product.
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.