簡易檢索 / 詳目顯示

研究生: 潘珈逸
Chia-Yi Pan
論文名稱: 一個PROMELA語法分析器並且運用資料流分析以產生簡潔的狀態圖
An Extended PROMELA Parser Which Generates Compact CCS State Graphs Using Data Flow Analysis for Refactoring Automation
指導教授: 鄭永斌
Cheng, Yung-Pin
學位類別: 碩士
Master
系所名稱: 資訊教育研究所
Graduate Institute of Information and Computer Education
論文出版年: 2003
畢業學年度: 91
語文別: 英文
論文頁數: 94
中文關鍵詞: 組態爆炸局部性分析資料流分析自動驗證分析
英文關鍵詞: state explosion, compositional analysis, data flow analysis, automatic verification
論文種類: 學術論文
相關次數: 點閱:397下載:2
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 近幾年來,自動驗證分析(automated finite-state verification)已逐漸發展成熟,但是組態爆炸(state-space explosion)的問題仍然是自動驗證分析的致命傷。許多人對於組態爆炸提出解決之道。但是由於受限於理論上的侷限,每個方法的有效與否都具有特殊性。迄今沒有一種方法使得減緩組態爆炸的成效,能夠廣泛被業界所接受。而眾多減緩組態爆炸的方法中,運用局部性分析(compositional analysis)是被公認為較具有潛力的。
    局部性分析的方法就是將原有的系統分割成許多小系統,使之成階層式的架構進行分析。但是局部性分析依賴一個系統的模組性是否良好,很不幸的,大部分複雜系統並不具備這樣的模組性。因此,針對這個問題,我們提出Refactoring的方法:透過一些等價的轉換來打破系統舊有的模組性,以創造出新的系統架構,這樣新的系統架構能夠讓局部性分析發揮divide and conquer的效益。
    在本研究中,我們修改SPIN的設計語言--PROMELA,除了實作PROMELA之外,並且加入了Refactoring的語法以自動化Refactoring。這個新的語法叫做rc-Promela。我們建立了rc-Promela的語法分析器, 將輸入轉換成AST樹(abstract syntax tree)。最後運用資料流分析(Data Flow Analysis)分析PROMELA程式碼,以降低展開狀態圖之狀態空間,減少組態爆炸發生的可能性。

    Automated finite-state verification techniques have matured considerably in the past decades, but state-space explosion remains an obstacle to their use. Theoretical lower bounds on complexity imply that all of the techniques that have been developed to avoid or mitigate state-space explosion depend on models that are “well-formed” in some way, and will usually fail for other models. This further implies that, when analysis is applied to models derived from designs or implementations of actual software systems, a model of the system “as built” is unlikely to be suitable for automated analysis. In particular, compositional hierarchical analysis (where state-space explosion is avoided by simplifying models of subsystems at several levels of abstraction) depends on the modular structure of the model to be analyzed. We describe how as-built finite-state models can be refactored for compositional state-space analysis, applying a series of transformations to produce an equivalent model whose structure exhibits suitable modularity.
    In this thesis, we adopt Promela the as front-end language to automate refactoring. We select a subset of Promela and add some keywords for refactoring. The extended syntax is called rc-Promela, where “r” stands for “refactor” and “c” stands for “ccs.” We build a parser for rc-Promela, and use the parser to construct AST for rc-Promela model. Finally, we apply data flow analysis on AST to generate compact CCS state graphs for refactoring.

    Table of Contents Page List of Figures v Chapter 1 Introduction 1-1 1.1.Introduction 1-1 1.2.Objective 1-2 1.3.Thesis organization 1-4 Chapter 2 Background 2-1 2.1.Formal verification 2-1 2.2.Model checking 2-2 2.3.Related software verification tools 2-2 2.4.Communication finite state machine(CFSM) 2-4 2.5.Compositional analysis 2-6 2.6.Promela 2-7 2.7.Background of data flow analysis 2-9 Chapter 3 An Overview of Refactoring 3-1 3.1.Refactoring overview 3-1 3.2.A simple example of unified decomposition transformation 3-4 Chapter 4 Building rc-Promela Parser 4-1 4.1.The architecture of rc-Promela parser 4-1 4.2.rc-Promela grammar 4-2 4.3.Parser—parsing grammar 4-3 4.4.Building abstract syntax trees 4-4 Chapter 5 Adding Refactoring Statements into rc-Promela 5-1 5.1.The semantics and grammar of Refactorby 5-1 5.2.Restriction of refactorby statement 5-6 5.3.Adding enumeration in rc-Promela 5-7 Chapter 6 Using Data Flow Analysis to Generate Compact CCS State Graphs 6-1 6.1.Using state variables to generate compact CCS state graphs 6-1 6.2.Generating data flow graph 6-5 6.3.Data flow analysis equations 6-8 Chapter 7 Examples 7-1 7.1Simple examples 7-1 7.2Chiron user interface system 7-6 7.3The elevator system 7-8 Chapter 8 Summary and Future Work 8-1 8.1Results 8-1 8.2Future work 8-2 Appendix A Grammar of rc-Promela A-1 Appendix B Chiron example written in rc-Promela B-1 Appendix C Elevator example written in rc-Promela C-1 Reference

    References
    [1]. Robin Milner, A Calculus of Communicating Systems, LNCS, vol.92, 1980.
    [2]. S. C. Cheung and J. Kramer. Context constraints for compositional reachability analysis. ACM Transactions on Software Engineering and Methodology, 5(4):334-377, October 1996.
    [3]. Y. Cheng. Refactoring design models for inductive verification. In Proceedings of International Symposium on Software Testing and Analysis(ISSTA2002), pages 164-168, Rome, Italy, July 2002.
    [4]. Yung-Pin Cheng and Michal Young, Semi-Automated Refactoring of Design Models for Compositional Analysis. Working Conference on Complex and Dynamic Systems Architecture, pp. 137-139 Brisbane, Australia, December, 2001.
    [5]. S. Graf and B. Steffen. Compositional minimization of finite state systems. In Proceedings of the 2nd International Conference of Computer-Aided Verification, pages 186-204, 1990
    [6]. W. J. Yeh and M. Young. Compositional reachability analysis using process algebra. In Proceedings of the Symposium on Software Testing, Analysis, and Verification (TAV4), pages 49-59, Victoria, British Columbia, October 1991. ACM SIGSOFT, ACM Press.
    [7]. R. M. Burstall and J. Darlington. A transformation system for developing recursive programs. JACM, 24(1):44-67, 1977.
    [8]. A. Pettorossi and M. Proietti. Transformation of logic programs: Foundation and technique. Journal of Logic Programming, 1994.
    [9]. C. L. Huang. Generating State Graph from Abstract Syntax Tree for Unified Refactoring Transformation to Avoid State Explosion Compositionally, Master Thesis. Dept. of Info. And Comp. Edu. NTNU, 2003.
    [10]. Gerard J. Holzmann. The Model Checker SPIN. IEEE Trans. Softw. Eng., 23(5):279-295, May 1997
    [11]. R. K. Keller, M. Cameron, R. N. Taylor, and D. B. Troup. User interface development and software environments: The Chiron-1 system. In Proceedings of the Thirteenth International Conference on Software Engineering, pages 208–218, Austin, TX, May 1991.
    [12]. M.Y. Vardi, and Wolper, P, An automata-theoretic approach to automatic program verification, in Proc. of the 1st Symposium on Logic in Computer Science, Cambridge, June 1986, pp. 322-331, 1986.
    [13]. A. Pnueli, A Temporal Logic of Concurrent Programs, Theoretical Computer Science, vol. 13, pp. 45-60, 1981.
    [14]. P. Wolper, An Introduction to Model Checking, in Proc. of the Software Quality Week (SQW'95), San Francisco, May, 1995.
    [15]. K.L. McMillan, Symbolic Model Checking: Kluwer Academic Publishers, 1993.
    [16]. G. J. Holzmann, Design and Validation of Computer Protocols: Prentice Hall,1991
    [17]. G. J. Holzmann, The Model Checker SPIN, IEEE Transactions on Software Engineering,vol. 23(5), pp. 279-295, May 1997.
    [18]. G. J. Holzmann, and Peled, D, The State of SPIN, in Proc. of the 8th International Conference on Computer-Aided Verification (CAV'96), New Brunswick, NJ, USA, July/August 1996. Lecture Notes in Computer Science 1102, pp. 385-389. R. Alur and T. A. Henzinger, Eds.
    [19]. M. Young, R. Taylor, D. Levine, K. A. Nies, and D. Brodbeck. A concurrency analysis tool suite for Ada programs: Rationale, design, and preliminary experience. ACM Transactions on Software Engineering and Methodology, 4(1):65–106, Jan 1995.
    [20]. G. S. Avrunin, J. C. Corbett, M. B. Dwyer, C. S. Pasareanu, and S. F. Siegel. Comparing finite-state verification techniques for concurrent software. Technical Report UM-CS-1999-069, Dept. of CS, University of Massachusetts, November 1999. (in preparation).
    [21]. D. J. Richardson, S. L. Aha, and T. O. O’Malley. Specification-based test oracles for reactive systems. In Proceedings of the Fourteenth International Conference on Software Engineering, pages 105–118, Melbourne, Australia, May 1992.
    [22]. J. C. Corbett. Evaluating deadlock detection methods for concurrent software. IEEE Transactions on Software Engineering, 2(3):161–180, March 1996.
    [23]. G. J. Holzmann. Designing executable abstractions. In Proceedings of the second workshop on formal methods in software practice, pages 103–108, Clearwater Beach, Florida USA, March 1998.
    [24]. C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall International, 1985

    QR CODE