SlideShare a Scribd company logo
Joyce: An Object-Oriented Decision Tree Builder
by Bob Marcus
Knowledge Systems Laboratory
Boeing Advanced Technology Center for Computer Sciences
Boeing Computer Services
P.O. Box 24346
Seattle, Washington 98124 M/S7L-64
Abstract
Joyce is an object-oriented visual programming environment for nonprogrammers. It permits an
application developer to assemble a program by graphically choosing methods from a large library
and linking them together using predefined control structures. Joyce also provides the developer with
the ability to define data structures, interactive forms, and documentation without programming.
Introduction
The purpose of this paper is to describe a visual programming environment called Joyce that
allows application experts with limited computer experience to build and maintain programs. The
basic idea ofJoyce is to provide a large library of methods and data structures tailored to a specific
application. In addition, Joyce provides templates for simple control primitives and generic methods.
The application developer builds a program consisting of a directed network of nodes by assembling
predefined methods and linking them using the control primitives.
To build a specific implementation of Joyce, it is necessary for a programmer to learn enough
about the application domain to create the library of methods and data structures~ Once this is done,
it should be possible for a domain expert to create and test programs with minimal assistance from
the programmer. The traditional task of building an application program is thus divided into two
parts, developing the components for the domain and assembling the components into a program. The
Joyce system provides a large library of generic methods and tools for building domain components.
The philosophy behind Joyce is that the enhanced abilities of the next generation of workstations
and personal computers are making it possible for programmers to provide environments that will
allow nonprogrammers to construct and maintain programs in a wider range of domains than current
application generators. The key technologies are object-oriented programming, which allows the
construction and reuse of software libraries [Meyer] and visual programming, which allows the
linking of software modules into a program using graphical interfaces [Shu].
Overview
Joyce runs on top of the KEE programming environment developed by Intellicorp. Joyce consists
of five basic systems: Root, Methods-library, Node-templates, Domain Knowledge-base and Program.
The hierarchy is shown in figure 1.
Figure 1.
The basic systems can be further divided into subsystems. Each subsystem consists of objects in
an inheritance tree. The trees in any subsystem can be displayed graphically, with the objects
appearing as labeled nodes. In addition, the inheritance graph of any node across different
subsystems can be displayed. Every part of the Joyce system is contained in some object and can be
accessed by means ofa mouse and menus.
121
Programs are constructed in Joyce by sending BUILD messages to template nodes in the template
node system. This message runs a method that starts by popping up a form to gather information
about the new program node. After the form is filled out, the new node is created and linked into the
program.
The types of nodes that can be created are control nodes, data structure nodes and action nodes.
The control nodes can be various types of branches, menu selections, jumps, or subprogram procedure
calls. The data structures are object-oriented representations of the structures that must be
predefined before the program is run. Typically these would be the templates for instances of
particular data structures that are created at run time.
The most commmon type of node is an action node. This node is an object that will execute some
method as the program is running. There is a large number of domain-specific and generic methods
that can be selected graphically from the methods library without programming and linked to action
nodes. Some examples of generic action nodes are:
a. Network file input and output.
b. Distributed database commands.
c. Remote procedure calls.
d. Running remote interactive programs in windows.
e. Creating of data structure instances.
f. Local function calls.
g. Forms processing.
h. Access to a hypertext documentation program.
Once a program graph has been built, the program can be run by sending an ACTIVATE message
to a node. After the node has run its method, it sends an ACTIVATE message to its children. An
example of the inheritance structure of a program node is figure 2.
"Program" in
root system
Parent
program node
C> Template in
node-templates
Program-node
Figure 2.
With this structure, the BUILD and ACTIVATE method is inherited through the template node,
general program utilities are inherited through the Program node in the root system, and program
variables are inherited through the parent program node. The program nodes do not have any local
methods, and thus the program system does not have to be recompiled as nodes are added or deleted.
Some of the important flexibility features that Joyce provides for the nonprogrammer application
developer are:
a. Arguments of methods can be preassigned, retrieved from data structures or requested from the
user at run-time.
b. Forms can be constructed and used at run time to gather information from the user.
c. Nodes that are attached to the program graph are automatically linked into the program and can be
chosen by branch and menu selection nodes.
d. Trees or nodes can be copied, renamed, and added to a new location in the program.
e. Procedure trees can be built and called in a manner similar to procedures in conventional
programming.
122
Programming Utilities
The Joyce environment provides tools for the nonprogrammer application developer to test and
debug programs. These tools can be used to provide runtime monitoring and validation of the
program. Some of the tools provided are as follows:
a. Trees or individual nodes can be placed in debug mode, which triggers the printing of detailed
information about the methods being run.
b. Trees or individual nodes can be placed in trace mode, which prints out the names of nodes as they
are activated and places the names on a history stack.
c. It is possible to place stopping points in the program that permit reviewing of data and then
backtracking by menu selection to any node in the history stack and restarting the program.
d. Precondition and postcondition predicates can be attached to any node. These conditions will stop
the program and report an error ffthey are not satisfied.
e. There are utilities that parse the program graph and check for missing slots or values in program
nodes; for example, they check that every child of a conditional node has a predicate to test.
f. Comments attached to every program node can be viewed by sending a COMMENT message to a
node.
g. All of the local slots of a program node can be displayed and edited by means of a forms interface.
In general, all of the tools available in the Lisp and KEE environment can be customized to add
even more functionality to the application developer's environment if necessary.
Related Tools
Joyce was originally developed as an enhanced replacement to a commercial Fortran-based
decision tree application generator called DCLASS. DCLASS allows a nonprogrammer to build a
decision tree using either a batch file or a graphical interface called SPROUT. DCI.ASS has been used
to generate programs with extremely complicated tree logic.
In spite of the success of DCLASS-based applications, it was felt that DCLASS was limited in its
ability to explicitly represent the structure and underlying logic of complicated domains. Joyce was
built to combine a relatively simple control structure like that of DCLASS with the advanced
representation and reusability possible with object-oriented programming. Another advantage of
Joyce over DCLASS is that there is no need for global variables or keys to store values, since this
information can be saved and retrieved from slots in program nodes.
The physical objects in the application domain are divided into specialized subsystems. In
addition, there are subsystems for standard forms and manuals. Each subsystem can be displayed as
an inheritance tree of nodes. There are links between related nodes in different subsystems. These
linked nodes can be displayed together in a single window.
The output of the program generated by Joyce will include not only external files but also a
directed graph in an output subsystem, which can be displayed in a window and edited after the
program is completed.
Conclusion
Joyce is a visual, object-oriented programming environment for a domain expert with limited
programming skills. A programmer is required to add domain-specific methods and data structures to
the environment before application development begins. Joyce offers an alternative to the traditional
knowledge engineering and knowledge acquisition techniques of application development. It provides
a method for a programmer and a domain expert to divide the task of producing an application into
component building and component assembly. In the field of process planning, Joyce has the potential
of replacing earlier decision tree builders. There appear to be many do mains that can benefit from the
Joyce approach.
References
Meyer, B., Object-oriented Software Constructgon,Prentice-Hall, 1988.
Shu, N. C., Visual Programming, Nostrand, 1988.
123

