digart digital circuit simulator project initial software ... · controlled folder: a4 tbd 1 ....

50
REVISION REV DESCRIPTION DATE 1.1 Initial Revision 04.12.2005 DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software Design Description Report Number of Pages Doc Appendixes A B C D E F G H 50 STARSOFT Middle East Technical University 06531 ODTÜ, Ankara-TÜRKIYE Controlled Folder: TBD A4 1

Upload: others

Post on 10-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

REVISION

REV DESCRIPTION DATE

1.1 Initial Revision 04.12.2005

DigART

DIGITAL CIRCUIT SIMULATOR PROJECT

Initial Software Design Description Report

Number of Pages

Doc Appendixes

A B C D E F G H 50

– – – – – – – –

STARSOFT Middle East Technical University 06531 ODTÜ, Ankara-TÜRKIYE

Controlled Folder: TBD A4 1

Page 2: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

2

PREPARED BY NAME TITLE/ROLE REV SIGNATURE

Elif SAYGI Quality Engineer 1.1 Halit DEVELIOGLU Project Manager 1.1 Serhat KOYULMUS Software Developer 1.1 Seniz SOZER Configuration Manager 1.1 Volkan ICEL Software Developer 1.1

CONTRIBUTIONS NAME TITLE/ROLE REV SIGNATURE

Serkan BAL Advisor 1.1

CHECKED BY NAME TITLE/ROLE REV SIGNATURE

Serkan BAL Advisor 1.1 Elif SAYGI Quality Engineer 1.1 Volkan ICEL Software Developer 1.1

Page 3: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

3

TABLE OF CONTENTS

Paragraph No Page

1. SYSTEM OVERVIEW .............................................................................................................................. 4 2. DIGART WIDE DESIGN DECISIONS ................................................................................................... 4 3. DIGART ARCHITECTURAL DESIGN.................................................................................................. 4

3.1. DIGART LAYERS..............................................................................................................................................4 3.1.1. PRESENTATION LAYER ....................................................................................................................5

3.1.1.1. GUI COMPONENT......................................................................................................................... 5 3.1.2. DOMAIN LAYER................................................................................................................................12

3.1.2.1. CIRCUIT ENGINE COMPONENT .............................................................................................. 12 3.1.2.2. SIMULATION COMPONENT ..................................................................................................... 29 3.1.2.3. SCRIPT COMPONENT ................................................................................................................ 33 3.1.2.4. FILE COMPONENT ..................................................................................................................... 37 3.1.2.5. HELP COMPONENT.................................................................................................................... 40 3.1.2.6. CUSTOM CIRCUIT ELEMENT COMPONENT......................................................................... 42

3.1.3. SERVICE LAYER ...............................................................................................................................43 3.2. COMPONENT LEVEL SEQUENCE DIAGAMS ...........................................................................................43

3.2.1. COMPONENT LEVEL SEQUENCE DIAGRAM FOR FILE OPENING..........................................43 3.2.2. COMPONENT LEVEL SEQUENCE DIAGRAM FOR SIMULATE OPERATION.........................44 3.2.3. COMPONENT LEVEL SEQUENCE DIAGRAM FOR SCRIPT OPERATION................................45 3.2.4. COMPONENT LEVEL SEQUENCE DIAGRAM FOR FILE SAVING ............................................46

4. TRACEABILITY...................................................................................................................................... 47

Page 4: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

4

1. SYSTEM OVERVIEW

Please refer to the DigART Software Requirements Analysis Report for the system overview.

2. DIGART WIDE DESIGN DECISIONS DigART will be developed using JAVA programming language in NetBeans under Windows. A layered architecture will be applied for the DigART. Layer definitions and the components of these layers are given in Section 3. The main benefit to apply a layered architecture in DigART is to make easy to develop the project within components individually. The other benefit is the reusability of the layers and the components that can be used in other projects. Another benefit is the exchangeability that individual layer implementation can be replaced by semantically equivalent implementations without great efforts. Keeping the dependencies local is another advantage of this architecture. Standardizing the interfaces between layers usually confines the effect of code changes to the layer that is changed.

3. DIGART ARCHITECTURAL DESIGN

3.1. DIGART LAYERS

DigART software consists of the three layers; Presentation Layer, Domain Layer and Service Layer as shown in the Figure 1. Each layer contains components which are shown in Figure 1. The arrows between the components show the interactions between components. The capabilities of each component will be described in detail in the sections 3.1.1 , 3.1.2 and 3.1.3. Some of the interactions between components will be specified with sequence diagrammes in section 4.

pd DigARTComponents

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

Domain Layer

Service Layer

Presentation Layer

ScriptCircuitEngine

Simulation

GUI

FileOperations

Help

CustomCircuitCreation

JHDL

Figure 1

Page 5: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

5

3.1.1. PRESENTATION LAYER

3.1.1.1. GUI COMPONENT This component provides an interface to user with menus and toolbars to use the program easly and reach the other components to make the users demands. In other words it establishes links between users actions and other components.

3.1.1.1.1. Detailed Class Description

cd ClassEA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

MainProgram

+ EasyAccessBar: EasyAccesToolbar+ MainMenu: JavaClassMenu+ MainToolbar: JavaClassToolbar

+ CloseGlowMode() : void+ CloseSimulationMode() : void+ CompileScript() : void+ CopySelectetItems() : void+ CutSelectedItems() : void+ DeleteAllItems() : void+ DeleteCustomCircuit() : void+ DeleteSelectetItems() : void+ ExportFile() : void+ ImportFile() : void+ InsertItem() : void+ ModifySelectedItem() : void+ OnKeyPressed(char) : void+ OpenFile() : void+ OpenGlowMode() : void+ OpenHelp() : void+ OpenNewCircuit() : void+ OpenSimulationMode() : void+ Pan(int) : void+ PasteSelectetItems() : void+ Redo() : void+ RotateItem() : void+ RunScript() : void+ SaveAsFile() : void+ SaveAsImage() : void+ SaveFile() : void+ SaveScript() : void+ Undo() : void+ ZoomIn() : void+ ZoomOut() : void+ ZoomOverview() : void

MessageBox

+ ShowErrorBox(string) : void+ ShowInformationBox(string) : void+ ShowQuestionBox(string) : void+ ShowWarningBox(string) : void

JavaClassMenu

JavaClassToolbar

EasyAccesToolbar

- Easytoolbar: JavaClassToolbar

+ AddItem(int) : void- FillList() : void+ MoveDown(int) : void+ MoveUpItem(int) : void+ RemoveItem(int) : void- SaveList() : void+ ShowCustomizeToolbarWindow() : void

Page 6: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

6

3.1.1.1.1.1. EasyAccessToolbar Class This class provides the user to use and manages his/her favorites elements easly.

Connections

Connector Source Target Notes

Aggregation

source > target

MessageBox

unordered

EasyAccessToolbar

unordered

Aggregation

source > target

JavaClassToolbar

unordered

EasyAccessToolbar

unordered

Attributes

