A repository-based framework for evolutionary software development Michel Tilman ([email protected])...
Transcript of A repository-based framework for evolutionary software development Michel Tilman ([email protected])...
![Page 1: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/1.jpg)
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
![Page 2: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/2.jpg)
Argo
Argo Management of public schools in Flemish
community (Belgium)
Structure Central administration Local boards Schools
Pending re-organization Unknown outcome
![Page 3: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/3.jpg)
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
![Page 4: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/4.jpg)
Example applications
Database applications
Budget
Personnel
Schools inventory
Electronic document management
Documentation center
Legislative texts and parlementary decrees
Technical documentation
![Page 5: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/5.jpg)
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
![Page 6: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/6.jpg)
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
![Page 7: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/7.jpg)
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
![Page 8: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/8.jpg)
Deployment
Infrastructure
Windows / Novell / Oracle / cc:Mail
Internet
Object-oriented framework
VisualWorks\Smalltalk
Envy
![Page 9: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/9.jpg)
Traditional data repository
Repository
Employee Name Employee ID Department IDSmith 1280 12Adams 1281 19Washington 1282 12
End-user applications
![Page 10: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/10.jpg)
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
![Page 11: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/11.jpg)
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
![Page 12: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/12.jpg)
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
![Page 13: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/13.jpg)
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
![Page 14: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/14.jpg)
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
![Page 15: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/15.jpg)
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
![Page 16: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/16.jpg)
Demo
![Page 17: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/17.jpg)
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
![Page 18: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/18.jpg)
Authorization rules
Rule base
Rule = 4-tuple
Agent - Object - Aspects - Rights
Rule evalution Granting / denying / undecided
Inference based on Object type
Priority
![Page 19: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/19.jpg)
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
![Page 20: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/20.jpg)
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
![Page 21: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/21.jpg)
Object behavior
MMObjectTypeFwMethodCategory
Name
FwEncodedValue
FwMethod
InstanceSelectorScript
1 0..*1 0..* 0..10..* 0..10..*
0..1
1
0..1
1
Compiled script
![Page 22: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/22.jpg)
Mapping types to classes
Workflow Document
IndicateurDocument
…
Employee
...
FwRuleEvent
FwMenuEvent
FwTimeEvent
…
MMObjectType
...
Object
FwEntity
….
FwRuleEvent
FwMenuEvent
FwTimeEvent
…
MMObjectType
...
![Page 23: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/23.jpg)
Persistent objects
Dynamic list of properties
Cached properties
Selective
Virtual properties
Combine
Proxy pattern
Variable state pattern
![Page 24: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/24.jpg)
Constraints
User-defined
Extended Smalltalk scripting language
Global scope
Semantics
Object type
AND-combination
Transaction states
Execution / pre-commit / commit
![Page 25: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/25.jpg)
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
![Page 26: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/26.jpg)
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
![Page 27: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/27.jpg)
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
![Page 28: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/28.jpg)
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..*
![Page 29: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/29.jpg)
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
![Page 30: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/30.jpg)
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
![Page 31: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/31.jpg)
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)
![Page 32: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/32.jpg)
Query execution
FwQueryExpression
FwSQLStreamer
FwSQLGenerator
FwRelationalModel
FwStoreContext
FwStoreStream
ODBC component
Client
valueIn perform constru getMapping
selec execute
createAnswer
next / upTo
![Page 33: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/33.jpg)
Stepwise structuring
Expliciting common practices
Scripting
...
Examples
Layouts
Display expressions replace scripts
Workflow processes
High-level rules replace scripts
![Page 34: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/34.jpg)
Workflow processes
Process templates
High-level rules, graphical editor
Condition
Query expression
Condition
Object creation / initialization / update
Literals / query expressions / relative expressions / calling scripts
![Page 35: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &](https://reader036.fdocuments.us/reader036/viewer/2022062421/56649e055503460f94af1c1d/html5/thumbnails/35.jpg)
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