Specification and Validation of Navigation Data Business Rule

Slides:



Advertisements
Similar presentations
XML-XSL Introduction SHIJU RAJAN SHIJU RAJAN Outline Brief Overview Brief Overview What is XML? What is XML? Well Formed XML Well Formed XML Tag Name.
Advertisements

Configuration management
Configuration management
XML Data Validation An Open QA Framework February 28, 2005 The Exchange Network Node Mentoring Workshop.
Semantics Static semantics Dynamic semantics attribute grammars
System Integration Verification and Validation
Chapter 5 Syntax Directed Translation. Outline Syntax Directed Definitions Evaluation Orders of SDD’s Applications of Syntax Directed Translation Syntax.
Chapter 4 Quality Assurance in Context
Taxmann’s XBRL Tool Purpose of XBRL Reporting  XBRL is a language for the electronic communication of business and financial data that has revolutionized.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Copyright Irwin/McGraw-Hill Data Modeling Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
ISBN Chapter 3 Describing Syntax and Semantics.
The European Organisation for the Safety of Air Navigation AIXM 5.1 – Business rules AIXM XML Developers' Seminar.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Chapter 9 Describing Process Specifications and Structured Decisions
Aalborg Media Lab 21-Jun-15 Software Design Lecture 1 “ Introduction to Java and OOP”
Kendall & KendallCopyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall 9 Kendall & Kendall Systems Analysis and Design, 9e Process Specifications.
Describing Syntax and Semantics
September 15, 2003Houssam Haitof1 XSL Transformation Houssam Haitof.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Software Testing Prasad G.
Process Modeling SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED. 1 Roberta M. Roth.
Sheet 1XML Technology in E-Commerce 2001Lecture 6 XML Technology in E-Commerce Lecture 6 XPointer, XSLT.
© 2010 The MITRE Corporation. All rights reserved CPE Prefix Property MythBusters* CPE Core Team Technical Working Group (TWG) 05/11/2010 * This presentation.
Overview of the Database Development Process
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Introduction to XML Eugenia Fernandez IUPUI. What is XML? From the World Wide Web Consortium (W3C) The Extensible Markup Language (XML) is the universal.
ITEC224 Database Programming
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
The European Organisation for the Safety of Air Navigation AIXM Business rules.
XML – Tools and Trends Schematron Tim Bornholtz Session 55.
November 1, 2006IU DLP Brown Bag : Fall Data Integrity and Document- centric XML Using Schematron for Managing Text Collections Dazhi Jiao, Tamara.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Extending XML Schemas XML Schemas: Best Practices A set of guidelines for designing XML Schemas Created by discussions on xml-dev.
Document Validation for PEPPOL Philip Helger Austrian Federal Computing Centre February 11 th 2010 Version 1.0.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Schematron Tim Bornholtz. Schema languages Many people turn to schema languages when they want to be sure that an XML instance follows certain rules –DTD.
Chapter 10 Designing the Files and Databases. SAD/CHAPTER 102 Learning Objectives Discuss the conversion from a logical data model to a physical database.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
The Software Development Process
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1.  Introduction  The Benefits of the Report Writer Module ◦ For Detail and Summary Printing ◦ For Control Break Processing ◦ For Printing Headings.
University of Nottingham School of Computer Science & Information Technology Introduction to XML 2. XSLT Tim Brailsford.
Software Requirements Specification (SRS)
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Intro text for this chapter AIXM Procedure Seminar Luciad.
Copyright © 2011 Pearson Education Process Specifications and Structured Decisions Systems Analysis and Design, 8e Kendall & Kendall Global Edition 9.
CSC314 DAY 8 Introduction to SQL 1. Chapter 6 © 2013 Pearson Education, Inc. Publishing as Prentice Hall SQL OVERVIEW  Structured Query Language  The.
1 © 2003, Cisco Systems, Inc. All rights reserved. DMTF and Cisco Profile overview/comparison August 17, 2005.
 Problem Analysis  Coding  Debugging  Testing.