Attribute Type Notes

Easytoolbar private :JavaClassToolbar

Contains list of elements on the Easy Access Bar

Methods

Method Type Notes

AddItem (int) public: void param: item [ int - in ]

This method add selected items from all items list to easy access tollbar.

FillList () private: void Fill the list with of all elements of the digital circuit sumulator including custom circuit elements.

MoveDown (int) public: void param: item [ int - in ]

This method moves down selected items on easy access tollbar

MoveUpItem (int) public: void param: item [ int - in ]

This method moves up selected items on easy access tollbar.

Page 7: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

7

RemoveItem (int) public: void param: item [ int - in ]

This method Removes selected items from easy access tollbar.

SaveList () private: void This method saves the current easy access toolbar items.

ShowCustomizeToolbarWindow () public: void This methods shows a window that contains list of all elements of the digital circuit sumulator and list of elements of easy access toolbar with seperated listbox.User can add, delete or move an item on the easy access toolbar.

3.1.1.1.1.2. MainProgram Class This class is the main class of the simulator. It provides the user some menus and toolbars and executes users actions on them It uses some methodes, reacing other compenents.

Connections

Connector Source Target Notes

Aggregation

source > target

JavaClassMenu

unordered

MainProgram

unordered

Aggregation

source > target

MessageBox

unordered

MainProgram

unordered

Aggregation

source > target

JavaClassToolbar

unordered

MainProgram

unordered

Attributes

Attribute Type Notes

EasyAccessBar public :EasyAccessToolbar

This bar contains favorite elements to access them easly.

MainMenu public :JavaClassMenu

It contains submenu items such as FileMenu, EditMenu, ViewMenu, SimulationMenu, ScriptMenu and HelpMenu.

Page 8: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

8

Methods of these submenus call relevat functions from our other components.

MainToolbar public :JavaClassToolbar

Clicking on a button from this toolbar calls a function of relevant menu items function with reponsible the same mission.

Methods

Method Type Notes

CloseGlowMode () public: void This method selects the mode of the program to "Glow Mode OFF".

CloseSimulationMode () public: void This method selects the mode of the program to "Simulation Mode OFF".

CompileScript () public: void This method Compiles the written script, if an error occurs this showed with an ErrorBox.

CopySelectetItems () public: void This method copies the selected items on the current circuit

CutSelectedItems () public: void This method cuts the selected items on the current circuit

DeleteAllItems () public: void This method deletes the all items on the current circuit

DeleteCustomCircuit () public: void This method deletes selected custom circuit elements files.

DeleteSelectetItems () public: void This method deletes the selected items on the current circuit

ExportFile () public: void This method opens a dialogbox for exporting the current circuit into DIGLOG file format "lgf".

ImportFile () public: void This method opens a dialogbox for importing a DIGLOG file "lgf".

InsertItem () public: void This method inserts an item selected by the user in to circuit.

ModifySelectedItem () public: void This method modifies the properties of selected item on the current circuit, if there is adjustable properties.

OnKeyPressed (char) public: void param: Key [ char - in ] Pressed key value

This method Decides an operation with respect to the pressed key if it required.Note : This is different from shortcuts of menu or toolbars elements.

OpenFile () public: void This method opens a dialogbox for load a file.

Page 9: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

9

OpenGlowMode () public: void This method selects the mode of the program to "Glow Mode ON".

OpenHelp () public: void This method opens the help window.

OpenNewCircuit () public: void This method closes the current circuits and opens a blank circuit.

OpenSimulationMode () public: void This method selects the mode of the program to "Simulation Mode ON".

Pan (int) public: void param: Direction [ int - in ] An integer value indicates direction of pan operation.

This method changes view of point on the current circuit display.

PasteSelectetItems () public: void This method pastes the copied items on the current circuit.

Redo () public: void This method makes redo

RotateItem () public: void This method rotates the selected item on the current circuit if it is possible.

RunScript () public: void This method runs the compiled circuit script file.

SaveAsFile () public: void This method opens a dialogbox for save the current circuit into a file.

SaveAsImage () public: void This method opens a dialogbox for save the current circuit as an image file.

SaveFile () public: void This method saves the current file, if it is not saved yet it opens a dialogbox ffor save the current circuit into a file.

SaveScript () public: void This method saves the written script.

Undo () public: void This method makes undo for last action in the undo lists.

ZoomIn () public: void This method makes zoom-in on the canvas.

ZoomOut () public: void This method makes zoom-out on the canvas.

ZoomOverview () public: void This method makes zoom-overview on the canvas.

Page 10: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

10

3.1.1.1.1.3. MessageBox Class This class provides four methodes to show a messagebox on the screen.

Connections

Connector Source Target Notes

Aggregation

source > target

MessageBox

unordered

MainProgram

unordered

Aggregation

source > target

MessageBox

unordered

EasyAccessToolbar

unordered

Methods

Method Type Notes

ShowErrorBox (string) public: void param: Message [ string - in ]

Shows an error box with given message

ShowInformationBox (string) public: void param: Message [ string - in ]

Shows a information box with given message

ShowQuestionBox (string) public: void param: Message [ string - in ]

Shows a question box with given message

ShowWarningBox (string) public: void param: Message [ string - in ]

Shows a warning box with given message

Page 11: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

11

3.1.1.1.2. Sequence Diagrams

3.1.1.1.2.1. Sequence Diagram For Using Easy Access Toolbar Menu

sd SequenceUnregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

Unregistered Trial Version EA 5.0 Unregistered Trial Version

User

:MainProgram :EasyAccesToolbar

ShowCustomizeToolbarWindow()

FillList()

AddItem(item)

RemoveItem(item)

MoveDown(item)

MoveUpItem(item)

SaveList()

Page 12: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

12

3.1.2. DOMAIN LAYER

3.1.2.1. CIRCUIT ENGINE COMPONENT Circuit Engine component is composed of 6 classes. It is the main component of the DigART project because all the operations on the drawing canvas and creating a data structure for holding the items on the canvas are handled by Circuit Engine component.

The classes and capabilities are described in detail in sections 3.1.2.1.1. and 3.1.2.1.2.

3.1.2.1.1. Detailed Class Description

cd CommonDataWire

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version

CommonDataWire

- Value: short- p2x: int- p2y: int- LeftItemID: int- LeftItemType: enum- RightItemID: int- RightItemType: enum

+ GetValue() : short+ GetP2X() : int+ GetP2Y() : int+ GetLeftItemID() : short+ GetLeftItemType() : enum+ GetRightItemID() : short+ GetRightItemType() : enum

CommonDataItem

- Rotation: short- Color: Color

+ GetRotation() : short+ GetColor() : Color+ SetRotation(short) : void+ SetColor(Color) : void

DrawingPanel

+ MouseMode: enum- ItemToDraw: Item

