博士論文
Available in National Diet Library
Find on the publisher's website
国立国会図書館デジタルコレクション
Digital data available
Check on the publisher's website
DOI[10.24561/00017919]to the data of the same series
A Software Engineering Environment for Ada 2012 Programs
- Persistent ID (NDL)
- info:ndljp/pid/11063627
- Material type
- 博士論文
- Author
- 王, 博
- Publisher
- 埼玉大学大学院理工学研究科
- Publication date
- 2017
- Material Format
- Digital
- Capacity, size, etc.
- -
- Name of awarding university/degree
- 埼玉大学,博士(工学)
Notes on use at the National Diet Library
本資料は、掲載誌(URI)等のリンク先にある学位授与機関のWebサイトやCiNii Dissertationsから、本文を自由に閲覧できる場合があります。
Notes on use
Note (General):
- type:textProgramming language Ada is the only ISO standard, object-oriented, concurrent, real-time programming language. It is intended for use in lar...
Search by Bookstore
Read this material in an accessible format.
Holdings of Libraries in Japan
This page shows libraries in Japan other than the National Diet Library that hold the material.
Please contact your local library for information on how to use materials or whether it is possible to request materials from the holding libraries.
Search by Bookstore
Read in Disability Resources
Bibliographic Record
You can check the details of this material, its authority (keywords that refer to materials on the same subject, author's name, etc.), etc.
Digital
- Material Type
- 博士論文
- Author/Editor
- 王, 博
- Author Heading
- Publication, Distribution, etc.
- Publication Date
- 2017
- Publication Date (W3CDTF)
- 2017
- Alternative Title
- Ada 2012 プログラムのためのソフトウェアエンジニアリング環境
- Periodical title
- 博士論文(埼玉大学大学院理工学研究科(博士後期課程))
- Degree grantor/type
- 埼玉大学
- Date Granted
- 2017-03-22
- Date Granted (W3CDTF)
- 2017-03-22
- Dissertation Number
- 甲第1059号
- Degree Type
- 博士(工学)
- Conferring No. (Dissertation)
- 甲第1059号
- Text Language Code
- eng
- Target Audience
- 一般
- Note (General)
- 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
- Persistent ID (NDL)
- info:ndljp/pid/11063627
- Collection
- Collection (Materials For Handicapped People:1)
- Collection (particular)
- 国立国会図書館デジタルコレクション > デジタル化資料 > 博士論文
- Acquisition Basis
- 博士論文(自動収集)
- Date Accepted (W3CDTF)
- 2018-04-03T03:53:09+09:00
- Date Created (W3CDTF)
- 2018-01-15
- Format (IMT)
- application/pdf
- Access Restrictions
- 国立国会図書館内限定公開
- Service for the Digitized Contents Transmission Service
- 図書館・個人送信対象外
- Availability of remote photoduplication service
- 可
- Periodical Title (URI)
- Data Provider (Database)
- 国立国会図書館 : 国立国会図書館デジタルコレクション