Home

graphical user interface and job distribution optimizer for a virtual

image

Contents

1. id List of Job Objects JobTypt Machine Connections File Parameters ExecTime Dataflow of the Virtual Pipeline Simulation Testbed 3 2 1 Pipeline Editor Inputs The input for the pipeline editor should come from the user The user will define the components belonging to the pipeline system along with their characteristics Outputs The pipeline editor shall produce a list of component objects A component can be either a pipe or a compressor a List of components The GUI shall provide the following components pipes station split joint orifice meter storage compressor driver regulator receipt point delivery point Following are the icons used in the GUI L x v4 O H C Compressor Pipe Split Station Storage Orifice Receipt b Draw a component The user shall be able to draw any components needed for the pipeline system either by clicking on the component icon in the toolbar or by dragging it into the drawing pad a Draw a compressor A compressor shall only be connected to pipelines It can accept several pipelines connections b Draw a joint A joint should be connected to at least two pipelines Pipelines should be the only components connectable to joints c Draw a pipe Pipes should have another component connected at each end c Delete a component The user shall be able to delete any components in the pipeline system either by right clicking on the compon
2. Set the ports of all components in the graph to be visible or hidden When the ports are visible a pipe can be directly drawn without selecting the pipe tool This avoids selecting the pipe tool every time a pipe needs to be drawn When over a port the hand cursor will appear indicating that it is ready to draw a pipe You can then just drag the hand to another port and a pipe will be drawn If it becomes difficult to grab a component and move it because the component is too small you can just hide the ports This way you can click anywhere on the component and move it Pipeline Components You can insert a component by either clicking on the component or dragging its toolbar button into the drawing space Clicking on the component will drop the component at a default location Following 1s a list of all the pipelines component found in the Pipeline Editor e Delivery point Represent a delivery point 2 Receipt point Represent a receipt point Compressor Component composed of a compressor and a driver Type of this component can be set up by right clicking on the component Joint Component used to connect two pipes together Valve Used to connect two pipes Can have two states open or close The state of the valve can be change on the right click menu lt Split Represents a 2 way splitting junction Split Represents a 3 way splitting junction gt Junction Represents a 2 way combining junction gt
3. if j null hash put o j j private JobComponent createComp2Node DefaultGraphCell cell MyUserObject userObject MyUserObject cell getUserObject return new Compressor2 userObject Note e The jobComponent is created from the userObject of the cell stored in the hashtable for future reference 2 2 Mouse click handling and popup menu All the mouse events are handled in the class MyMarqueeHandler The popup menus are also created in this class Every time a click occurs this class detects the cell on which the click has occurred and initiates the proper action see example step 5 This class also handles the pipes creation The userObject for the pipes are defined in the class MyMarqueeHandler as opposed to MyGraph for all other components The decision of whether or not some components should accept pipes sources or targets 1s taken in the class MyModel Example Accept source only from the left of compressor2 public class MyModel extends DefaultGraphModel public boolean acceptsSource Object edge Object port if DefaultPort port getParent instanceof Compressor2Cell if DefaultPort port getUserObject toString equals right return false else return true 2 3 Mapping cells and jobComponents In order to optimize or simulate the graph a mapping has to be done between cells from the graph and Job Component used by the optimizer and the simulator This mapping 1s done by the Mediator
4. E FN AA roup Y N sch Sis Grou SimulatorClient OptimizerClient E E EPredo MyGraph My MarqueeHandler run run iproperty DU Bis Done isDone Edopen B selectPipe boolean ESograph MyGraph setCommana etFilename ESisave BectionMap ActionMap SgetCommana etTime EdopenLib BSiconnect BSisetFilename etJobs ENsaveLib SSigetAction WSisForceMarqueeEvent BigetStatus ivalueChangedo WSlisCellEditable BSimousePressed BSisetStatus Winsert BSimouseDragged 0 key Pressea BlicreateMenuBar BSicreateVertexView BSimouseReleased ElicreateToolbar BSicreatePortView BSigetSourceportAt j BSicreateEdgeView BSigetTargetPortAt BSigetArchivableState BSimouseMoved Le WisetArchivableState BSicreatePopupMenu ButtonTransferHandler Es EZltype String y Y j VertexRenderer BSlgetType E V DefaultGraphCell BSicreateTransferable MyCell getSourceActions MyGraphTransferHandler ESdataCell DataCell ee A V GraphTransferHandler lt importDatalmpl BSigetDataCell DataCell EE Hdolmport MisetDataCell BildataPanel JPanel BSigetRendererComponent installAttributes CompressorCell JointCell g N H pipeCell y EN MyUserObject properties Map CompressorView i l h JointView PipeView Changed f DSigetProperty BSipaint f SM WSisetProperty BSipaint BSigetProperties BSisetProperties BSiclone BSishowProperty Dialog V
5. Introduction This document provides a formal checklist for the requirement specification document of the software The purpose of this document 1s to ensure the quality of the software requirements The checklist will be evaluated by three students and their report will be documented Items to be inspected The Software Requirements Specification document version 2 0 will be inspected Participants e Padmaja Havaldar e Sudershan Kodwani e iubo Chen Criteria Input The Inspectors should review the SRS document and evaluate 1f Y es No Partial and suggest comments if needed Output The inspectors reports Formal Technical Inspection Check List Compatibility e Do the interface requirements enable compatibility of external interfaces hardware and software Completeness e Does SRS include all user requirements as defined in the concept phase e Do the functional requirements cover all abnormal situations e Have the temporal aspects of all functions been considered e Does SRS define those requirements for which future changes are anticipated e Are all normal environmental variables included e Are the environmental conditions specified for all operating modes e g normal abnormal disturbed Consistency e Is there any internal inconsistency between the software requirements e Is the SRS free of contradictions e Does SRS use standard terminology and definitions throughout e Is SRS compatible with the oper
6. s s new String 20 2 userObject putProperty Temperature s s new String 30 3 userObject putProperty Mass s return userObject J Notes e The properties and the values are of type String Therefore when reading the value 1t has to be cast In the proper type generally double or Int 5 Define the property dialog A default propertyDialog displaying the properties and dataDialog displaying the data will be created A default property dialog 1s created for each userObject There 1s no need to create one unless the dialogs have to display different information than the properties stored in the userObject To create a custom property dialog go to MyUserObject class and define the new dialog box protected void showCompressor2Property final MyGraph graph final Object cell create JDialog compressor2Dialog populate the dialog box compressorDialog show Add a call to this dialog box in MyMarqueeHandler createPopupMenu public JPopupMenu createPopupMenu final Point pt final Object cell JPopupMenu menu new JPopupMenu if cell instanceof Compressor2Cell menu add new AbstractAction Edit Compressor2 public void actionPerformed ActionEvent e MyUserObject DefaultGraphCell cell get UserObject showCompressor2P roperty graph cell j J Note e Ifa special dialog is created the default one has to be canceled 6 Insert the component MyGraph insert Let
7. Depth First Branch and Bound Each job j has a computation weight Wj and a communication time Cj sum of each communication time with all neighbors The objective 1s to minimize the load on the busiest machine At each node we consider a cost function for the busiest machine only worst case estimate A vertex in the tree represents a partial complete allocation of jobs on machines The root of the search tree 1s the empty allocation A vertex at level k in the tree represents an assignment of jobs J1 Jk a Cost function The cost function f x 1s defined by f x g x h x where g x actual cost for the current allocation h x load contribution on the busiest machine of the next job to be allocated We have e g x gt W C j for all J allocated to the busiest machine Note Cj consider only the communication with neighbors already allocated e h x mn Wi C1 1 being the next job to be allocated The heuristic function h x is explained as follows f job 1 is eventually assigned on the busiest machine its contribution to this node s load 1s just 1ts weight f job 1 1s eventually allocated on some other machine its contribution to the node s load 1s its communication time At each step we want the take the case that minimize h x b Pseudo Algorithm minCost infinity root empty allocation cost root 0 stack allJobs While stack not empty do node dequeue stack if node isLeaf up
8. Junction Represents a 3 way combining junction Storage Component representing a storage CH Regulator Component representing a regulator zs Orifice Component representing a orifice meter V FEATURES 5 1 Change component properties The properties of each component in the graph can be updated by right clicking on the component and selecting Edit Properties A property window will open and let you change the values For the compressor it 1s also possible to change the type of driver and compressor For that right click on a compressor and select set type The state of a valve open close can also be set Right click on the valve and select Change State 5 2 Name a component For reference purpose it 1s possible to give a name to each component in the graph Even though this name appears on the property panel it has no physical meaning and is not mandatory To change define the name of a component double click on the component A box will appear and you can type the name inside You can also right click on the component and select rename 5 3 Station view C a Create Station It is possible to create a station with some selected cells When the cells are selected right click anywhere on an empty space of the graph and select create station on the menu A station will be created A station can only have one pipe entering and one pipe exiting and should not have any pipe with its source or tar
9. the main constraint 1s the time The simulation has to run in a reasonable amount of time For this reason the software will use various parallel and distributed algorithms Another constraint 1s the space constraint memory The project will take into consideration those constraints and will be designed to optimize the use of time and space CHAPTER 2 Software Requirement Specification 1 Introduction 1 1Purpose The purpose of this Software Requirement Specification 1s to establish and maintain a common understanding between the customer Dr Wallentine and the software developer regarding the requirements for the proposed software 1 2 Scope The proposed software 1s a GUI and a job distribution optimizer for a virtual pipeline simulation testbed The software will simulate the pressure and flow distribution that 1s happening in a real pipeline system The software will use various parallel algorithms on several machines in order to reduce the amount of time needed by this computing extensive simulation The software will also provide a GUI to graphically build the pipeline system and will perform the require computation in order to have a simulation as accurate as possible in a reasonable amount of time The GUI will also be used to visualize the result of the simulation 1 3 Overview This Software Requirements Specification SRS 1s organized into two main sections overall description and specific requirements The overall de
10. 1s counted Drag a component Delete a component Change properties of a component Display data of a component Insert a pipe save Open Graph save Load Library Create a station Remove a station Unfold a station Fold a station Undo Redo action Copy Cut Paste a component Zoom in Zoom out Optimize Start Simulation Stop Simulation Start Replay Stop replay O O70 QUIS QU Quo DO O O TD DUO uu ONO O e Number of user outputs Each user output that provides application oriented information to the user 1s counted In this context output refers to reports screens error messages etc Each user input has a corresponding output In addition some error messages can occur o Bad station selection Bad library file Bad graph file No optimization file No simulation file Graph not saved O O O O O e Number of user inquiries An inquiry is defined as an on line input that results in the generation of some immediate software response in the form of an on line output There are no inquiries in this software e Number of internal files Each logical file generated by the program 1s counted Here there are 4 types of files o Graph files o Library files o Optimizer files o Simulator files e Number of external interfaces file The external interface file 1s an internal logical file for another application o Optimizer files o Simulator files Each of these five major components 1s rated as low average or high
11. Introduction This document specifies the protocol between the GUI on the client side and the simulator on the server side Specification The GUI needs to be able to listen to the simulator in order to get the data from the simulation When the user wants to start a simulation he needs to pass a filename to the simulator If this filename is not valid an error code 1s returned If it 1s a valid filename the file exists and has the proper format then the GUI 1s ready to accept data from the server As long as there is some data available the server continues to send them At any time the user can interrupt the simulation A message 1s then sent to the simulator The protocol will make sure that there 1s no loss of data due to interruption The server can also send an end message when the simulation reaches the end At the end either by interruption or normal termination both the server and the GUI should be ready to start the protocol again Verification The protocol is specified using Promela and checked with Spin We want to check that the protocol has no deadlock We also want to be able to verify that there are no unexpected messages E g a data message when expecting an end message Following are the FSMs used to derive the Spin Model Send file 1 walt Hecv reject oend done Recv accept Recv done Recv Recv done done data ex Send done Send done Recv date Figure 1 FSM for the GUI Recv file
12. Open a graph l Open a graph file vps extension Save the current graph E Undo undo the last action Redo amp Redo the last action Copy 44 Copy the selected item s Paste B Paste a copied or cut item s Cut Cut the selected item s Zoom actual size Return the normal scale of the graph Zoom in amp Zoom in the graph Zoom out o Zoom out the graph Simulate O Start the simulation Stop 8 Stop the simulation Optimize G Start the optimizer Replay P Start the replay session Stop E Stop the replay session 4 2 Vertical toolbar description lt Figure 2 The component toolbar The component toolbar is the toolbar with all the components needed to draw the pipeline system Following 1s the description of 1ts buttons L T DOYYAAXO FOO 7 Selection Tool n Used to select any components in the graph It is always selected by default except when the pipe tool 1s selected Use this button to cancel the pipe tool selection Insert Pipe tool Use this tool to insert a pipe between two components When the tool 1s selected the cursor becomes a cross Rolling over a component port will then cause this port to be highlighted This indicates the possibility of connecting a pipe to this port You can then drag the cursor to another port to have a pipe To come back to a mode where components can be moved you have to select the selection tool Show Hide Connectors
13. PICA Oso sicci etas nun o PU MM RUN LEE I MM ALIA ALLEM 40 CHAPTER eet VAM oto ds emet eg 46 j e Ce ee EE 46 25 ASCO Pe ungues MEUM aM Ds O 46 Sy APPO mE 46 Oz TESIS 47 Ta Pass Pal Cota 47 8s OSI CRAIGS A O A A 47 9 JRESDOMSIDINUES a RA ia 47 10 SO HO n hoetap ecco d ote ae credo aot cat miran 48 11 e EE 48 CHAPTER TO implementa noni PIA eeclesie pero Ege Piet x Ia pepe Se SER 49 IBS MEILEN 49 Je hitbec bur e NEE 49 DOULCC O O Jeana am n O eut dou cob cet Md 49 Assessment EV AAT A tin Sud es quodi Ua a 49 RA AA Mou ed E ose de utet e edi Du sese o 49 Other documents boo tette du MENU ud e Net uM EU ere 49 CHAPTER 11 Formal Technical Inspection essere 50 riet ble dia RET TENTER Sasam ae nee er 50 Hems to OS MA A A d tU 50 Op EE 50 eig p qhaquspa ayasa aa EE aut 50 Formal Technical Inspection Check Listin 50 CHAPTER 12 EE MANUA WEE 53 O A ETE 53 EE EE 53 IM Installation and Execution 53 Ia A eee detegere ED ees 54 4 1 Horizontal Toolbar Description 0se eosseoeeeennssssssseeennssssssseeessssssssrerrressssssses 54 22 Vertical toolbar desc pi 54 NS FEATURE S S 56 5 I Chaupe component Properties a Een 56 De Nae a COMON DIL id S6 2 9 SUAUIOM VIC WP A muUa e cst eM n emet 56 3C Teal Insert EADEdEy u uuu u unutan skashussniqkalkaalkkikasasqshatphuasaqiqluk katu 57 23 5 DI e edo d SCH 5 0 C ASUS CODY ice 58 PER MOVE etam caia intus odisse O O tt ated O e
14. PLAN The project is divided into three phases which are Specification phase Design phase and Implementation Testing and Documentation phase Each of those three phases is ended by presentation at the end of the phase Project Task Duration Days Start Date End Date IUE Phase Specification Ii A a 6 PrjctPlan 1 9S 23 03 924 03 8 Software Quality Assurance Elan 1 9 26 03 9 27 03 9 Documentation for Presentation2 4 92903 10 2 08 10 Presentationi J J 10 3 03 pro ME AAA Ego MERE Phase Il Design 1 19 Presentaion2 24 1110 3 ECC Fr RR E VE E Phase Ill Implementation LL 25 Documentation for Presentation 3 9 12 3 003 12 11 03 26 Presentation3 1212 08 pa L dj E E NN CHAPTER 4 COST ESTIMATE l Function Point Analysis A function point analysis 1s a method of calculation lines of code using function points A function point 1s a rough estimate of a unit of delivered functionality of a software project To calculate the number of function points for a software project all the user inputs user outputs user inquiries number of files and number of external interfaces are counted and divided into three categories low average and high e Number of user inputs Each user input that provides distinct application oriented data to the software
15. and they will appear on the graph 5 7 Remove To remove a component select the component and click remove If a group of components 1s selected all the components will be removed When a component is removed all the pipes connected to it are also removed Notice that data cells cannot be removed They are always associated with a component They can just be hidden 5 8 Zoom By clicking on the zoom icons it is possible to do a zoom in zoom out or to come back to the actual size of the graph 5 9 Optimize When the graph is completed and is ready for simulation you need to first run the optimizer by clicking on the optimizer icon or by going to Tool gt Optimize An error message will appear 1f the current graph has not been saved The parameters of the optimizer can be defined by going to Tool gt Set optimizer parameters There you can specify the time to wait before interrupting the optimization Usually for a medium network a time of 5 minutes will give some satisfying results When the optimizer 1s running you can query its state to determine whether or not it 1s done For that go to Tool Check Optimizer State When the optimizer is done it 1s advised to save the graph again By doing that the new information creates by the optimizer will be saved and you will not have to optimize the graph next time you open the file Be aware that components inside stations will be optimized separately just as any other components 5
16. j atomic 1 state check gt send accept state data ex atomic 1 recv done gt assert state data ex state send done if State data ex gt state recv done State send done gt state 1dle fi j atomic state data ex gt if datasent lt MAX gt send data datasent else gt send done state send done fi j atomic state recv done gt send done state 1dle j od j init 1 atomic run gui socket1 socket2 run simulator socket2 socketl j j SPIN Output Spin Version 3 4 16 2 June 2002 Partial Order Reduction Full statespace search for never claim not selected assertion violations cycle checks disabled by DSAFETY invalid endstates je State vector 56 byte depth reached 53 errors 0 162 states stored 152 states matched 314 transitions stored matched 330 atomic steps hash conflicts 0 resolved max size 2 19 states 2 542 memory usage Mbyte Reference Spin Online References http spinroot com spin Man index html CHAPTER 9 Test Plan 1 Introduction The Software Test Plan STP describes the plans for testing the software The purpose of the test plan 1s to ensure that the intended functionalities are implemented properly To fulfill this objective a series of test will be executed during the implementation 2 Scope This plan will address only those items and elem
17. jobs non allocated yet are stored inside the node An allocation 1s an array of machine with their corresponding jobs Class Machine Holds all the information about a machine Store all the jobs allocated to this machine so far Class JobComponent Abstract class representing a job Sub classes of this class are component objects pipe compressor joint Class Pipe extend JobComponent Holds all the properties and initial values of a pipe There is a similar class for all components Compressor Joint split Class Worker extends Thread Worker objects are threads searching a part of the tree They exchange new bounds via a shared memory class SharedBound Holds a stack of nodes representing their part of the tree Class SharedBound Holds the minimal bound found so far by the Worker objects Also holds the allocation Solution object corresponding to this bound Class CompareJob Used to specify how jobs should be compared When the jobs are sorted it helps reducing the number of nodes visited to reach the solution Jobs are compared by number of neighbors and by weight References e Gaudenz Alder Design and Implementation of the JGraph Swing Component http www jgraph com documentation shtml e Dar Tzen et al Assignement and Scheduling Communicating Periodic Tasks in Distributed Real Time Systems IEEE Transactions on Parallel and Distributed Systems 1997 CHAPTER 8 Formal Requirement Specification
18. method e keytool genkey keystore myKeys alias jdc This generate a key stored in the file myKeys A password will be asked to generate the key This file is available and the password is pipeline If using the file myKeys this step is not necessary as the key has already been generated e jarsigner keystore myKeys project jar jdc This will sign the jar file with the key contained in the file myKeys The password used when creating the file will be asked If using the provided file it is going to be pipeline References e EEE STD 830 1998 IEEE Recommended Practice for Software Requirements Specifications 1998 Edition IEEE 1998 e Software Requirement Dr Scott Deloach s CIS748 lecture notes http www cis ksu edu sdeloach 748 e Kim Johnson Software Cost Estimation Metrics and Models http sern ucalgary ca courses seng 62 1 W98 johnsonk cost htm e An Introduction to Function Point Analysis http www gpmg com fp intro htm e David Longstreet Fundamentals of Function Point Analysis http www ifpug com fpafund htm e Formal Inspection Scott Deloach s CIS748 lecture notes http www cis ksu edu sdeloach 748 protected slides 748 4 formal inspections pdf e IEEE guide for software quality assurance planning 730 1 1995 e Pressman Roger S Software Engineering A Practitioner s Approach Fifth Edition Mc GrawHill NY June 2001 e Gaudenz Alder Design and Impl
19. of data produced by the simulator will be saved under test5 sim The initial file is named test0 sim It is the same data as the original file received from the optimizer Simulator files are the serialization of a vector containing the JobComponents Each JobComponent in this file has been updated with new values coming from the simulation 3 2 Variable names The only variable names that are fixed are the name of the ports and the name of the data edges edges linking a cell with its data For components having 2 ports the left port will be called left and the right port right Example DefaultPort port new DefaultPort left For components with more than one left port the names of the left ports should contain the string left no matter what the name is 1 e topLeft Same for components with more than one right port This naming convention helps to easily identify the ports The data edge name is data Knowing this name helps making the distinction between a data edge and a pipe which 1s also an edge Example DefaultEdge edge new DefaultEdge data IV Communications The GUI on the client side has to communicate with the optimizer and the simulator on the server side 4 1 GUI Optimizer The protocol of this communication is very simple The GUI communicates via the OptimizerClient class First the OptimizerClient opens a connection to the server on port 3333 Then it sends a list
20. run the optimizer When optimizing a mapping 1s done between cells from the graph and components from the simulator If the graph is not saved the mapping is lost and the simulator cannot map the data with the cells in the graph The solution is to restart the optimization CHAPTER 13 Technical Manual l Purpose The goal of this document is to provide a general description of how to modify or update certain functions of the pipeline editor It also provides a description of the function of some elements For more information about the classes and methods refer to the Design document and the API document available online ll Description Following 1s a general description for e Adding and modifying components e Mouse click handling and popup menu e Mapping cell jobComponent 2 1 Adding and modifying components The main class to insert and modify components 1s the class MyGraph This class defines all the properties for the components by creating UserObject objects Each component compressor joint valve has a userObject that hold its properties For this reason the display of the properties dialog box 1s done by the class MyUserObject Here are all the steps to add a new component La ya Define a new cell class for the component similar to CompressorCell class Define a view for the component similar to CompressorView class In the view the paint method for the new component has to be specified In the MyGraph
21. s create the part of code to insert a component of type COMPRESSORQ2 this type will be define in the next step public void insert String type Point point Hashtable attributes new Hashtable int u GraphConstants PERCENT Map mapPort Construct Vertex with no Label DefaultGraphCell vertex new DefaultGraphCell DataCell data new DataCell OS E Cort a CODIDIOSSQE bi iu REE EEE if type equals COMPRESSOR2 MyUserObject userObject compressor2UserObject vertex new Compresso2rCell userObject data setUserObject userObject Default Size for the new Vertex size new Dimension 50 75 Add a Port mapPort GraphConstants createMap GraphConstants setOffset mapPort new Point 0 int u 4 DefaultPort port new DefaultPort left vertex add port attributes put port mapPort mapPort GraphConstants createMap GraphConstants setOffset mapPort new Point u int u 4 port new DefaultPort right vertex add port attributes put port mapPort CompressorCell vertex setDataCell data Notes e A vertex is created with a compressor2UserObject Recall that this userObject holds all the properties for the component This vertex has a data Object to display summary data and a size size of the enclosing rectangle used in step 2 e Depending on the component we have to define a certain number of ports and their position The position is relative to u This
22. should implement adequately every features of the pipeline simulation Each feature presents some required conditions that the system should meet to react correctly The diagrams below show the sequence diagram and the interaction of the different parts of the software Server Side Server Optimizer Simulator C i e nt S i d e Xi Socket User Pipeline Editor Click link in Browser Download Application WebStart lt Drag component Display component Build Network Display Network Save Network gt Optimi e FU Sr O ss Optimize Graph BuildJobGraph graph lt Optimize JobGraph gt Simulate WriteFile jobsLists lt Simulate JobsFilename File filen tme Simulate Send simulationData e Display Data Interupt a Interupt gt Stop Simulation Interupt_confirm el End of simulation lt lt End of simulation lt End of simulation End_confirm lt gt gt replay ReadFile Send Replay Data OOo lt Sequence diagram of the Virtual Pipeline Simulation Testbed Graph Model Component Characteristics Type Diameter Length Index Value Gas Type User Input PIPELINE EDITOR OPTIMIZER Z
23. the DataCell as a JPanel containing information to be displayed Class MyCell extends DefaultGraphCell Abstract class for all the custom cells representing the components Each MyCell object has a reference to a DataCell Class CompressorCell extends MyCell Represent a component cell The component is a compressor Each component cell has a DataCell and a MyUserObject to holds information about the cell There is similar class for each component Pipe Joint Split Class Compressor View extends VertexView Define the shape of the component There 1s similar class for each component Pipe Joint Split Class MyUserObject extends Object Holds the property of the associated object component in a map for future reference Display the property dialog for each component Class SaveServer Server to save the user file on the server side Receive the file via socket and save it Class SaveClient Send the file to be saved to the server via socket Class Optimizer Create JobComponent objects from component cells taken from the graph Each component cell has a corresponding JobCcomponent Holds a reference to BranchBound class to start the optimization 4 Optimizer Design Problem Given a set of jobs with execution time and computation time and a set of machines find the optimal job distribution among those machines That is find the distribution that minimizes the differences in the load of each machine 4 1
24. variable can be seen as the width or length of the enclosing if used respectively in the x coordinate or the y coordinate In our case the port will be at 1 4 from the top of the enclosing rectangle e Each port has a fixed name as defined in the naming conventions Section 3 7 Add a new toolbar button public JToolBar createToolBar2 JToolBar toolbar new JToolBar SwingConstants VERTICAL toolbar setF loatable false InsertCompressor2 URL comp2Url getClass getClassLoader getResource gif comp2 gif Imagelcon comp2Icon new Imagelcon comp2 Url compressor toolbar add new AbstractAction Comp comp2Icon public void actionPerformed ActionEvent e graph insert COMPRESSOR2 new Point 10 20 1 compressor2 setToolTipText Compressor2 MouseMotionListener ml new MouseMotionAdapter public void mouseDragged MouseEvent e JComponent c JComponent e getSource TransferHandler th c getTransferHandler th exportAsDrag c e TransferHandler COPY g compressor2 setTransferHandler new ButtonTransferHandler COMPRESSOR2 compressor2 addMouseMotionListener ml Notes e You should have an image icon for the new component in this example comp2 gif Images are 24 x 24 e The action when the button is pressed is to insert compressor2 into the graph The type specified when calling graph insert should match the type used in MyGraph class step 6 e The MouseMotionListener i
25. 10 Simulate Once the optimizer 1s done the simulation can be executed Click on the simulation icon or go to Tool gt Start Simulation When opening a file that has already been optimize it 1s not necessary to optimize the graph again The simulator will run and after some time you will see the first results coming At any time the simulation can be stopped by clicking on the stop button Once the simulation 1s stopped 1t can only restart from the beginning To review data previously simulated you can use the replay option 5 11 View simulation data For each component expect pipes it is possible to have a summary view of the data from the simulation Right click on the component and select show data The data show the pressure temperature and mass flow of the component When a data cell 1s visible you can hide 1t by right clicking on the component associated to it and select Hide data Summary data are always linked to a component Therefore 1t 1s easy to know which component they refer For all components 1t 1s also possible to display all the data For a pipe right click on 1t and select display data For any other components right click on the data cell it has to be visible and select display data A window will appear with all the simulation data Notice that simulation data cannot be modified 5 12 Replay After each simulation it 1s possible to review all the data generated during the simulation
26. 13 check oend reject Send done oend accept Recv done Recv Recv done done Interruption data_ex Send_ done Send done Normal Termination Figure 2 FSM for the Simulator SPIN Model Protocol GUI Simulator Virtual Pipeline Simulation Testbed Walamitien OYENAN e define idle 0 define wait define check 2 define data ex 3 define recv_done 4 define send done 5 define MAX 4 int datasent 0 mtype file reject accept data done chan socket MAX of mtype chan socket2 MAX of mtype proctype gui chan send recv 1 int state idle end do atomic state idle gt send file state wait j atomic 1 recv reject gt assert state wait state 1dle j atomic recv accept gt assert state wait state data ex atomic recv data gt assert state data ex state send done skip j atomic 1 recv done gt assert state data ex state send done if state data ex gt state recv done state send done gt state 1dle fi j atomic state data ex gt send done state send done j atomic state recv_done gt send done state 1dle od proctype simulator chan send recv d int state 1dle end do atomic state idle gt recv file state check j atomic state check gt send reject state 1dle
27. Click on the play icon in the toolbar and the replay function will be started If there are no simulation data available an error message will appear At any time the replay can be stopped by clicking on the stop button 5 13 Bend pipes With Shift click on a pipe maintain shit and click on the pipe 1t 1s possible to add a bending point to the pipe This function is just provided for a better display and has no real physical meaning Once a bending point is created you can bend the pipe by dragging the bending point To remove the bending point do a Shift click on the point VI FAQ Q When I click on the link the application does not start A If the browser asks you to open the file which means you do not have Java Web Start installed on your computer Go to http java sun com products javawebstart download html and install the latest version of Java Web Start If you have Java Web Start verify that you have permission to write on the C drive of your machine O The program crashes when I run the optimizer or the simulator A The server 1s not running Contact the administrator O When I want to move a component 1t starts drawing a pipe A Either the Pipe tool is selected cross cursor or you are over a port For small components an easy way to move them is to hide the ports This way you will never be over a port O I do not see any data coming when I run the simulator A You did not save the graph after having
28. GRAPHICAL USER INTERFA CE AND JOB DISTRIBUTION OPTIMIZER FOR A VIRTUAL PIPELINE SIMULATION TESTBED By WALAMITIEN OYENAN B S Universit des Sciences et Technologies de Lille 2001 A PORTFOLIO Submitted in the partial fulfillment of the requirement for the degree MASTER OF SOFTWARE ENGINEERING Department of Computing and Information Sciences College of Engineering Kansas State University Manhattan Kansas 2003 Approved by Major Professor Dr Virgil Wallentine be PODOS O O O pr teri UN E te A p EUH 5 O e A 5 CONS EE 5 CHAPTER 2 Software Requirement Specifcaton 6 INTO UCA 6 PSHE UI VO an mtu mde A x CMM teque 6 SCO EE 6 Me O VC IV W ses sees usan sa CTO cdg aap ees Seat TP 6 2 Overall des COPOS ad da 6 ZE Product PE PEC 6 2 2 UHserntertace Pipeline Bdilo ru uy A e Leto au a ie uh 7 2 9 FIAT GW ale WEIL ACCS aeg DEE 7 2 SCS eege 7 2 2 C omirmunicattonis IDE ACOS sc ts Poil oid hee Su u ua Durus 8 STEE 8 2l Sere ardebe Ee 8 AAA A A 9 3 1 Externalanterface TEQUES tania 9 3 2 Funcional reg le Ments usa u uu uu u u ui Ee 10 3 2 1 PPC Wie eeben 12 392 2 BI ett T uec abt a O O feos teary ey eee one benef 14 3 23 O 14 2 5 Pertormatce regire menis ici 14 374 DSOBILWAIC SY SICH att I DULES osea rt A leegent 15 de ANCOUPACY m 15 De ARC LES DM ici 15 Ce tee 15 A A deca ten S 15 CHAPTER 35 PROJECT PLA N dada 16 CHAPTERA COST ESTINDATE 0 Ng E vetu uU 17 I Suter eer Ee 17 H Cost Analysis Using COCO
29. MO si d eg owed wos 21 CHAPTER 5 Architecture Elaboration Plan 23 CHAPTER 6 Software Quality Assurance Plan 24 Be TUT OSG ope bete tod eU A u M IM NI ALAIN LM AMBAS EE 24 2 Manas O TO TT 24 AO m Umm 24 De EE 24 2 9 ROIS Ad RESPONSE a a 25 o EE ES 25 O LII mM EI LN n Du 25 3 2 Minimum documentation requirements ccccccccccccsssssseeccccceeeeaaesseeeeceseeeeaaeeeees 25 3 2 1 Software requirements Specification ii 25 32 2 UN O Test Planen ade 25 3 2 Formal Software Specification a 25 3 244 Software deston do CUM dirt ee hut eese dst pda den 25 32 0 User DocurmentatlOtt sooo tpe na ET DO tav Hec EN 25 4 Standards practices conventions and mec 26 Z E PU DOSE Eege 26 A 2 COM TE E LU UU EE 26 4 2 1 Documentation Standards ooooooonnnncccccnnnnnononnnnnononononononnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnos 26 EE Ee EE 26 DD e 26 S REVIEWS ad AU EE 26 RE 26 23 2 Minuta Ro qUe 27 o yu uuu olay eegne eegene ege 2 T Problem reportine and correctivo acu eate DENS MEUS 2 8 Tools techniques and Methodologies uu n u uuu a OEE 27 CHAPTER T AGicChitecture DSsionu uwa suasana donado 28 Es O SystenmidbesieniDesoriptionu Sumaq do da dead 28 2s Te ER EE 28 S Pipeline re aa 31 Ae ee E Desi ia 33 CHAPTER 8 Formal Requirement Sspecfceaton 40 POC RC UM esac ad a 40 SPS CIE BUI OM EE 40 VEC
30. Roger S Software Engineering A Practitioner s Approach Fifth Edition Mc GrawHill NY June 2001 CHAPTER 7 Architecture Design 1 System Design Description This document contains the complete architectural design of the GUI and the Optimizer of the Virtual Pipeline Simulation Testbed The GUI 1s built as an extension of the JGraph and Swing packages In order to have a better understanding of the design this document will briefly describe the design and features of JGraph before explaining in details the design of the GUI and the Optimizer The complete design of JGraph can be found online cf references There are 3 main packages in this architecture e Jgraph e Editor e Optimizer The design of each package will be explained separately in the rest of this document 2 JGraph design The implementation of JGraph 1s entirely based on the source code of the JTree class However it is not an extension of JTree it is a modification of JTree s source code The components for trees and lists are mostly used to display data structures whereas this graph component is typically also used to modify a graph and handle these modifications in an application dependent way 2 1 Features The main features of JGraph are e Inheritance JTree s implementation of pluggable look and feel support and serialization 1s used without changes The UI delegate implements the current look and feel and serialization 1s based on the Serializable interfa
31. al machine experience 1 21 1 10 1 00 090 LEXP Language experience 1 14 1 07 1 00 095 E Project MODP Modern programming practices 1 24 1 10 1 00 0 91 82 TOOL Software Tools 1 24 1 10 1 00 0 91 0 83 SCED Development Schedule 1 23 1 08 1 00 1 04 1 10 Table 2 1 Software Development Effort Multipliers EAF e EAF 0 75 x 0 94 x 1 15 x 1 00 x 1 00 x 0 87 x 0 87 x 0 71 x 0 82 x 0 70 x 0 90 x 0 95 x 0 82 x 0 91 x 1 10 0 17 e KLOC 8 8 000 SLOC Estimation e E 32x0 17x 8 4 82 staff month e Time 2 5 x 4 8277 4 54 months Analysis staff month 152 hours gt Total Time 3326 Hours References e Software Cost Estimation Metrics and Models Kim Johnson http sern ucalgary ca courses seng 621 W98 0hnsonk cost htm e An Introduction to Function Point Analysis http www qpmg com fp intro htm e David Longstreet Fundamentals of Function Point Analysis http www ifpug com fpafund htm CHAPTER 5 Architecture Elaboration Plan The purpose of this document as required by the MSE portfolio requirement 1s to define the activities and actions that must be accomplished prior to the Architecture Presentation The activities and actions to be accomplished prior to the architecture presentation are listed below e Software Requirement Specification e Software Quality Assurance plan e The Engineering Notebook e The vision document e The Cost Estimation e The Proje
32. are distributed among workers Each worker can the start 1ts own branch and bound algorithm Every time a new bound is reached it is compared to the shared bound and updated if necessary At the end the shared bound which is the minimal found will be associated to a solution object containing the minimal allocation This solution Object will be returned 4 2 Class Diagram Solution value int allocation Vector BranchBound SSigetValue SSigetAllocation ESminCost Solution active Stack node Node SharedBound value float ESsolution Solution B findSolution BistartSolution A Optimizer ESgraph JGraph Worker SSigetValue SSisetValue SSigetSolution WSisetSolution workers Vector ESallJobs Vector EXallMachines Vector gt ESsolution Solution stack Vector ESnumMachine int ESnumJobs int Node Mallocated Vector Mremaining Vector allocation Vector load Vector leaf boolean MSgetLoad B getCost MsetLoad BStoptimize Ss etCost EficreatePipe BSiaddNode BiisetAllocation icreateJoint Men BgetAlloc ation EcreateCompressor ek BSiisLeaf CompareJob WSigetLoadForMachine ls etLoadForMachin
33. ational environment of the hardware and software e Has the impact on the environment on the software been specified e Has the impact of software on the system and environment been specified Correctness e Does the SRS conform to SRS standards e Are algorithms and regulations supported by scientific or other appropriate literature e Does SRS reference desired development standards e Does the SRS identify external interfaces In terms of input and output mathematical variables e What is the rationale for each requirement Is it adequate e Is there justification for the design implementation constraints Feasibility e Will the design operation and maintenance of software be feasible e Are the specified models numerical techniques and algorithms appropriate for the problem to be solved Modifiability e Are requirements organized so as to allow for modifications e g with adequate structure and cross referencing e Is each unique requirement defined more than once Are there any redundant statements e Is there a set of rules for maintaining the SRS for the rest of the software lifecycle Traceability e Is there traceability from the next higher level spec eg system concept requirements and user needs as defined In concept phase and system design e Does the SRS show explicitly complete coverage of requirements defined by client e Is SRS traceable forward through successive development phases eg into the des
34. be part of the library Then go to File gt Save As Library The library will be saved To insert a saved library go to File gt Open Library and then select a valid library name The library will then be inserted into the current graph AII library names have a lib extension Even if the original library name was created without this extension it will be added automatically For example if you save your library as myLibrary when opening it you need to choose the file myLibrary lib 5 5 Save Open At any time the graph can be saved Just click on the save icon or go to File gt Save and choose a name To open a graph click on the open icon or go to File Open and choose the name of the graph to open Make sure to have saved all previous work before opening a new graph All graph files should have a vps extension Even if the original library name was created without this extension it will be added automatically For example 1f you save your graph as myGraph when opening it you need to choose the file myGraph vps 5 6 Cut paste copy To cut or copy select the component s To select a component just click on the component To select a group of components drag the mouse to draw a selection square enclosing all the desired components Selected components will be highlighted in green Once the components are selected click on the cut or copy icon If there are some items previously cut or copy you can paste them
35. ce and XMLEncoder and XMLDecoder classes for long term serialization e Modification The existing implementation of in place editing and rendering was modified to work with multiple cell types e Extension JGraph s marquee selection and stepping into groups extend JTree s selection model e Enhancement JGraph is enhanced with datatransfer attributes and history which are Swing standards not used in JTree e Implementation The layering grouping handles cloning zoom ports and grid are new features which are standards compliant with respect to architecture and coding conventions 2 2 The Model The model provides the data for the graph consisting of the cells which may be vertices edges or ports and the connectivity information which is defined using ports that make up an edge s source or target This connectivity information is referred to as the graph structure The geometric pattern 1s not considered part of this graph structure ES Figure 1 A graph with two vertices and ports and one edge in between VenA Edge VenexB Figure 2 Representation of the graph in the DefaultGraphModel 2 3 The View The view in JGraph is somewhat different from other classes in Swing that carry the term view in their names The difference is that JGraph s view 1s stateful which means it contains information that 1s solely stored in the view The GraphLayoutCache object and the CellView instances make u
36. class This class holds 2 static hashtables one for the mapping cell JobComponent and another one for the mapping JobComponent Cell This class is the link between the graph and the optimizer and the simulator This is in the mediator class that data of the simulation are updated inside each cell Iil Naming Conventions There is some naming conventions for the files and variable names used by the application 3 1 File names The graph files are saved with the extension vps Those files are saved on the client machine and just contain information for rebuilding the graph An vps file 1s the serialization of the view and the model of the graph An example of file would be fest ups The optimizer files use the extension opt They use the basename of the graph file saved by the user For instance 1f a user save a graph under test vps the optimizer file will be named test opt For this reason the user is prompted to save the graph before optimizing Optimizer files are saved on the server side They are used by the simulator An opt file 1s a serialized vector containing all the JobComponents created from the graph cells Those JobComponents contain information generated from the optimizer about the machine on which they should be executed The simulator files use the extension sm The file name is created by adding the timestamp of the simulation to the basename of the graph file saved by the user For instance the 5 set
37. class associate the cell with the view method create Vertex View Define the properties of the new component by adding a method in MyGraph that return an UserObject holding the properties of the component Define a property dialog for the component in the class MyUserObject optional In MyGraph class add the component cell in the insert method to allow the new cell to be inserted in the graph In the Editor class add a new button to the toolbar corresponding to this new component Create a new class extending JobComponent to have a job component associated to this new component The new job component should use the cell s userObject in order to initialize its fields see Compressor java The execution time of the new job component is also defined in this class 9 In Mediator createJob associate the new component cell to the new job component created This method also defines the local and remote communication time for all the components Example Let s add a new compressor that face the opposite direction of the current one like this We are going to call this component compressor2 l Define Class Compressor2Cell public class Compressor2Cell extends MyCell public CombineCell Object userObject super userObject j j 2 Define Class Compressor2 View public class Compressor2 View extends VertexView static Compressor Renderer renderer new Compressor2Renderer public Compressor2 View Object cel
38. counts the technical complexity It is generated by giving a rate on a scale of 0 to 5 for each of the following questions The higher the rate the more important the function is sie Does the system require reliable backup and recovery CH Are data communications required Are there distributed processing functions 4 Is performance critical 5 Will the system run in an existing heavily utilized operational i environment Dest wien emy Does the on line data entry require the input transaction to be built over multiple screens or operations EA Are the files updated online T Are the input outputs files or inquiries complex Is the code designed to be reusable Are conversions and installation included in the design Is the system designed for multiple installations 1n different Is the internal processing complex organizations 14 Is the application designed to facilitate change and ease of use by the user a Total value adjustment factor Total function points 216 0 65 0 01 29 203 04 We select the language factor for applications written in JAVA to be 40 The language factor here is an assumed value It 1s expected that the language factor for 3rd generation language to lie between 20 and 60 since no code is automatically generated by an IDE but there will be some code reused the language factor 1s assumed to be average Therefore the estimated source lines of code Tota
39. ct plan e The Implementation Plan The artifacts that will undergo formal technical inspection are e Object model e The requirement specification The Formal Technical Inspection will follow an IEEE standard formal checklist and will be led by two MSE students and one student involved in the project 1 Padmaja Havaldar 2 Sudarshan Kodwani 3 Liubo Chen The inspectors will provide a well documented report on the result of their inspection References http www cis ksu edu sdeloach 748 protected slides 748 4 formal inspections pdf CHAPTER 6 Software Quality Assurance Plan 1 Purpose The software item covered by this SQAP is the Virtual Pipeline Simulation Testbed The system is used to simulate the pressure ad the flow in the components of a real pipeline system This SQAP covers the entire life cycle of the software 2 Management 2 1 Organization A committee of three professors will supervise the project Only one developer will implement the project The committee consists of e Dr Virgil Wallentine Major Professor e Dr Masaaki Mizuno e Dr Daniel Andresen The developer is Walamitien Oyenan The committee will approve the design and requirements and will be responsible for monitoring implementation progress 2 2 Tasks The following tasks will be completed for the project Requirements Specification Cost Estimation Project Planning Formal Specification amp Verification Test Planning Desi
40. date minCost else compute cost node if cost node gt minCost then prune node else generate job allocation of all children of node end if end if end while return minCost The following figure shows an execution of the Branch and Bound algorithm with 3 tasks T1 T2 T3 and 2 processors N1 N2 without and with pruning Fig 7 8 l L Root of the Search Tree E SR e EE EE LEE EE as EE E EE a 2 TL ND 3 T1 N2 Allocating T1 d eege ee P oi iy c 2 4 KN k E L 4 j ILND 5 T1 NI 6 2 T1 N2 7 T1 N2 Allocating T2 WM T2 N2 TZ N1 N T2 N2 d E M AAA E AA O EEES A A N c x f e ra E E e a 8 9 10 LIE 4 13 4 15 Allocating T3 O LN 3 SEN d Ne yl P e og Ti NI T1 N1 TL ND TL ND TI N2 TL N2 TL N2 Be N2 T2 NI T2 N1 T2 N2 T2 N2 T2 N1 T2 N1 T2 N2 T2 N2 T3 N1 T3 N2 T3 NI T3 N2 T3 N1 T3 N2 T3 NI T3 N2 Fig 6 Example with 3 tasks T1 T2 T3 and 2 processors N1 N2 without pruning 14 40 3 T1 N2 39 N 20 40 x 40 T1 N2 7 TL N2 T2 N1 T2 N2 N 0 T1 N2 T1 N2 T2 N2 T2 N2 T3 N1 T3 N2 Figure 7 Example with 3 tasks T1 T2 T3 and 2 processors N1 N2 with pruning c Shared Version In the shared version the sequential algorithm 1s started When there are enough nodes the nodes
41. depending on the number of files referenced and the number of data elements A score is attributed to each rating level External Input Number of data elements 19 Number of file referenced 2 Rating High Score 6 External Output Number of data elements 25 Number of file referenced 0 Rating Ave Score 5 External Inquiries Number of data elements 0 Number of file referenced 0 Rating N A Score 0 Internal files Number of data elements 4 Number of user data referenced 4 Rating Low Score 7 External Files Number of data elements 2 Number of user data referenced 4 Rating Low Score 5 The following table gives the formula to compute the total unadjusted function point Type of Component e Low Average High Toa Extemal Inputs J x3 xd x6 _ S ZC x4d 3B x5 J xf External Inquiries x3 xd _ x6 _ Internal Logical Files vis xl xl5 _ _External Interface Files x5 Le xl0 Total Humber of E d Function Points Complexity of Components Multiplied Value Adjustment Factor Multiplied Value Adjustment Factor Value Adjustment Factor Total Adjusted Function Points A Total Adjusted Function Points d Function Points Total Unadjusted Function Points 6x6 5x5 7x15 5x10 216 Total Function Points Total Unadjusted Function Points x 0 65 0 01 x SUM F where SUM F
42. e BSicompare SSigetAllocationForMachine JobComponent EimachinelD int Machine S al ESnumProcessors int ESneighborsIn Vector aes String neighborsOut Vector m speed int SSigetMachineld BSigetcomponentType WSigetPower C Id WSigetNumProcessor BigetComponentld Compressor MoetSpeedo SSigetNeighborsIn Bias Type 1 int BSigetNeighborsOut Bios double Bits double ms double od double V itd double Pipe y Ema double diameter 0 6m double Joint power 1000 0 double ESlength 100000 0m double EStheta 0 0 double nodes 51 int gas Type 1 int hin 200 0 double tin 298 15 double E5p_1 double 3p _nodes double number 3 int ESindex int 3 value double 3 Ep double 51 double 51 Bam double 51 speed 14000 0 double ESefficiency 75 0 double head 20 0 double fuel 1 0 double ESnumber 4 int ESindex int 4 value double 4 Figure 9 Class Diagram of the Optimizer 4 3 Class Description Class BranchBound Implement the branch and bound algorithm Holds a reference to the current solution found Class Solution Represent a solution to the Branch and Bound algorithm Contains the minimal allocation found Class Node Holds the current allocation The allocation can be partial non leaf node or complete leaf node For a non leaf node
43. ebStart The interface should provide all the necessary components to draw a complete pipeline system Characteristics of those components shall be defined at the time of their creation As the pipeline system can be very large the interface shall provide a way to save retrieve previously built pipeline subsystems The interface will consist of one window with 2 toolbars and one menu bar The horizontal toolbar will have a button for the components and will support drag and drop to insert components The vertical toolbar will contain all the buttons for editing and zooming The menu bar will offer the same functionality as the 2 toolbars in addition of the save open function The interface will offer the possibility to use the keyboard via some shortcut keys Following 1s a screenshot of a prototype GUI L E Pipeline Editor File Edit Tools Help G ae bh Ok S lt a BH P null ka cm 3 T null C D F null kmh lt a ot P null kgicm 3 T null C 7 F F null kmh Storage 1 rem 5 a Properties of comp ps op power 1000 0 ms 0 0 speed 14000 0 td 0 0 number 4 efficiency 75 0 gasType 4 ts 0 0 pd 0 0 head 20 0 md 0 0 value comp fuel 1 D ca 2 Wind i ue TextPad fi doc ay SRS2 do EN gt Rational E Pipeline PIPELINE EDITOR 3 2 Functional requirements In order to provide the most realistic and accurate simulation the system
44. ementation of the JGraph Swing Component http www jgraph com documentation shtml e Dar Tzen et al Assignement and Scheduling Communicating Periodic Tasks in Distributed Real Time Systems IEEE Transactions on Parallel and Distributed Systems 1997 e TEEE Standard for Software Test Documentation IEEE Std 829 1998 e IEEE Standard for Software Reviews and Audits IEEE Std 1028 1998 1998 Edition e Software Formal Inspections Software Assurance Technology Center SA TO 1997 http satc gsfc nasa gov fi fipage html e Weiss Alan R and Kerry Kimbrough Fundamentals of Software Inspections Version 2 1 1995 http www2 ics hawail edu johnson FTR Weiss weiss intro Acknowledgements e Committee Members o Dr Virgil Wallentine o Dr Daniel Andresen o Dr Masaaki Mizuno
45. ent and selecting remove or by clicking on the remove icon in the toolbar or using the delete key d Edit a component The user shall be able to edit the characteristics of any components inside the pipeline system by using the right click menu Features available for editing should depend on the component selected e Move a component The user shall be able to move any components of the pipeline system inside the drawing space using a dragging move All the components connected to the component moved should also move and stay connected f Undo Redo an action The user shall be able to undo or redo any action done on any components of the pipeline system either by clicking on an icon in the toolbar If there is no action to undo or redo the button should be disable g Copy Cut Paste a component The user shall be able to copy cut or paste any components of the pipeline system using the buttons in the toolbar or the standard keyboard shortcuts h Zoom in Zoom out The user shall be able to zoom in or zoom out any area of the pipeline system using the buttons in the toolbar i Optimize The user shall be able to launch the optimizer from the GUI by clicking on a button on the toolbar j Simulate The user shall be able to launch the simulation from the GUI by clicking on a button on the toolbar k Insert a checkpoint The user shall be able to launch insert a checkpoint at any time during the simulation l Playback The u
46. ents that are related to the GUI and the Optimizer of the Virtual pipeline Simulation Testbed The primary focus of this plan is to ensure that the GUI provides the appropriate functionalities and that the optimizer produces an optimal solution The project will have three levels of testing Unit System Integration and Acceptance Unit testing focuses verification effort on the major functions and integration testing tests the program structures built with unit tested modules The details for each level are address 1n the approach section and will be further defined in the level specific plans 3 Test Item These are the items to be tested e Pipeline Editor e Optimizer 4 Features to be Tested Pipeline Editor functions Optimizer performance Communication GUI Optimizer Communication GUI Simulator 5 Approach 5 1 Unit Testing There will be mainly two units the GUI unit and the Optimizer unit All the classes will be tested 1n the unit they refer to Classes belonging to both units JobComponent and subclasses will be tested only in the GUI unit 5 2 Integration testing Once the individual units have passed unit testing those units may then be used in integration testing During integration testing the units will be incorporated together and tested adding one unit at a time Integration testing will put together the GUI unit and the Optimizer unit 6 Test Cases 6 1 Unit Tests Pipeline Editor e Given a network a
47. ertexView Figure 5 Class Diagram of the Pipeline Editor 3 2 Class description This section describes each class of the pipeline editor and its function For the classes extending JGraph classes only the purpose of the extension 1s explained To understand the whole function of the class it is necessary to refer to the extended class in the JGraph package Class Editor extends JPanel This 1s the main class representing the main panel of the application It has the graph panel instance of JGraph and the toolbars Class MyGraph extends JGraph Provide a custom graph model Contains all the necessary methods to create and insert custom components in the graph Class MyMarqueeTransferHandler extends MarqueeTransferHander Provide a custom mouse handler for the graph Provide custom edges used to represent pipes Create popup dialogs Class MyModel extends GraphModel Define the criteria to accept the connection edge pipe and cell component Class MyPortView extends Port view Define a custom representation of ports Class MyGraphTransferHandler extends GraphTransferHandler Provide drag and drop support for the graph Class ButtonTransferHandler extends TransferHandler Transfer Handler for dragging the buttons from the toolbar Class DataCell extends DefaultGraphCell Define a cell use to display data from the simulation This cell 1s a JPanel Class DataRenderer extends VertexRenderer Use to render
48. following User Manual The Manual will describe all the features of the software Pipeline Editor and Optimizer It will also describe in detail how to use the pipeline editor The completion criteria for this task would be when all the features and their use have been successfully described Architecture Design The architecture design will be revised every time a change occurs These changes will be documented along with the component design Source Code The source code will be documented using the javadoc documentation This source code will comply with the architecture design Assessment Evaluation This assessment evaluation will contain a report of the tests done on the software and the results of these tests in the form of a test log Project evaluation The project evaluation document will review the process adopted for the implementation of this project and the effectiveness of the methodologies used The completed software will be reviewed to check if it complies with the initial overview of the project The product will also be reviewed to check the quality of the product The implementation of the software will be considered completed when e The critical functions of the GUI will be implemented e The optimizer will successfully compute the optimal distribution e The GUI will successfully display the result of the simulation Other documents Formal Technical Inspection reports CHAPTER 11 Formal Technical Inspection
49. get out of the station If this situation happens a station cannot be created and an error message will occur b Unfold Station Once a station 1s created it 1s possible to view the component inside it Right click on the station and selection Unfold station When a station 1s unfold component are visible but cannot be moved individually When a station 1s unfolded you can access and manipulate components inside the station without having to destroy the station A first click on the component will select the unfolded station dashed rectangle enclosing all components and a second click will select the component inside the station Once the component 1s selected you can manipulate it as it was out of the station Be aware that if the station 1s already selected a click on a component inside will directly select the component c Fold Station You can fold back the station by doing a right click on one of the component of the station and select fold station in the menu If you right click on an empty space inside an unfold station you will not be able to have the fold option d Destroy Station It is possible to destroy the station by doing a right click on the station and selecting destroy station All the components will therefore be out of the station and will be able to be moved separately 5 4 Create Insert Library Any group of components can be saved as a library and retrieved later Select all the components to
50. gn Documentation Project Presentations Inspections Implementation Testing amp Verification Documentation Project Evaluation 2 3 Roles and Responsibilities The developer will be responsible for all the tasks described above He will be under the supervision of the major professor and will report to all the committee members in the form of three presentations 3 Documentation 3 1 Purpose To ensure the quality of the Virtual Pipeline Simulation Testbed as a minimum the Software Quality Assurance will use the Software Design Document SDD the Software Requirement Specification SRS the Test Plan the Formal Specification and the User Documentation for verifying and validating the product 3 2 Minimum documentation requirements 3 2 1 Software requirements specification The SRS lists the requirements of a system and it should correctly describe the system requirements It specifies the functionality and performance of the project in terms of speed reliability etc It describes how the system interacts with the people using it and specifies the design constraints and standards to be followed 3 2 2 Software Test Plan The purpose of this document will be to develop and record formal procedures for the verification and validation of the pipeline simulation software 3 2 3 Formal Software Specification A section of the software will be formally specified using a formal specification tool 3 2 4 Software design document Th
51. ign code and test documentation Understandability e Does every requirement have only one interpretation e Are the functional requirements in modular form with each function explicitly identified e Is there a glossary of terms e Is formal or semiformal language used e Is the language ambiguous e Does the SRS contain only necessary implementation details and no unnecessary details Is 1t over specified e Are the requirements clear and specific enough to be the basis for detailed design specs and functional test cases e Does the SRS differentiate between program requirements and other information provided Maintainability e Does the documentation follow MSE portfolio standard e Is the documentation clear and unambiguous Verifiability Testability e Are the requirements verifiable 1 e can the software be checked to see whether requirements have been fulfilled e Is there a verification procedure defined for each requirement in the SRS Clarity e Are all of the decisions dependencies and assumptions for this design documented e Are names indicative of their meaning e Is each concept defined only once with one clear meaning e Is each statement written as clearly as possible Functionality e Does the design implement the specification and requirements Reliability e Are abnormal conditions considered e Are the defect conditions codes messages specified completely and meaningfully References IEEE S
52. imulator For a replay it sends the filename of the simulator initialization file est sm In both cases the simulator reply by an ACCEPT if the file exists or REJECT if not If the file 1s accepted the simulator start sending data either by computing them for a simulation command or by taking them from the file previously stored in the case of a replay command The OptimizerClient receives the data and notifies the Mediator that updates the display As each JobComponent is mapped to a graph cell the data are fetched from the JobComponent and updated in the corresponding cell s userObject For a simulation each time a new set of data 1s transferred to the client a new file 1s created Those files are used for the replay and follow the naming convention defined earlier At any time the user can stop the simulation or the replay A stop message 1s then sent to the simulator which upon reception of this message stops sending data and returns to an idle state V Java Web Start Java Web Start is used to access the application from any browsers When using Web Start the application can be untrusted and run in a sandbox However due to the sockets access to the optimizer and the simulator the code has to be signed in order to use the client network To be able to start the application must come in a jar file and with and jnlp file The jnlp defines the name path description and main class of the application It also defines the type of
53. ines the renderer for this class This could have been done in a separate class called Compressor2Renderer The paint method defines 3 types of view opaque non opaque and selected When the component is opaque it is filled with the proper color When it is not opaque only the perimeter 1s drawn with the borderColor We also need to define how the component is viewed when it 1s selected In this case using the predefined selection stroke green dash line we are just drawing the perimeter We could have drawn the enclosing rectangle instead Each component has a size rectangle defined when it 1s created It will be painted inside this rectangle its dimension are d width and d height 3 Associate the cell with the view Class MyGraph create View protected VertexView createVertexView Object v CellMapper cm if v instanceof JointCell return new JointView v this cm else if v instanceof CompressorCell return new CompressorView v this cm else if else if v instanceof Compressor2Cell return new Compressor2View v this cm return super createVertexView v cm 4 Define the properties MyGraph createUserObject Let s say that Compressor2 has 3 properties Temperature Pressure and Mass with a default value of respectively 10 1 20 2 30 3 private MyUserObject compressor2UserObject String s MyUserObject userObject new MyUserObject compressor2 s new String 10 1 userObject putProperty Pressure
54. is document describes the overall structure of the software It will contain an object model constructed using rational rose The object model will describe the various classes used in the project 3 2 5 User Documentation The user documentation will consist of a user manual which will identify the features of the software and their functions It will also describe all error messages and program limitations and constraints The user documentation will also contain source code 4 Standards practices conventions and metric 4 1 Purpose This section identifies the standards practices conventions and metrics to be used in the virtual pipeline simulation system and states how the compliance will be monitored and assured 4 2 Content The MSE project portfolio will serve as a guideline in developing the documents 4 2 1 Documentation Standards The Software Requirements Specifications SRS and SQA Plan SQA will be based upon IEEE Software Engineering Standards 4 2 2 Coding Standards The source code will follow the guidelines in the Java coding standards 4 2 3 Metrics The COCOMO model will be used to estimate the effort and time needed for the development of the software 5 Heviews and Audits 5 1 Purpose This section defines the technical and managerial reviews to be performed and states how they are to be accomplished 5 2 Minimum Requirements A number of reviews will be done during the design development a
55. ith the current selection The view s event model is based on the Observer and Observable class to repaint the graph and also provides undo support which uses the graph model s implementation 3 Pipeline Editor Design Most of the classes of the Pipeline Editor extend the classes of JGraph in order to provide a custom graph needed to draw the pipeline network Only a few classes directly extend some Swing classes The features implemented by the pipeline editor are described in the Software Requirement Specification document 3 1 Class diagram Following 1s the class diagram of the pipeline editor Mediator graph MyGraph DefaultGraphModel JGraph PortView MarqueeHandler optimizer optimizerClient simulator SimulatorClient A A BSloptimize BSisimulate Es Editor MyModel MyPortView WistopSimulation Edoptimizer ESportlcon Imagelcon WSReplay ESgraph BSlacceptSource BSupdateData SagraphUndoManager BSiacceptTarget BSigetBound SM N BSigetRenderer J
56. l JGraph graph CellMapper cm super cell graph cm public CellViewRenderer getRenderer return renderer public static class Compressor2Renderer extends VertexRenderer public void paint Graphics g int b borderWidth Graphics2D g2 Graphics2D g Dimension d getSize boolean tmp selected int xPoints b 1 b 1 d width b d width b int yPoints d height 3 8 d height 1 8 b 1 d height 2 int xPoints2 b 1 b 1 d width b d width b int yPoints2 d height 9 16 d height d height d height 9 16 if super isOpaque g setColor super getBackground g fillPolygon xPoints yPoints xPoints length g fillPolygon xPoints2 yPoints2 xPoints2 length g drawLine d width 2 d height 7 16 d width 2 d height 9 16 Notes try setBorder null setOpaque false selected false super paint g J finally selected tmp if bordercolor null g setColor bordercolor g2 setStroke new BasicStroke b g drawPolygon xPoints yPoints xPoints length g drawPolygon xPoints2 yPoints2 xPoints2 length g drawLine d width 2 d height 7 16 d width 2 d height 9 16 j if selected g2 setStroke GraphConstants SELECTION STROKE g setColor graph getHighlightColor g drawPolygon xPoints yPoints xPoints length g drawPolygon xPoints2 yPoints2 xPoints2 length g drawLine d width 2 d height 7 16 d width 2 d height 9 16 HH The class Compressor2V1ew also def
57. l Function points language factor 203 04 x 40 8121 LOC Il Cost Analysis Using COCOMO The COCOMO model is a good measure for estimating the number of person months and the time required to develop software The Virtual Pipeline Simulation Testbed can be considered as an organic mode process in house flexible with less complex development The basic effort and schedule estimating formula is Effort 3 2 EAF Size Time 2 5 Effort Mes Where Effort number of staff months EAF Effort Adjustment Factor cf Table Size number of delivered source instructions in thousands of lines of code The following table gives the value of the efforts multipliers The product of those 15 factors will give the value of the EAF for the given project Cost Description Rating EHS Very Low Nominal High Very Extra Low High High Product RELY Required software reliability 0 75 0 88 1 00 1 15 L n DATA Database size 094 100 108 116 CPLX Product complexity 0 70 0 85 100 Lis 130 165 Computer TIME Execution time constraint 100 1 11 1 30 1 66 STOR Main storage constraint B 1 00 11 06 1 21 1 56 VIRT Virtual machine volatility 08 1 00 1 15 1 30 TURN Computer turnaround time E 0 87 1 00 1 07 1 15 Personnel ACAP Analyst capability 146 1 19 100 086 071 AEXP Applications experience 129 113 100 0 91 082 PCAP Programmer capability 1 42 1 17 100 086 070 VEXP Virtu
58. le to define some checkpoints during the simulation The user shall be able to playback replay the simulation from any given checkpoints The user shall be able to start the application from any machines using a browser and WebStart At any time during the simulation the user shall be able to interrupt the simulation 2 3 Hardware interfaces a b Each computer shall have enough memory and enough computing power processors to handle computing extensive tasks Each computer shall have an Ethernet card to communicate with other computers 2 4 Software interfaces a b The cluster computers shall run under the Linux operating system Each computer shall have the Java Virtual Machine installed version 1 4 or later c Each computer shall have the JGraph 3 0 package installed 2 5 Communications interfaces Computers shall support TCP IP to communicate with each other 2 6 Product functions a The product shall provide a GUI with all the components needed to draw a complete pipeline system a button to start the optimizer and a button to start the simulation b The product shall provide an optimizer The optimizer should be able to produce a job allocation that balances the load of each processor that is minimizes the load differences among cluster machines assigned to the simulation The jobs are the pipelines components pipes joints compressors Each job has some computation time and some communication
59. ll operations as define in the Software Requirement Specification should produce the expected result e Drawing a network should meet all the requirements as defined in the Software Requirement Specification document Optimizer e Given a set of jobs and machines it should produce the correct output e Will have the capability to produce an optimal solution with at least 1000 jobs 6 2 Integration Tests GUI Optimizer Given a network the GUI and the Optimizer should be able to communicate effectively and produce the expected file as output 7 Pass Fail Criteria The system will pass 1f the functionality and performance requirements are met 6 Suspension Criteria Suspension Criteria If any of the tests selected by the member do not give the expected result then the testing will be suspended until the bug is fixed 8 Deliverables e Test Plan e Test Case Specification e Test input and test output data 9 Responsibilities The developer is responsible for all the testing activities 10 Schedule Unit Testing each unit will be tested during implementation Integration Testing as the program units are integrated together the program will be tested 11 Approval Approved by Committee Members Reference IEEE Standard for Software Test Documentation IEEE Std 829 1998 CHAPTER 10 Implementation Plan The Implementation plan will define the tasks to be completed during implementation The tasks are as
60. n both the optimizer and the simulator The user should not wait more than 20 minutes to have the output of the optimizer and no more than 1 hour for the results of the simulator The amount of data transferred should also be kept minimal to avoid too much communication overhead 3 4 Software system attributes a Accuracy Accuracy 1s the most important attribute for the virtual simulation pipeline testbed The simulator must accurately model the pressure and the flow in each component of the pipeline system If the convergence criteria are not well established the simulation will be far from the real model b Reusability The system will have several releases with each time an increased number of functionality Some new components and features will be added c Maintainability The system shall be separated into modules following the MVC Model View Controller pattern There will be a module for the GUI one for the optimizer and another one for the simulator d Portability The modules will be written in Java As Java 1s supported on many platforms 1t should be quite easy to move to another platform For performance reasons some parts will be written in some specific platform dependant languages References IEEE STD 830 1998 IEEE Recommended Practice for Software Requirements Specifications 1998 Edition IEEE 1998 Dr Scott Deloach s CIS748 lecture notes http www cis ksu edu sdeloach 748 CHAPTER 3 PROJECT
61. nd testing of the project They will be under the supervision of the committee The following reviews will be conducted e Software Requirements Review e Preliminary Design Review e Formal Technical Inspection In addition there will be three formal presentations at the end of each phase of development as describe on the project plan 6 Testing and Verification To insure that the Virtual pipeline system meets the required quality some tests have to be performed during the development process The system must satisfy the standard functional requirements for the gasoline pump system stated in the SRS The system should also satisfy the others criteria as stated in the SRS performance accuracy reusability maintainability and portability 7 Problem reporting and corrective action All problems that cannot be resolved by the developer will be reported to the major professor The committee will provide reviews on all current work and corrective measures for changes will be taken The errors and problems encountered during the development of the project will be documented 8 Tools techniques and methodologies The project will use the JGraph3 0 library along with Swing to build the Pipeline Editor GUI Rational Rose will be used to visually design the software being developed Alloy or OCL will be used as a formal specification tool References IEEE guide for software quality assurance planning IEEE Std 730 1 1995 Pressman
62. of jobs a vector After 1t sends a mapping id JobComponent then the file name and finally a time The time is the optimizer time input from the user The default time is 2 minutes The file name is the name under which the graph has been saved It is needed to save the optimizer file under the same name The mapping id JobComponent 1s needed by the Branch and Bound algorithm m order to find the JobComponent from any given job 1d The list of Jobs 1s a vector of all jobs components created from the cell of the graph The vector Is created by the method Mediator createJobs On the other side the optimizer the server receives those objects and starts the computation Whenever an error occurs it sends a message REJECT to the OptimizerClient that notifies the GUI If all the information has been received properly it sends an ACCEPT message When it 1s done it creates a file that will be used by the simulator and send a DONE message 4 2 GUI Simulator The protocol of this communication has been specified in the Formal Specification document The communication 1s done via the SimulatorClient that connects to the simulator server on port 4000 The optimizerClient receives commands from the GUI and passes them to the simulator that executes the proper action The commands are Stop sendFile Replay To start the simulation the GUI initiates a sendFile command The OptimizerClient then transfers the optimizer filename test opt to the s
63. p the view of a graph which has an internal representation of the graph s model Figure 3 GraphLayoutCache and GraphModel The GraphLayoutCache object holds the cell views namely one for each cell in the model The graph view also has a reference to a hash table which 1s used to provide a mapping from cells to cell views 2 4 The control The control defines the mapping from user events to methods of the graph and selection model and the view It is implemented in a platform dependent way in the UI delegate and basically deals with in place editing cell handling and updating the display As the only object that 1s exchanged when the look and feel changes the UI delegate also specifies the look and feel specific part of the rendering In JGraph the graph model selection model and graph view may dispatch events The events dispatched by the model may be categorized into e Change notification e History support UndoableEditEvent m mmy ua GraphModelEvent J mamen G raphMo delEvent trf d Graphic Figure 4 JGraph s event model The GraphModelListener interface 1s used to update the view and repaint the graph and the UndoableEditListener interface to update the history These listeners may be registered or removed using the respective methods on the model The selection model dispatches GraphSelectionEvents to the GraphSelectionListeners that have been registered with it for example to update the display w
64. permission 1s required For the meaning of all the tags and their possible values refer to the developer guide of Web Start at http java sun com products javawebstart 1 2 docs developersguide html filecontents Following is the jnlp file used for the application jnlp spec 0 2 1 0 codebase http www cis ksu edu oyenan My Web Project href project jnlp gt lt information gt lt title gt Pipeline Editor lt title gt lt vendor gt KSU CIS lt vendor gt homepage href http java sun com products javawebstart demos html gt lt description gt A Pipeline editor test lt description gt lt description kind short gt Pipeline editor Description lt description gt icon href gif pipeline g1f gt offline allowed information security lt all permissions gt lt security gt resources lt j2se version 1 4 href http java sun com products autodl 2se gt j2se version 1 4 gt jar href project jar main true download eager gt lt resources gt lt application desc main class Editor gt lt jnlp gt Following are the step to provide a signed jar file e jar cmf MyManifest project jar class gif optimizer org This will put all the class file in the jar It will also put the following directories o ot directory containing all the icons o optimizer classes for the optimizer package o org JGraph classes The file MyManifest simply specify which of those classes contain the main
65. r browser is needed For the first time an internet connection 1s needed After the application has been downloaded the user will have the choice to integrate the application In the desktop in order to be able to run it offline Ill Installation and Execution No particular installation steps are needed In case the computer does not have Java web Start installed 1t will needed to be installed Visit http java sun com products javawebstart download html to install the latest version of Java Web Start To execute the software go to http www cis ksu edu oyenan MyWeb project project htm and click on Pipeline Editor or directly point your browser to this address http www cis ksu edu oyenan My Web project project jnip The application should start downloading security warning window will appear Accept to launch the application The application will then start IV Getting Started The application consists of one main window with two toolbars and one menu bar The vertical toolbar has some buttons representing the pipeline components The horizontal toolbar contains all the buttons for editing and simulating The menu bar offers the functionality of the horizontal toolbar in addition to some other functions later described 4 1 Horizontal Toolbar Description D 2 AXT ARR 6 C 4 4 011 b P Nm Figure 1 The horizontal toolbar Following is the description of each button of the horizontal toolbar Create a new graph a
66. r tt aed a lasa kan na 58 345 2 IS 58 5 MUNI uu Q Zm T Um 58 SLOSS ios soa En OS 58 S HI View SUMMATION E A 59 S REPIN Tp 59 De BEd DNES piae ta 59 AE TAO X TX 59 CHAPTER D Toechi i aliNDan ql u u u au u a u a ua aka asss 61 IS iquam T TR ee 61 IA DIS Te rin Ura TRUE TT TT 61 2 1 Adding and modifying components 61 2 2 Mouse click handling and popup menu 68 2 3 Mapping cells and JobComponents 68 i Nana C oye or suu ardid 68 AA I um nunan simum masus A man asnan 69 3 2 SA ia sq E N hua una aka ukasa kapak 69 KEE ee ERT e EE 69 Es EE 70 AO m 70 Ve Sa WED EIL GE 70 a O at dae T2 CIEN O EE 73 CHAPTER 1 PROJECT OVERVIEW 1 Purpose The purpose of this project 1s to develop a virtual pipeline simulation testbed The simulation will model the pressure and flow rate distribution of gas in a real pipeline system 2 Goals The design and implementation goals are e Design a GUI to create and manipulate the pipeline system e Implement an optimizer to efficiently distribute computation among several machines e Integrate the GUI with a simulator that will simulate the behavior of each component of the real pipeline system by solving a set of particular partial differential equations 3 Constraints When developing a simulation
67. s used to handle Drag amp Drop Each button in the toolbar has to be notified when a drag gesture is started 8 Create a JobComponent for the new component Recall that compressor2 has 3 properties pressure temperature mass public class Compressor2 extends JobComponent implements Serializable private double pressure temperature mass public Compressor2 MyUserObject userObject super 1 componentld c gasType new Integer String userObject getProperty gasType intValue number new Integer String userObject getProperty number intValue String indexVal String userObject getProperty index String valueVal String userObject getProperty value Notes e The execution time is defined in the constructor It is the parameter of the superclass constructor In this case the execution time is 1 e The initialization of the fields comes from the userObject As the property values are Strings a casting 1n the proper type 1s necessary e Get and set methods have to be defined for each field 9 Associate the component cell to the Job component class Mediator private Vector createJobs hash new Hashtable for Iterator iter cells iterator iter hasNext JobComponent j null DefaultGraphCell o DefaultGraphCell iter next if o instanceof CompressorCell J createComp2Node o else if o instanceof Compressor2Cell o is a compressor2 J createComp2Node o else if
68. scription section provides information describing general factors that will affect the requirements of the software The specific requirements section describes in detail the requirements the software must meet 2 Overall description 2 1 Product perspective The software 1s an interface to the Virtual Pipeline Simulation Testbed It comprises a GUI Pipeline Editor and a job distribution optimizer Optimizer Once the pipeline system 1s drawn the optimization and the simulation will be able start The computation will be done on several powerful computers and result will be transmitted back to the GUI for display Communication among cluster machines will be done by message passing and shared memory 2 2 User interface Pipeline Editor a b c d e g h 1 J k The pipeline editor shall support drag and drop operations for drawing components pipes joints and compressors The pipeline editor shall support standard editing functions copy cut paste The pipeline editor shall provide zoom functions The pipeline editor shall display the simulation results The user shall be able to store retrieve a previously drawn pipeline system group of components called library and connect it with some new groups or components The user shall be able to move components inside the editor to have a better positioning The user shall be able to edit the characteristic of each component displayed The user shall be ab
69. ser shall be able to restart the simulation by providing a checkpoint from where the simulation should be restarted 3 2 2 Optimizer Input A list of components objects Output A list of job objects In addition to the fields of a component a job has information about the machine on which it should be executed the components connected to it the execution time and the associated file containing the source code of its execution The job allocation optimization is a discrete optimization problem The system will use the Branch and Bound algorithm to find the best distribution given some time and communication constraints The solution may not be optimal but should be very close to the optimal one The optimizer should adequately balance computation and communication time among all the processors It should output a list of all jobs along with the machines on which they should be executed in order to have the best distribution 3 2 3 Simulator Input A list of job objects Output A list of job object with their new property values The simulator should solve a set of partial differential equations to simulate the pressure and flow rate distribution in each component of the pipeline system It should continuously output some values in order to visualize the current state of the simulation in the GUI 3 3 Performance requirements The system should be able to handle at least a set of 1000 jobs The computation time should be kept minimal i
70. td 1028 1998 IEEE Standard for Software Reviews and Audits 1998 Edition IEEE 1983 Software Formal Inspections Software Assurance Technology Center SATC 1997 http satc gsfc nasa gov fi fipage html Weiss Alan R and Kerry Kimbrough Fundamentals of Software Inspections Version 2 1 1995 http www2 ics hawaii edu johnson FTR Weiss weiss intro CHAPTER 12 USER MANUAL System Overview The Pipeline Editor 1s a feature rich graphical user interface designed to provide pipeline designers with a graphical view of their pipeline systems and simulation data This allows for quick pipeline design and data generation The software integrates an optimizer which goal 1s to optimize the time of the simulation As the simulation 1s done among several distributed machines the optimizer will attribute each component of the pipeline system to a particular machine in order to minimize the overall time needed to compute the simulation data The Pipeline Editor can be started from any computers Once started it will connect to the optimizer and the simulator server Il System Requirements e The execution of the software requires Java Web Start 1 2 It is a tool that allows user to access the application from any computer using an Internet browser e The user should also have access to the C drive in order to write some data in the temporary folder e To start the application Netscape Navigator or Internet Explorer or any othe
71. time The computation time depends on the characteristic of the component and the machine on which it 1s executed The communication time depends on the amount of information exchanged and whether or not the connected component are on the same machine local communication or not remote communication Given these constraints the optimizer will find an optimal distribution of jobs among machines that minimizes the workload of each processor c The product shall integrate a simulator The simulator should solve a set of partial differential equations that mathematically models the pressure and flow rate distribution 1n each component of the real pipeline system 2 7 User characteristics a Users of the system should be experienced pipeline design engineers who have a good understanding of a pipeline system b Users should be able to understand and manipulate pipeline characteristics c No particular training should be necessary to use the software Following 1s the use case diagram for the software C Save Open Library Save Open Network A ED Draw Edit Network ZA LA AD Optimize User e lt gt Insert Delete Checkpoint Start Simulation V lt Interrupt Simulation Virtual Pipeline Simulation System Use Case 3 Specific requirements 3 1 External interface requirements The interface provided will be the pipeline editor It should be able to be started from any computer via a browser using Java W

Download Pdf Manuals

image

Related Search

Related Contents

Maxim Pro User Guide    DeLOCK Cable SATA Slimline male + 2pin power > SATA  sun sport - Formula Boats  FCV-295 - Furuno  PGM - Grupo Acme  Manual de Usuario - Kawai Musical Instruments Manufacturing Co  安全データシート - Thermo Fisher Scientific  Tradewinds HD-P63D3ET-H Instructions / Assembly  Users Manual - Test Equipment Depot  

Copyright © All rights reserved.
Failed to retrieve file