Joe's Biography
Joseph W. Yoder is an object-oriented consultant and is working on his Ph.D. with
Professor Ralph Johnson. His focus is currently on object-oriented technology
and how it changes the way software is developed. In particular, he is
interested in how to use and develop
frameworks, which he believes is
a key way of reusing designs and code. He is studying and writing
design
patterns for developing reusable software and domain specific
languages. A detailed resume can be found here.
Joe has worked on the architecture, design, and implementation of
various software projects dating back to 1985. These projects have
incorporated many technologies and range from stand-alone to client-server
applications, multi-tiered, databases, object-oriented, frameworks,
human-computer interaction, collaborative environments,
and domain-specific visual-languages. In addition these projects have
spanned many domains, including Medical
Information Systems, Manufacturing Systems, Medical Examination Systems, Statistical
Analysis, Scenario Planning, Client-Server Relational Database System
for keeping track of shared specifications in a multi-user
environment, Telecommunications Billing System, and Business & Medical Decision Making.
Not only has Joe been working in industry on the above mentioned
items, Joe has also been actively working towards finishing his
Ph.D. at the Univeristy of Illinois.
This has lead to him teach different classes including teaching
Caterpillar and the Illinois Department of Public Health
developers in Object-Oriented Programming and Design principles
(specifically using Smalltalk and Design Patterns), and writing
various papers including being
actively involved with writing patterns. He has made it to every
PLoP
Conference and is the conference chair for
PLoP '98. He
presented a tutorial on his framework research
at OOPSLA
'97. Slides for his tutorial can be found here. Joe is also
planning on presenting a tutorial to Smalltalk Solutions on the
patterns used in mapping your objects to a relational database and is
organizing workshops on metadata pattern mining.
For the last two years Joe has been investigating "visual
languages for business modeling". He is
designing them, using them, and implementing them. This project is aimed at providing
support for decision making during the business process.
Joe believes that in order to see abstractions, you must iterate
through the development process. Architects and designers are usually
not the
domain experts so it becomes important to provide quick feedback loops
for learning the domain from the experts.
Once the basics of a domain have been learned, it is then possible to
see the abstractions and build frameworks that consist of a high-level
domain-specific language. This has lead him to focus on MetaData and how to map objects to a non-object environment.
Frameworks can be both a way of coming up with visual
languages and a way of implementing them, because if you focus on
building something in an Object-Oriented language, then building a
framework for it, then making the framework composable, and then
making a direct manipulation tool for composing applications using a
framework, you will automatically discover a visual language.
Joe is a founding member of The
Refactory, Inc.--a consortium of object-oriented experts dedicated to
helping organizations succeed with objects. This group evolved from Ralph Johnson's
Software Architecture group at the University of Illinois as leading experts in
Refactoring, Objects, E-Commerce, Patterns, eXtreme Programming, and designing
Flexible and Adaptable Systems to meet the needs of changing business
requirements. Joe has ventured into the online e-business arena,
founding a local business internet advertising company called CULocalBiz.com,
with two other members, Mike Brya and Tim Brya. Their site is founded on
the principle that large corporations are pushing the smaller businesses out of the
market. Joe, along with his partners, are working for the
locally owned business, trying to keep them alive in this competitive
age.
Research Interests Include:
Computational Theory, Learning Theory, Human Computer Interaction,
Software Engineering, Theorem Proving,
Computer Supported Cooperative Work,
GroupWare,
Visual Programming
(including grammars and parsing), Expert Systems,
Scenario Planning,
Intelligent User Interfaces (providing intelligent automatic
semantic feedback), Object-Oriented Programming and Databases,
Design of Reusable Software-specifially with the use of
Frameworks,
Domain Analysis and Engineering, MetaData, Mapping Objects, and
Pattern Languages of Programming.
Related Links:
|