+ DrawItems() : void+ ChangeBackgroundColor(int, int, int) : void+ SelectItem(int, int) : void+ MousePressed(int, int) : void+ MouseMove(int, int) : void+ MouseReleased(int, int) : void+ SetItemToDraw(enum) : void+ DeleteSelectedItem() : void+ RotateSelectedItem(short) : void+ MoveSelectedItem() : void+ CutSelectedItem() : void+ CopySelectedItem() : void+ PasteSelectedItem() : void+ ClearScreen() : void

Items

+ «vector» CommonDataItemList: CommonDataItem+ «vector» CommonDataWireList: CommonDataWire- SelectedtIem: Item

+ InsertItem(CommonDataWire) : void+ DeleteItem(short) : void+ InsertItem(CommonDataItem) : void+ GetItem(short) : CommonDataItem+ GetItem(short) : CommonDataWire+ DrawListItems() : void+ SearchItem(int, int) : short+ CutItem(short) : CommonDataItem+ CopyItem(short) : CommonDataItem+ PasteItem(int, int) : void+ RotateItem(short) : void+ MoveItem(int, int) : void+ CutItem(short) : CommonDataWire+ CopyItem(short) : CommonDataWire+ GetItemList() : vector+ GetWireList() : vector+ DrawListItemsFromFile(Items) : void+ SetItemList() : void

Item

- ItemID: short- ItemType: enum- p1x: int- p1y: int

+ GetItemType() : enum+ GetItemID() : short+ GetP1X() : int+ GetP1Y() : int+ SetItemID(short) : void+ SetItemType(enum) : void+ SetP1X(int) : void+ SetP1Y(int) : void

«Java Class»JPanel

Viewport

+ ZoomFactor: float+ PanFactor: float

+ ZoomIn() : void+ ZoomOut() : void+ PanRight() : void+ PanUp() : void+ PanLeft() : void+ PanDown() : void+ PanToCenter() : void+ ZoomOverview() : void

1 0..*

10..*

1 1

1 0..1

1

0..1

Page 13: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

13

3.1.2.1.1.1. Item Class Item class is the base class of ComonDataWire class and CommonDataItem class.It holds the common attributes of them. These three classes are used in order to keep our common data structure between the components holding all the information about circuit items on the canvas.

Connections

Connector Source Target Notes

Association

Unspecified

Public

Items

Public

CommonDataWire

Association

Unspecified

Public

Items

Public

CommonDataItem

Association

Unspecified

Public

DrawingPanel

Public

Items

Attributes

Attribute Notes Constraints and tags

CommonDataItemList CommonDataItem

Public vector

This vector holds the instances of the class CommonDataItem.

Default:

CommonDataWireList CommonDataWire

Public vector

This vector holds the instances of the class CommonDataWire.

Default:

SelectedtIem Item

Private

This attribute holds the selected item object. Default:

Operations

Method Notes Parameters

InsertItem() void

Public

This function inserts the CommonDataWire object to the CommonDataWireList.

CommonDataWire wire

[in]

DeleteItem() void

Public

This fuction deletes the specified item with ID from CommonDataItemList and CommonDataWireList.

short id

[in]

Page 14: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

14

Method Notes Parameters

InsertItem() void

Public

This function inserts the CommonDataItem object to the CommonDataItemList.

CommonDataItem item

[in]

GetItem() CommonDataItem

Public

This function returns a CommonDataItem object required by the ID.

short id

[in]

GetItem() CommonDataWire

Public

This function returns a CommonDataWire object required by the ID.

short id

[in]

DrawListItems() void

Public

This function draws the items in CommonDataItemList and CommonDataWireList to the canvas.

SearchItem() short

Public

This function searches the CommonDataItemList and CommonDataWireList vectors in order to find the ID of the item from the mouse click coordinates.

int x

[in]

int y

[in]

CutItem() CommonDataItem

Public

This fuction cuts the item specified with ID from the CommonDataItemList.

short id

[in]

CopyItem() CommonDataItem

Public

This fuction copies the item specified with ID from the CommonDataItemList.

short id

[in]

PasteItem() void

Public

This function inserts the selected item the both Lists.

int x

[in]

int y

[in]

Page 15: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

15

Method Notes Parameters

RotateItem() void

Public

This function sets the rotation value of the selected item to the both Lists.

short direction

[in]

MoveItem() void

Public

This function sets the new corrdinate values of the selected item to the both Lists.

int x

[in]

int y

[in]

CutItem() CommonDataWire

Public

This fuction cuts the item specified with ID from the CommonDataWireList.

short ID

[in]

CopyItem() CommonDataWire

Public

This fuction copies the item specified with ID from the CommonDataWireList.

short ID

[in]

GetItemList() vector

Public

This function returns the CommonDataItemList vector.

GetWireList() vector

Public

This function returns the CommonDataWireList vector.

DrawListItemsFromFile() void

Public

This function reads the new data structure with object Item coming from the File component and draws them.

Items FromFile

[in]

SetItemList() void

Public

This function reads the values of the wires coming from the Simulation component and sets the wires' logical values.

Page 16: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

16

3.1.2.1.1.2. CommonDataItem Class This class inherits Item class. It holds some extra attributes in addition to Item class attributes.

Connections

Connector Source Target Notes

Generalization

Source -> Destination

Public

CommonDataItem

Public

Item

Association

Unspecified

Public

Items

Public

CommonDataItem

Association

Unspecified

Public

DrawingPanel

Public

CommonDataItem

Attributes

Attribute Notes Constraints and tags

Rotation short

Private

This attribute holds the direction of the circuit element. 1 for west, 2 for north,3 for east, 4 for south.

Default:

Color Color

Private

This attribute holds the color value of the circuit item.

Default:

Operations

Method Notes Parameters

GetRotation() short

Public

Returns the value of Rotation.

GetColor() Color

Public

Returns the value of Color.

SetRotation() void

Public

Sets the new value of Rotation.

short direction

[in]

SetColor() void

Public

Sets the new value of Color.

Color clr

[in]

Page 17: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

17

3.1.2.1.1.3. CommonDataWire Class This class inherits Item class. It holds some extra attributes in addition to Item class attributes.

Connections

Connector Source Target Notes

Association

Unspecified

Public

Items

Public

CommonDataWire

Association

Unspecified

Public

DrawingPanel

Public

CommonDataWire

Generalization

Source -> Destination

Public

CommonDataWire

Public

Item

Attributes

Attribute Notes Constraints and tags

Value short

Private

This atribute holds the logical value of the wire. Default:

p2x int

Private

This attribute holds the x coordinate of the ending point of the wire.

Default:

p2y int

Private

This attribute holds the y coordinate of the ending point of the wire.

Default:

LeftItemID int

Private

This attribute holds the LeftItemID of the wire. Default:

LeftItemType enum

Private

This attribute holds the LeftItemType of the wire.

Default:

RightItemID int

Private

This attribute holds the RightItemID of the wire.

Default:

RightItemType enum

Private

This attribute holds the RightItemType of the wire.

Default:

Page 18: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

18

Operations

Method Notes Parameters

GetValue() short

Public

Returns the logical value of the wire.

GetP2X() int

Public

