About Business Career Research Fun Links
 

JOSEPH W. YODER

7 Florida Dr.
Urbana, Illinois 61801
(217) 344-4847
joe_at_joeyoder.com


CURRICULUM VITAE

 Short Biography

Joe began working with software in the mid 1980’s, and has developed robust systems for many companies and organizations with global impact. He is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring of all facets of software development.

He is an international speaker and pattern author on software architecture, design, and implementation. Joseph specializes in Object-Oriented Analysis and Design, C#, Java, Smalltalk, Patterns, Agile Methods, Adaptable Systems, Refactoring, Reuse, and Frameworks. He has mentored developers on many types of software applications.

Joseph Yoder is a longstanding member of The Hillside Group, a group dedicated to improving the quality of software development. Joseph has chaired the Pattern Languages of Programming Conference (PLoP), as well as performed tutorials and talks at conferences such as OOPSLA and ECOOP. He is co-author of the Big Ball of Mud pattern, which illuminated many fallacies in the approach to software architecture.

Joseph Yoder currently resides in Urbana, Illinois. He teaches Agile Methods such as XP, Design Patterns, Object Design, Refactoring, and Testing in industrial settings and mentors developers on these concepts. Joseph currently oversees a team of developers who have constructed an order fulfillment system based on enterprise architecture using the .NET environment. His other recent work includes working in both the Java and .NET environments, and deploying Domain-Specific Languages for clients.  Joe thinks software is still too hard to change. He wants do something about this and believes that putting the ability to change software in the hands of the people with the knowledge to change it seems to be on promising avenue to solve this problem.

Educational History

1995-2000               University of Illinois at Urbana-Champaign

                                Ph. D. Work (Computer Science, partially completed)

1989-1992:              University of Illinois at Urbana-Champaign

                                M.S. (Computer Science)

1984-1989:              University of Iowa

                                B.S. (Computer Science/Mathematics)

Employment History

2003-Present         .NET Enterprise Framework Architecture for Order Fulfillment System
Comac and The Refactory, Inc.
Milpitas, California.

1999-                       Web-Design and Programming, Web-Services, and Technical Lead
CU Local Biz.com
Urbana, Illinois.

1998-                       Object-Oriented Consulting, Development, Mentoring, and Training
Joseph Yoder Enterprises, Inc. and The Refactory, Inc.
Urbana, Illinois.

1994-1998               Object-Oriented Consulting and Teaching
Joseph Yoder Enterprises
Urbana, Illinois.

1997-1997               Object-Oriented Consulting and Programming
ClearSystems
Dallas, Texas.

1994-1998               Project Manager, Research Analyst, Designer, and Programmer
CAT/NCSA at University of Illinois
Urbana, Illinois.

1992-1995               Project Manager, Architect, and Designer
                                New England Research Institute

                                Urbana, Illinois.

1990-1994               Teaching Assistant

                                The University of Illinois at Urbana-Champaign.

1989-1993               Project Manager, Research Analyst, Designer, and Programmer.

                                University Park Pathology Associates, P.C. and Lifespan Research Institute

                                Urbana, Illinois.
1987-1989               Software Designer
                                Dong-Won Research Company
                                Iowa City, Iowa.

Professional Tutorials, Training, and Talks

Adaptive Object-Model Architecture Style: “Giving Users Control over their Business Models”
NII 2007, Tokyo, Japan
December, 2007

Refactoring Principles
NII 2007 Talk, Tokyo, Japan
December, 2007

Software Pattern Quality Slides
SPAQu 2007, Tokyo, Japan
December, 2007

Agile Principles: The XP Process Course
Recife, Brazil
June, 2007

Refactoring Principles Course
Recife, Brazil
May, 2007

Pattern Writing: The Straight Scoop Tutorial
SugarLoaf PLoP, Porto de Galinhas, Brazil
May, 2007

 Design Patterns – GOF and More
Faculdade de Engenharia da Universidade do Porto, Porto, Portugal
April, 2007

 Adaptive Object Model Keynote
ENEI 2007, Guarda, Portugal
April, 2007

 Agile Fishbowl
ENEI 2007, Guarda, Portugal
April, 2007

 OO Programming and Design
Media Ocean, New York, NY
December, 2006

 Design Patterns the C# Java Edition