More Related Content

What's hot

OMAR_SANTIAGO_resume_2015
OMAR_SANTIAGO_resume_2015OMAR_SANTIAGO_resume_2015
OMAR_SANTIAGO_resume_2015
Omar Santiago
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
Ra'Fat Al-Msie'deen
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9
Ian Sommerville
 
Jim Bello Resume
Jim Bello ResumeJim Bello Resume
Jim Bello Resume
jimbelo
 
A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...
Nikolay Grozev
 

What's hot (18)

FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTSFRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
FRAMEWORKS BETWEEN COMPONENTS AND OBJECTS
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
OMAR_SANTIAGO_resume_2015
OMAR_SANTIAGO_resume_2015OMAR_SANTIAGO_resume_2015
OMAR_SANTIAGO_resume_2015
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation Visualizing Object-oriented Software for Understanding and Documentation
Visualizing Object-oriented Software for Understanding and Documentation
 
Resume
ResumeResume
Resume
 
Ch18
Ch18Ch18
Ch18
 
Software Reuse: Challenges and Business Success
Software Reuse: Challenges and Business SuccessSoftware Reuse: Challenges and Business Success
Software Reuse: Challenges and Business Success
 
Lq3620002008
Lq3620002008Lq3620002008
Lq3620002008
 
Net Resume D Hill
Net Resume D HillNet Resume D Hill
Net Resume D Hill
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Jim Bello Resume
Jim Bello ResumeJim Bello Resume
Jim Bello Resume
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation System
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Ui design final
Ui design finalUi design final
Ui design final
 
