|
|||||||
|
|||||||
Publications and Presentations Joseph Yoder, Linda Rising, and
Bob Hamner Reza Razavi, Noury Bouraqadi,
Joseph Yoder, Jean-Freançois Perrot, and Ralph Johnson Joseph W. Yoder & Ralph Johnson. Software Architecture System Design, Development and
Maintenance Nicolas Revault & Joseph W.
Yoder. Joseph W. Yoder, Federico Balaguer, & Ralph Johnson.
Joseph W. Yoder, Federico Balaguer, & Ralph Johnson.
Joseph W. Yoder & Reza Razavi.
Joseph W. Yoder & Reza Razavi. Pattern Languages of Programs
Design 4 Brian Foote and Joseph W. Yoder
Joseph W. Yoder and Jeffrey
Barcalow Joseph W. Yoder, Ralph Johnson
and Quince Wilson Joseph W. Yoder, Brian Foote, Dirk Riehle, and
Michel Tilman Brian Foote and Joseph W. Yoder
Brian Foote and Joseph W. Yoder Joseph W. Yoder, Donald F.
Schultz, and Ben T. Williams Brian Foote
and Joseph W. Yoder John Brant and Joseph W. Yoder
Joseph W. Yoder Joseph W. Yoder Joseph W. Yoder Joseph W. Yoder Pattern Languages of Program
Design 2 Brian Foote and Joseph W. Yoder Joseph W. Yoder Joseph W. Yoder Ben T. Williams, Joseph W. Yoder,
and Erik Littell Joseph W. Yoder Ben T. Williams, Joseph W. Yoder,
and Donald F. Schultz Object-Oriented Programming Languages
1992- Smalltalk 1989- C++ 1990- Common Lisp/CLOS 1990- Objective-C 1995- Java 2001- C# Other Programming Languages
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- 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 ProjectsThe 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 SystemsAbdoExam - 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 SystemsCaterpillar 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 | |||||||