Presentation is loading. Please wait.

Presentation is loading. Please wait.

Design 2: System Architecture CS406 Tivoli 1. Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype.

Similar presentations


Presentation on theme: "Design 2: System Architecture CS406 Tivoli 1. Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype."— Presentation transcript:

1 Design 2: System Architecture CS406 Tivoli 1

2 Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype

3 Refined Use Cases  Convert Scripts - Without a GUI the user only has one interaction with the system

4 Component Overview  XML parser  Intermediate Script Representation  Component Generator  Script Converters

5 XML Parser  Third party component  Many free implementations available  IBM, GNU, SUN, …  We will wrap the component to produce blocks instead of tags  Tag  Block

6 XML Parser Class Diagram XML Parser -Internal Parser setFile(fileName:String) getBlock():String This is the third party component that we will wrap.

7 Intermediate Script Representation  Designed and provided by us  Provides us a generic way to deal with scripts internally  Script Component class implements Visitor design pattern

8 Intermediate Script Representation class diagram Database Script -scriptComponents addComponent(component: ScriptComponent) getComponents():Vector Script Component visit(producer:ScriptProducer) Drop Table -tableName:String

9 Component Generator  Designed and provided by us  Takes XML blocks  Produces Script Components  Abstract Factory Design Pattern  Singleton

10 Component Generator Class Diagram Component Generator generateComponent(block:String) :ScriptComponent

11 Script Converter  Takes a intermediate representation and converts to text scripts  Abstract base class which will be inherited from for each database platform

12 Script Converter Class Diagram Script Converter addBlock(block:Block) outputFile() #dropTable(name:String) #… many script elements

13 System Behavior: XML Parser :ScriptGenerator:XMLParser SpecifyFile (fileName) SetFile(fileName)

14 System Behavior: Specify Database Platforms :ScriptGenerator:ScriptConverter SpecifyPlatforms (platforms:text) 1:Create(dbType:text)

15 System Behavior: Internal Script Build :ScriptGenerator :Component :Script :XMLParser :ScriptConverter 3 addBlock(block) 2 create() 2.1 create() 2.1.1 create() :Component :Component Generator 3.1*comp:=generateComponent(block) 3.1.1 create() 1*block:=[for each block]getBlock()

16 System Behavior: Internal Script Build :ScriptGenerator :Component :Script :XMLParser :ScriptConverter 1*block:=[for each block]getBlock()3 addBlock(block) 2 create() 2.1 create() 2.1.1 create() 3.2 addComponent(comp) 3.2 add (comp) 4 writeScript() 4.1*:[for each component]comp::getComponent() :Component 4.2 visit(this) 4.2.1 dropTable(string) :File 4.3 write(string)

17 System Behavior: View Errors :ScriptGenerator:Reports 1:createReport() 2:populateReport() 3:displayReport()

18 Prototype Functionality  DB2, Oracle, SQL Server Script Converters  XML Parser Wrapper  Component Converter (block- >Component)  Components for many script operations:  Create Table, Drop Table, Create View, etc…

19 Our Status  Continuing to revise design  Starting with high level code  Considering some general implementation details

20 Finally Questions For Us?


Download ppt "Design 2: System Architecture CS406 Tivoli 1. Overview  Refined use cases  Functionality  Components  Classes  System Behavior  Prototype."

Similar presentations


Ads by Google