Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Falcon (programming language) wikipedia , lookup
Java (programming language) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Go (programming language) wikipedia , lookup
Relational model wikipedia , lookup
Software quality wikipedia , lookup
Operational transformation wikipedia , lookup
Software bug wikipedia , lookup
Java performance wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
LinguSQL – Fasilkom UI LinguSQL Development Tool for Reliable Database Application RUTI-AgI Team Fasilkom UI August 2005 1 LinguSQL – Fasilkom UI Ruti-AgI Research – Title AGi Research: Developing Technology for Specifying and Generating Critical Data Processing Programs – Sponsored by: Menristek NKRI – RUTI Batch II grant 2003-2005 – Collaborate with: Software Technology Group, Utrecht University, The Netherlands 2 LinguSQL – Fasilkom UI Ruti-AgI Fasilkom UI Team ● Research Team – ● Programmer Team (Jan-June 2005) Heru Suhartanto (Principle Investigator) – Rikky Wenang – L.Y. Stefanus – Sirajuddin Maizir – Belawati Wijaya – Budiono Wibowo – Siti Aminah – Ade Azurat – Jimmy ● Programmer Team (July-Dec 2005) – Carroline D. Puspa – Theresia Budiyanti – Slamet 3 LinguSQL – Fasilkom UI Ruti-AgI Long Term Target ● ● ● Develop Indonesia's competitive strength on software development, especially on the key factors: robustness and correctness, of the software product by applying the latest technology innovation to solve the current problems. 4 LinguSQL – Fasilkom UI Activities and Achievements ● xMech - AGMech prototype (open source). ● µPL2Java (Copyright registered). ● Compositional implementation of programming Logic. ● Critical module analysis of SET application (SPMB) ● Lingu Library for HOL Theorem Prover (LinguHOL) ● Specification of 7 critical modules of SET ● Verification of 7 critical modules of SET in LinguHOL. ● Lingu - Java transformer ● Formalization of SET Problem in Atelier-B (comparative study) 5 LinguSQL – Fasilkom UI Publication 1. A. Azurat, et al. Towards Automated Verification of Database Scripts. TPHOLS, UK 2005. 2. B. Wibowo, R. Wenang, & S. Maizir. LinguSQL: A Verification and Transformation Tool for Lingu. SNIKTI, 2005. 3. J. Bong, & H. Suhartanto. Penerjemah MuPL2Java: Transformasi Bahasa Spesifikasi ke Bahasa Pemrograman. SNIKTI, 2005. 4. H. Suhartanto, et al. Technology for Specifiying and Generating Critical Data Processing Programs. QIR, 2005. 5. R. Wenang, et al. LinguSQL: A Verification and Transformation Tool for Database Application. 6. I.S.W.B. Prasetya, et al. Building Verification Condition Generators by Compositional Extensions. IEEE-SEFM, German, 2005. 7. I.S.W.B. Prasetya, A. Azurat, T.E.J. Vos, A. van Leeuwen, H. Suhartanto, Theorem Prover Supported Logics for Small Imperative Languages, Institute of Information and Computing Sciences, Utrecht University, 2005. 8. J. Bong & H. Suhartanto, Penerapan Attribute Grammar dalam Penerjemahan Bahasa Spesifikasi Lingu ke Bahasa Pemrograman Java, KNSI 2006 Bandung. 9. J. Bong, Pengembangan Penerjemah Lingu ke Java dengan Attribute Grammar, Master Thesis, Faculty of Computer Science UI 2006. 10. S. Aminah, Penerapan Formal Method pada study kasus SPMB dengan Atelier-B, Master Thesis, Faculty of Computer Science UI 2006. 11. T. Budiyanti, Pengembangan Software dengan Refinement Menggunakan Metode B, KNSI Bandung 2006 12. C. D. Puspa, Implementasi Prototype Lingu (Little Language) pada Studi Kasus SPMB, KNSI Bandung 2006 6 LinguSQL – Fasilkom UI Problem Statement ● ● Critical software requires intensive formal testing and verification, – difficult – expensive Legacy code – dynamic technology – static functional specification – re-usability vs re-engineering 7 LinguSQL – Fasilkom UI State of the Art ● Reliable software – open problem – complexity, undecidability ● state explosion problem domain specific solution ● Program Transformation – on demand, specific – costly academic tool ● hardware verification Required highly qualified expertises: ➔ ● – ● ● Stratego, Utrecht Netherlands no integration with reliable software development ● – NASA Intel 8 LinguSQL – Fasilkom UI What is Lingu? ● A Lightweight language to program data transformation on database integrated with verification and formal testing . ● Domain Specific Language ● High level Language. ● No optimization features (e.g. No Arrays nor pointer). ● Small. Limited constructs (e.g. no String[n] nor sort by modifier) 9 LinguSQL – Fasilkom UI What is LinguSQL? LinguSQL: IDE (Integrated Development Environment) for reliable database application. 10 LinguSQL – Fasilkom UI Why Research ? ● open problem – ● some technical issues are debatable subjects experimental tool – additional analysis for the open problem. 11 LinguSQL – Fasilkom UI Related work ● Comparison study with B (Atelier-B) – B is a method, theory & language, developed by Abrial – It is supported by commercial tools (Atelier B & B-ToolKit) – It is used by many industries (MATRA, IBM, Siemens) – Software development with B starts from creating abstract models, then refine them into concrete models – Refinement is central of B method – All of the B components are written using Abstract Machine Notation (AMN) 12 LinguSQL – Fasilkom UI SET implementation in B ● ● ● B is general formal method, not specially dedicated for data processing problem B method lacks the abstraction mechanisms supported by the database conceptual languages Problems in the SET implementation: – ● What is a proper abstraction for database structure like records? Solution – Record is modeled as constant mapping 13 LinguSQL – Fasilkom UI SET implementation in B (cont.) ● ● ● ● Records of data is modeled as set Field of record is modeled as function from set of records to other set which become field type. With this approach, abstract machines are directly refined to implementation machines using some library machines This approach can be adopted by other data processing problems 14 LinguSQL – Fasilkom UI Comparison Result ● Atelier B – Take some time to understand the concept and the tool – Difficult to prove – Too much detail – Low level verification 15 LinguSQL – Fasilkom UI Comparison Result (summary) 16 LinguSQL – Fasilkom UI LinguSQL: The Innovation ● ● The use of Lingu language and program transformation technology based on Attribute Grammar The application of higher order logic on program verification especially on database application. 17 LinguSQL – Fasilkom UI LinguSQL: Features ● ● ● Code Transformation from Lingu to Java Formal program verification with theorem prover (HOL) support for database application Integrated testing with sample data generator. Tester should only list the scenario to be tested. 18 LinguSQL – Fasilkom UI Translator Lingu to Java ● Background – Legacy code ● ● – Programming language emerge quickly. The availability of old language programmer is low. Re-engineering in new programming language has high risk of error. Alternative Solution ● Translate the program directly by automatic tool. 19 LinguSQL – Fasilkom UI Progress ● ● MuPL2Java – Translate MuPL (Lingu's early version) in to Java – Development of automatic tool using JavaCUP Tranlator Lingu to Java – Part of LinguSQL – Development of automatic tool using JavaCC 20 LinguSQL – Fasilkom UI Translator Lingu to Java ● Result – Lingu Program is represented as data structure in UUAG. – Using combinatoric tecnology of Parser and scanner in Haskell – Semantic translation using pretty printing library in UUAG – Has been used in SET case study. 21 LinguSQL – Fasilkom UI LinguSQL: The Advantages ● one source code written in high level language for several executable code. ● Testing Scenario ● integrated Theorem prover interface ● integrated testing with generated sample data 22 LinguSQL – Fasilkom UI LinguSQL for APICTAN ● ● ● Improve the quality of APICTAN's software product Eliminate future legacy code problem and efficient investment of software Technological leap as one of the key success factors to compete in the global market of software and information technology 23 LinguSQL – Fasilkom UI Status ● Prototype – used only on specific domain problem. ● Copy right registered ● ● Seven (7) Critical modules on SET application has been verified and generated (Java code). Some expected features are not completed yet, especially on domain specific data sample generator 24 LinguSQL – Fasilkom UI LinguSQL Alpha 0.1 25 LinguSQL – Fasilkom UI Run Test Scenario 26 LinguSQL – Fasilkom UI Verification- Proof check 27 LinguSQL – Fasilkom UI Transform Lingu to Java 28 LinguSQL – Fasilkom UI Future Work ● ● next 6 months – additional proof-library – better user interface ● next 12 months – – – complete support on database test generator more examples on database application some technical reports ● next 18 months (beta version) – support for more general application – comprehensive reference manual next 24 months (commercial product) – transformation to other languages (C++, Ada) – more examples 29