IBM
Faculty awards nomination

IBM Faculty Awards are intended to recognize outstanding achievement and encourage exploratory projects of interest to IBM.

All nominations for these awards must be submitted by university Faculty Members to be considered for an award.

Please note: Once submitted you will be unable to return to your nomination. Saving this nomination will allow you to return later using your URL and password. To retain a copy of lengthy answers you may submit, it is recommended that you use a word processing application to prepare the text. You can then do a copy/paste into the appropriate field.

The fields indicated with an asterisk (*) are required to complete this transaction; other fields are optional. If you do not want to provide us with the required information, Please use the Back button on your browser, or close the window or browser session that is displaying this page, to return to the previous page.

Two people should not attempt to edit this document at the same time.

Faculty awards nominee information
Please tell us about yourself in this section

Nominee information provided will not be used for any purpose beyond the scope of the IBM Faculty Awards program.

John
Smith
jbs@cs.unc.edu
http://www.cs.unc.edu/~jbs
Department of Computer Science
University of North Carolina
Chapel Hill
.
NC
United States
27599-3175
919-962-1792
919-962-1799
University of North Carolina at Chapel Hill(United States)
Computer Science
Jan
Prins
prins@cs.unc.edu

Selected Curriculum Vitae

John B. Smith

Professor
Department of Computer Science
University of North Carolina
Chapel Hill, NC 27599-3175
919-962-1792 (office)
919-962-1799 (fax)
919-967-2001 (home)
e-mail: jbs@cs.unc.edu
url: http://www.cs.unc.edu/~jbs

Education
* B.A. The University of the South (Sewanee), Mathematics, 1962.
* M.A. The University of South Carolina, English, 1964.
* Ph.D. The University of North Carolina, English, 1970.

Professional Employment
* The University of North Carolina
o 1995 - present Professor of Computer Science
o 1984 - 1995 Associate Professor of Computer Science
* The Pennsylvania State University
o 1974 - 1983 Associate Professor of English
o 1970 - 1974 Assistant Professor of English
o 1970 - 1977 Research Consultant, Computation Center

Recent Teaching
* Web Services (Comp 190),
Fall, 2002.
* Enterprise Computing (Comp 190 [119]),
Fall: 2004, 2003, 2001, 2000.
* Advanced World Wide Web Programming (Comp 118),
Spring: 2005, 2004, 2002, 2001, 2000, 1999, 1998.
* Introduction to WWW Programming (Comp 117),
Fall: 2002, 1999, 1998, 1997, 1996.
* The World Wide Web: What, How, & Why (Comp 006),
Spring, 2000.