A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...A comparison of component-based software engineering and model-driven develop...
A comparison of component-based software engineering and model-driven develop...
 
Presentation - "A comparison of component-based software engineering and mode...
Presentation - "A comparison of component-based software engineering and mode...Presentation - "A comparison of component-based software engineering and mode...
Presentation - "A comparison of component-based software engineering and mode...
 

Viewers also liked

Position Paper – Global Threats
Position Paper – Global Threats Position Paper – Global Threats
Position Paper – Global Threats
Robert C. Consolo Jr
 

Viewers also liked (20)

Position Paper – Global Threats
Position Paper – Global Threats Position Paper – Global Threats
Position Paper – Global Threats
 
Bandra kalanagar skywalk
Bandra kalanagar skywalkBandra kalanagar skywalk
Bandra kalanagar skywalk
 
Citologia dna e rna 1º ano 2º bimestre
Citologia dna e rna 1º ano 2º bimestreCitologia dna e rna 1º ano 2º bimestre
Citologia dna e rna 1º ano 2º bimestre
 
2004 Net-centric Systems and Services Interoperability Engineering (NESSIE)
2004 Net-centric Systems and Services  Interoperability Engineering (NESSIE)2004 Net-centric Systems and Services  Interoperability Engineering (NESSIE)
2004 Net-centric Systems and Services Interoperability Engineering (NESSIE)
 
Response to Commerce Dept's IoT RFC
Response to Commerce Dept's  IoT RFC Response to Commerce Dept's  IoT RFC
Response to Commerce Dept's IoT RFC
 
NTIA IoT RFC Responses
NTIA IoT RFC ResponsesNTIA IoT RFC Responses
NTIA IoT RFC Responses
 
1959-1963 Some Collected poems
1959-1963 Some Collected poems 1959-1963 Some Collected poems
1959-1963 Some Collected poems
 
1986 Multilevel Constraint-Based Configuration Article
1986 Multilevel Constraint-Based Configuration Article1986 Multilevel Constraint-Based Configuration Article
1986 Multilevel Constraint-Based Configuration Article
 
2004 Colorado Grid Computing Initiative
2004 Colorado Grid Computing Initiative 2004 Colorado Grid Computing Initiative
2004 Colorado Grid Computing Initiative
 
IoT-Enabled Smart City Framework
IoT-Enabled Smart City FrameworkIoT-Enabled Smart City Framework
IoT-Enabled Smart City Framework
 
2011 IaaS standards report from Ad Hoc WG
2011 IaaS standards report from Ad Hoc WG 2011 IaaS standards report from Ad Hoc WG
2011 IaaS standards report from Ad Hoc WG
 
2006 Multiscale modeling and simulation for drug development and testing
2006 Multiscale modeling and simulation for drug development and testing2006 Multiscale modeling and simulation for drug development and testing
2006 Multiscale modeling and simulation for drug development and testing
 