Caterpillar, Inc., Peoria, IL
June, 2006

AOM Architecture - Tutorial
OOPSLA, San Diego
October, 2005

User Interface Design Principles: Patterns for Human Computer Interaction
Sao Paulo, Brazil
August, 2005

AOM Architecture - Tutorial
Stockholm, Sweden
July, 2005

Architectural Patterns for Enabling Application Security
Sao Paulo, Brazil
August, 2004

Patterns for Making Business Objects Persistent in a Relational Database
Sao Paulo, Brazil
August, 2004 

A Framework for Financial Modelling
Sao Paulo, Brazil
August, 2004

Design Patterns - Java/C# Edition
Sao Paulo, Brazil
August, 2004
 

Architecture and Design of Adaptive Object-Models
Forteleeza, Brazil
August, 2004

Refactoring Principles
Forteleeza, Brazil
August, 2004

Design Patterns the C# Java Edition
Caterpillar, Inc., Peoria, IL
May, 2004

Design Patterns the C# Java Edition
CSE, Ottowa, Canada
October, 2003

Design Patterns the C# Java Edition
Caterpillar, Inc., Peoria, IL
September, 2003

Design Patterns the C# Java Edition
Southern Company, Birmingham, AL
September, 2003

Design Patterns the C++
Java Realtime Edition
Navy Air Warfare Center, California
August, 2003

Design Patterns the C# Java Edition
Sao Paulo Brazil
August, 2003

Refactoring
Sao Paulo Brazil
August, 2003

eXtreme Programming
Recife, Brazil
August, 2003

Refactoring
Recife, Brazil
August, 2003

Design Patterns the C# Java Edition
Comac, San Jose, CA
August, 2003

Design Patterns the C++
Java Realtime Edition
Motorolla, Champaign, IL
July, 2003

Adaptive Object Models  – Presentation
ECOOP, Darmstadt, Germany
July, 2003

Design Patterns in Java
COPPE, Rio de Janeiro, Brazil
August, 2002

Design Patterns in Java
ICMC-USP, Brazil
August, 2002

Design Patterns in Java
Caterpillar, Inc., Peoria, IL
March, 2002
 

Architecture and Design of Adaptive Object Models - Presentation
OOPSLA, Tampa Bay, FL
October, 2001

Adaptive Object Models and Metamodeling Techniques - Workshop
ECOOP, Budapest, Hungary
June, 2001

Design Patterns in Java
Caterpillar, Inc., Peoria, IL
April, 2001

Smalltalk and Object Design Training
Lincoln Land Community College., Springfield, IL
October, 2000

Smalltalk and Object Design Training
Lincoln Land Community College., Springfield, IL
September, 2000

Design Patterns in Java
Caterpillar, Inc., Peoria, IL
July, 2000

AOM and Design Patterns – Invited Talk
Labatoire d’Informatique de Paris 6, France
June, 2000

Metadata and Adaptive Object Models  – Workshop
ECOOP, Cannes, France
June, 2000

Smalltalk and Object Design Training
Illinois Department of Public Health., Springfield, IL
December, 1998 

Design Patterns in Java
Caterpillar, Inc., Peoria, IL
August, 1998

Smalltalk and Object Design Training
Caterpillar/NCSA, Urbana, IL
July, 1996

Discrete Mathematical Structures, Data Structures,Concrete Mathematics, Introduction to Programming, Topics in Compiler Construction, Discrete Mathematical Structures, Introduction to Theory of Computation,
University of Illinois., Urbana, IL
Spring, 1990 – Fall, 1994

 

Publications and Presentations 

Joseph Yoder, Linda Rising, and Bob Hamner
Writers Workshop for Papers in Software Development
Workshop Position Paper, OOPSLA, 2007. 

Reza Razavi, Noury Bouraqadi, Joseph Yoder, Jean-Freançois Perrot, and Ralph Johnson
Language Support for Adaptive Object-Models Using Metaclasses
Published in Computer Languages, Systems, and Structure Vol 31, 199-218, 2005.