Grants/Contracts/Awards
* IBM Equipment Grant to support J2EE and Web Service Courses and
Research, 2002, $80,000 (shared).
* IBM Equipment Grant to support J2EE and Enterprise Computing Courses
and Research, 2001, $80,000 (shared).
* National Science Foundation, Adapting to Advanced Computer Systems:
An Experimental Study of Computer-Mediated Cognition, (IRI-9202253),
9/1/93 - 8 /31/96, $211,942.
* National Science Foundation, Building and Using a Collaboratory:
A Foundation for Supporting and Studying Group Collaborations,
(IRI-9015443), 9/1 /90 - 6/30/95, $950,000, including supplement.
* IBM Corporation: Shared University Research Grant, A Hypermedia
Environment for Software Development, (#866), 9/1/89 - 8/31/92, $467,932.
* National Science Foundation, An Environment for Developing and Using
Cognitive Grammars to Study Human-Computer Interaction, (IRI-8817305),
2/15/89 - 7/31/90, $149,756.
* National Science Foundation, Hypertext '87 Workshop (IRI-8715704), 1987,
$19,176.
* Army Research Institute, An Experimental Study of Writers' Cognitive
Strategies Using Advanced Computer Tools (MDA-903-86-C-0345),
10/20/86 - 9/19/ 89, $435,874.
* National Science Foundation, Cognitive Strategies for Writers Using
Advanced Computer Tools (IRS-8519517), 3/1/86 - 8/31/88, $259,970.
Supplement, Research Experience for Undergraduates, $8,000.

Selected Web Publications
* Web Services (http://www.cs.unc.edu/Courses/comp190-f02/)
* Enterprise Computing (http://www.cs.unc.edu/Courses/comp119-f04/)
* Advanced WWW Programming (http://www.cs.unc.edu/Courses/comp118-s04/)
* Introduction to WWW Programming (http://www.cs.unc.edu/Courses/comp117-f02/)
* A Strategic Method for Writing (http://www.cs.unc.edu/~jbs/sm/)
* On-Line Lessons in Java and Web-based Programming
(http://www.cs.unc.edu/Courses/jbs/lessons/)

Selected Print Publications
* Smith, J.B. (1994), Collective Intelligence in Computer-Based Collaboration.
Hillsdale, NJ: Laurence Erlbaum Associates.
* Shackelford, D.E., Smith, J.B.; & Smith, F.D. (1993), "The Architecture and
Implementation of a Distributed Hypermedia Storage System," Proceedings of
Hypertext '93, New York: ACM Press, 1-13.
* Smith, J.B.; Smith, D.K.; & Kupstas, E. (1993), "Automated Protocol Analysis,
" Human-Computer Interaction, 8, 2 (1993), 101-145.
* Jeffay, K.; Lin, J.K.; Menges, J.; Smith, F.D.; & Smith, J.B. (1992),
"Architecture of the Artifact-Based Collaborations System Matrix,"
Proceedings of CSCW '92, New York: ACM Press, 195-202.
* Smith, J.B.; & Lansman, M. (1992), "Designing Theory-Based Systems:
A Case Study," Proceedings of CHI '92, New York: ACM Press, 479-488.
* Smith, J.B.; & Smith, F.D. (1991), "ABC: A Hypermedia System for
Artifact-Based Collaboration," Proceedings of Hypertext '91, New York:
ACM Press, pp 179-192.
* Gauch, S.; & Smith, J.B. (1991), "Search Improvement via Automatic Query
Reformulation," ACM Transactions on Information Systems, 9, 3 (July), 249-
280.
* Smith, J.B.; & Lansman, M. (1989), "A Cognitive Basis for a Computer
Writing Environment," In B.K. Britton & S.M. Glynn (Eds.),
Computer Writing Aids: Theory, Research, & Practice, Hillsdale, NJ: Erlbaum,
17-56.
* Smith, J.B.; Weiss, S.F. and Ferguson, G.J. (1987), "MICROARRAS:
An Advanced Full-Text Retrieval and Analysis System," Proceedings of 1987
ACM International Conference on Research and Development in Information
Retrieval, pp. 187-95.
Revised version published in special issue of Information Processing and
Management.
* Smith, J.B. and Weiss, S.F. (1987), "Formatting Texts Accessed Randomly,"
Software: Practice and Experience, 17, 1, 5-16.

Professional Activities
* Conference Co-chair, CSCW '94.
* Program Committee, CSCW '92.
* Conference Co-chair, Hypertext '87, international workshop held at UNC, fall,
1987.
* Editorial Board, Collaborative Computing, 1994.
* Reviewer, National Science Foundation, 1986-present.
* Reviewer, Software: Practice and Experience, 1986-87.

Community Activities
* Orange County Information Technology Advisory Committee, 1997-present,
chaired first two years.
* Orange Water and Sewer Authority Board of Directors, 1999-present.

Faculty awards nominee technical background and interests
Please tell us about the faculty nominee's technical background and interests in this section
Computer Science
OTHER
OTHER
======Not Selected======
Please specify below up to three areas of technical interest (e.g., XML, Java, VLSI, etc.)
J2EE
Java
Web

Questions
Faculty member appointed more than 5 years of receiving his/her Ph.D.
Eclipse as a Context and Tool for Learning J2EE Architecture and Building
Layered Applications
Eclipse as a Context and Tool for
Learning J2EE Architecture and Building Layered Applications

Submitted by

John B. Smith
Department of Computer Science
University of North Carolina
Chapel Hill, NC 27599-3175
919-962-1792 jbs@cs.unc.edu
http://www.cs.unc.edu/~jbs

Goal

To produce students -- both IT professionals new to this area as
well as college and university students -- who understand J2EE
architecture, can design J2EE layered applications, and implement
those designs using Studio, WebSphere, and DB2. More specifically,
our overall goal is to help students get over the initial
learning curve more quickly so that they can move on to more
extensive design considerations and a more extensive
understanding of J2EE technologies and tools.

Issues and Needs

Context. The issues we are addressing apply to individuals
learning J2EE and related tools, such as WebSphere Studio, in any
context, ranging from intensive time-compressed seminars to
semester-long university courses. These issues apply to IT
professionals -- both within IBM and in outside IT industry -- as
well as college and university students. In the interest of brevity,
we will describe our ideas and our work in the context of a
university setting (UNC), but they should be read in the broader
context.

We offer a three-course sequence in Web-Based systems. The
third course, numbered Comp 119, is concerned with Enterprise
Systems, in general, and J2EE, in particular. We make extensive
use of Studio, WebSphere, and DB2 in that course. A key part of
this course is a student project where teams of 3 or 4 build a non-
trivial J2EE application of their own design. However, it currently
takes students so long to learn the J2EE architecture and
technology they need in order to do reasonable designs, they don't
have sufficient time to implement those designs satisfactorily.

To be more specific: in order to design a J2EE layered system,
students must first understand the J2EE architecture and the
various constructs that it provides, such as Struts, Session and
Entity EJBs, Container-Managed Transactions, Container-
Managed Persistence, EJB-QL, Container-Managed Relations,
DataSources, DB2 connection and interactions, etc. They must
also learn how to use necessary tools, such as WebSphere Studio.
This learning process is best accomplished through a combination
of reading instructional materials (e.g., Brown, et. al, Enterprise
Java Programming with IBM WebSphere), reading J2EE
documentation, and building a simple, exercise-level end-to-end
system that facilitates learning both tools and concepts.

In a university setting, it currently takes students some 6 to 8
weeks to accomplish this preliminary task (similar proportions of
time, or worse, apply to other contexts, such as intensive
workshops). Once students have this understanding and these
skills, they can move on to design methods, project design, and
project implementation. But, trying to do so before, means they
are trying to do something they literally don't understand. The
problem, of course, is that the time it takes to gain this basic,
prerequisite knowledge does not leave sufficient time to gain the
level of knowledge they need for professional practice.

Thus, before students can design a project that will drive their
learning, they must first learn a large portion of it as a prerequisite
-- a catch 22 situation.

Approach

Our project includes three lines of work.

First, we will build code generators that will do most of the work
involved in implementing simple end-to-end applications, thereby
accelerating development of preliminary, exercise-level systems.
Simple applications that rely on a DBMS for persistence are likely
to be based on standard CRUDS methods (Create, Retrieve,
Update, Delete, and Search). Thus, for example, if the design calls
for registration, login, and a simple application such as an
addressbook, a catalog of photographs, a record collection, etc., the
system is likely to include functions for creating, retrieving,
deleting, etc., various types of data stored in separate tables. That
is, CRUDS methods for different data object types. Of course, the
CRUDS method set may be extended for specific applications or to
provide additional function. We are developing superclasses to
support CRUDS methods for the interior layers of a seven-layer
J2EE architecture. Doing so is non-trivial because of different
constraints that exist for the various levels -- e.g., Session EJB
classes can't be abstract -- and, thus, would not be apparent to
someone new to this area. Our code generators will exploit these
superclasses.

Second, we will support a sequence of architectural layers that are
based on more familiar architectural concepts. Currently, layers
are tied to J2EE technologies, such as Struts Actions, Session EJBs,
Entity Beans, and DB Mapping. However, design patterns and best
practices have greatly constrained the use of particular layers for
particular purposes. For example, Session EJBs are normally kept
very "thin," largely providing access control and transaction
support. Similarly, the semantic or business logic is concentrated
in a "mapping" layer between Session and Entity Beans. Thus, we
can speak of View, Control, Access, Transaction, Business, and
Persistence as an alternative. A conceptual model expressed in
terms such as the latter will be more apparent to students and will
enable them to move on to building simple end-to-end applications
more quickly. We will build and test such a model.

Third, we will pull the first two parts of the project together in a set
of Eclipse tools/plugins. Tools will include wizards, dialogs,
automatic code generators, and graphical editors, supporting both
design and implementation. The generated applications will be
based on the CRUDS superclasses, described above, and will allow
the user to select from the default methods as well as add
additional methods that must be fleshed out. The design part of the
project has obvious relation to UML concepts, and we will attempt
to integrate our tools with UML tools.

We will also develop on-line course materials to support learning
and use, which we will make freely available.

Research Emphases

First, building the collection of design tools and code generation
components for the Eclipse and Studio environments will require
some work at the level of advanced development, but other aspects
will require research. We will use conventional tools, such as
wizards and dialogues, but we will also develop novel graphical
tools, including visual design tools that solicit declarative
knowledge. The code generation aspects of our project, including
developing superclasses for some J2EE layers, will also require
innovation.

Second, we briefly sketched an alternative conceptual model for
system design that emphasizes functional layers (e.g., view |
control | domain model | access | transactions | etc. ). One aspect of
our research is to extend this model to account for other design
factors in a way that is both understandable and useful. For
example, a second dimension is object decomposition within a
layer. A third considers how the same object can be conceived in
different ways by different individuals. For example, a customer
or user has one way of thinking of an object ( e.g., an
addressbook), but that same object might be thought of as a Java
Object, a collection of DataBeans, and as a table in a database by
individuals responsible for system design and/or implementation.
Thus, we are attempting to build a conceptual model that will
integrate multiple design dimensions, including functional
layering, object decomposition (within a layer), and a sequence of
conceptual schemas used by different types of users for
understanding design objects.

Third, we will test both our conceptual model and our tools in the
classroom. We will determine whether they help students learn
J2EE more quickly and whether they are able to design projects at
an earlier stage. This research will be based on observation and
feedback, not formal experiments, but we will systematically
collect data and we will consolidate results over multiple groups of
students.

Thus, we expect to learn a great deal about how individuals new to
this area learn to design and build J2EE systems as well as what
kinds of tools and resources can help them gain this knowledge
more quickly and efficiently.

Participants

John B. Smith,
Professor

Diane Pozefsky,
Research Professor and Scientist,
Formerly, IBM Fellow

Kyle Brown,
IBM Senior Technical Staff Member



Overall Goal

To produce students -- both IT professionals new to this area as
well as college and university students -- who understand J2EE
architecture, can design J2EE layered applications, and implement
those designs using Studio, WebSphere, and DB2. More
specifically, our overall goal is to help students get over the initial
learning curve more quickly so that they can move on to more
extensive design considerations and a more extensive
understanding of J2EE technologies and tools.

Instrumental Goals:

1. Build code generators to facilitate building simple end-to-end
J2EE systems by automatically generating code for some J2EE
layers.

2. Develop an alternative conceptual model for J2EE systems
based on familiar functional concepts; incorporate multiple
perspectives of objects for different viewers, ranging from
customers to programmers; and include object decomposition.

3. Build Eclipse plugins/tools to facilitate the J2EE design and
development processes, including tools to elicit declarative
knowledge for code generation and tools that support system
design using the alternative conceptual model listed above.

4. Test tools and models under actual-use conditions for student
projects.

5. Develop on-line instructional materials.
J2EE offers great long-term potential for developing large,
enterprise systems. However, it is in danger of sinking under its
own weight. Ways must be found to enable individuals needing to
learn this architecture and this technology to gain a foothold
quicker and easier. Out tools and our conceptual model could help
then do so.
$40000.
Student assistants
Faculty support for summr research
Travel directly related to project
Scholarly materials and supplies
UNC Department of Computer Science
N
If you have not completed this nomination form and would like to work on it later, you may save it by clicking the Save Draft button. You will be able to re-access your nomination and complete the rest of the questions at a later time by using the same URL you received to access this nomination form.

If you have completed this nomination form, please click the Submit button.

For security reasons, you will be unable to view this document once submitted. We suggest that you print out what is visible in your browser before submitting. After clicking the button, it may take a few minutes to process the application. You will see an acknowledgement when the submission is successful.

This data may be used by IBM or selected organisations to provide you with information about other offerings. To receive this via e-mail or fax, check the first box below. Alternatively, if you would prefer not to receive such information by any means, check the second box.




Do not send email

Do not use information