Reference Architectures for Layered CPS System of Systems using Data Hubs and...
Reference Architectures for Layered CPS System of Systems using Data Hubs and...Reference Architectures for Layered CPS System of Systems using Data Hubs and...
Reference Architectures for Layered CPS System of Systems using Data Hubs and...
 
Control in Cyber-Physical Systems
Control in Cyber-Physical SystemsControl in Cyber-Physical Systems
Control in Cyber-Physical Systems
 
Downloadable publications on CPS, Cloud, and Big Data
Downloadable publications on CPS, Cloud, and Big DataDownloadable publications on CPS, Cloud, and Big Data
Downloadable publications on CPS, Cloud, and Big Data
 
Security in Cyber-Physical Systems
Security in Cyber-Physical SystemsSecurity in Cyber-Physical Systems
Security in Cyber-Physical Systems
 
1974 Parabolic Ito Equations
1974 Parabolic Ito Equations1974 Parabolic Ito Equations
1974 Parabolic Ito Equations
 
NIST CPS-related Slides
NIST CPS-related SlidesNIST CPS-related Slides
NIST CPS-related Slides
 
1986 Mycon: Multilevel Constraint Based Configuration
1986 Mycon: Multilevel Constraint Based Configuration1986 Mycon: Multilevel Constraint Based Configuration
1986 Mycon: Multilevel Constraint Based Configuration
 
IoT Use Cases
IoT Use CasesIoT Use Cases
IoT Use Cases
 

Similar to 1989 Joyce: An Object-Oriented Decision Tree Builder

Office automation system report
Office automation system reportOffice automation system report
Office automation system report
Amit Kulkarni
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
Amit Kulkarni
 
Martin Koons Resume 2015
Martin Koons Resume 2015Martin Koons Resume 2015
Martin Koons Resume 2015
Marty Koons
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
APPALANAIDU KONDALA
 

Similar to 1989 Joyce: An Object-Oriented Decision Tree Builder (20)

ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in c
 
06 fse design
06 fse design06 fse design
06 fse design
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
Wecreate
WecreateWecreate
Wecreate
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
 
Office automation system report
Office automation system reportOffice automation system report
Office automation system report
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
124157075 gb
124157075 gb124157075 gb
124157075 gb
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
A Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdfA Hand Book of Visual Basic 6.0.pdf.pdf
A Hand Book of Visual Basic 6.0.pdf.pdf
 
Martin Koons Resume 2015
Martin Koons Resume 2015Martin Koons Resume 2015
Martin Koons Resume 2015
 
Development Tools - Abhijeet
Development Tools - AbhijeetDevelopment Tools - Abhijeet
Development Tools - Abhijeet
 
Lecture1422914635
Lecture1422914635Lecture1422914635
Lecture1422914635
 
D033017020
D033017020D033017020
D033017020
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
 

Recently uploaded

Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
Kamal Acharya
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
Kamal Acharya
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
AbrahamGadissa
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
Atif Razi
 

Recently uploaded (20)

Event Management System Vb Net Project Report.pdf
Event Management System Vb Net  Project Report.pdfEvent Management System Vb Net  Project Report.pdf
Event Management System Vb Net Project Report.pdf
 
AI for workflow automation Use cases applications benefits and development.pdf
AI for workflow automation Use cases applications benefits and development.pdfAI for workflow automation Use cases applications benefits and development.pdf
AI for workflow automation Use cases applications benefits and development.pdf
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge2024 DevOps Pro Europe - Growing at the edge
2024 DevOps Pro Europe - Growing at the edge
 
