22
Data Sculpting Team #8 Members Ron Bradley (Presenting) Bradley Herrin (Presenting) Daniel Shusko (Team Lead) David Thomas Sponsor Fidelity Investments, Adam Schwartz Managers Ms. Heil Dr. Fornaro

Data Sculpting Team #8 Members Ron Bradley (Presenting) Bradley Herrin (Presenting) Daniel Shusko (Team Lead) David Thomas Sponsor Fidelity Investments,

Embed Size (px)

Citation preview

Data Sculpting

Team #8 MembersRon Bradley (Presenting)Bradley Herrin (Presenting)Daniel Shusko (Team Lead)David Thomas

SponsorFidelity Investments, Adam Schwartz

ManagersMs. HeilDr. Fornaro

• Iteration 0 (Requirements Analysis)• Iteration 1 (Implementation & Testing)• Iteration 2 (User Story)• Action Steps• Questions??

How we got started:• Met with sponsor• Verified our vision• Hammered out requirements• Determined best

environment• Group Wiki Launched

• http://hifidelity.wikidot.com/

Recently completed Iteration 1 (Post OPR2)

• XML Model “drives” development • Proper XML construction is paramount• Improperly coded elements overlooked

• Created CLI• Passes XML file to back-end• File passed to XMLParser class• Inserts into database via ODBC

<?xml version="1.0" ?> <DatabaseSources> <DatabaseSource> <DatabaseSourceName> DSN </DatabaseSourceName> <tables> <table> <tableName> People </tableName> <columns> <column> <name> SSN </name> <dataType> string </dataType> </column>

. .

.

<?xml version="1.0" ?><DatabaseSources> <DatabaseSource> <DatabaseSourceName> </DatabaseSourceName> <tables> <table> <tableName> </tableName> <columns> ... </columns> <records> ... </records> </table> <table> <tableName> </tableName> <parentTables> <parentTable> <databaseName> </databaseName> <tableName> </tableName> </parentTable> </parentTables> </table> </tables> </DatabaseSource></DatabaseSources>

Example XML Model

• Testing harness still expanding.• Currently 40+ Unit Tests implemented• Incorporated as part of VStudio 2010

Class Owner(s) Due Date Coverage

Driver Daniel 3/2/2011 100%

FunctionReturn Daniel 3/2/2011 100%

InsertStatement Daniel 3/2/2011 100%

DatabaseSource Daniel 3/2/2011 96.88%

DatabaseHandler Daniel 3/2/2011 98.75%

DatabaseTableLevelNode Daniel 3/2/2011 100%

InsertCommandCreator Daniel 3/2/2011 100%

DatabaseTableLevel Daniel 3/2/2011 95.45%

XMLParserRon & Bradley

3/2/2011 99.35%

DatabaseTableTest David 3/2/2011 100%

DatabaseSourceTest David 3/2/2011 100%

DatabaseColumnTest David 3/2/2011 100%

DatabaseRecordTest David 3/2/2011 100%

XMLCreaterTest David 3/2/2011 100%

• Recently transitioned into Iteration 2• Complex issues arise

• Data generation and manipulation• Vectors/Repetition

• New components implemented• GUI• Dynamic Content

Additional Requirements for Iteration 2• GUI based interaction• Import of XML file into application• Visual Representation of XML model

• Tree form of database inserts

• Dynamic Content implementation• Save newly created, or edited, XML models• Time permitting

• Auto-save XML model• Load from previous “X” models

Dynamic Content (aka: Vector Content)

•Ability to create multiple records• Predefined pattern(s)

The following must be provided:•External References to other

• Databases• Tables• Records

•Field Formulas• Numeric Arithmetic• Date Manipulation

• Positive or negative values• Days, Months, Years, Etc.

Dynamic Content

• Multiple record generation• Finite number of tuples

• Specify X number of records

• Date Comparison• Generate records until “date” is met

• Numeric Comparison• Until numeric comparison is met

• Random Values• SSN, Name, Etc.• Specify upper and lower bounds

• Numeric data types• “Data” data types• String data types

Dynamic Content

• Keyword based system • Keyword(parameter, parameter,….)• Finite(X), Conditional(X), RandomInt(X,Y)

• Calls are made within XML model

Implementing 3 Classes• FSA

• Parse XML file it into graph structure• Set start location

• NextState• Advance to random connected state

• DynamicContent• Process string Dynamic Content “keyword”

• Return finite value• VectorRecords

• InsertCommandCreator detects a vector record• Passes to VectorRecords

• Process into series of finite value records• Returns translated InsertCommands

1. User opens application• Presented with blank XML file

2. User specifies DSN information• DSN object handled via OS and .NET

User Enters DSN InformationUser Launches

App

User Launches App

3. User enters test information• Table, Column, Record (Dynamic Content)

4. User clicks “Submit”• Submission for DB insert• Dynamic Content verified

• Transaction rollbacks otherwise• Generate insert statements

User Enters DSN InformationUser Launches

App

Table NameColumn Name

Record

User Enters DSN InformationUser Launches

App

Table NameColumn Name

RecordInsert Statements

Dynamic Content

No

Yes

Loop

GUI Implementation

• First stage – no dynamic content• On launch, display empty/new Model• Once parsed, tree structure presented • Click an element for information• “Insert/Submit” button to insert test case

DSN: Database Source Name

Stores:• Name of data source• Directory of data source• Name of driver for access• User ID for access• User password for access

GUI Mock-Up, XML File Imported, Tree StructureClicking an element would display its information

A note about DSN usage

Initial XML model layout• Database Name• Database Address• User Name• Password• Etc.

DSN Import Model• Parses needed Database connection information• Information stored on local computer

• Dynamic Content implementation• GUI implementation• Integration & Unit Testing

• GUI Dynamic Content

Questions, UHasThem?

Iterative Cycle Model/Pic: http://projects.staffs.ac.ukQuestion Cat: http://icanhascheezburger.com/Sybase Logo: http://hp.comMySQL Logo: http://matsu.wordpress.com/DB2 Logo: http://www.laurabrennan.com/SQL Server Logo: http://blogs.technet.com/XML File Icon: http://www.iconarchive.com/NC State Logo: http://www4.ncsu.edu/~dmmaronc/E-partners Logo: http://www.saffrontech.com/Fidelity Logo: http://bostinnovation.com/