博士論文
国立国会図書館館内限定公開
収録元データベースで確認する
国立国会図書館デジタルコレクション
デジタルデータあり
公開元のウェブサイトで確認する
DOI[10.24561/00017919]のデータに遷移します
A Software Engineering Environment for Ada 2012 Programs
- 国立国会図書館永続的識別子
- info:ndljp/pid/11063627
国立国会図書館での利用に関する注記
本資料は、掲載誌(URI)等のリンク先にある学位授与機関のWebサイトやCiNii Dissertationsから、本文を自由に閲覧できる場合があります。
資料に関する注記
一般注記:
- type:textProgramming language Ada is the only ISO standard, object-oriented, concurrent, real-time programming language. It is intended for use in lar...
書店で探す
障害者向け資料で読む
全国の図書館の所蔵
国立国会図書館以外の全国の図書館の所蔵状況を表示します。
所蔵のある図書館から取寄せることが可能かなど、資料の利用方法は、ご自身が利用されるお近くの図書館へご相談ください
書店で探す
障害者向け資料で読む
書誌情報
この資料の詳細や典拠(同じ主題の資料を指すキーワード、著者名)等を確認できます。
デジタル
- 資料種別
- 博士論文
- 著者・編者
- 王, 博
- 著者標目
- 出版事項
- 出版年月日等
- 2017
- 出版年(W3CDTF)
- 2017
- 並列タイトル等
- Ada 2012 プログラムのためのソフトウェアエンジニアリング環境
- タイトル(掲載誌)
- 博士論文(埼玉大学大学院理工学研究科(博士後期課程))
- 授与機関名
- 埼玉大学
- 授与年月日
- 2017-03-22
- 授与年月日(W3CDTF)
- 2017-03-22
- 報告番号
- 甲第1059号
- 学位
- 博士(工学)
- 博論授与番号
- 甲第1059号
- 本文の言語コード
- eng
- 対象利用者
- 一般
- 一般注記
- type:textProgramming language Ada is the only ISO standard, object-oriented, concurrent, real-time programming language. It is intended for use in large, long-lived applications where reliability and efficiency are essential and they are almost concurrent systems. Ada has gone through Ada 83, Ada 95, Ada 2005, and the last version of Ada, known as Ada 2012, is the world's premier programming language for engineering safe, secure and reliable software. Ada 2012 has a giant changes and extensions from Ada 2005, which can support many new features, such as contract-based programming, increased expressiveness, multicore support, container enhancements.In general, Ada is always used to manipulate safety-critical systems, such as commercial and military aircraft avionics, air traffic control systems, railroad systems, medical devices, and so on. The systems are almost concurrent systems and they are vital to personal life safety, such that they are allowed any malfunction, otherwise personal life and assets might suffer catastrophic consequences. However, it is quite difficult to design, understand, test, debug, and maintain concurrent programs, the reason is that multiple control flow and data flow can exist simultaneously in concurrent systems, and execution or evaluation of statements are unpredictable and non-deterministic.For solving the difficulties, only one tool cannot resolve all of difficulties, but rather we should have a set of software tools. Usually, in the set of software tools, they are not independent on each other. An engineering environment could integrate them together. Software Engineering Environment (SEE) is an engineering environment that integrates various tools and provides comprehensive facilities to designing, understanding, testing, debugging and maintaining software systems.So far, some software engineering tools were developed for Ada programs, however, because Ada 2012 has large changes and extensions, they hardly support for software engineering activities of Ada 2012. Therefore, the development of supporting tools that can deal with Ada 2012 is an urgent study. In order to support software development activities using Ada 2012, we proposed a software engineering environment for Ada 2012 programs. For development of SEE for Ada 2012 programs, we analyzed requirements for developing SEE of Ada 2012. Based on requirements, we designed an SEE for Ada 2012 programs. And then we confirmed core components of the SEE for Ada 2012 programs. Finally, we proposed methods to develop core components and gave implementations of them.This work has following contributions. We proposed a software engineer environment for Ada 2012 programs and implemented its core components. We designed and implemented a denition-use net generator for Ada 2012 programs, which can automatically generate DUNs of target Ada 2012 programs. And then we designed and implemented a system dependence net generator for Ada 2012 programs, which can automatically generate SDNs of the target Ada 2012 programs including new types of program dependences and one interprocedural relation that we found and formally defined. We also designed and developed a run-time tasking deadlock detector for Ada 2012 programs, which can detect tasking deadlocks raised by all types of synchronization waiting relations in Ada 2012 programs, and we found some types of queue operation related tasking deadlocks in Ada 2012 programs. We also showed how to utilize Contract-based Programming (CBP) with Ada 2012 to solve challenges of future advanced software engineering. We proposed methods and solutions from five areas, such as security, continuity, reactive-ability, predictability, and anticipatable-ability. By CBP, we gave algorithms to develop an SSB-based system as a persistent computing system and an ARRS as an anticipatory system.Structure of this thesis is as follows. Chapter 1 presents background, motivation, and purpose of this research. Chapter 2 presents a software engineering environment for Ada 2012 programs and gives the core components of software engineering environment. Chapter 3 presents definition-use nets of Ada 2012 programs. Chapter 4 presents a definition-use net generator for Ada 2012 programs. Chapter 5 elaborates system dependence nets of Ada 2012 programs. Chapter 6 shows the implementation of system dependence nets generator for Ada 2012 programs. Chapter 7 presents a tasking deadlock detector for Ada 2012 programs. Chapter 8 discusses contract-based programming for future computing with Ada 2012. Finally, concluding remarks is given in Chapter 9.Abstract iAcknowledgments iiiList of figures viiiList of tables ix1 Introduction 11.1 Background and Motivation . . . . . . . . . . . . . . . . . . . . . . 11.2 Purposes and Objectives . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Structure of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . 22 A Software Engineering Environment for Ada 2012 Programs 32.1 An Overview of the Software Engineering Environment . . . . . . . 32.2 Requirement Analyses for SEE of Ada 2012 Programs . . . . . . . . 42.3 Designing an SEE for Ada 2012 Programs . . . . . . . . . . . . . . 52.4 Confirming the Core Components of SEE of Ada 2012 . . . . . . . . 63 Definition-Use Nets of Ada 2012 Programs 73.1 Previous Researches . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Definition-Use Nets of Ada 2012 Programs . . . . . . . . . . . . . . 93.2.1 Vertices of DUNs of Ada 2012 Programs . . . . . . . . . . . 93.2.2 Types of Vertices of DUNs of Ada 2012 Programs . . . . . . 93.2.3 Types of Labels of Vertices of DUNs of Ada 2012 Programs 133.2.4 Arcs of DUNs of Ada 2012 Programs . . . . . . . . . . . . . 153.2.5 Types of Arcs of DUNs of Ada 2012 Programs . . . . . . . . 153.2.6 New Concurrent Facilities of DUNs of Ada 2012 Programs . 204 A Definition-Use Net Generator for Ada 2012 Programs 254.1 Generation Method of DUNs of Ada 2012 Programs . . . . . . . . . 254.1.1 Requirement Analyses of DUNs of Ada 2012 Programs . . . 254.1.2 Generation Algorithms of DUNs of Ada 2012 Programs . . . 264.2 Implementation of a DUN Generator for Ada 2012 Programs . . . . 274.3 Examples of a DUN Generator for Ada 2012 Programs . . . . . . . 294.4 Applications of the DUN Generator . . . . . . . . . . . . . . . . . . 325 System Dependence Nets of Ada 2012 Programs 345.1 Previous Researches . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 Program Dependences and Interprocedural Relations . . . . . . . . 345.2.1 Program Dependences . . . . . . . . . . . . . . . . . . . . . 345.2.2 Interprocedural Relations . . . . . . . . . . . . . . . . . . . 375.2.3 New Types of Program Dependences in Ada 2012 Programs 375.3 System Dependence Nets of Ada 2012 Programs . . . . . . . . . . . 396 A System Dependence Net Generator for Ada 2012 Programs 426.1 Generation Method of SDNs for Ada 2012 Programs . . . . . . . . 426.2 Examples of an SDN Generator for Ada 2012 Programs . . . . . . . 426.3 Applications of the SDN . . . . . . . . . . . . . . . . . . . . . . . . 466.3.1 Slicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3.2 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466.3.3 Understanding and Maintenance . . . . . . . . . . . . . . . . 466.3.4 Complexity Measurement . . . . . . . . . . . . . . . . . . . 477 A Tasking Deadlock Detector for Ada 2012 Programs 487.1 Tasking Deadlock Issues . . . . . . . . . . . . . . . . . . . . . . . . 487.2 Previous Researches . . . . . . . . . . . . . . . . . . . . . . . . . . 487.3 Queue Operation Related Tasking Deadlocks in Ada 2012 Programs 507.3.1 Queue Operations . . . . . . . . . . . . . . . . . . . . . . . . 517.3.2 Examples of Queue Operation Related Tasking Deadlocks in Ada 2012 Programs . . . . . . . . . . . . . . . . . . . . . . . 527.4 Principle of Detecting Tasking Deadlocks . . . . . . . . . . . . . . . 677.5 Run-Time Detection of Tasking Deadlocks in Ada 2012 Programs . 688 Contract-Based Programming for Future Computing with Ada 2012 718.1 An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.2 Future Advanced Software Engineering and Its Challenges . . . . . 728.3 Contract-Based Programming with Ada 2012 . . . . . . . . . . . . . 748.4 Contract-Based Programming for Future Advanced Software Engineering with Ada 2012 . . . . . . . . . . . . . . . . . . . . . . . . . 748.4.1 An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 748.4.2 Methods of Developing Persistent Computing Systems with Contract-Based Programming . . . . . . . . . . . . . . . . . 758.4.3 Methods of Developing Anticipatory Reasoning Reacting Systems with Contract-Based Programming . . . . 768.4.4 Disscussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 Conclusions 819.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819.2 Future Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Publications 83References 85Appendixes Source Programs 89A A Definition-Use Net Generator for Ada 2012 Programs 90A.1 Definition-Use Net Generator . . . . . . . . . . . . . . . . . . . . . 90A.1.1 Actuals_For_Traversing Package . . . . . . . . . . . . . . . . 90A.1.2 Actuals_For_Traversing-Pre_Op Package . . . . . . . . . . . . 96A.1.3 Actuals_For_Traversing-Post_Op Package . . . . . . . . . . . 116A.1.4 Ada2DUN Package . . . . . . . . . . . . . . . . . . . . . . . 126A.1.5 Asis_Application_Driver_1 Package . . . . . . . . . . . . . . . 156A.1.6 Context_Processing Package . . . . . . . . . . . . . . . . . . 158A.1.7 Dun_Handler Package . . . . . . . . . . . . . . . . . . . . . . 161A.1.8 Element_Processing Package . . . . . . . . . . . . . . . . . . 189A.1.9 Gela_Ids Package . . . . . . . . . . . . . . . . . . . . . . . . 190A.1.10 Id_List Package . . . . . . . . . . . . . . . . . . . . . . . . . 194A.1.11 Metrics_Utilities Package . . . . . . . . . . . . . . . . . . . . 195A.1.12 Stacks Package . . . . . . . . . . . . . . . . . . . . . . . . . 197A.1.13 Unit_Processing Package . . . . . . . . . . . . . . . . . . . . 197A.1.14 V_Strings Package . . . . . . . . . . . . . . . . . . . . . . . 199B A System Dependence Net Generator for Ada 2012 Programs 201B.1 System Dependence Net Generator . . . . . . . . . . . . . . . . . . 201B.1.1 DUN2SDN Package . . . . . . . . . . . . . . . . . . . . . . . 201B.1.2 Control Package . . . . . . . . . . . . . . . . . . . . . . . . . 205B.1.3 Data Package . . . . . . . . . . . . . . . . . . . . . . . . . . 208B.1.4 Sync Package . . . . . . . . . . . . . . . . . . . . . . . . . . 209B.1.5 Select Package . . . . . . . . . . . . . . . . . . . . . . . . . . 210B.1.6 Comm Package . . . . . . . . . . . . . . . . . . . . . . . . . 211B.1.7 Call Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 213B.1.8 Expandnode Package . . . . . . . . . . . . . . . . . . . . . . 215B.1.9 Prepost Package . . . . . . . . . . . . . . . . . . . . . . . . 218C A Tasking Deadlock Detector for Ada 2012 Programs 219C.1 Source Transformation Tool . . . . . . . . . . . . . . . . . . . . . . 219C.1.1 Asis_Utils Package . . . . . . . . . . . . . . . . . . . . . . . 219C.1.2 Call_Analyzer Package . . . . . . . . . . . . . . . . . . . . . 222C.1.3 Comp_Measure Package . . . . . . . . . . . . . . . . . . . . 227C.1.4 Designations Package . . . . . . . . . . . . . . . . . . . . . . 229C.1.5 Function_Analyzer Package . . . . . . . . . . . . . . . . . . . 229C.1.6 Gela_Ids Package . . . . . . . . . . . . . . . . . . . . . . . . 234C.1.7 Global_Info Package . . . . . . . . . . . . . . . . . . . . . . 238C.1.8 Global_Types Package . . . . . . . . . . . . . . . . . . . . . 239C.1.9 ID_List Package . . . . . . . . . . . . . . . . . . . . . . . . . 240C.1.10 List Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 241C.1.11 Measure_Types Package . . . . . . . . . . . . . . . . . . . . 242C.1.12 Measurement_Analyzer Package . . . . . . . . . . . . . . . . 243C.1.13 Mh_Spec Package . . . . . . . . . . . . . . . . . . . . . . . . 250C.1.14 Name_Handler Package . . . . . . . . . . . . . . . . . . . . . 250C.1.15 Pid Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 252C.1.16 Source_Trav Package . . . . . . . . . . . . . . . . . . . . . . 253C.1.17 Spec Package . . . . . . . . . . . . . . . . . . . . . . . . . . 298C.1.18 Spec_Reader Package . . . . . . . . . . . . . . . . . . . . . . 300C.1.19 Stacks Package . . . . . . . . . . . . . . . . . . . . . . . . . 315C.1.20 String_Handler Package . . . . . . . . . . . . . . . . . . . . . 317C.1.21 Task_Indexed_List Package . . . . . . . . . . . . . . . . . . . 317C.1.22 V_Strings Package . . . . . . . . . . . . . . . . . . . . . . . 318C.1.23 Variable_Analyzer Package . . . . . . . . . . . . . . . . . . . 320C.2 Run-Time Detection Tool . . . . . . . . . . . . . . . . . . . . . . . 325C.2.1 Dd_Spec Package . . . . . . . . . . . . . . . . . . . . . . . . 325C.2.2 Event_Driven_Execution_Monitor3 Package . . . . . . . . . . 327C.2.3 Global_Types Package . . . . . . . . . . . . . . . . . . . . . 328C.2.4 Pid Package . . . . . . . . . . . . . . . . . . . . . . . . . . . 333C.2.5 Task_Indexed_List Package . . . . . . . . . . . . . . . . . . . 333C.2.6 Task_Information_Collector Package . . . . . . . . . . . . . . 334C.2.7 Task_Wait_For_Graph_Manager Package . . . . . . . . . . . 339C.2.8 V_Strings Package . . . . . . . . . . . . . . . . . . . . . . . 369指導教員 : 程京德
- DOI
- 10.24561/00017919
- 国立国会図書館永続的識別子
- info:ndljp/pid/11063627
- コレクション(共通)
- コレクション(障害者向け資料:レベル1)
- コレクション(個別)
- 国立国会図書館デジタルコレクション > デジタル化資料 > 博士論文
- 収集根拠
- 博士論文(自動収集)
- 受理日(W3CDTF)
- 2018-04-03T03:53:09+09:00
- 作成日(W3CDTF)
- 2018-01-15
- 記録形式(IMT)
- application/pdf
- オンライン閲覧公開範囲
- 国立国会図書館内限定公開
- デジタル化資料送信
- 図書館・個人送信対象外
- 遠隔複写可否(NDL)
- 可
- 連携機関・データベース
- 国立国会図書館 : 国立国会図書館デジタルコレクション