Introduction to Casting Processes in Manufacturing
Introduction to Casting Processes in ManufacturingIntroduction to Casting Processes in Manufacturing
Introduction to Casting Processes in Manufacturing
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Automobile Management System Project Report.pdf
Automobile Management System Project Report.pdfAutomobile Management System Project Report.pdf
Automobile Management System Project Report.pdf
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Laundry management system project report.pdf
Laundry management system project report.pdfLaundry management system project report.pdf
Laundry management system project report.pdf
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
retail automation billing system ppt.pptx
retail automation billing system ppt.pptxretail automation billing system ppt.pptx
retail automation billing system ppt.pptx
 
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES  INTRODUCTION UNIT-IENERGY STORAGE DEVICES  INTRODUCTION UNIT-I
ENERGY STORAGE DEVICES INTRODUCTION UNIT-I
 
Pharmacy management system project report..pdf
Pharmacy management system project report..pdfPharmacy management system project report..pdf
Pharmacy management system project report..pdf
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
NO1 Pandit Black Magic Removal in Uk kala jadu Specialist kala jadu for Love ...
 

1989 Joyce: An Object-Oriented Decision Tree Builder

  • 1. Joyce: An Object-Oriented Decision Tree Builder by Bob Marcus Knowledge Systems Laboratory Boeing Advanced Technology Center for Computer Sciences Boeing Computer Services P.O. Box 24346 Seattle, Washington 98124 M/S7L-64 Abstract Joyce is an object-oriented visual programming environment for nonprogrammers. It permits an application developer to assemble a program by graphically choosing methods from a large library and linking them together using predefined control structures. Joyce also provides the developer with the ability to define data structures, interactive forms, and documentation without programming. Introduction The purpose of this paper is to describe a visual programming environment called Joyce that allows application experts with limited computer experience to build and maintain programs. The basic idea ofJoyce is to provide a large library of methods and data structures tailored to a specific application. In addition, Joyce provides templates for simple control primitives and generic methods. The application developer builds a program consisting of a directed network of nodes by assembling predefined methods and linking them using the control primitives. To build a specific implementation of Joyce, it is necessary for a programmer to learn enough about the application domain to create the library of methods and data structures~ Once this is done, it should be possible for a domain expert to create and test programs with minimal assistance from the programmer. The traditional task of building an application program is thus divided into two parts, developing the components for the domain and assembling the components into a program. The Joyce system provides a large library of generic methods and tools for building domain components. The philosophy behind Joyce is that the enhanced abilities of the next generation of workstations and personal computers are making it possible for programmers to provide environments that will allow nonprogrammers to construct and maintain programs in a wider range of domains than current application generators. The key technologies are object-oriented programming, which allows the construction and reuse of software libraries [Meyer] and visual programming, which allows the linking of software modules into a program using graphical interfaces [Shu]. Overview Joyce runs on top of the KEE programming environment developed by Intellicorp. Joyce consists of five basic systems: Root, Methods-library, Node-templates, Domain Knowledge-base and Program. The hierarchy is shown in figure 1. Figure 1. The basic systems can be further divided into subsystems. Each subsystem consists of objects in an inheritance tree. The trees in any subsystem can be displayed graphically, with the objects appearing as labeled nodes. In addition, the inheritance graph of any node across different subsystems can be displayed. Every part of the Joyce system is contained in some object and can be accessed by means ofa mouse and menus. 121
  • 2. Programs are constructed in Joyce by sending BUILD messages to template nodes in the template node system. This message runs a method that starts by popping up a form to gather information about the new program node. After the form is filled out, the new node is created and linked into the program. The types of nodes that can be created are control nodes, data structure nodes and action nodes. The control nodes can be various types of branches, menu selections, jumps, or subprogram procedure calls. The data structures are object-oriented representations of the structures that must be predefined before the program is run. Typically these would be the templates for instances of particular data structures that are created at run time. The most commmon type of node is an action node. This node is an object that will execute some method as the program is running. There is a large number of domain-specific and generic methods that can be selected graphically from the methods library without programming and linked to action nodes. Some examples of generic action nodes are: a. Network file input and output. b. Distributed database commands. c. Remote procedure calls. d. Running remote interactive programs in windows. e. Creating of data structure instances. f. Local function calls. g. Forms processing. h. Access to a hypertext documentation program. Once a program graph has been built, the program can be run by sending an ACTIVATE message to a node. After the node has run its method, it sends an ACTIVATE message to its children. An example of the inheritance structure of a program node is figure 2. "Program" in root system Parent program node C> Template in node-templates Program-node Figure 2. With this structure, the BUILD and ACTIVATE method is inherited through the template node, general program utilities are inherited through the Program node in the root system, and program variables are inherited through the parent program node. The program nodes do not have any local methods, and thus the program system does not have to be recompiled as nodes are added or deleted. Some of the important flexibility features that Joyce provides for the nonprogrammer application developer are: a. Arguments of methods can be preassigned, retrieved from data structures or requested from the user at run-time. b. Forms can be constructed and used at run time to gather information from the user. c. Nodes that are attached to the program graph are automatically linked into the program and can be chosen by branch and menu selection nodes. d. Trees or nodes can be copied, renamed, and added to a new location in the program. e. Procedure trees can be built and called in a manner similar to procedures in conventional programming. 122
  • 3. Programming Utilities The Joyce environment provides tools for the nonprogrammer application developer to test and debug programs. These tools can be used to provide runtime monitoring and validation of the program. Some of the tools provided are as follows: a. Trees or individual nodes can be placed in debug mode, which triggers the printing of detailed information about the methods being run. b. Trees or individual nodes can be placed in trace mode, which prints out the names of nodes as they are activated and places the names on a history stack. c. It is possible to place stopping points in the program that permit reviewing of data and then backtracking by menu selection to any node in the history stack and restarting the program. d. Precondition and postcondition predicates can be attached to any node. These conditions will stop the program and report an error ffthey are not satisfied. e. There are utilities that parse the program graph and check for missing slots or values in program nodes; for example, they check that every child of a conditional node has a predicate to test. f. Comments attached to every program node can be viewed by sending a COMMENT message to a node. g. All of the local slots of a program node can be displayed and edited by means of a forms interface. In general, all of the tools available in the Lisp and KEE environment can be customized to add even more functionality to the application developer's environment if necessary. Related Tools Joyce was originally developed as an enhanced replacement to a commercial Fortran-based decision tree application generator called DCLASS. DCLASS allows a nonprogrammer to build a decision tree using either a batch file or a graphical interface called SPROUT. DCI.ASS has been used to generate programs with extremely complicated tree logic. In spite of the success of DCLASS-based applications, it was felt that DCLASS was limited in its ability to explicitly represent the structure and underlying logic of complicated domains. Joyce was built to combine a relatively simple control structure like that of DCLASS with the advanced representation and reusability possible with object-oriented programming. Another advantage of Joyce over DCLASS is that there is no need for global variables or keys to store values, since this information can be saved and retrieved from slots in program nodes. The physical objects in the application domain are divided into specialized subsystems. In addition, there are subsystems for standard forms and manuals. Each subsystem can be displayed as an inheritance tree of nodes. There are links between related nodes in different subsystems. These linked nodes can be displayed together in a single window. The output of the program generated by Joyce will include not only external files but also a directed graph in an output subsystem, which can be displayed in a window and edited after the program is completed. Conclusion Joyce is a visual, object-oriented programming environment for a domain expert with limited programming skills. A programmer is required to add domain-specific methods and data structures to the environment before application development begins. Joyce offers an alternative to the traditional knowledge engineering and knowledge acquisition techniques of application development. It provides a method for a programmer and a domain expert to divide the task of producing an application into component building and component assembly. In the field of process planning, Joyce has the potential of replacing earlier decision tree builders. There appear to be many do mains that can benefit from the Joyce approach. References Meyer, B., Object-oriented Software Constructgon,Prentice-Hall, 1988. Shu, N. C., Visual Programming, Nostrand, 1988. 123