Returns the x coordinate of end point of the wire.

GetP2Y() int

Public

Returns the y coordinate of end point of the wire.

GetLeftItemID() short

Public

Returns the ID of the item which is conected left of the wire.

GetLeftItemType() enum

Public

Returns the Tyoe of the item which is conected left of the wire.

GetRightItemID() short

Public

Returns the ID of the item which is conected right of the wire.

GetRightItemType() enum

Public

Returns the type value of the item which is conected right of the wire.

3.1.2.1.1.4. Items Class This class holds the common data structure of the whole DigART project. It constructs the data structure for holding all the items on the canvas in our project and handles all the operations on the canvas and applies to data structure. It responses and requests to other components using this common data structure.

Connections

Connector Source Target Notes

Association

Unspecified

Public

Items

Public

CommonDataWire

Association

Unspecified

Public

Items

Public

CommonDataItem

Association

Unspecified

Public

DrawingPanel

Public

Items

Attributes

Attribute Notes Constraints and tags

Page 19: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

19

Attribute Notes Constraints and tags

CommonDataItemList CommonDataItem

Public vector

This vector holds the instances of the class CommonDataItem.

Default:

CommonDataWireList CommonDataWire

Public vector

This vector holds the instances of the class CommonDataWire.

Default:

SelectedtIem Item

Private

This attribute holds the selected item object. Default:

Operations

Method Notes Parameters

InsertItem() void

Public

This function inserts the CommonDataWire object to the CommonDataWireList.

CommonDataWire wire

[in]

DeleteItem() void

Public

This fuction deletes the specified item with ID from CommonDataItemList and CommonDataWireList.

short id

[in]

InsertItem() void

Public

This function inserts the CommonDataItem object to the CommonDataItemList.

CommonDataItem item

[in]

GetItem() CommonDataItem

Public

This function returns a CommonDataItem object required by the ID.

short id

[in]

GetItem() CommonDataWire

Public

This function returns a CommonDataWire object required by the ID.

short id

[in]

DrawListItems() void

Public

This function draws the items in CommonDataItemList and CommonDataWireList to the canvas.

SearchItem() short

Public

This function searches the CommonDataItemList and CommonDataWireList vectors in order to find the ID of the item from the mouse click

int x

[in]

Page 20: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

20

Method Notes Parameters

coordinates.

int y

[in]

CutItem() CommonDataItem

Public

This fuction cuts the item specified with ID from the CommonDataItemList.

short id

[in]

CopyItem() CommonDataItem

Public

This fuction copies the item specified with ID from the CommonDataItemList.

short id

[in]

PasteItem() void

Public

This function inserts the selected item the both Lists.

int x

[in]

int y

[in]

RotateItem() void

Public

This function sets the rotation value of the selected item to the both Lists.

short direction

[in]

MoveItem() void

Public

This function sets the new corrdinate values of the selected item to the both Lists.

int x

[in]

int y

[in]

CutItem() CommonDataWire

Public

This fuction cuts the item specified with ID from the CommonDataWireList.

short ID

[in]

CopyItem() CommonDataWire

Public

This fuction copies the item specified with ID from the CommonDataWireList.

short ID

[in]

Page 21: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

21

Method Notes Parameters

GetItemList() vector

Public

This function returns the CommonDataItemList vector.

GetWireList() vector

Public

This function returns the CommonDataWireList vector.

DrawListItemsFromFile() void

Public

This function reads the new data structure with object Item coming from the File component and draws them.

Items FromFile

[in]

SetItemList() void

Public

This function reads the values of the wires coming from the Simulation component and sets the wires' logical values.

3.1.2.1.1.5. DrawingPanel Class This class handles all the operations done on the circuit drawing canvas.

Connections

Connector Source Target Notes

Generalization

Source -> Destination

Public

DrawingPanel

Public

JPanel

Dependency

Source -> Destination

Public

DrawingPanel

Public

Viewport

Association

Unspecified

Public

DrawingPanel

Public

CommonDataWire

Association

Unspecified

Public

DrawingPanel

Public

CommonDataItem

Association

Unspecified

Public

DrawingPanel

Public

Items

Page 22: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

22

Attributes

Attribute Notes Constraints and tags

MouseMode enum

Public

This attribute holds the mode mode such as (insertion, deletion, etc.)

Default:

ItemToDraw Item

Private

This attribute holds the item type to be drawn slected by the user.

Default:

Operations

Method Notes Parameters

DrawItems() void

Public

This function draws the specified item with the attribute ItemToDraw with calling the DrawListItems() method of class Items.

ChangeBackgroundColor() void

Public

This function changes the background color of the canvas.

int r

[in]

int g

[in]

int b

[in]

SelectItem() void

Public

This function returns the coordinates of the point clicked in order to select an item.

int x

[in]

int y

[in]

MousePressed() void

Public

This function returns the coordinates of the point clicked iby the mouse.

int x

[in]

int y

[in]

Page 23: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

23

Method Notes Parameters

MouseMove() void

Public

This function returns the last coordinates of the point gone by the mouse.

int x

[in]

int y

[in]

MouseReleased() void

Public

This function returns the coordinates of the point released of the mouse.

int x

[in]

int y

[in]

SetItemToDraw() void

Public

This function sets the ItemToDraw attribute reading the GUIs EasyAccessMenu's mouse events.

enum type

[in]

DeleteSelectedItem() void

Public

This function is called if the user wants to delete an item and calls the Items class's relevant methods.

RotateSelectedItem() void

Public

This function is called if the user wants to rotate an item and calls the Items class's relevant methods.

short direction

[in]

MoveSelectedItem() void

Public

This function is called if the user wants to move an item and calls the Items class's relevant methods.

CutSelectedItem() void

Public

This function is called if the user wants to cut an item and calls the Items class's relevant methods.

CopySelectedItem() void

Public

This function is called if the user wants to copy an item and calls the Items class's relevant methods.

PasteSelectedItem() void

Public

This function is called if the user wants to paste an item and calls the Items class's relevant methods.

ClearScreen() void This function clears the screen and calls the

Page 24: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

24

Method Notes Parameters

Public relevant Items class's methods to clear the lists.

3.1.2.1.1.6. ViewPort Class This class handles the viewing operations made on the canvas.

Connections

Connector Source Target Notes

Dependency

Source -> Destination

Public

DrawingPanel

Public

Viewport

Attributes

Attribute Notes Constraints and tags

ZoomFactor float

Public

This attribute holds the zoom factor value of the canvas.

Default:

PanFactor float

Public

This attribute holds the pan factor value of the canvas.

Default:

Operations

Method Notes Parameters

ZoomIn() void

Public

This function zooms in the canvas.

ZoomOut() void

Public

This function zooms out the canvas.

PanRight() void

Public

This function pans right the canvas.

PanUp() void

Public

This function pans up the canvas.

PanLeft() void

Public

This function pans left the canvas.

PanDown() void

Public

This function pans down the canvas.

PanToCenter() void This function pans to center of the canvas.