MANAGEMENT INFORMATION SYSTEM
University of Colorado at Denver and Health Sciences Center Department of Preventive Medicine and Biometrics Contact:
Validation of Metadata XML files SeaDataNet Training, June 2008 Presented by with contributions from Karen Vickers (BODC) Presented by Michèle Fichaut.
LECTURE 10 Semantic Analysis. REVIEW So far, we’ve covered the following: Compilation methods: compilation vs. interpretation. The overall compilation.
Software Testing.
Software Configuration Management
PlaneWrong AGM Thursday 13th October
XML in Web Technologies
Object-Oriented Analysis
An Introduction to Structured Program Design in COBOL
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
This presentation document has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational.
Software Reviews.
Presentation transcript:

Specification and Validation of Navigation Data Business Rule Yauwu Tang AFLCMC/HBAG (MITRE) 29 August 2013 Distribution Statement A: Approved for public release; unclassified; unlimited distribution Case Number: MITRE 13-2522 and AFLCMC 66ABG-2013-0241.

Introduction ARINC-424 provides civil standards for preparation of navigation databases (NavData); NavData loaded into Flight Management Systems (FMS) ARINC-424 includes data base schema and business rules AIXM is next generation civil navigation data standard AIXM schema provides syntax rules but not business rules Free format business rule specifications are error prone (imprecise and ambiguous) Formal machine readable/executable method to specify business rules defined in ARINC 424 and validate data using AIXM syntax rules will: Ensure precise and unambiguous business rule specification Ensure consistent data validation at all stages of data chain process

Introduction (concluded) Schematron Standard selected from the following candidates SBVR (Semantic Business Vocabulary and Business Rules) A formal natural language to specify business rule Relative easy to use Adapted by Eurocontrol But it is not machine readable and executable XML Schema Version 1.1 Provide limited assertion validation (borrowed from Schematron) Schematron Provide “assertion” and “report” validation rules for a given “context” Human and machine readable Can be enhanced with human readable descriptions Provide free format text on failed assertion and successful report Enable domain-specific diagnostic (error) messages Human readable descriptions can be extracted and shown to subject matter expert for review Provides pointer from implementation to requirement (i.e., traceable requirements)

Overview This demonstration shows how Schematron can be used to implement and validate ARINC 424 business rules for terminal procedures using AIXM syntax rules Schematron is an ISO standard lan­guage for making as­ser­tions about the pres­ence or ab­sence of pat­terns in XML doc­u­ments Technical Approach Using XSLT to embed all data Using “Context” to specify applicable data elements Using XPath 1.3 for math calculation including trigonometry ARINC 424 rules analyzed Schematron could be used to validate most ARINC-424 business rules Five business rules from ARINC 424 Attachment 5 will be demonstrated in this presentation

Technical Approach Embedding all child data Use XSLT to embed child data into the parent data file Allow Schematron to access children data directly Do not need Schematron to find child data using xlink Using “Context” to specify rules for determining applicable data elements Using “Assert” and “Report” to describe rules Check existence of attributes, value of attributes, counts of attributes etc. Present customized text and variable values to describe errors Using XPath 3.0 for math calculation including trigonometry Use XPath variables to perform math calculations Evaluate XPath variables in “Assert” and/or “Report” for validation

ARINC 424 Business Rule Analysis ARINC 424.19 Attachment 5 contains business rules for terminal procedures Each business rule is analyzed to determine criteria for applicable condition Applicable condition categorized based on the coding technique for the criteria Each business rule is analyzed to determine the nature of validation Type of validation: Existence of attributes, Value of attributes, Logic state of attributes, Counts of attributes Involved elements/attributes: Can they be reached via sibling relationship? Sample business rules coded and verified

