data sculpting team #8 members ron bradley (presenting) bradley herrin (presenting) daniel shusko...
TRANSCRIPT
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
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/