Page 25: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

25

Method Notes Parameters

Public

ZoomOverview() void

Public

This function zooms in or out the canvas to able to see the whole circuit drawn.

3.1.2.1.2. Sequence Diagrams

3.1.2.1.2.1. Sequence Diagram For Insert Operations The user Selects an item from the tool box to draw on the canvas. This is sent to the DrawingPanel class by the method SetItemToDraw(). Then the coordinates of the clicked position is also sent there. Drawing panel creates a new CommonDataItem object and sets the fields of it with the functions shown below. Then the object is inserted to the vector which is hold by class Items. The function of DrawingPanel class DrawItems() calls the Items’s class’s method DrawListItems in oreder to draw all the items which are stored in vectors to the canvas.

sd InsertItemEA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 U

EA5 0UnregisteredTrial Version EA5 0UnregisteredTrial Version EA5 0U

:DrawingPanel

User

:Items:CommonDataItem

SetItemToDraw(type)

MousePressed(y,x)

new

SetItemID(id)

SetItemType(type)

SetP1X(x)

SetP1Y(y)

SetColor(clr)

SetRotation(direction)

InsertItem(item)

DrawItems()

DrawListItems()

Page 26: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

26

3.1.2.1.2.2. Sequence Diagram For Edit Operations In the below sequence diagram the basic edit operations which are copy, paste, cut, delete and update are shown. For

copy and paste functions firstly, user clickes on the canvas to select in item. MousePressed and SelectItem methods

returns make call the SeachItem method of the Items class. This method returns the ID of the selected item. With the

CopySelectedItem method of the Drawing Panel, Items class’s CopyItem() function is called and returns the copied

object and the selected item is set with this item’s ID. All other edit operations occurs with similar flows.

Page 27: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

27

sd EditItemA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tr

A50UnregisteredTrial Version EA50UnregisteredTrial Version EA50UnregisteredTr

User

:DrawingPanel :Items :CommonDataItem

MousePressed(y,x)

SelectItem(y,x)

short:= SearchItem(y,x)

CopySelectedItem()

CopyItem(id)

PasteSelectedItem()

MousePressed(y,x)

PasteItem(y,x)

new

InsertItem(item)

DrawItems()

DrawListItems()

MousePressed(y,x)

SelectItem(y,x)

short:= SearchItem(y,x)

CutSelectedItem()

CutItem(id)

CopyItem(id)

DeleteItem(id)

delete

DrawItems()

DrawListItems()

PasteSelectedItem()

PasteItem(y,x)

new

InsertItem(item)

DrawItems()

DrawListItems()

MousePressed(y,x)

SelectItem(y,x)

short:= SearchItem(y,x)

RotateSelectedItem(direction)

RotateItem(direction)

SetRotation(direction)

DrawItems()

DrawListItems()

DeleteSelectedItem()DeleteItem(id)

delete

DrawItems()

DrawListItems()

Page 28: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

28

3.1.2.1.2.3. Sequence Diagram For Move Operations

sd MoveItemA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

A 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Tria

User

:DrawingPanel :Items :CommonDataItem

MousePressed(y,x)

SelectItem(y,x)

short:= SearchItem(y,x)

MoveSelectedItem()

Mouse Move

MoveItem(y,x)

SetP1X(x)

SetP1Y(y)

DrawItems()

DrawListItems()

Page 29: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

29

3.1.2.2. SIMULATION COMPONENT Simulation is the component used for simulation operations. It uses JHDL Simulation class to simulate the curcuits in real time without compiling. Simulation operations are divided into to 2 cases. One of the cases is the simulation of the currently displayed curcuit and the other is the simulation of the curcuits sent by the Script Component. Either way it converts to CommonDataWire type vector to JHDLFormat and sends to JHDL, then converts it back to CommonDataWire type vecor. Simulation takes place in JHDL.

3.1.2.2.1. Detailed Class Description

cd Simulation Class Diagram

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA 5.1 Unregistered Trial Version EA 5.1 Unre

Version EA5 1UnregisteredTrial Version EA5 1Unre

Simulator

- ConvertToCommonDataWire(JHDLFormat) : vector- ConvertToJHDL(vector) : JHDLFormat- GetCurrentCommonDataWireVector() : vector+ RunSimulation() : void+ RunSimulation(vector) : void- SentToJHDL(JHDLFormat) : void

JHDLFormat

3.1.2.2.1.1. Simulator Class

Simulation class is the place where simulation takes places in Simulation Component. All the manipulations, convertions and communications with JHDL library happens in this Class.

Internal Requirements

Communicate with Engine Component to start a simulation. (Type: ; Status: Proposed; Difficulty: Medium; Priority: High)

Communicate with JHDL to simulate the current object. (Type: ; Status: Proposed; Difficulty: Medium; Priority: Medium)

Communicate with Script Component to start a simulation. (Type: ; Status: Proposed; Difficulty: Medium; Priority: High)

Convertion of CommonDataWire type vector to JHDL formated object which will be simulated in JHDL. (Type: ; Status: Proposed; Difficulty: High; Priority: High)

Convertion of JHDL formated object to CommonDataWire type vector which will be simulated. (Type: ; Status: Proposed; Difficulty: High; Priority: High)

Page 30: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

30

Simulator Connections

Connector Source Target Notes

Aggregation

source > target

JHDLFormat

unordered

Simulator

unordered

Aggregation

source > target

JHDLFormat

unordered

Simulator

unordered

Aggregation

source > target

CommonDataWire

unordered

Simulator

unordered

Association

CurcuitEngine

unordered

Simulator

unordered

Association

JHDL

unordered

Simulator

unordered

Association

GUI

unordered

Simulator

unordered

Association

Script

unordered

Simulator

unordered

Simulator Methods

Method Type Notes

ConvertToCommonDataWire (JHDLFormat)

private: vector param: JHDLFormat [ JHDLFormat - in ] JHDL formatted object which wiill to be converted to CommonDataWire type vector.

This method of Simulator Class is responsible for the convertion of the JHDL formatted simulation object to CommonDataWire type vector. Converted vector is returned.

ConvertToJHDL (vector) private: JHDLFormat

param: CommonDataWire [ vector - in ] Vector of CommonDataWire objects which will be converted to JHDL formatted object.

This method of Simulator Class is responsible for the convertion of CommonDataWire type vector to JHDL formatted object which is to be simulated. For the communicationwith JHDL this convertion is mandatory. Converted object is returned.

Page 31: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

31

GetCurrentCommonDataWireVector ()

private: vector This public method of Simulator Class is responsible for getting the current curcuit elements from CurcuitEngine Component that will be simulated.

RunSimulation () public: void This public method of Simulator Class is responsible for start up a simulation that will simulate the current curcuit It calls the inner private functions necessary for the processing, convertion and simulation. Simulation is applied to the same object so return type is void.

RunSimulation (vector) public: void param: CommonDataWire [ vector - in ] This is the CommonDataWire type vector which includes the curcuit elements which will be simulated.

