220 likes | 231 Views
This report discusses the progress and goals of the UmbrellaDB.v0.5 project, which aims to provide query access and integration for heterogeneous data sources using standard SQL statements.
E N D
UmbrellaDB v0.5Project Report #2 Integrated Heterogeneous Data Source Access Eric Matson – MSE Kansas State University
Agenda • Review • Current State • Object Model • Design Diagrams • Formal Requirements • Software Quality Assurance Plan • Test Plan • Project Management/Control • Summary and Questions
Review - Purpose • Query heterogeneous data sources using standard SQL statements • Achieve database integration and access at the query level • Allow the data to be “black box” whereas users don’t need to have understanding to source, architecture, or technical details
Review - Goals • Complete the Requirements of CIS895 • Successfully Navigate Software Engineering Process • Prove UmbrellaDB Concept • Prove Ability to Process UmbrellaDB Queries • Create easy to use Graphical User Interface (GUI)
Review - Description • Enter queries using standard SQL statements • Query heterogeneous data sources • Text Files • Relational Databases • Knowledge Base Formats • Non-relational Databases • ODBC Data Sources • Unify Data together as single relation
Review – Architecture Relational Database Parser D a t a C o n n e c t o r s Object Database API Splitter TCP/IP Text File Router Umbrella GUI Unifier KB File Profile Data Server Data Sources Engine
Review - Scope • Functionality • Umbrella 0.5 Query Engine • Graphical User Interface (GUI) • Data Servers for Text Data Sources • Data Connectors • SQL Select Statement in Limited Format • Data Sources • PostgreSQL: ANSI Compliant ORDBMS • MySQL: non-ANSI Compliant RDBMS • Formatted Text • Delimited Text
GUI “Prototype” Toolbar Menu Data Project Info Node Info Status
Current - Progress of Iterations • COMET Process • 3 iterations completed through the design phase • Good for developing the prototype • Hard for a large team • Communication requirements ex with number on project • Quick Results – good feeling of progress • Very good through the design process w/ Formal Methods • Created about 2000 lines of code • Mostly reusable • Some throwaway
Current - Progress of “Formalities” • Instead of specifying Formal Requirements for single area • Complete Project • Each iteration drives “tightening” of design • Finding how much I don’t know about UML/OCL • Experience may be the most valuable use of Formal Methods • Continuously re-think the design • Intrinsic value is in the “thought process” • Filling “gaps’ in my weakest development area • Currently 600+ lines of OCL code…project to finish > 1000 • USE/OCL seems like a good combination • USE is easy to use (no pun intended) • Very intuitive • OCL is not hard to learn • Need more real examples • Not many resources – yet!
Object Models - Tools • Unified Modeling Language (UML) • Poseidon for UML • Object Constraint Language • USE
Formal Requirements • model UmbrellaDB • class Connection • attributes • name : String • tcpipNumber : String • URLName : String • port : Integer • dataSrcs : Set(DataSource) • operations • checkConnection():Boolean • makeConnection():Boolean • terminateConnection():Boolean • end • class RelationalConnection < Connection • attributes • dbType : String • JDBCDriver : String • userName : String • passwd : String • operations • RelationalConnection(name : String, tcpipNumber : String, URLName : String, port : Integer, • dbType : String, JDBCDriver : String, userName : String, passwd : String) • end • class TextConnection < Connection • attributes • delText : Boolean • forText : Boolean • operations • TextConnection(name : String, tcpipNumber : String, URLName : String, port : Integer, • delText : Boolean) • end
Formal Requirements • -- Constraints for CONNECTION Objects • context Connection • inv SizeEighty: self.port > 8080 • context Connection::makeConnection():Boolean • pre: (self.tcpipNumber.size > 0 ) or (self.URLName.size > 0) • pre: self.port = 8189 • pre: self.name.size > 0 • post: result = true • post: self.port = 8189 • context Connection::terminateConnection():Boolean • -- pre: -- none • post: result = true • context Connection::checkConnection():Boolean • -- pre: -- none • post: result = true • -- Constraints for RELATIONAL CONNECTION Objects • context RelationalConnection • inv SizeEightyRel: self.port > 8080 • -- Constraints for TEXT CONNECTION Objects • context TextConnection • inv SizeEightyText: self.port > 8080 • context TextConnection • inv ChooseType: self.delText <> self.forText
Software Quality Assurance Plan • Quality is “…meeting specifications…” • Standard Verification and Validation topics • “Plan problems out of the project ahead of time…” • Planning to assure quality (CIS 748) • Plan • Purpose : SOW, Goals • Reference Documents : published • Management : organization, tasks, responsibilities • Documentation: documents and evaluation • Standards, Practices Conventions and Metrics • Reviews and Audits : 3 formal reviews / continuous audit • Testing • Problem Reporting
Software Quality Assurance Plan • Plan (continued) • Tools Techniques and Methodologies • Code Control • Media Control • Supplier Control – outsourcing not an issue • Records • Training • Risk Management • Some of these are topics we can think about but really aren’t very relevant for a project of this scope/size/organization dynamic
Test Plan – COMET Model • Complete Formal Analysis will catch many issues • Full formal spec and testing will prevent many issues from creation • Unit Testing (continuous) • Done throughout the process • Several hundred tests • Very fined grained level • Integration Testing • 52 Positive (test success) specifications with multiple data sets • 52 Negative (test failure) specifications with multiple data sets • Some variables beyond control • Network or database failures (factor out of testing)
Formal Technical Inspection • Intermediate Project Step • Next time, but before final presentation • Perform this on the Formal Specifications Documents
Project Planning – Gantt Chart Sept Oct Nov Dec Jan Feb Mar Apr May Planning Req’s Modeling Throwaway Prototyping Analysis Mod. Design Mod. Incr. SW Const Incr. SW Integ. Incr. Prototyping Systems Testing Delivery Review #1 Review #2 Review #3
Project Control – Change Mgmt. • Continuous through the iterations • Almost easier to not track on first 2-3 iterations • Continuous change • Adds admin time • Spectrum: generate ideas to develop concrete solutions • On track with hours • Will go over time with the additional formal specification testing • Will save on the iterations later • Re-testing • Re-coding • Theory is there is balance “ in the force” later on
Summary • Moving ahead well , as scheduled • Spend more time with Formal Methods • Next Steps • Questions • Feedback • Signoff • Proceed to Phase #3