Notes
Slide Show
Outline
1
Intellectual Foundations of
UI Application Development
2
Questions to ask when building applications
  • What is the best way to build an application?
  • Is J2EE better than .NET?
  • Where does the business rules approach fit in?
  • Should business rules be implemented in the database or the middle tier?
  • Use Model 1 (traditional) or Model 2 (Model-View-Controller) architecture?
  • Waterfall or Agile techniques in development?
3
You need a framework
  • Need a framework for talking about what an application is.
    • Zachman framework not adequately detailed for discussing questions on previous slide.
    • Framework presented here is a refinement of rows 3 (System Model - logical) and 4 (Technology Model - physical)
    • Further define what is meant by the logical and physical specification of a system.

4
Modeling a system
  • What are we modeling?
    • Computer things
    • Real-world things


  • Erwin and Oracle Designer help build systems.
    • Tables, columns and foreign key constraints.
    • Only helped to solve a small percentage of the problems.


  • Data models do not provide complete information about the objects they model.
    • no process flow
    • No information about how applications interact with objects.
    • Missing information such as “Departments with employees must have at least one manager”
    • Little UI information


  • Modeling grammars limit themselves to what they generate.


5
The Unified Modeling
Language (UML)
  • Suffers from a code-centric philosophy.
  • Designed by object-oriented (OO) programmers with the goal of creating OO programs.
    • IBM’s Rational Rose, UML Data Modeler or Oracle’s JDeveloper modeling tool can be used to generate Java classes.
    • Tools model Java classes or physical system architectures instead of what the system is supposed to do.
    • Grammar is focused on specifying the code, but it does not describe the system from a logical perspective.
6
A different way to think about application development
  • Generate directly from the logical model
    • Make a complete logical model
  • Only use technology specific information where necessary
  • Presentation describes the structure of a formal grammar designed to fully articulate a system, independent of any technology.
7
Pros/Cons of this approach
  • Pros
  • User-friendly
  • User participation
  • Faster, cheaper
  • Maintaining business logic is much easier since all business rules are stored in a repository.
  • Easier and swifter response to changes in technology
  • Generate 99% of system
  •                               Cons
  • Requires discipline and architectural approach
  • Needs designers who are familiar with a rules-based way of thinking.
8
The Taxonomy
  • I. System
    • A. Logical
      • 1. Object
        • a. Structure
        • b. Process
        • c. Validations
      • 2. UI
        • a. Model
          • i. Structure
          • ii. Binding to objects
        • b. View
          • i. Structure
          • ii. Logic
          • iii.Presentation
        • c. Controller
9
System/System Interaction
  • First level of the taxonomy
    • Systems and the interactions between them
    • Traditional (pre-SOA) practice of providing database links between systems is intellectually unsound.
    • Systems should be isolated from the ways in which they communicate.
  • Many systems can be isolated into several systems that have their inter-system communication separated out.
    • Example: Human Resources system
      • Users fill out images of paper forms on their computers that are then uploaded into the database.
      • Each form can be considered as an isolated system that generates an XML file.
      • These files are then sent to the main system for processing.  In this way, the logic of the forms is isolated from the rest of the system.
10
Logical/Implementation
(Both System and System Interaction)
  • Not Designer-like Logic/Physical
  • Specify logical rules at the logical level
    • ONLY additional rules at Physical level
  • For example, in data model
    • Logical -- Class, attribute, association
    • Physical – Generation algorithm, schema organization.
      • NOT Table, column names
  • Rules are the system – mostly
11
Logical/Implementation
in products
  • Few product architectures (even ones with an expressed “business-rules based” philosophy) embrace this idea.
  • Most products ignore this idea entirely and straddle the fence.
    • JDeveloper
    • ILOG
    • Fair Isaac’s Blaze Advisor
    • Code generators
  • Tools that cater explicitly to the system architect separate loosely coupled logical and physical
    • Oracle Designer
    • IBM’s Rational Rose
12
System.Logical.Objects
vs. System.Locigal.UI
  • Specify object rules first
  • Only specify ADDITIONAL UI rules
  • Object rules
    • Everything independent of representation
    • Structure, process, data validation
  • UI rules
    • Display order
    • What auto populates when I open the application
13
System.Logical.Object
  • Everything about the objects
    • Structure
    • Process
    • Data Validation
  • Where most of the design of the system takes place
    • Should be the core of thinking about application development.
    • Traditionally business rules about the objects are not even captured coherently let alone coded so they are clearly attached to the objects.
14
System.Logical.UI
  • Object rules are not enough to generate a system
    • Possible to generate an entire default user interface based solely upon knowledge of the associated objects.
    • What is generated will not be particularly user-friendly.
  • Sample object rules
    • What areas of the screen are automatically populated when the screen opens
    • Whether or not rules are validated when tabbing out of a field
15
System.Logical.Object
  • Object rules can be subdivided into:
    • Structural
    • Process
    • Data Validation
  • Rules by their nature do not divide into these three classifications.
  • For any given rule, most convenient to articulate it using one particular mechanism
  • Most rules can be articulated using more than one mechanism.
16
System.Logical.Object.Structural
  • Describe the static nature of objects in the system.
    • What are the objects of interest?
    • What are the attributes/associations associated with them?
  • UML Class diagrams (with some extensions) are better suited for structural modeling than ERDs.
  • Structural rules include a much broader range of information than that ERDs:
    • Derived attributes
    • Objects defined using other objects (to generate database views)
    • Audit, security, and history requirements
    • Default object display
    • Triggering events based on Insert, Update, and Deletion of objects or attributes