This public method of Simulator Class is responsible for start up a simulation that will simulate the given CommonDataWire type vector. It calls the inner private functions necessary for the processing, convertion and simulation. Simulation is applied to the same object so return type is void.

SentToJHDL (JHDLFormat) private: void param: JHDLFormat [ JHDLFormat - in ] JHDL formatted object which will be send to JHDL class to be simulated.

This method of Simulator Class is responsible for the communication with JHDL for simulation. It send the JHDL formatted object to simulation. The only communication of our simulation tool with JHDL happens in this method. Simulation is applied to the same object so return type is void.

Page 32: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

32

3.1.2.2.2. Sequence Diagrams of Simulation Component

3.1.2.2.2.1. Sequence Diagram for Simulating Currently Displayed Circuit This sequence diagram is show the flow of simulation of the currently displayed curcuit. GUI component calls the overloaded RunSimulation method and lifeline begins. Then GetCurrentCommonDataWire method calls the GetWireList in CurcuitEngine component. GetWireList returns the vector holding the elements in currently displayed curcuit. Recieving the vector ConvertToJHDL method converts this method to JHDLFormat object which is the object type used in JHDL for the simulation. Then SentToJHDL method calls the JHDL Simulate method in JHDL. Simulation is applied to the same object so noting is returned from JHDL Simulate method. Finally ConvertToCommonDataWire method traces and converts this object to CommonDataWire type vector.

sd Simulation Sequence Diagram

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Ve

:Simulator :JHDL:CurcuitEngine

GUI

RunSimulation()

vector:= GetCurrentCommonDataWireVector()vector:= GetWireList()

JHDLFormat:= ConvertToJHDL(CommonDataWire)

SentToJHDL(JHDLFormat)JHDLSimulate

vector:= ConvertToCommonDataWire(JHDLFormat)

Page 33: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

33

3.1.2.2.2.2. Sequence Diagram for Simulating The Circuit For Script Component This sequence diagram shows the flow of simulation of the curcuit sent by Script Component. Script component calls the overloaded RunSimulation method and lifeline begins. Recieving the vector ConvertToJHDL method converts this method to JHDLFormat object which is the object type used in JHDL for the simulation. Then SentToJHDL method calls the JHDL Simulate method in JHDL. Simulation is applied to the same object so noting is returned from JHDL Simulate method. Finally ConvertToCommonDataWire method traces and converts this object to CommonDataWire type vector.

sd Simulation Sequence Diagram 2

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Vers

:JHDL:Script:Simulator

RunSimulation(CommonDataWire)

JHDLFormat:= ConvertToJHDL(CommonDataWire)

SentToJHDL(JHDLFormat)JHDLSimulate

vector:= ConvertToCommonDataWire(JHDLFormat)

3.1.2.3. SCRIPT COMPONENT This component is used for education purposes. With using this component the educaters can simply test the students circuits designs.

3.1.2.3.1. Detailed Class Description

cd Script ClassDiagramA5.0 Unregistered Trial Version

A5.0 Unregistered Trial Version

A5.0 Unregistered Trial Version

A5.0 Unregistered Trial Version

A5.0 Unregistered Trial Version

ScriptHandler

- CheckOutPutValues(vector) : void- GetFileContent(string) : vector- GetFileNamesInFolder(string) : vector- Parser(string) : void+ RunScript(string) : string- SendToSimulation(vector) : void- SetInputValues(vector) : void- SyntaxValidator(string, string) : boolean

Page 34: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

34

3.1.2.3.1.1. ScriptHandler Class ScriptHandler class is the place where script operations take places in Script Component. All the syntax checking, parsing and semantic operations happen in this class.

Internal Requirements

Check output values returned from simulation with the defined output values in the script. (Type: ; Status: Proposed; Difficulty: Medium; Priority: Medium)

Communicate with GUI to start script operations. (Type: ; Status: Proposed; Difficulty: Medium; Priority: Medium)

Do syntax checking of the script for the interperetation. (Type: ; Status: Proposed; Difficulty: Medium; Priority: Medium)

Parse script and do semantic operation. (Type: ; Status: Proposed; Difficulty: Medium; Priority: Medium)

ClassDiagram::ScriptHandler Connections

Connector Source Target Notes

Aggregation

source > target

CommonDataWire

unordered

ScriptHandler

unordered

Association

File

unordered

ScriptHandler

unordered

Association

ScriptHandler

unordered

GUI

unordered

Association

ScriptHandler

unordered

Simulation

unordered

ClassDiagram::ScriptHandler Methods

Method Type Notes

CheckOutPutValues (vector) private: void param: CommonDataWire [ vector - in ] CommonDataWire type vector in which the output values returned from the simulation will be checked.

This method of ScriptHandler class is responsible for the validation of the output values returned from the simulation comparing with the values defined in script.

GetFileContent (string) private: vector param: filename [ string - in ] filename including the absolute path to the file of which the included circuit is requested.

This method of ScriptHandler class is responsible for

Page 35: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

35

communication with the File class to retrieve the circuit to be simulated from a file.

GetFileNamesInFolder (string)

private: vector param: folderpath [ string - in ] Absolute path of a folder which is declared in script in which the files will be simulated

This method of ScriptHandler class is responsible for communicating with File class to retrieve the filenames in the given folder path.

Parser (string) private: void param: script [ string - in ] The script entered to be interpreted.

This method of ScriptHandler class is responsible for the interperetation of the script given.

RunScript (string) public: string param: script [ string - in ]

This public method of ScriptHandler Class is responsible for start up a script interperetation and receives the script to be interpreted. It calls the inner private functions necessary for the syntax checking, parsing and semantic operations necessary to interpret the script given and returns the error message if any error is caught in the interpretation process.

SendToSimulation (vector) private: void param: CommonDataWire [ vector - in ] CommonDataWire type vector which will be simulated in Simulation Component.

This method of ScriptHandler Class is responsible for communication with Script Component to simulate the current CommonDataWire type vector.

SetInputValues (vector) private: void param: CommanDataWire [ vector - in ] CommonDataWire type vector in which the input values will be set.

This method of ScriptHandler Class is responsible for applying the input values given in the script to the CurrentDataWire type vector.

SyntaxValidator (string, string)

private: boolean param: interpreteerror [ string - in ] String in which any error message will be written.

param: script [ string - in ] The script entered to be interpreted.

Page 36: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

36

This method of ScriptHandler Class is responsible for syntax checking of the given script. It writes the error found to the interpreteerror string.

3.1.2.3.2. Sequence Diagram of Script Component This sequnce diagram is based on the flow of script interpretation.

Firstly GUI calls the RunScript method of ScriptHandler class and sends the text in as string which is written in the script text box. Then ScriptHandler method calls the SyntaxValidater method for checking that if the syntax is valid or not. Then the Parse method will called for parsing the text which is written in the script text box. After that GetFileNames method will be called and sends the folder parh to the File component for getting the file names in it. GetFileContent method will be called for knowing the files content for all files in the folder. For this purpose GetFileContent method sends the path of the file to the File component. Then SetInputValues method will be called for setting the input values of the CommonDataWire which was read from the script text box. After that SendToSimulation method will be called for knowing the output values of the circuit design of the file. This method will sent the CommonDataWire object to the Simulation. Lastly for checking the output values CheckOutputValues method will be called.

