Project Objectives and Goals
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.
Long Term Impact
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.
*********************************************
The J2EE architecture, in general, and the WebSphere architecture, in particular, are driven by the technology. They support multi-layer designs that are based on specific technologies, such as Session and Entity EJBs; however, it is these implementation layers that comprise the conceptual layers in which system designs are cast. This circularity of reason means that an individual must first implement a J2EE layered design in order to understand the concepts and resources J2EE offers for designing and building such systems.
This difficulty can be easily overcome by simply having students make two "passes" through the architecture -- once with a non-trivial but small "exercise" design that includes all of the basic layers and a second, more substantial project that incororates more complex features. The only issue is the time such an approach takes