lessons Learned
Assumptions
Many Web-based systems that include a significant DBMS component include a
substantial amount of function that can be derived from basic CRUDS methods.
Lessons
- These systems are often highly layered.
- Many of these systems include threads that are orthogonal to the layers
and correspond to basic objects in the application domain (e.g., customer,
product, order).
- The threads are often associated with CRUDS methods at each layer
interface.
- Many applications can be described as a set of Data Objects, including
their relations to one another, and a layered implementation that satisfies
their requirements.
- The objects passed between layers are often DataBeans that correspond to
data objects (e.g., UserBean, ProductBean, OrderBean).
- Layer objects can be generalized as abstract classes that include CRUDS
methods generalized for different types of data and a set of specialized
methods that support specific databean objects.
- Implementations of layered objects that extend the abstract classes can
be generated from templates using well-defined descriptions of the data
objects.
- Well-defined descriptions of layered designs, sufficient to meet
application requirements, can be used to drive the generation process.
- The two descriptions can be used to generate an application embedded in
an IDE and including most configuration and relationship files.
- Doing so provides a test of the adequacy of the two descriptions as a
representation of system design.
- A trade-off exists between the completeness of the generated application
and the amount of time and effort required to program the support system.