Upload
lee-todd
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
A repository-based framework for evolutionary software development
Michel Tilman ([email protected])
MetaData Pattern Mining WorkshopMetaData Pattern Mining WorkshopRalph E. Johnson & Joseph W. YoderRalph E. Johnson & Joseph W. Yoder
University of IllinoisUniversity of Illinois
May 19-21, 1998May 19-21, 1998
Argo
Argo Management of public schools in Flemish
community (Belgium)
Structure Central administration Local boards Schools
Pending re-organization Unknown outcome
Information Technology Plan
End-user applications Database, electronic document and workflow
functionality Common business model Accessible through Internet
High-level application development tools for end-users
Business Process Re-engineering
Example applications
Database applications
Budget
Personnel
Schools inventory
Electronic document management
Documentation center
Legislative texts and parlementary decrees
Technical documentation
Example applications (cont’d)
Support for organizational model
Human Resource Management
Workflow
Central board decision procedure
Mail registration and tracking application
Internet
Discussion forum
Access to central applications
Requirements of end-user tools
Create, query, edit, view, list, print, export data
Import, export, scan, view, print documents
Manage document versions and representations
Search full-text and with thesaurus
Send task assignments and keep track of workflow processes
Requirements of development tools
Flexible
Changing requirements and organization
No hard-wired business model
Minimize coding
Support for iterative development
No throw-away prototypes
Support organizational culture
Global policies vs personalised environments
Deployment
Infrastructure
Windows / Novell / Oracle / cc:Mail
Internet
Object-oriented framework
VisualWorks\Smalltalk
Envy
Traditional data repository
Repository
Employee Name Employee ID Department IDSmith 1280 12Adams 1281 19Washington 1282 12
End-user applications
In addition...
We store the business model and application specifications in a central repository
We provide fully operational end-user, configuration and administration tools that consult the repository at run-time and adapt themselves dynamically to this meta-information
Meta-repository
Meta-repository
End-user tools Configuration and administration tools
Employee
PersonNameId
DepartmentId
Works in
Layout User ApplicationMy layout Tilman DocumentationDefault Documentation
Object model
Application specifications
Argo framework approach
End-user, configuration and administration tools
Object model
Meta-model
Applications, views, queries, rules, processes
Objects
(Meta-)Repository
Employee Name Employee ID Department IDSmith 1280 12Adams 1281 19Washington 1282 12
Building applications
Define or extend object model
Object types, associations and basic constraints
Object behavior
User-defined constraints
Define application environment
Views on shared object model
Business rules
Authorizations, action rules, workflow processes
Building applications
Object model
Repository
Object model Editor
Authorization Editor
Action rule Editor
Workflow process template
Editor
Application, query, layout
Editors
AuthorizationRulesApplications
Workflow process
templatesAction Rules
Example: Mail registration application
ThesaurusTerm
Name
ThesaurusSynonymThesaurusDescriptor
Scope note0..*1 0..*1
SynonymsWorkflowDocument
Creation dateModification date 0..*0..* 0..*0..*
Keywords
OrganizationalUnit
ElectronicDocument
Employee
Name1..*0..*
+Units
1..*
+Members
0..*
IndicateurDocument
Indicateur numberArgo referencePrivate 0..11..1 0..11..1
Atached document
1..1
0..*
1..1
0..*Created by
1..1
0..*
1..1
0..*
Modified by
Demo
Meta-model & constraints (simplified)
MetaObject
DerivedProperty
AssociationPropertyCalculatedProperty AttributePropertyVirtualProperty
AttributeTypeRootTypeDescriptiveProperty
Constraint
Type
PropertyConstraint
Property 1..10..* 1..10..* Property type
Property constraints
AssociationType
ObjectTypeConstraint
ObjectType
ObjectType constraints
supertype / subtypes
Authorization rules
Rule base
Rule = 4-tuple
Agent - Object - Aspects - Rights
Rule evalution Granting / denying / undecided
Inference based on Object type
Priority
Layouts, Queries, Authorization rules
MMObjectType FwSeApplication
OrganizationalUnit
FwSeAuthorisationRule
activeeffectivepriority
FwSeLayoutType
namekey
FwQueryType
namekey
FwSystemEntity
namecreationDatemodificationDatehelpTextencodedContents
1 0..*1 0..* 0..* 0..*0..* 0..*
0..*0..1
0..*0..1
FwSeLayout
default
0..*
1..*
0..*
1..*
FwSeQuery
default
0..*
1..*
0..*
1..*
0..*0..1 0..*0..1
Object behavior
‘ Extended ’ Smalltalk scripting language
Repository access (queries)
Persistent object creation, modification, deletion and locking
Dynamically created accessor methods
No hard-coded classes or methods needed
Authorization control
Uses Smalltalk reflection
Object behavior
MMObjectTypeFwMethodCategory
Name
FwEncodedValue
FwMethod
InstanceSelectorScript
1 0..*1 0..* 0..10..* 0..10..*
0..1
1
0..1
1
Compiled script
Mapping types to classes
Workflow Document
IndicateurDocument
…
Employee
...
FwRuleEvent
FwMenuEvent
FwTimeEvent
…
MMObjectType
...
Object
FwEntity
….
FwRuleEvent
FwMenuEvent
FwTimeEvent
…
MMObjectType
...
Persistent objects
Dynamic list of properties
Cached properties
Selective
Virtual properties
Combine
Proxy pattern
Variable state pattern
Constraints
User-defined
Extended Smalltalk scripting language
Global scope
Semantics
Object type
AND-combination
Transaction states
Execution / pre-commit / commit
Constraints
MMObjectType
FwObjectTypeConstraint
0..*
0..*
0..*
0..*
FwPropertyConstraint FwInterPropertyConstraint
FwConstraintPropertyGroup
Name
0..*
0..*
0..*
0..*
MMProperty
0..*
0..*
0..*
0..*
0..*0..* 0..*0..*
FwEncodedValue
FwConstraint
CommentError messageNameScript
0..1 10..1 1
Compiled script
Event-condition-action rules
Business rules vs additional functionality
Application / object type dependent
Event-condition-action
If the event happens and the condition is satisfied, then execute the action
Script vs high-level rules
Meta-rule to bootstrap
Event types
System events
Generated by transaction operations
create / delete / update operations
execution / pre-commit / commit transaction states
Menu events
Time events Automated tasks
Application events
Script rules
FwUserEventFwSystemEventRole
FwEncodedValue
FwScriptRule
Condition scriptAction script
0..*0..1 0..*0..1
0..1
1
0..1
1
Compiled condition script
0..1
1
0..1
1
Compiled action script
FwRuleEvent
Name
MMObjectType
FwSeApplication
FwRuleCategory
Name
FwTransactionState
Name
FwRule
ActiveCommentCreation dateModification dateName
1
0..*
1
0..*0..*0..1
0..*0..1
0..10..*
0..10..*
0..1
0..*
0..1
0..*
0..1
0..*
0..1
0..*
FwObjectEventFwMenuEvent
GroupLabelSubmenu
FwTimeSchedule
MMProperty
FwPropertyEvent
0..*
0..*
0..*
0..*
Core components
ObjectMemory
FwWin3xDocumentApplicationMgr
FwDocumentApplicationMgr
FwDocumentStorageMgr
cachebackupMediummainStorageMediumdocumentSlots
FwEdmApplicationCore
FwApplicationCore
scrapBookhelp
FwEntityManager
setup()reset()
FwDbApplicationCore
userselectedApplicationscurrentApplicationthesaurussettingslocalPrefsFileruleBase
login()logout()setApplications()
FwEnvironment
authorisationEnabled
FwCoreStoreInt
login()logout()select()
caches
FwStoreMMObjectModel
Object store
FwDocStoreTransaction
FwRelStoredObject
Name
FwRelColumn
FwRuleMgr FwConstraintMgr
FwEntityManager
setup()reset()
FwRelTable 0..*0..*FwRelModel 0..*0..*
FwLoggedTransaction
FwAccessContext FwOracleContext
FwTransaction
newObjectsdeleteObjectslockObjectsoldValues
parent / subtransactions MMObjectModel
FwEventManager
register()unregister()
FwStoreContextFwStore
Abstract query language
FwExpression ()
FwBranchedOperation (head tail)
FwBrancheExpression (current continuations)
FwConstantExpression (value alife)
FwCollectionExpression ()
FwQueryReferenceExpression ()
FwEntityExpression (entityType)
FwGroupExpression (elementsToGroup groupedBy groupsHaving)
FwOperation (operator operands)
FwBinaryOperation ()
FwUnaryOperation ()
FwEmptyOperation ()
FwNegateOperation ()
FwNotOperation ()
FwUpperOperation ()
FwPropertyExpression (entity propertyChain)
FwRecursivePropertyExpression (recurrentIntervals)
FwQueryExpression (queryTypeExpression selectClause whereClause includeSubtypes sort cache streaming bindingContext caseSensitive)
FwSortedExpression (expressionToSort sortedBy)
Query execution
FwQueryExpression
FwSQLStreamer
FwSQLGenerator
FwRelationalModel
FwStoreContext
FwStoreStream
ODBC component
Client
valueIn perform constru getMapping
selec execute
createAnswer
next / upTo
Stepwise structuring
Expliciting common practices
Scripting
...
Examples
Layouts
Display expressions replace scripts
Workflow processes
High-level rules replace scripts
Workflow processes
Process templates
High-level rules, graphical editor
Condition
Query expression
Condition
Object creation / initialization / update
Literals / query expressions / relative expressions / calling scripts
Bootstrapping the framework
Replace hard-wired configuration tools by configured applications
Object model editor
Action rule, object behavior and constraint editors
Query and layout management tools
Extensible meta-model and semantics