sd Script SequenceDiagramgistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

gistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Unregistered

:ScriptHandler

GUI

:File :Simulation

string:= RunScript(script)

boolean:= SyntaxValidator(interpreteerror,script)

Parser(script)

vector:= GetFileNamesInFolder(folderpath)

GetFileNames

vector:= GetFileContent(filename)

GetFileContent

SetInputValues(CommanDataWire)

SendToSimulation(CommonDataWire)

SentToSimulation

CheckOutPutValues(CommonDataWire)

Page 37: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

37

3.1.2.4. FILE COMPONENT

3.1.2.4.1. Detailed Class Description

cd fileoperationsegistered Trial Version EA 5.0 Unregis

egistered Trial Version EA 5.0 Unregis

egistered Trial Version EA 5.0 Unregis

egistered Trial Version EA 5.0 Unregis

egistered Trial Version EA 5.0 Unregis

egisteredTrial Version EA5 0Unregis

FileOperations

+ closefile() : void+ exportfile(items) : void+ importfile(file) : items+ newfile() : items+ openfile(file) : items+ savefile(items) : void+ saveimage(items) : void

3.1.2.4.1.1. FileOperations Class FileOperations handles all the file operations explained in requirements document.The class calls the methods of other classes like circuit engine and is in interaction with GUI.

Page 38: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

38

Method Notes Parameters

closefile() void

Public

Closes the current file

Closes the current file

exportfile() void

Public

Takes items as argument.Exports the current circuit to selected file by the user into DIGLOG file format lgf.

Takes vector as argument.Exports the current circuit to selected file by the user into DIGLOG file format lgf.

items a

[in]

importfile() items

Public

Import and open the DIGLOG file selected by the user.Function takes a file input as argument returns items vector that is used by circuit display function of circuit engine class

Import and open the DIGLOG file selected by the user.Function takes a file input as argument returns vector that is used by circuit display function of circuit engine class

file a

[in]

newfile() items

Public

Closes the current file and returns a null items vector to be displayed by circuit engine class

Closes the current file and returns a null vector to be displayed by circuit display function of circuit engine class

openfile() items

Public

Reads from a Digart file selected by the user.Takes file as argument returns vector to be used by circuit by circuit engine class

Reads from a Digart file selected by the user.Takes file as argument returns vector to be used by circuit display function of circuit engine.

file a

[in]

savefile() void

Public

Takes vector as argument.Saves the current circuit to the file selected by the user in format .daf.

Takes vector as argument.Saves the current circuit to the file selected by the user in format .daf.

items a

[in]

saveimage() void

Public

Takes items as argument.Save the displayed part of the current window as an image to the selected file by the user.

Takes vector as argument.Save the displayed part of the current window as an image (as jpeg format) to the selected file by the user.

items a

[in]

Page 39: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

39

3.1.2.4.2. Sequence Diagram of File Component Describes the relation between gui file and circuitengine. The messages are taken from from GUI handled by file class methods and the return of the functions of file operation class is used by CircuitEngine class and displayed.

sd gui_file_circuit_engineEA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial V

:FileOperations

GUI

CircuitEngine

drawlistitemsfromfile(items a)

create items instance

newfile

drawlistitemsfromfile(items a)

create items instance

import file

create items instance

drawlistitemsfromfile(items a)

openfile

Page 40: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

40

3.1.2.4.3. Sequence Diagram of File Component This diagram shows the relation between GUI and FileOperations class.GUI sends the message export save or saveasimage FileOperations class writes to the selected files by user.

sd gui_fileUnregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

Unregistered Trial Version EA 5.0 Unregistered Trial Ver

GUI

:FileOperations

saveimage(items )

save as image

exportfile(items )

export to file

save file

savefile(items)

3.1.2.5. HELP COMPONENT

3.1.2.5.1. Detailed Class Description Help operations manages the help menu item.The help files are in the directory of DigArt.The selected help topics are loaded and displayed in the help menu display window.

cd helpoperationsEA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Versio

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Versio

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Versio

EA 5.0 Unregistered Trial Version EA 5.0 Unregistered Trial Versio

HelpOperations

+ displayhelpwindow(HelpContentsVector) : void+ loadhelptopic(file) : HelpContentsVector

HelpContentsVector

- help_vector: HelpContentsVector

Page 41: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

41

Operations

Method Notes Parameters

displayhelpwindow() void

Public

Displays the selected help item on the help window.Takes HelpContentsVector as argument

HelpContentsVector a

[in]

loadhelptopic() HelpContentsVector

Public

Reads from selected file and creates a vector of characters to be displayed in help display window. Reads from selected file and creates a vector of characters to be displayed by help display window.

file a

[in]

Class HelpContentsVector

Attribute Notes Constraints and tags

help_vector HelpContentsVector

Private

Default:

3.1.2.5.2. Sequence Diagram of Help Component Describes the relation between gui file and circuitengine. The messages are taken from from GUI handled by file class methods and the return of the functions of file operation class is used by CircuitEngine class and displayed.

sd gui_help0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Un

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Un

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Un

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Un

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA 5.0 Un

0UnregisteredTrial Version EA5.0 UnregisteredTrial Version EA5.0Un

GUI

Help

load_help_topic(file a)

display_help_topic(help_contents_vector a)

Page 42: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

42

3.1.2.6. CUSTOM CIRCUIT ELEMENT COMPONENT

3.1.2.6.1. Detailed Class Description This class has two methods ,the circuit drawn by the user can be saved into a .dae file.The user may reach that component from the easy access to circuit elements tool,when the user selects that component from the easy access menu that class loads the file the component is saved and it is displayed by circuit engine.

cd custom_circuit_elementrial Version EA 5.0 Unreg

rial Version EA 5.0 Unreg

rial Version EA 5.0 Unreg

rial Version EA5.0 Unreg

CustomCircuitElement

+ customcircuitload(file) : items+ customcircuitsave(items) : void

Method Notes Parameters

customcircuitload() items

Public

Reads from a .dae file selected by the user from the ease access to circuit elements menu.Takes file as argument returns items vector to be used by circuit engine

file a

[in]

customcircuitsave() void

Public

Takes items vector as argument.Saves the circuit element drawn by the user for later use to the file selected by the user in format .dae. Takes vector as argument.Saves the circuit element drawn by the user for later use to the file selected by the user in format .dae.

items a

[in]

3.1.2.6.2. Sequence Diagram of Custom Circuit Creation Component This sequence diagram shows the interaction between gui and CustomCircuitElement Class,The CustomCircuitElement class loads the .dae file and returns items for the use of circuit engine.

sd gui_custom_circuit_element0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