Organization of Schematron Rules More than one thousand rules will be needed for AIXM Need a way to organize them Schematron Standard organizes rules in following hierarchy: Directory Subdirectory Files Patterns Rules Assertion/Report Directory, Subdirectory, and Files allow organization of rules based on domain application and usage Attributes on Patterns, Rules, and Assertion/Report will allow us to add additional information for Reference to requirements Add additional natural language descriptions (such as Semantic Business Rule Vocabulary (SBVR))

Demonstration Five business rules from ARINC 424 Attachment 5 Demo 1: Validate Start/End Leg Type Demo 2: Leg Sequence Demo 3: Required Fields for a Leg Demo 4: Non-Precision Approach Procedure Demo 5: Entry and Exit an RF Leg in Tangent Rules for Demo 1-3 are in AIXM 5.1 Business Rules Use AIXM sample data from AIXM wiki Use Oxygen with Saxon-EE 9.4.0.6 Schematron Validator Definition of Leg Types can be found in ARINC 424.19 Attachment 5

Demo 1: Validate Start/End Leg Type ARINC 424.19 Attachment 5 Section 1.2

Demo 1: Validate Start/End Leg Type (Sample Schematron Code) <sch:rule context="aixm-5.1:flightTransition [aixm-5.1:ProcedureTransition/aixm-5.1:type eq 'APPROACH']"> <sch:assert test="./aixm-5.1:ProcedureTransition/aixm-5.1:transitionLeg[1]//aixm-5.1:legTypeARINC = ('FC', 'FD', 'HF', 'IF', 'PI') and ./aixm-5.1:ProcedureTransition/aixm-5.1:transitionLeg[last()]//aixm-5.1:legTypeARINC = ('AF', 'CF', 'CI', 'HF', 'HM', 'PI', 'RF', 'TF', 'VI')"> ARINC Specification 424, Attachment 5, Section 2.1, Beginning and Ending Leg Types: If the transition is an Approach Transition then the beginning leg must be one of FC, FD, HF, IF, PI and the end leg must be one of AF, CF, CI, HF, HM, PI, RF, TF, VI. </sch:assert> </sch:rule>

Demo 1: Validate Start/End Leg Type Test Data One Instrument Approach Procedure One Final Flight Transitions Final Legs: CF, CF Missed Approach legs: VA, VI, CF Three Approach Flight Transitions Approach Transition 1: CF, VI, CF Approach Transition 2: IF, VI, CF Approach Transition 3: IF, VI, CF Test Scenario Run Schematron validation and expect two errors CF Legs can not be the Start Leg of a transition Fix error (Change 1st legs from CF to IF) Re-run Schematron validation, no more errors

Demo 2: Leg Sequence ARINC 424.19 Attachment 5 Section 1.3

Demo 2: Leg Sequence Sample Schematron Code <sch:rule context="aixm-5.1:transitionLeg [.//aixm-5.1:legTypeARINC eq 'VI'][following-sibling::aixm-5.1:transitionLeg]"> <sch:assert test="following-sibling::aixm-5.1:transitionLeg[.//aixm-5.1:legTypeARINC = ('AF','CF','CF','FA','FC','FD','FM','IF')]">> If the current leg is VI then the next leg must be one of AF,CF,FA,FC,FD,FM,IF </sch:assert> </sch:rule>

Demo 2: Leg Sequence Test Data Test Scenario One Instrument Approach Procedure One Final Flight Transitions Final Legs: IF, CF Missed Approach legs: VA, VI, CF Three Approach Flight Transitions Approach Transition 1: IF, VI, CD Approach Transition 2: IF, VI, CF Approach Transition 3: IF, VI, CF Test Scenario Run Schematron validation and expect one errors VI can not be followed with CD Fix error (Change Leg CD to CF) Re-run Schematron validation, no more errors

Demo 3: Required Fields for a Leg ARINC 424.19 Attachment 5 Section 1.5

