
A VISUAL PROGRAM DESIGN LANGUAGE by QI-QUAN XU, B.E. A THESIS IN COMPUTER SCIENCE Submitted to the Graduate Faculty of Texas Tech University in Partial Fulfillment of the Requirements for the Degree of MASTER OF SCIENCE Approved August, 1998 n ^ ACKNOWLEDGEMENTS This author wishes to thank the following individuals for their support. Dr. Donald J. Bagert, Jr., advisor; Dr. Gopal Lakhani. the graduate committee member; Mr. ChuangGuang He and Cai Gao, team members of STRIDES project. I would like to dedicate this paper to my parents and my wife. God has truly blessed me with your love. TABLE OF CONTENTS ACKNOWLEDGEMENTS i LIST OF FIGURES iv CHAPTER I. INTRODUCTION 1 II. LITERATURE SURVEY 3 III.RESEARCH OBJECTIVES 5 3.1PDL/C++ 6 3.2 Visual PDL/C++ 6 3.3 Adding Functions to Visual PDL/C++ 7 3.4 Anticipated Benefits of This Research 7 IV. VISUAL PDL ENVIRONMENT 9 4.1 Overview of PDL 9 4.2 Languages Dependency of PDLs 10 4.3 Visual PDL 11 4.4 Visual PDL Environment 13 4.5 Major Functionality of Visual PDL/C++ 14 V. PDL/C++ 17 5.1 Why Propose a Formal PDL/C++ 17 5.2 Characteristics of PDL/C++ 17 5.3 Components of PDL/C-H- 18 n VI. VISUAL PDL/C- 6.1 Overview of Visual PDL/C++ 26 6.2 Visual PDL/C++ Programming 27 6.3 Code Generation and Syntactic Correction 33 VII. DEPENDENCY DIAGRAMS AND PSEUDOCODE-BASED TESTING 38 7.1 Dependency Diagrams 38 7.2 Pseudocode-Based Testing 43 VIII. VISUAL PDL/C++ VERSUS STRIDES 49 8.1 Introduction of STRIDE 49 8.2 Integrating Visual PDL/C++ With STRIDES 51 8.3 An Example 53 IX. CONCLUSIONS AND FUTURE RESEARCH 59 9.1 Conclusions 59 9.2 Future Research 60 REFERENCES 62 111 LIST OF FIGURES 4.1 Visual PDL Environment 13 6.1 Major Functionality of Visual PDL/C-H- 26 6.2 Class Declaration 27 6.3 Global Function Declaration 28 6.4 Class Method Definition 29 6.5 Comment a Method in a Class 30 6.6 Statement Editor Interface 31 6.7 Example of Visual Expression in Visual PDL/C^^ 34 6.8 Example of Visual Programming and Code Generation 35 6.9 Example of Local Variable Declaration Interface 36 6.10 Example of Visual PDL/C++ Programming 3 7 7.1 Example of Object Dependency Diagram 40 7.2 Example of Internal Dependency Diagram 42 7.3 Example of Control Construct and Level Diagram 46 7.4 Example of CCLD from Source Code 47 8.1 Relationship between CASHY and STRIDESVPT 50 8.2 Relationships between Parts in New STRIDES 52 8.3 Example Interface of CASHY CASE Tool 55 8.4 Example of Visual PDL/C++ Interface 56 8.5 Example of STRIDESVPT 58 IV CHAPTER I INTRODUCTION Improving software productivity and reliability has been the most imponant goal of software process improvement. To realize the goal of a mature software process, many methods and tools have been proposed and adopted. Software design sits at the technical kernel of the software development life c\ cle. "Beginning once software requirements have been analyzed and specified, software design is the first of three technical activities - design, code generation, and testing - that are required to build and verify the software" [14]. Software design is an iterative process through which requirements are translated into a "blueprint'" for constructing the software. Good design is critical to ensure software quality. It has been docimiented that a significant number of errors are being introduced during the software design process. Medis reported that up to 60% of software errors could be traced back to design errors [10]. This fact has motivated widespread adoption of software design tools. More advanced and sufficient tools are needed for robust software systems design, because defecting and fixing errors as soon as possible is much easier and cheaper. Many design methods and tools are being applied throughout the industry. Each introduces unique heuristics and notation, as well as a somewhat parochial view of what characterizes lead to design quality [14]. Program Design Language (PDL) is one of the most frequently used techniques introduced to help designers to design robust systems. The use of PDL encourages more detailed specification of the design which can be easily understood and modified. PDL is "a pidgin language in that it uses the vocabulary of one language (i.e.. English) and the overall syntax of another (i.e., a programming language)"[3]. PDL is also called Structured English or Pseudocode. Many PDLs have been introduced and practiced in the sofhvare engineering community, most of which are programming language dependent. For example, PDL-Ada is popularly used by designers of software which is to be implemented in Ada. Design tools such as PDL are used to improve software producti\'it\. while software testing is adopted to ensure the quality of application systems. Testing is a practical means of detecting program errors that can be highly effective if performed rigorously. Many software testing methods have been introduced, such as white-box testing, basis path testing, and control structure testing. This research focuses on proposing a visual PDL environment called Visual PDL/C-H-, which aids the designer to design a system. It also includes testing function which can be used to test the source code after the system is implemented or partial!} implemented. A brief synopsis of the coming chapters is given below. Chapter II introduces some previous research related to visual programming and PDL tools. In Chapter III, the major objectives of this research are presented. Chapter FV gives an overview of program design languages, followed by discussion of language dependency of PDL. A Visual PDL environment and relationship between VPDL and OOD are also depicted. Chapter V proposed a PDL/C++. Chapter VI and VII mainly introduce fijnctionality of the proposed Visual PDL/C++. Integrating Visual PDL/C++ with STRIDES is discussed in Chapter VIII, followed by conclusions and future research directions given in Chapter DC. CHAPTER II LITERATURE SURVEY Visual PDL is a new concept proposed by this research to improve software productivity and reliability. There are, however, many articles related to visual programming or PDL. The term "visual programming" in the computer field is used in several different ways. In this research, visual programming refers to the use of visual expressions (such as graphics, drawings, or icons) in the process of programming to illustrate data, functions, classes, or the structure of a program. Several projects have been working on the basic theories of visual programming, such VLCC [7], Positional Grammars and DR Parsers [6]. There are two types of visual programming: small-grain and large-grain. If almost every element of a specific language is visualized using visual expression, it is called "small-grain" visual programming; otherwise it is called "large-grain." Some things, like mathematical formulas and numerical algorithms, are handled better wdth text. A typical "small-grain" visual programming environment is introduced by Clinert [5]. An iconic BNF (Backus-Naur Form) proposed by STRIDES project generalizes the "large-grain" expressions of traditional language. STRIDES {©and™ 1997 Texas Tech University) developed by the Department of Computer Science at Texas Tech University is an iconic environment for design and generating code in traditional programming languages, currently supporting C-H- [18]. The STRIDES project indicates that visual programming environment is usefiil to help users imderstand the structure of a program and reduce programming errors. This research is extension of the STRIDES group research project. which is a variation and extension of the previous research product BACCII++ {©and ^^^ 1992 - 1995, Ben A. Calloni) [4]. Program Design Languages have been in extensive use since PDL was introduced in 1975 [3]. The examples of PDL are PDL/Ada, PDL-Caine, PDL-Arcturus, and BYRON [11]. The work of Linger, Mills, and Witt provided a definitive treatment of PDL [14]. Regarding PDL as an informal high level language, Zheng proposed an interactive software design tool called PDL/M2, which was used as an input to the system to express the general and detailed design [19]. PDL/M2 could also automatically translate PDL code (pseudocode) into Modula-2 programs. A PDL syntax-directed editor package was developed to help programmers write pseudocode [1]. Syntactical correctness is performed automatically. An interesting article written by Oman described an analysis tool that extracts complexity metrics from PDL [13]. The author had used the tool to measure consistency within and across modules and for assessing traceability between PDL and the corresponding source code. The control Structure Diagram (CSD) is a graphical notation intended to increase the comprehensibility of software written in block-structured languages such as Ada, Pascal, and Modula-2, or their associated PDLs [8]. A software engineering tool which provides for the automatic generation of control structure diagram (CSD) from Ada 95 is also available [9]. CHAPTER III RESEARCH OBJECTIVES There is a widespread use of visual programming today. From these practices, one thing that has been learned is that "large-grain" solution for visualization is much better than a "small-grain" solution [18]. Visual programming is good at expressing high-level structure, omitting much of the implementation details, while PDL is usually used to outline a program design. The output of a PDL is called pseudocode. Therefore, appl\ ing visual programming technology to the field of PDL is almost seamless. There are lots of design tools introduced to improve the software development process, but no single one suits all designers' needs. One solution may be that the designer uses different design tools in different situation.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages69 Page
-
File Size-