0 Unregistered Trial Version EA 5.0 Unregistered Trial Version EA

:CustomCircuitElement

GUI

save custom circuit

custom_circuit_save(items a)

items:= custom_circuit_load(file a)

load custom circuit

Page 43: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

43

3.1.3. SERVICE LAYER In this layer there is a component named JHDL (Java Hardware Definition Language). JHDL is an open source library which can simulate logical circuits. The components in the Presentation Layer and Domain Layer composes a data structure to send to the JHDL library to simulate.

3.2. COMPONENT LEVEL SEQUENCE DIAGAMS

3.2.1. COMPONENT LEVEL SEQUENCE DIAGRAM FOR FILE OPENING This sequence diagram shows the flow of file opening operations lifetime. GUI Component calls the method Open_File in File Component and timelife starts. File Component then calls the DrawListItemFromFile in CurcuitEngine Component and sends the Items read form the file to the CurcuitEngine Component. This component receiving the curcuit items draw them to the screen.

sd Component Interaction Diagram

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

GUI Component SimulationComponent

Script Component File ComponentCurcuitEngineComponent

JHDL

Open_File()

DrawListItemFromFile(Items)

Page 44: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

44

3.2.2. COMPONENT LEVEL SEQUENCE DIAGRAM FOR SIMULATE OPERATION This sequence diagram shows the flow of simulate operations lifetime. GUI Component calls the method RunSimulation method in Simulation Component and timelife starts. Simulation Component then calls the GetWireList in CurcuitEngine Component and gets the items in currently displayed curcuit. This component receiving the curcuit items sends them to JHDL for the simulation. Being simulated in JHDL component the items are sent back to CurcuitEgineComponent with the method SetWireList. Finally, the simulation result is displayed in the screen.

sd Component Interaction Diagram

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistere

GUI Component SimulationComponent

Script Component File ComponentCurcuitEngineComponent

JHDL

RunSimulation(string)

GetWireList(vector)

JHDLSimulate

SetWireList(vector)

Page 45: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

45

3.2.3. COMPONENT LEVEL SEQUENCE DIAGRAM FOR SCRIPT OPERATION This sequence diagram shows the flow of script operations lifetime. GUI Component calls the method RunScript method in Script Component and timelife starts. Script Component then calls the GetFileNames method in File Component and gets the names of the files in the directory given in the script. Then Script Component calls the GetFileContent method in File Class and gets the content of the curcuit in the file. After that it calls the RunSimulation method in Simulation Component. This component receiving the curcuit items sends them to JHDL for the simulation. Then they are simulated in JHDL. And Displayed in the screen.

sd Component Interaction Diagram

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

GUI Component SimulationComponent

Script Component File ComponentCurcuitEngineComponent

JHDL

string:= RunScript(string)

string:= GetFileNames(string

vector:= GetFileContent(string)

RunSimulation(vector)

Page 46: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

46

3.2.4. COMPONENT LEVEL SEQUENCE DIAGRAM FOR FILE SAVING This sequence diagram shows the flow of save file operations lifetime. GUI Component calls the method Save_File in File Component and timelife starts. File Component then calls the GetWireList in CurcuitEngine Component and recieves the wires currently displayed on the screen then again it calls the GetItemList in CurcuitEngine Component and recieves the items currently displayed on the screen CurcuitEngine Component. After recieving all the necessary information it saves the curcuit to the file.

sd Component Interaction Diagram

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unregistered Trial Version EA 5.1 Unreg

GUI Component SimulationComponent

Script Component File ComponentCurcuitEngineComponent

JHDL

Save_File()

GetWireList(vector)

GetItemList(vector)

Page 47: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

47

4. TRACEABILITY The table shows the traceability between the high level requirements which are specified in DigART Software Requirements Analysis Report Document, and the low level requierements which are described with components.

COMPONENT NAME HIGH LEVEL REQUIREMENT ID

GUI DA_SRA_96

DA_SRA_97

DA_SRA_98

DA_SRA_99

DA_SRA_100

DA_SRA_101

DA_SRA_107

DA_SRA_108

CIRCUIT ENGINE DA_SRA_15

DA_SRA_16

DA_SRA_17

DA_SRA_18

DA_SRA_19

DA_SRA_20

DA_SRA_21

DA_SRA_22

DA_SRA_23

DA_SRA_24

DA_SRA_25

DA_SRA_26

DA_SRA_27

DA_SRA_28

DA_SRA_29

DA_SRA_30

DA_SRA_31

DA_SRA_32

DA_SRA_33

DA_SRA_34

DA_SRA_35

DA_SRA_36

DA_SRA_37

DA_SRA_38

DA_SRA_39

DA_SRA_40

Page 48: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

48

DA_SRA_41

DA_SRA_42

DA_SRA_43

DA_SRA_44

DA_SRA_45

DA_SRA_46

DA_SRA_47

DA_SRA_48

DA_SRA_49

DA_SRA_50

DA_SRA_51

DA_SRA_52

DA_SRA_53

DA_SRA_54

DA_SRA_55

DA_SRA_79

DA_SRA_80

DA_SRA_81

DA_SRA_82

DA_SRA_83

DA_SRA_84

DA_SRA_85

DA_SRA_107

DA_SRA_108

SIMULATION DA_SRA_56

DA_SRA_57

DA_SRA_58

DA_SRA_59

DA_SRA_60

DA_SRA_61

DA_SRA_62

DA_SRA_63

DA_SRA_65

DA_SRA_66

DA_SRA_67

DA_SRA_107

DA_SRA_108

Page 49: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

49

SCRIPT DA_SRA_68

DA_SRA_69

DA_SRA_70

DA_SRA_71

DA_SRA_72

DA_SRA_73

DA_SRA_74

DA_SRA_75

DA_SRA_76

DA_SRA_77

DA_SRA_78

DA_SRA_107

DA_SRA_108

FILE DA_SRA_01

DA_SRA_02

DA_SRA_03

DA_SRA_04

DA_SRA_05

DA_SRA_06

DA_SRA_07

DA_SRA_08

DA_SRA_09

DA_SRA_10

DA_SRA_11

DA_SRA_12

DA_SRA_13

DA_SRA_14

DA_SRA_107

DA_SRA_108

HELP DA_SRA_102

DA_SRA_103

DA_SRA_104

DA_SRA_105

DA_SRA_107

DA_SRA_108

CUSTOM CIRCUIT ELEMENT DA_SRA_86

DA_SRA_87

DA_SRA_88

Page 50: DigART DIGITAL CIRCUIT SIMULATOR PROJECT Initial Software ... · Controlled Folder: A4 TBD 1 . DigART SDD Report DA010 1.1 2 PREPARED BY NAME TITLE/ROLE REV SIGNATURE Elif SAYGI Quality

DigART SDD Report DA010 1.1

50

DA_SRA_89

DA_SRA_90

DA_SRA_91

DA_SRA_92

DA_SRA_93

DA_SRA_94

DA_SRA_95

DA_SRA_107

DA_SRA_108