17
Structural Rules
18
System.Logical.Object.Process (1)
  • Process rules define the process flow of an object from one state to another
    • Objects have more than one state
      • Financial health
      • Physical health
  • Declarative rules won’t work
    • Too many rules  (10,000 – 100,000)
    • Rules interact
  • Traditional State Transition Engine (STE) diagrams or flowcharts are similarly hard to manage.
    • Flowcharts are often harder to read than the program code itself.
19
System.Logical.Object.Process (2)
  • Solution to making an STE work is to embed some logic in the state itself.
    • Allows the number of states to remain manageable.
    • View the state from the users’ perspective as being a desk in an office with an inbox and an outbox.
    • Richer object states drastically reduce the required number of states used to describe a process.
  • Formal structure used is to add the idea of an “event” on a state (like a database trigger on a table).
    • When event is triggered, actions can be executed.
    • Rules can be attached to an event to prevent it from occurring.
  • The process flow defines the allowable states for a particular class of objects.
20
System.Logical.Object.Process
21
     System.Logical.Object.DataValidation
  • Is the object valid in this context and what should be done if it isn’t?
  • System may contain hundreds of data validation rules.
  • Always enforced or contingently based upon some condition or state?
  • May only require looking at the object being validated or accessing other objects.
  • Failure may trigger warning or prevent data modification.
22
    System.Logical.Object.DataValidation Grammar
  • Difficulty is in creating a grammar to help specify the rules.
    • Natural language is not precise enough.
    • Solution is to place the rules at the object level but support an Object Constraint Language (OCL)-like syntax that allows you to validate across classes.
    • Rule to say that a department must have at least one employee (in the standard EMP/DEPT 1-to-many model) would be written as:
        • :_child.emp.count >= 1
  • This grammar can be easily extended to support 99% of all rules encountered.
23
System.Logical.Object.DataValidation Model
24
System.Logical.UI
  • Once the object rules are collected, there are some additional rules required to specify the UI.
  • Use MVC
    • Model
      • Structure
      • Binding to objects
    • View
      • Structure
      • Logic
      • Presentation
    • Controller
25
System.Logical.UI.Model
  • Just point to elements in Object.structure model
  • Structural rules at the object level are quite sophisticated:
    • Standard views
    • Views that are dynamically altered or generated
  • Does not preclude a “thick” UI model level for implementation
    • Structure of the UI model should be defined at the object-level
26
UI Model Specification
27
System.Logical.UI.View
  • View Rule types
    • Structural (the elements and how are they grouped)
      • Simple
      • Define the UI elements (fields, buttons, etc.) and how they are grouped and bound to the UI model
    • Logical (what happens when a screen opens, or a button is pressed)
      • Complex
      • Event-Condition-Action ECA
    • Presentation (how and where the elements are displayed).
      • Mainly governed by style sheet/generator logic
      • Order, placement
28
ECA
Architecture
Model
29
System.Logical.UI.Controller
  •                                   (Aren’t we done YET????)
  • STE-style process flow for pages
    • Event Listener model
  • Has not been built yet
30
Physical Specification
of a System
  • Mainly a generator thing
  • Some technology specific rules
  • Have to decide on an implementation strategy
    • How to do UI model objects?
  • UI presentation technologies are very different (moderated by thick DB approach)
    • Forms
    • JSP/Struts
    • Faces
31
System.Interaction.Logical (Mapping)
  • Defined by rules associated with data migration (ETL), web services and similar situations where one set of objects must be mapped to a second set.
    • System interaction rules can also define how the various systems map to the virtual operational data store (VODS).
  • Typical mapping support
    • Take one source object class at a time and describe how it can be transformed to a target class using a process flow metaphor.
    • Informatica and Oracle Warehouse Builder use this approach.
  • Alternative method
    • Describe complex sets of information in a master-detail structure and then describe how to map that complex structure.
      • Does not require a process flow
      • Usually results in code generation that runs more efficiently.
32
Mapping
 Model
33
Conclusions
  • The taxonomy can be used as a way to talk about applications, application development environments and development architecture.
    • “Let’s first talk about systems then discuss how to make them integrate”
    • “That isn’t an object rule. That is a UI thing. We are focusing on the object rules right now.”
  • This presentation serves as a foundation for the architectural discussion surrounding application development.
34
The J2EE SIG
  • Co-Sponsored by:


35
About the J2EE SIG
  • Mission: To identify and promote best practices in J2EE systems design, development and deployment.
  • Look for J2EE SIG presentations and events at national and regional conferences
  • Website: www.odtug.com/2005_J2EE.htm
  • Join by signing up for the Java-L mailing list:
    • http://www.odtug.com/subscrib.htm
36
J2EE SIG Member Benefits
  • Learn about latest Java technology and hot topics via SIG whitepapers and conference sessions.
  • Take advantage of opportunities to co-author Java papers and be published.
  • Network with other Java developers.
  • Get help with specific technical problems from other SIG members and from Oracle.
  • Provide feedback to Oracle on current product enhancements and future product strategies.
37
Share your Knowledge:
Call for Articles/Presentations
  • Submit articles, questions, … to
  • IOUG – The SELECT Journal            ODTUG – Technical Journal
  •           select@ioug.org                                  pubs@odtug.com
38
Dulcian’s BRIM® Environment
  • Full business rules-based development environment
  • For Demo
    • Write “BRIM” on business card
  • Includes:
    •  Working Use Case system
    • “Application” and “Validation Rules” Engines
39
Contact Information
  • Dr. Paul Dorsey – paul_dorsey@dulcian.com
  • Dulcian website - www.dulcian.com