home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr4 / proceedings / detex / moody.detex < prev    next >
Text File  |  1992-04-05  |  15KB  |  412 lines

  1.  [12pt] article  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.    Exploring Frameworks and Representations for 
  12. Domain Specific Automatic Code Generation 
  13.  
  14.    Scott Arthur Moody 
  15. Autocode Research Group 
  16. The Boeing Company 
  17. MS 6Y-07 
  18. Box 3999 
  19. Seattle, Washington 98124   
  20. email: scott@shuksan.boeing.com 
  21.  
  22.    
  23.  
  24.  
  25.   
  26. The paper is being used to present our concerns 
  27. at the research session of the 4th Annual Software Reuse Workshop.
  28. We are trying to integrate reuse concepts
  29. into an environment that exhibits Domain Specific Reuse.
  30. The concept of application generators and
  31. automatic code generation utilizing graphical
  32. specification techniques must be explored, as well as
  33. possible formal language definitions.
  34. One of our biggest challenges will not be technical, but 
  35. process oriented, as we try to transfer new technology 
  36. onto working projects, including acceptance of
  37. reuse technology in safety critical systems.
  38.  
  39.   0.3in 
  40.  
  41.    Keywords: 
  42. Reuse Frameworks,
  43. Production Quality Software, 
  44. Automatic Code Generation,
  45. Embedded Avionics Software, 
  46. Application Generators,
  47. Software Qualification Process 
  48.  
  49.  
  50.  
  51.   Introduction 
  52. This position paper is being used to discuss some of the research areas and 
  53. concerns our group in Boeing is working on. We are called the Autocode 
  54. Research Group, a program within the Avionics Software Engineering 
  55. organization of BCAG (Boeing Commercial Airplane Group). 
  56. Our charter is to explore the application of the latest 
  57. technology in automatic code generation 
  58. and software reuse to the problems 
  59. faced in the existing BCAG avionics software development processes. Over the 
  60. next few years, we plan to change our emphasis from research to actual 
  61. process and product deliverables to be used in embedded software development.
  62.  
  63. Our goal will be to incorporate graphical application 
  64. specification and generation 
  65. tools into a development framework that utilizes domain specific 
  66. software reuse and code 
  67. generation techniques. The end goal is the generation of 'production quality' 
  68. embedded avionics software. 
  69. This presents many complex problems that
  70. are also faced by the entire reuse community:
  71.  
  72.  
  73.   
  74.  
  75. Is the quality of the software that has been generated or reused up to 
  76.    the high standards required of production embedded software? This
  77.    includes the issue of interfacing with embedded implementations
  78.    such as runtime or I/O systems.
  79.  
  80. What are the airplane qualification and certification issues 
  81.    dealing with software safety, verification 
  82.    and validation of any generated software
  83.    especially when a tool has been used for the generation?
  84.    Do we qualify the actual process; qualify the tools themselves, which 
  85.    then qualifies the software they generate; or generate and reuse 
  86.    code but still perform the normal qualification procedures? 
  87.  
  88. What is the best approach for integration of these new technologies 
  89.    into existing development processes and environments? Can a new 
  90.    approach be phased in while existing development is still being done? 
  91.  
  92. Can new processes and tools utilize the 
  93.    heterogeneous and embedded
  94.    computing environments available within BCAG?
  95.  
  96. What are the business issues involved with the cost and adoption of new 
  97.    processes? 
  98.  
  99. Who is responsible for the development and 
  100.    maintenance of reusable software, especially when dealing
  101.    with many different suppliers?
  102.  
  103. Will the new tools and methods be accepted by BCAG, the airline 
  104.    customers, or most importantly the FAA?
  105.  
  106.  
  107.  
  108. BCAG is a large company with numerous and diverse software development 
  109. environments. In the commercial sector, production 
  110. of a complex airplane must 
  111. follow established procedures. 
  112. The current process requires the designers of 
  113. the avionics on-board control and display systems to generate detailed 
  114. requirements documents which are typically sent to outside companies that 
  115. specialize in embedded avionics software development.
  116. These large documents are used as the basis for the software development
  117. process.  This includes other in-house
  118. tasks that range from analyzing contract bids to 
  119. generating verification tests,
  120. and are even used as the basis for future product descriptions.
  121.  
  122. Because software is such a critical technology,
  123. our research charter has been to explore how automatic code generation
  124. techniques could be utilized to increase
  125. the productivity of the software development process.
  126. These are best directed at
  127. those areas within BCAG that contain detailed domain expertise.
  128.  
  129. We have been looking at methods that would augment the current development 
  130. process with tools that would allow the system engineers 
  131. the ability to specify their 
  132. requirements utilizing graphic CAD/CAE like tools. 
  133. The information specified in 
  134. some of these requirements documents is of fine 
  135. enough detail that automatic 
  136. generation of software is achievable with current technology. 
  137.  
  138.   New Tools and Methods are Needed 
  139.  
  140. BCAG's current practice uses tools and methods that do not exploit
  141. the latest electronic technology. Usually the system requirements are delivered in 
  142. paper format, digested by the software developers who then
  143. write software specifications that satisfy the system requirements.
  144. Embedded software is ultimately produced that must then
  145. be verified against the original requirements and software specifications.
  146. We will explore methods of electronic specification transmission 
  147. (or transmission of specific semantics), reducing 
  148. possible errors, followed by methods for automatic generation of 
  149. the specifications themselves as more electronic representation tools are utilized.
  150.  
  151. Our vision plans for developing a framework where prototyping and other 
  152. design testing concepts can become an integral part of the design and 
  153. requirements document generation. Our vision 
  154. should make use of active electronic books, both 
  155. as more usable documentation and for better traceability in automatic 
  156. generation of production quality software. This can be achieved 
  157. if the required tools are integrated into an accepted framework. 
  158.  
  159. We plan to develop a prototype that tests 
  160. concepts for infusion into the current process.
  161. As concepts are proven, newer processes can be devised that make 
  162. the most benefit of the newest technology. 
  163. These will lead 
  164. towards more consistent specification 
  165. representations especially if automatic code generation is to
  166. be achieved. 
  167.  
  168.   Reuse Development Framework 
  169.  
  170. We are exploring how best to utilize current reuse and automatic code 
  171. generation technology (e.g. application generators). 
  172. Our approach is to 
  173. introduce a reuse development framework supporting the different
  174. tasks of software development, from requirements specification
  175. through design development, testing, and verification. Throughout
  176. this process domain capture and domain analysis techniques should
  177. be utilized.
  178.  
  179.   Object Oriented Reuse Development Frameworks 
  180.  
  181. How can existing tools be connected in new and powerful ways? 
  182. In our domain this
  183. might include utilizing an existing code analysis tool as the 
  184. input to a code generation system.
  185. New open architecture frameworks are being 
  186. developed by the main vendors
  187. such as the CASE Integration Services 
  188. and the PCTE (Portable Common Tool
  189. Environment).
  190. These are based on the object oriented paradigm 
  191. utilizing type hierarchies and supporting
  192. interactive prototyping environments 
  193. and inter-process or inter-tool communication. 
  194. Formalization of these frameworks and of the management decisions for their 
  195. adoption are being explored.
  196.  
  197.   Common Interface Environments 
  198.  
  199. We should
  200. utilize common interface environments which support heterogeneous 
  201. platforms and provide higher leverage for reuse libraries.
  202. BCAG is actively 
  203. participating in APEX (Application Software Executive interface) proposed by 
  204. the AEEC (Airlines Electronic Engineering Committee). Other
  205. important work includes CIFO (Catalogue
  206. of Interface Features and Options) for the Ada Runtime Environment.
  207. This result of this effort should be a specification for a
  208. runtime executive that can be utilized by code generation
  209. techniques and lead to a FAA certified product.
  210.  
  211.   Reusable Software Libraries 
  212.  
  213. Our goal is not to generate prototype software, 
  214. but instead to generate production quality software 
  215. as part of the requirements documentation phase. 
  216. This raises numerous problems that we 
  217. feel are not being sufficiently addressed, or sufficiently answered. 
  218. What is the definition of production quality real-time software? 
  219. What level of prior domain knowledge must be available to
  220. automate code generation?
  221. If software is being reused from a library, can it be trusted?
  222. Can previously accepted software be used in a different 
  223. way such as using different generic parameters without invalidating
  224. this acceptance?
  225. How can technology be transferred between BCAG 
  226. and their suppliers in a way that 
  227. leverages off the available expertise and exhibits improved efficiency?
  228. Is it possible to obtain service credit on previous automated tool use?
  229. The draft DO-178B document addresses many of these issues.
  230.  
  231.   Electronic Hyper-linked Books 
  232.  
  233. The software design and development process should 
  234. incorporate dynamic electronic books for tracking design to 
  235. requirements and other traceability between the development phases. 
  236. It should incorporate the dynamic nature of prototypes and 
  237. design testing performed during the development of
  238. the specification. 
  239. Consideration should be made for incorporating 
  240. these active and living documents
  241. into the delivered specification product.
  242.  
  243. BCAG has been utilizing some of this technology in different portions
  244. of the airplane development process. These range from CAD/CAM/CAE tools
  245. for designing the structures, to the REDAR project where on-line
  246. access to all engineering drawings is available throughout the 
  247. production facilities. We are looking at ways of transferring 
  248. this technology into the software engineering field.
  249.  
  250.   Airborne Systems Considerations 
  251.  
  252. Software systems developed for airborne applications must meet 
  253. very detailed specifications as detailed in the draft FAA document, DO-178A,
  254. ``Software Considerations in Airborne Systems and Equipment Certification''.
  255. At least three important areas dealing 
  256. with software reuse and automatic code generation
  257. must be addressed:
  258.  
  259.   
  260.  
  261. Systems Safety
  262.  
  263. Software Testing 
  264.  
  265. Verification
  266.  
  267.  
  268.   System Safety Issues 
  269.  
  270. Use of techniques and methods in the development process, 
  271. including automation tools,
  272. must follow specific qualification criteria that ensure
  273. a level of safety that is in compliance with airworthiness requirements.
  274. Any tool that is used by this process must be qualified 
  275. when its use could introduce or fail
  276. to reveal errors in the airborne software. This
  277. is especially true when the output of this tool
  278. is not subject to a full verification suite each time the tool is used.
  279. This directly effects candidate development tools ranging from compilers to 
  280. reuse of commercial-off-the-shelf software (COTS), as well as
  281. graphical code generation techniques.
  282.  
  283.   Software Testing Philosophy 
  284.  
  285. Since testing is derived 
  286. from the software requirements document
  287. working with electronic representations should be beneficial.
  288. As automatic
  289. code generation techniques are applied, how these certification credits
  290. are derived and accumulated must be examined.
  291.  
  292.   Verification Criteria for Reused Software 
  293.  
  294. Verification is the process of checking the software against the requirements.
  295. Reusing system development information 
  296. is currently constrained to how it was previously used.
  297. Reuse and automatic generation of software will have a major impact 
  298. on the verification process. 
  299.  
  300.   Autocode Status 
  301.  
  302. The Autocode project has been spending the last 6 months studying the current 
  303. practices involved in developing requirements documents. This involved 
  304. classifying the different types of systems along with the different airplane 
  305. system architectures and how current and perceived tools could be applied (e.g. 
  306. displays, controls, etc).
  307.  
  308. Our study has analyzed Specification Control Drawings (SCD),
  309. which are the contractual
  310. requirements document, and broke them down into different 
  311. representations used and technologies we perceive could be 
  312. applied to them. Current specification 
  313. representations include: structured and unstructured 
  314. English, data tables, flow charts, PDL, state transition diagrams, 
  315. and control law block diagrams.
  316. We now plan to map 
  317. existing or proposed tools into these representations in a way that is both 
  318. acceptable, and one that exploits software reuse libraries and code generation 
  319. techniques.
  320.  
  321. Fostering reuse at BCAG is a very difficult problem but the
  322. Autocode Research Group feels the 
  323. approach we are taking, solving complex but 
  324. domain specific applications,
  325. should help lay a foundation for a Boeing wide reuse effort.
  326.  
  327.  
  328.    apex91 
  329.  
  330. Draft 1 of Project 653, ``Avionics Application Software
  331.     Standard Interface'', AEEC, Airlines Electronic
  332.     Engineering Committee, October 3, 1991.
  333.  
  334. [CIFO]   ``Catalogue of Interface Features and Options for the Ada Runtime 
  335.       Environment'', in Ada Letters, Vol XI, No. 8. Fall 1991.
  336.  
  337.      Fourth Draft of Proposed Revision to DO-178A/ED-12A
  338.      ``Software Considerations in Airborne Systems and Equipment
  339.      Certifications.'', Requirements and Technical Concepts
  340.      for Aviation, 1140 Connecticut Ave, N.W., Suite 1020
  341.      Washington, D.C. 200036
  342.  
  343.          S. Weyer, A. Borning.
  344.      ``A Prototype Electronic Encyclopedia'',
  345.      ACM Transactions on Office Information Systems
  346.      Vol 3, No. 1, Jan 1985
  347.  
  348.     US40 Domain Specific Environment/Repository STARS Reuse 
  349.     Concept of Operations, Volume 1 Version 0.5 DRAFT
  350.      GR-7670-(NP), 30 August 1991
  351.  
  352.     B. Burton, R. Aragon, S. Bailey, K. Koehler, L, Mayes,
  353.     ``The Reusable Software Library'',
  354.     IEEE Software, July 1987.
  355.  
  356.     K. Andrews, R. Henrey, W. Yamanoto, 
  357.     ``Design and Implementation of the UW Illustrated Compiler'',
  358.     Proceedings of the SIGPLAN '88 Conference on
  359.     Programming Language Design and Implementation,
  360.     June 1988
  361.  
  362.     D. Engelbart,
  363.     ``Knowledge-Domain Interoperability and an Open
  364.     Hyperdocument System'',
  365.     Proceedings of the Conference on
  366.     Computer Supported Cooperative Work,
  367.     October 1990
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.   About the Author 
  385.  
  386. Scott A. Moody is a senior software engineer 
  387. researching automatic code generation concepts
  388. for the Boeing Commercial Airplane Group. 
  389. His primary work has been in designing a 
  390. framework that promotes reuse of tools, domain
  391. knowledge and production quality software.
  392.  
  393. Scott was previously the lead engineer
  394. on the RAPID project, a collection of rapid
  395. prototyping tools for generic C3I graphics
  396. workstations. He worked on 
  397. automatic code generation techniques 
  398. transfering the prototypes into 
  399. requirements and code.
  400.  
  401. Scott's research interests include information reuse frameworks,
  402. code generation techniques, multi-media technology,
  403. distributed graphical prototypes, and 
  404. application generators utilizing 
  405. reusable software technology.
  406.  
  407. Scott received an MS and BS in computer science
  408. from the University of Washington. He is a member
  409. of the ACM and IEEE Computer Society.
  410.  
  411.  
  412.