Demo 3: Required Fields for a Leg Sample Schematron code <sch:rule context="aixm-5.1:theSegmentLeg [.//aixm-5.1:legTypeARINC = ('CA', 'CD', 'CI', 'CR', 'VA', 'VD', 'VI', 'VR')]"> <sch:assert test="not(.//(aixm-5.1:startPoint,aixm-5.1:endPoint)//aixm-5.1:pointChoice_fixDesignatedPoint//aixm-5.1:designator)"> These legs: CA, CD, CI, CR, VA, VD, VI, VR must not have a Waypoint Identifier in either their start point or end point. </sch:assert> </sch:rule>

Demo 3: Required Fields for a Leg Test Data One Instrument Approach Procedure One Final Flight Transitions Final Legs: IF, CF Missed Approach legs: VA, VI (w WP ID), CF Three Approach Flight Transitions Approach Transition 1: IF, VI (no WP ID), CF Approach Transition 2: IF, VI (no WP ID), CF Approach Transition 3: IF, VI (no WP ID), CF Test Scenario Run Schematron validation and expect one errors VI Leg in Missed Approach has a WP ID Fix error (Remove WP ID) Re-run Schematron validation, no more errors

Demo 4: Non-Precision Approach Procedure ARINC 424.19 Attachment 5 Section 8.1.1: For approach procedures without an electronic glide slope, the Final Approach Fix will be that designated by government source. If no FAF is established in the government source, one will be computed according to Rule 6.2.5.3 of this attachment. The fix, whether published or established, must carry the Final Approach Fix Waypoint Description code of “F” in position four of that code field. Note that only one record in a coded approach procedure can carry the “F” in position four of the Waypoint Description. Altitudes for this fix are coded in accordance with Rule 6.2.10.1 of this attachment. Schematron Rules: For Instrument Approach Procedure and Final Flight Transition, there should be one and only one FAF point at final legs

Demo 4: Non-Precision Approach Procedure (Sample Schematron Code) <sch:rule context="aixm-5.1:InstrumentApproachProcedure [.//aixm-5.1:approachType = ('ASR','ARA','ARSR','LDA','LDA_DME‘, 'LOC‘,'LOC_BC','LOC_DME','LOC_DME_BC','NDB','NDB_DME','SDF','TLS','VOR','VOR_DME')]"> <sch:assert test="count(.//aixm-5.1:flightTransition[./aixm-5.1:ProcedureTransition/aixm-5.1:type eq 'FINAL']//(aixm-5.1:FinalLeg | aixm-5.1:IntermediateLeg | aixm-5.1:InitialLeg)//aixm-5.1:role[. eq 'FAF']) eq 1"> ARINC Specification 424, Attachment 5, Section 8.1.1: For approach procedures without an electronic glide slope, the Final Approach Fix ... must carry the Final Approach Fix Waypoint Description code of "F" in position four of that code field. Alternatively: For approach procedures without an electronic glide slope, the final transition must have a final leg with a final approach fix. These procedures do not have an electronic glide slope: ASR, ARA, ARSR, LDA, LDA_DME, LOC, LOC_BC, LOC_DME, LOC_DME_BC, NDB, NDB_DME, SDF, TLS, VOR, VOR_DME </sch:assert> </sch:rule>

Demo 4: Non-Precision Approach Procedure Test Data One Instrument Approach Procedure One Final Flight Transitions Final Legs: IF (No FAF), CF (No FAF) Three Missed Approach legs: VA, VI, CF Three Approach Flight Transitions Approach Transition 1: IF, VI, CF Approach Transition 2: IF, VI, CF Approach Transition 3: IF, VI, CF Test Scenario Run Schematron validation and expect one errors No FAF at both final legs Fix error (Change first CF leg from “no FAF” to “FAF”) Re-run Schematron validation, no more errors