Joseph W. Yoder & Ralph Johnson.
"The Adaptive Object Model Architectural Style"
Published in The Proceeding of The Working IEEE/IFIP Conference on Software Architecture 2002 (WICSA3 '02) at the World Computer Congress in Montreal 2002, August 2002.

Software Architecture System Design, Development and Maintenance
Edited by Jan Bosch, Morven Gentleman, Christine Hofmeister, and Juha Kuusela; Kluwer Academic Publishers 2002.

Nicolas Revault & Joseph W. Yoder.
Adaptive Object-Models and Metamodeling Techniques
Workshop Results; ECOOP 2001 Budapest, Hungary, June 2001. 
ECOOP '2001 Workshop Reader;
Lecture Notes in Computer Science;
Springer Verlag 2001.

Joseph W. Yoder, Federico Balaguer, & Ralph Johnson.
"Architecture and Design of Adaptive Object Models"
Technology Presentation at the 2001 Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '01).
ACM SIGPLAN Notices, ACM Press, December 2001.

Joseph W. Yoder, Federico Balaguer, & Ralph Johnson.
"Adaptive Object Models for Implementing Business Rules"
Paper for Third Workshop on Best-Practices for Business Rules Design and Implementation, OOPSLA 2001.

Joseph W. Yoder & Reza Razavi.
Metadata and Adaptive Object-Models
Workshop Results; ECOOP 2000 Cannes, France, June 2000. 
ECOOP '2000 Workshop Reader; Lecture Notes in Computer Science, vol. no. 1964; Springer Verlag 2000.

Joseph W. Yoder & Reza Razavi.
Adaptive Object Models
OOPSLA Poster Session Abstract; OOPSLA Companion Minneapolis, Minnesota; OOPSLA Addendum, 2000.

Pattern Languages of Programs Design 4
edited by Neil Harrison, Brian Foote, and Hans Rohnert.
Addison Wesley, 2000

Brian Foote and Joseph W. Yoder
Big Ball of Mud
Fourth Conference on Patterns Languages of Programs (PLoP '97) Monticello, Illinois, September 1997. Technical report #wucs-97-34, Dept. of Computer Science, Washington University Department of Computer Science, September 1997.
Pattern Languages of Programs Design 4 edited by Neil Harrison, Brian Foote, and Hans Rohnert.
Addison Wesley, 2000

Joseph W. Yoder and Jeffrey Barcalow
Architectural Patterns for Enabling Application Security
Fourth Conference on Patterns Languages of Programs (PLoP '97) Monticello, Illinois, September 1997. Technical report #wucs-97-34, Dept. of Computer Science, Washington University Department of Computer Science, September 1997. Pattern Languages of Programs Design 4 edited by Neil Harrison, Brian Foote, and Hans Rohnert. Addison Wesley, 2000

Joseph W. Yoder, Ralph Johnson and Quince Wilson
Connecting Business Objects to Relational Databases
Fifth Conference on Patterns Languages of Programs (PLoP '98) Monticello, Illinois, August 1998. Technical report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, September 1998.

Joseph W. Yoder, Brian Foote, Dirk Riehle, and Michel Tilman
Metadata and Active Object-Models
Workshop Results Submission; OOPSLA Addendum, 1998.

Brian Foote and Joseph W. Yoder
Metadata and Active Object-Models
Fifth Conference on Patterns Languages of Programs (PLoP '98) Monticello, Illinois, August 1998. Technical report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, September 1998.

Brian Foote and Joseph W. Yoder
Metadata and Active Object-Models
Workshop Position Paper; OOPSLA, 1998.

Joseph W. Yoder, Donald F. Schultz, and Ben T. Williams
The MEDIGATE Graphical User Interface for Entry of Physical Findings: Design Principles and Implementation
The Journal of Medical Systems, 1998. October 1998, Vol 22, No. 5.

Brian Foote and Joseph W. Yoder
The Selfish Class
Third Conference on Patterns Languages of Programs (PLoP '96) Monticello, Illinois, September 1996 Pattern Languages of Program Design 3 edited by Robert Martin, Dirk Riehle, and Frank Buschman Addison-Wesley, 1997

John Brant and Joseph W. Yoder
Creating Reports with Query Objects
Third Conference on Patterns Languages of Programs (PLoP '96) Monticello, Illinois, September 1996 Technical report #wucs-97-07, Dept. of Computer Science, Washington University Department of Computer Science, February 1997.

Joseph W. Yoder
Patterns For Developing Successful Object-Oriented Frameworks
Workshop Position Paper; OOPSLA, 1997.

Joseph W. Yoder
A Framework for Building Financial Models
Unpublished description of Architecture, Design, and Implementation details; CAT/NCSA, 1997.

Joseph W. Yoder
Development of Object-Oriented Frameworks
Workshop Position Paper; OOPSLA, 1996.

Joseph W. Yoder
The People Side of Object-Oriented Technology
 Workshop Position Paper; OOPSLA, 1996.

Pattern Languages of Program Design 2
edited by John M. Vlissides, James O. Coplien, and Norman L. Kerth
Addison-Wesley, 1996

Brian Foote and Joseph W. Yoder
Evolution, Architecture, and Metamorphosis
Second Conference on Patterns Languages of Programs (PLoP '95) Monticello, Illinois, September 1995

Joseph W. Yoder
Application of Domain Analysis Techniques to Object-Oriented Systems
Workshop Position Paper; OOPSLA, 1995.

Joseph W. Yoder
Patterns For Decision-Making in Architectural Design
Workshop Position Paper; OOPSLA, 1995.

Ben T. Williams, Joseph W. Yoder, and Erik Littell
Probability Graphics Support for Medical Reasoning
Methods of Information in Medicine, 1993, 32: pp.229-32.

Joseph W. Yoder
The Role of Human-Computer Interaction in Medical Information Systems: Principles and Implementaion of MEDIGATE
MS Thesis, University of Illinois at Urbana-Champaign, Department of Computer Science, 1992.

Ben T. Williams, Joseph W. Yoder, and Donald F. Schultz
The MEDIGATE System for Direct Entry of Physical Findings by the Examiner: User Interface Issues
Health Evaluation: Searching for the Hidden Defect; Proceedings of The International Health Evalution Association Annual Symposium on The Art and Science of Preventive Medicine, La Jolla, California USA, Felitti, V.J. ed, pp. 107-114, 1990.
 

Object-Oriented Programming Languages

 

1992-                       Smalltalk

1989-                       C++

1990-                       Common Lisp/CLOS

1990-                       Objective-C

1995-                       Java

2001-                       C#

Other Programming Languages


Pre 1985 BASIC, FORTRAN

1985-                       Pascal, “C”, Assembly

1986-                       Ada, Clu, Forth

1987-                       LISP, Prolog

1988-                       SQL

1989-                       Scheme, Lex, Yacc

1994-                       PERL

Systems

IBM 370/333 (MVS), Prime 750/850, NEXT, SGI, VAX 11/780, Encore (UNIX), Apollo, HPs, OS/2, Sun OS, Linux, BSD Unix, IBM PC-MSDOS, Macintosh including OS X, Windows NT / 9X / 2000 / XP / Server.

Object-Oriented Frameworks

WLIS, TIS, Web-based Applications, Financial Modeling Tool, .NET Frameworks

Professional Organizations

1998-present         The Hillside Group

1997-present         Association for Computing Machinery (ACM)

Professional Activities

2007                        Programming Committee Member, OOPSLA ‘07, Montreal, Canada.

2007                        Programming Committee Member, PLoP ‘07, Monticello, Illinois.

2007                        Programming Committee Member, IFS ‘07, Germany.

2007                        Programming Committee Member, SugarLoaf PLoP ‘07, Brazil.

2007                        Adaptive Object Model Presentation, ENEI 2007, Portugal.

2006                        Programming Committee Member, OOPSLA 2006, Portland, Oregon.

2006                        Programming Committee Member, PLoP 2006, Portland, Oregon.

2005                        Programming Committee Member, SugarLoaf PLoP ’05, Brazil.

2005                        Attendee and Tutorial, OOPSLA ’05, San Diego, California.

2005                        Attendee and Tutorial, ECOOP ’05, Stockholm, Sweden..

2005                        Programming Committee Member, PLoP ’05, Monticello, Illinois.

2004                        Conference Coordinator for Allerton, PLoP ’04, Illinois.

2004                        Attendee, Chili PLoP ’04, Carefree, Arizona.

2004                        Programming Committee Member and Paper Presentation, SugarLoaf PLoP ’04, Brazil.

2004                        Programming Committee Member, OOPSLA 2004, Vancouver, Canada.

2004                        Attendee and Paper Presentation, ECOOP ’04, Norway.

2003                        Attendee and Paper Presentation, ECOOP ’03, Germany.

2003                        Programming Committee Member, OOPSLA ’03, Anaheim.

2003                        Attendee and Paper Presentation, SugarLoaf PLoP ’03, Brazil.

2002-2004               Programming Committee Member, PLoP, Illinois.

2002                        Programming Chair, SugarLoaf PLoP in Brazil

2002                        Attendee and Paper Presentation, World Computer Conference, Montreal

2002                        Attendee and Paper Presentation, WICSA3

2002                        Attendee and Paper Presentation, OOPSLA ‘02, Seattle

2001                        Attendee and Paper Presentation, ECOOP ’01, Hungary.

2000                        Attendee and Paper Presentation, OOPSLA ’01, Tampa Bay

2000                        Attendee and Paper Presentation, OOPSLA ’00, Minneapolis

2000                        Attendee and Paper Presentation, ECOOP ’00, France

1998                        Conference Chair, PLoP ‘98

1993-Present         Co-founder and Member, Software Architecture Group (UIUC Patterns)

Consulting History

2007-                       Innovative Professional Solutions, Inc. Refactoring Consultant
2004-                       Comac Smalltalk Systems Engineer and Consultant

2004-                       CSE Consultant

2003-                       Comac Smalltalk Systems Engineer and Consultant

2002-                       Cincom Systems Consultant

2000-                       Caterpillar PPRD Architecture Design, Mentoring, and Review

Expertise

Adaptive Object-Models – Adaptive Object Models (www.adaptiveobjectmodel.com) makes it easier for systems to adapt to new rules, policies, and features without programming.  Joe has done pioneering research in this area and has published these results at various Object Oriented and Software Engineering conferences.  These publications can be found at the abovementioned website.

Patterns – Joseph Yoder also offers unparalleled expertise in design patterns.  Patterns distill recurring architectural, structural, and functional motifs employed by experienced designers when they construct their systems.  Patterns have been proven to greatly facilitate the development process and give analysts, designers, and developers a common design vocabulary. 

Lightweight Methodologies – Joe has been working with objects for around fifteen years, and this experience has exposed him to the lightweight, nimble, agile style of development that emerged from this community.  He is primarily a proponent of a modern, lightweight, incremental, evolutionary object-oriented development process based on proven practices that have been cultivated in object-oriented development circles for nearly thirty years.  Contemporary manifestations of some of these practices include James Highsmith’s Adaptive Development, Alistair Cockburn’s Crystal development, the SCRUM model, and Martin Fowler’s “New Method”.  Perhaps the best known of these methods is Beck’s eXtreme Programming methodology.  Our approach utilizes a number of the practices that Beck advocates, such as collaboration, testing, feedback, and adaptation.  This development process has especially proven very useful for object-oriented design and web-based applications.

Web-Based Experience – Joe has been involved with the web since Mosaic emerged from NCSA.  He has built a variety of object-oriented web-based applications, employing a wide range of different technologies.  He also has extensive academic and commercial website design and implementation experience.

Framework evolution – Joe has been involved with some of the groundbreaking work in the area of framework and object evolution.  He has applied these insights he has cultivated from frameworks for a variety of domains. The results of his work can be found at:                http://www.joeyoder.com/Research/Frameworks.

Reuse – Reuse is often touted as one of the benefits of object-oriented technology.  However, merely using object-oriented languages and tools will not make one’s system reusable.  It takes a gift for abstraction, patience, commitment, and experience to glean reusable classes, components and frameworks from the applications that spawn them.  Joe has experience on how to make reuse work.  Joe has built a number of successful object-oriented frameworks, and reused these frameworks to build new applications. 

Enterprise Library – Joe was involved in the architectural design and implementation of IDPH’s Enterprise Library. This consisted of a set of reusable frameworks and components for building Enterprise applications. He also assisted Caterpillar with similar work.

 Security and Persistence – Joe has some particular expertise in this area, and have incorporated our insights into a number of systems, including systems for IDPH and Caterpillar.  Joe’s work in this area has been published and validated as proven techniques in Industry.

Leadership and Entrepenuerial Experience – Joe has been involved in forming and successfully operating many different business models. This allowed him to lead groups of employees into specified business goals. His leadership has been made possible by his understanding of business principles and the ever changing landscape of technology.

Summary of Related Projects

The following is a list of related projects that Joe has been involved with.  The projects presented are related medical, web-based, and object-oriented applications.

Medical Systems

AbdoExam - An Interactive Graphical and Textual Abdominal Examination Record System developed as a prototype to research ways to assist the physician during their examination.  The design and implementation used object-oriented and hypertext techniques.

MEDIGATE - The MEDIGATE System (Medical Examination Direct Iconic and Graphic Augmented Text Entry System) is a computer enhanced interactive graphic and textual record of the findings from physical examination designed to provide ease of user input and to support organization and processing of the data characterizing these findings.  The design of this system employees an object-oriented approach through the direct manipulation of graphical objects integrated with hypertext and semantic networking technologies to build a system that is more natural to the user.  The results of this system were written up as Joe’s Masters Thesis.

MEDISTAT - MEDISTAT is designed to record and help interpret laboratory results, more specifically pathology results.  The application incorporates graphical pattern matching along with some primitive diagnostic capabilities.  Object-oriented design and implementation and hypertext techniques are used throughout to provide for easy ways to build the diagnostic application to the needs of individual users.

Ragged Edge Health Risk Appraisal - This video game for junior-high or high school health education classes was mentioned by the Wall Street Journal on June 21, 1989.  It is a real-time non-prescriptive health education video game, which demonstrates (but does not preach) the effects of health behavior choices on undesirable outcomes such as mortality, disfigurement, or even the loss of a driver's license.

Aids Health Risk Appraisal - The AIDS/HIV Health Risk Appraisal is a confidential interactive risk communication computer program designed to answer: "What is the probability that I have ever been exposed to HIV, and do I need a blood test?" and "What is the probability that I have been exposed to HIV in the last year, and how do I reduce that probability in the next year?"

Blood Bank Analysis Tool - The Blood Bank Analysis System is a computer-based decision support tool for blood banks and the blood banking industry to assist in estimation of the medical, economic, legal and policy consequences of current vs. alternative screening test sequences for human immunodeficiency virus (HIV) and for hepatitis markers in donated blood.  This system was designed and implementation using object-oriented techniques and languages and was deployed on Windows.

Newborn Screening - This is a project by the Illinois Department of Public Health to provide a computerized system to help support the screening of newborns.  There are a few genetic diseases that if observed in the very early years of the life of a baby, they can be treated and the individual can live a normal life.  This is an object-oriented system that is being developed in VisualAge Smalltalk.  Work is being done for developing Enterprise objects that can be used as the building blocks for quite a few other projects.

Refugee System - This is a project by the Illinois Department of Public Health to provide a computerized system to help support the screening of refugees as they enter the country.  There are different medical observations and follow-ups that need to be done when a new refugee enters the state and this system supports the collection of those observations along with the necessary follow-up.  This is an object-oriented system that was developed in VisualAge Smalltalk using en enterprise framework.  This system interfaces with a DB2 database for persisting the collected values.

Food Drug and Dairy System - This is a project by the Illinois Department of Public Health, which is replacing and enhancing their mainframe systems for inspecting and following up with food, drug and dairy farms and manufacturers.  This is an object-oriented system that was originally being developed in VisualAge Smalltalk using an en enterprise framework.  This system interfaces with a DB2 database for persisting the collected values and for reporting.

Object-Oriented Systems (in addition to some of the above mentioned medical systems)

Wheel Loader Information System - We have developed a large scale X-window program that accesses a relational database system for keeping track of the specifications of equipment for Caterpillar.  A metadata environment was created for generating the UIMX, Oracle, and C code that was then compiled based upon the descriptive metadata.  This allowed for major changes to the code.  A new table could be added to the specification database without writing and debugging tons of code since all you had to do was update the metadata describing the mapping into the real database and re-generate the application.  The primary limitation was that it could not be done at run-time and compile time was starting to become very lengthy.  During the technology transfer phase, Smalltalk was chosen as the language to allow for a more dynamic generation of the GUIs and the mappings to the database.

Scenario Planning Tool - Scenario Planning is being studied as a potential tool to assist decision-makers be prepared for upcoming events.  A scenario is a story of what might happen; possible elements are world trade, oil/commodity prices, political/economic stability, and productivity.  This project was developed using ParcPlace VisualWorks and GemStone.

Financial Modeling Framework – This is a fairly large financial modeling project for Caterpillar.  The main result (from the point of view of Object-Oriented Solutions) is a framework for financial modeling.  It lets you quickly build applications that examine financial data stored in a relational database and produces profit and loss statements, balance sheets, detailed analysis of departments, sales regions, and business lines, with the ability to drill down until you hit individual transactions.  Metadata is used extensively for storing your business rules in a database.

Innoverse - Innoverse is a black-box framework for telecommunications billing developed by ClearSystems.  Innoverse makes it possible to quickly produce billing systems for all kinds of telecom service including cellular, PCS, local number portability, conventional local and long distance, and Immarsat satellite services.  It is developed under ParcPlace Smalltalk and is integrated with Versant.  It was developed using the ENVY environment.  Metadata was used extensively for storing the rules in such a manner that a new application could be built with much less effort than normally.

Packaging Tool - The Packaging Tool is a VisualWorks Smalltalk class library that provides structures for constructing and configuring software packages as basic components of applications.  When building an image for either a run-time application or a development environment, patches, extra utilities, commercial add-ons, and modules for the application need to be filed in.  These code segments often make use of classes and methods not in the base VisualWorks image.  To ensure that all the code is filed in the right order, dependencies between the code pieces need to be established.  This can be accomplished by grouping the code segments into packages and setting up dependencies between the packages.  Building a customized image then just requires specifying which packages are desired.  The Packaging Tool provides a simple interface for specifying which packages are needed with any dependencies (on other packages) they may have.

Order Fulfillment System – This C# .NET project involves the incorporation of Adaptive Object-Model technology for describing and building invoices to adapt to evolving customer requirements.  The result is an invoicing domain-specific language that allows users to dynamically describe new invoicing rules and adapt to these changing requirements. Additional work has included conversion of existing warehouse applications into Microsoft Windows .NET C# applications running on SQL Server 2000, for a medium-sized US document management and order fulfillment company.  We also worked on a C# .NET project involving the incorporation of Adaptive Object-Model technology for describing and building order imports to adapt to evolving customer requirements.

Web-Based Systems

Caterpillar University Relations (CUR) - CUR is a web-application that provides a web interface to all information pertaining to Caterpillar university relations. It provides Caterpillar employees information about the areas of research available at university partners and the relationship between Caterpillar and its partners. CUR provides Caterpillar employees with the most up to date information by providing access to live data queried from a Microsoft Access database.

Task Management - Task Management automates task scheduling and assignment, thus making it so that projects can become more organized. It is a tool that has allows for the task to be dynamically created and organized, prioritized, and followed up upon. There is an administrative module that includes basic security.

Tutorial Builder - Tutorial Builder is a generic web-application builder that provides for a web-based graphical means for making a web-based tutorial without writing any HTML pages or CGI code. It is a tool that has allows for the end-users to create a hierarchical listing of web-pages that can be a tutorial, product information, or just about anything. There is an administrative module that includes basic security.

Java Image Scroller - Java Image Scroller is a JAVA program that allows for images to be scrolled on the screen and have a URL associated with them. The images and URL's are read from a file thus making it so that the desired behavior can be customized to suite the end-user of the application.

Database Management Tool - The Database Management Tool serves as a bridge between a legacy flat files database and an Oracle database. The DBMT can be used to move any flat files database into an Oracle database. Only existing flat files are currently served by the DBMT, but future releases will allow for a flat files database to be created as well. The DBMT provides a simple, graphical interface which allows people who have no experience with SQL, Oracle, or UNIX to perform database tasks such as loading and deleting data

Java Graph - This dynamic tool allows the user to plot a set of data points on a two-dimensional Cartesian Coordinate System. The four different types of plot fitting offered are: Linear, Quadratic, Polynomial of exact degree 3 (P3), Power Law which are added functions which have proved this instrument to be invaluable.

PLoP Registration System - This system is a Java web-application that uses a secure server for taking credit card registrations for the Pattern Language of Programming (PLoP) conferences.  This system is used for conferences World Wide and was developed using the Security and Persistence patterns published by Joseph Yoder and used in both IDPH and Caterpillar systems.  We developed the original web-application in 1995 and have been refining and maintaining the system ever since.

Related Links:

 
Joseph Yoder Home   Webmaster