35
A repository-based framework for evolutionary software development Michel Tilman ([email protected]) MetaData Pattern Mining Workshop MetaData Pattern Mining Workshop Ralph E. Johnson & Joseph W. Yoder Ralph E. Johnson & Joseph W. Yoder University of Illinois University of Illinois May 19-21, 1998 May 19-21, 1998

A repository-based framework for evolutionary software development Michel Tilman ([email protected]) MetaData Pattern Mining Workshop Ralph E. Johnson &

Embed Size (px)

Citation preview

Page 1: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

Demo

Page 17: A repository-based framework for evolutionary software development Michel Tilman (mtilman@argo.be) MetaData Pattern Mining Workshop Ralph E. Johnson &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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 &

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