Demo 5: Tangent to and from RF Leg ARINC 424.19 Attachment 5 Section 8.7.3: The track in the transition must be tangent to the arc Schematron Rules: For Instrument Approach Procedure, an RF leg is preceded with a TF leg and followed with another TF leg, then Preceding TF leg must be perpendicular with the line from the end point of the TF leg to center of the RF arc The line from End point of the RF leg to the center of the RF arc must be perpendicular to the following TF leg RF TF TF Arc Center

Demo 5: Tangent to and from RF Leg (Sample Schematron Code) <sch:pattern id="RF-leg" see="ARINC specification 424-18, ???"> <sch:rule context="aixm-5.1:InstrumentApproachProcedure//aixm-5.1:flightTransition//aixm-5.1:transitionLeg [.//aixm-5.1:legTypeARINC eq 'TF'][following-sibling::aixm-5.1:transitionLeg[1][.//aixm-5.1:legTypeARINC eq 'RF']][following-sibling::aixm-5.1:transitionLeg[2][.//aixm-5.1:legTypeARINC eq 'TF']]"> - - - - - - - - - - - - <sch:let name="Leg1-law-of-cosine-distance" value="math:acos((math:cos($Leg1-from-lat-radians) * math:cos($Leg1-to-lat-radians)*math:cos((-1*$Leg1-to-lon-radians) - (-1*$Leg1-from-lon-radians))) + (math:sin($Leg1-from-lat-radians)*math:sin($Leg1-to-lat-radians))) * $Earth-radius-NM" /> <sch:let name="Leg1-a" value="math:pow(math:sin($Leg1-dLat div 2),2 ) + math:cos($Leg1-from-lat-radians) * math:cos($Leg1-to-lat-radians) * math:pow(math:sin($Leg1-dLon div 2),2)" /> <sch:let name="Leg1-c" value="2 * math:atan2(math:sqrt($Leg1-a),math:sqrt(1 - $Leg1-a))" /> <sch:let name="Leg1-Haversine-distance" value="$Leg1-c * $Earth-radius-NM" /> <sch:let name="Leg1-Bearing-raw" value="(math:atan2(math:sin($Leg1-to-lon-radians - $Leg1-from-lon-radians) * math:cos($Leg1-to-lat-radians),(math:cos($Leg1-from-lat-radians) * math:sin($Leg1-to-lat-radians)) - (math:sin($Leg1-from-lat-radians) * math:cos($Leg1-to-lat-radians) * math:cos($Leg1-to-lon-radians - $Leg1-from-lon-radians))))" /> <sch:let name="Leg1-Bearing" value="($Leg1-Bearing-raw + (2 * math:pi())) mod (2*math:pi())" /> <sch:let name="Leg1-Bearing-degrees" value="$Leg1-Bearing * 180 div math:pi()" /> - - - - - - - - - - - - - <sch:assert test="($Difference1 gt (90-$delta) and $Difference1 lt (90+$delta)) or ($Difference1 gt (270 - $delta) and $Difference1 lt (270 + $delta)) or ($Difference1 gt (-90 - $delta) and $Difference1 lt (-90 + $delta)) or ($Difference1 gt (-270 - $delta) and $Difference1 lt (-270 + $delta))"> For an RF Leg, the previous leg must be tangent to the arc. </sch:assert> </sch:rule> Listed Code for illustration purpose, not complete

Demo 5: Tangent to and from RF Leg Test Data One Instrument Approach Procedure Approach Flight Transitions Leg 1: TF (34.606319, -118.430708) Leg 2: TF (34.543858, -118.751711) Leg 3: RF (34.356694, -118.8812920) Arc Center (34.399844, -118.51055) Leg 4: TF (34.165078, -118.810819) Test Scenario Run Schematron validation and expect one error Fix error (Change Arc Center from -118.51055 to -118.71055) Re-run Schematron validation, no more error

Conclusion Benefits of using Schematron for AIXM business rules It is precise It can be used to validate actual data (no software development) It is understandable by domain expert Can be enhanced with embedded SBVR or plain text rules

Recommendation Recommend to include as part of AIXM business rules Start with ARINC 424 Rules