entwurf das kernmodell eines workflow-management- systems entwurf bernd deterding, christian eilers,...
TRANSCRIPT
![Page 1: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/1.jpg)
Das Kernmodell einesWorkflow-Management-
Systems
EntwurfEntwurf
Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias PfauBernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau
FHDW Hannover 2005FHDW Hannover 2005
![Page 2: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/2.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 3: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/3.jpg)
Einleitung
Umsetzung der Analyse in den Entwurf Architektur-Meetings Festlegung der Programmiersprache Englische Begrifflichkeiten
![Page 4: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/4.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-VorgehensmodellCRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 5: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/5.jpg)
CRC-VorgehensmodellClass, Responsibilities and Collaboration
Eine Karteikarte pro Klasse Karteikarten werden an alle
Gruppenmitglieder verteilt Klassenname, Verantwortlichkeiten und
Beziehungen werden notiert Teammitglieder simulieren die
Kommunikation der Objekte
![Page 6: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/6.jpg)
CRC-VorgehensmodellClass, Responsibilities and Collaboration
Alle Teammitglieder sind am Entwurfsprozess gleichermaßen beteiligt
Unterschiedliche Ansätze führen zu konstruktiven Diskussionen
Ergebnisse sind bereits echte Entwurfslösungen
![Page 7: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/7.jpg)
CRC-VorgehensmodellClass, Responsibilities and Collaboration
![Page 8: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/8.jpg)
CRC-VorgehensmodellClass, Responsibilities and Collaboration
Ergebnisse fließen ein in die... Umsetzung des Klassendiagramms, Erstellung von Sequenzdiagrammen und Verfeinerung des Oberflächenprototyps.
![Page 9: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/9.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
SchichtenarchitekturSchichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 10: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/10.jpg)
Schichtenarchitektur
![Page 11: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/11.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur KlassendiagrammeKlassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 12: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/12.jpg)
Klassendiagramm – Type
name: String
Activ ityType(String)
getConsumees(): Set
removeConsumee(EventType)
addConsumee(EventType)
getName(): String
setName(String)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
ActivityType
UserActiv ityType(String, Collection)
getBusinessObjectOperation(): BOOperation
getRoles(): Collection
setRoles(Collection)
accept(ActivityTypeVisitor)
createNewInstance(): ActivityType
setBusinessObjectOperation(BOOperation)
UserActivityType
SystemActivityType(String, Rule)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
SystemActivityType
name: String
BusinessProcessModel()
createNewInstance(): BusinessProcess
addOriginalEventType(String)
addUserActiv ityType(String, Collection, BOOperation)
addActivityTypeToEventTypeTransition(Activ ityType, EventType)
addEventTypeToActiv ityTypeTransition(EventType, ActivityType)
getAllDefinedBORoles(): Collection
removeEventType(EventType)
removeActiv ityType(Activ ityType)
removeActiv ityTypeToEventTypeTransition(Activ ityType, EventType)
removeEventTypeToActiv ityTypeTransition(EventType, ActivityType)
getStartActivityType(): StartActivityType
setStartActivityType(StartActivityType)
getStopEventTypes(): Set
getEventTypes(): Set
BusinessProcessModel
name: String
EventType(String)
createNewInstance(): Event
getProducers(): Set
addProducer(ActivityType)
removeProducer(ActivityType)
getInverse(): EventType
getName(): String
setName(String)
accept(EventTypeVisitor)
EventType
theModelManager: ModelManager
ModelManager()
saveModel(BusinessProcessModel, AbstractValidity)
createModel(String): BusinessProcessModel
deleteModel(BusinessProcessModel)
editModel(BusinessProcessModel)
selectModel(): BusinessProcessModel
getTheModelManager(): ModelManager
ModelManager
OriginalEventType(String)
accept(EventTypeVisitor)
getInverse(): EventType
OriginalEventType
InverseEventType(String, OriginalEventType)
getInverse(): EventType
accept(EventTypeVisitor)
InverseEventType
handleOriginalEventType()
handleInverseEventType()
«interface»EventTypeVisitor
RevisionManager
«interface»RootObject
«interface»Rule
StartActivityType(String, Collection)
createNewProxyInstance(): ProxyOrActivity
StartActivityType
RolePersistenceAdapter()
RolePersistenceAdapter «interface»Role
ProcessManager
handleSystemActiv ityType(SystemActiv ityType)
handleUserActivityType(UserActiv ityType)
handleStartActiv ityType(StartActivityType)
«interface»ActivityTypeVisitor
«interface»BOOperation
«interface»EditSession
Association
- consumees
*
- producers
*
- businessProcessModel
1
- activityTypes *
- role1..*
- bOOperation0..1
- rule1
- eventTypes*
0..1
- processManager
- start0..1
- businessProcessModel
*
businessProcessModel - editSession
*
- revisionManager1
- inverse
1
- inverse 1
- defaultAssociation
1
![Page 13: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/13.jpg)
Klassendiagramm – Typebene {Detailansicht}
name: String
ActivityType(String)
getConsumees(): Set
removeConsumee(EventType)
addConsumee(EventType)
getName(): String
setName(String)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
ActivityType
UserActivityType(String, Collection)
getBusinessObjectOperation(): BOOperation
getRoles(): Collection
setRoles(Collection)
accept(ActivityTypeVisitor)
createNewInstance(): ActivityType
setBusinessObjectOperation(BOOperation)
UserActivityType
SystemActivityType(String, Rule)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
SystemActivityType
name: String
BusinessProcessModel()
createNewInstance(): BusinessProcess
addOriginalEventType(String)
addUserActivityType(String, Collection, BOOperation)
addActivityTypeToEventTypeTransition(ActivityType, EventType)
addEventTypeToActivityTypeTransition(EventType, ActivityType)
getAllDefinedBORoles(): Collection
removeEventType(EventType)
removeActivityType(ActivityType)
removeActivityTypeToEventTypeTransition(ActivityType, EventType)
removeEventTypeToActivityTypeTransition(EventType, ActivityType)
getStartActivityType(): StartActivityType
setStartActivityType(StartActivityType)
getStopEventTypes(): Set
getEventTypes(): Set
BusinessProcessModel
name: String
EventType(String)
createNewInstance(): Event
getProducers(): Set
addProducer(ActivityType)
removeProducer(ActivityType)
getInverse(): EventType
getName(): String
setName(String)
accept(EventTypeVisitor)
EventType
theModelManager: ModelManager
ModelManager()
saveModel(BusinessProcessModel, AbstractValidity)
createModel(String): BusinessProcessModel
deleteModel(BusinessProcessModel)
editModel(BusinessProcessModel)
selectModel(): BusinessProcessModel
getTheModelManager(): ModelManager
ModelManager
OriginalEventType(String)
accept(EventTypeVisitor)
getInverse(): EventType
OriginalEventType
InverseEventType(String, OriginalEventType)
getInverse(): EventType
accept(EventTypeVisitor)
InverseEventType
handleOriginalEventType()
handleInverseEventType()
«interface»EventTypeVisitor
RevisionManager
«interface»RootObject
«interface»Rule
StartActivityType(String, Collection)
createNewProxyInstance(): ProxyOrActivity
StartActivityType
RolePersistenceAdapter()
RolePersistenceAdapter «interface»Role
ProcessManager
handleSystemActivityType(SystemActivityType)
handleUserActivityType(UserActivityType)
handleStartActivityType(StartActivityType)
«interface»ActivityTypeVisitor
«interface»BOOperation
«interface»EditSession
Association
- consumees
*
- producers
*
- businessProcessModel
1
- activityTypes *
- role1..*
- bOOperation0..1
- rule1
- eventTypes*
0..1
- processManager
- start0..1
- businessProcessModel
*
businessProcessModel - editSession
*
- revisionManager1
- inverse
1
- inverse 1
- defaultAssociation
1
![Page 14: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/14.jpg)
name: String
ActivityType(String)
getConsumees(): Set
removeConsumee(EventType)
addConsumee(EventType)
getName(): String
setName(String)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
ActivityType
UserActivityType(String, Collection)
getBusinessObjectOperation(): BOOperation
getRoles(): Collection
setRoles(Collection)
accept(ActivityTypeVisitor)
createNewInstance(): ActivityType
setBusinessObjectOperation(BOOperation)
UserActivityType
SystemActivityType(String, Rule)
createNewInstance(): ActivityType
accept(ActivityTypeVisitor)
SystemActivityType
name: String
BusinessProcessModel()
createNewInstance(): BusinessProcess
addOriginalEventType(String)
addUserActivityType(String, Collection, BOOperation)
addActivityTypeToEventTypeTransition(ActivityType, EventType)
addEventTypeToActivityTypeTransition(EventType, ActivityType)
getAllDefinedBORoles(): Collection
removeEventType(EventType)
removeActivityType(ActivityType)
removeActivityTypeToEventTypeTransition(ActivityType, EventType)
removeEventTypeToActivityTypeTransition(EventType, ActivityType)
getStartActivityType(): StartActivityType
setStartActivityType(StartActivityType)
getStopEventTypes(): Set
getEventTypes(): Set
BusinessProcessModel
name: String
EventType(String)
createNewInstance(): Event
getProducers(): Set
addProducer(ActivityType)
removeProducer(ActivityType)
getInverse(): EventType
getName(): String
setName(String)
accept(EventTypeVisitor)
EventType
theModelManager: ModelManager
ModelManager()
saveModel(BusinessProcessModel, AbstractValidity)
createModel(String): BusinessProcessModel
deleteModel(BusinessProcessModel)
editModel(BusinessProcessModel)
selectModel(): BusinessProcessModel
getTheModelManager(): ModelManager
ModelManager
OriginalEventType(String)
accept(EventTypeVisitor)
getInverse(): EventType
OriginalEventType
InverseEventType(String, OriginalEventType)
getInverse(): EventType
accept(EventTypeVisitor)
InverseEventType
handleOriginalEventType()
handleInverseEventType()
«interface»EventTypeVisitor
RevisionManager
«interface»RootObject
«interface»Rule
StartActivityType(String, Collection)
createNewProxyInstance(): ProxyOrActivity
StartActivityType
RolePersistenceAdapter()
RolePersistenceAdapter «interface»Role
ProcessManager
handleSystemActivityType(SystemActivityType)
handleUserActivityType(UserActivityType)
handleStartActivityType(StartActivityType)
«interface»ActivityTypeVisitor
«interface»BOOperation
«interface»EditSession
Association
- consumees
*
- producers
*
- businessProcessModel
1
- activityTypes *
- role1..*
- bOOperation0..1
- rule1
- eventTypes*
0..1
- processManager
- start0..1
- businessProcessModel
*
businessProcessModel - editSession
*
- revisionManager1
- inverse
1
- inverse 1
- defaultAssociation
1
![Page 15: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/15.jpg)
Activ ityState()
getBeginTime(): Date
getEndTime(): Date
ActivityState
type: ObjectIdentity
BusinessProcess(ObjectIdentity, UserActiv ity, Set)
getTypeOf(): BusinessProcessModel
addActiv ity(Activ ity)
removeActiv ity(Activ ity)
addEvent(Event)
removeEvent(Event)
getActivatedActiv ities(): Set
getInProgressActiv ities(): Set
isProcessed(): boolean
is InProgress(): boolean
getBeginTime(): Date
getEndTime(): Date
getStartActiv ity(): UserActiv ity
getProcessView(): ProcessView
getTypePersistenceAdapter(): TypePers istenceAdapter
BusinessProcess
type: ObjectIdentity
Activ ity(ObjectIdentity)
consumeEvents()
undoConsumeEvents()
produceEvents()
setInProgress()
setActivated()
setProcessed()
getConsumedEvents(): Set
getProcess(): BusinessProcess
accept(Activ ityVis itor)
getBeginTime(): Date
getEndTime(): Date
getTypeOf(): Activ ityType
Activity
type: ObjectIdentity
open: boolean
Event(ObjectIdentity, Activ ity)
getTypeOf(): EventType
getProducer(): Activ ity
setClosed()
setOpen()
Event
SystemActiv ity(ObjectIdentity)
execute()
evaluateRule(): boolean
getTypeOf(): Activ ityType
SystemActivity
UserActiv ity(ObjectIdentity)
begin(Person)
complete()
rollback()
getTypeOf(): Activ ityType
getPerson(): Person
getNextPredecessorOfType(Activ ityType): ProxyOrActiv ity
UserActivity
observers: Observer
Observable()
register(Observer)
deRegister(Observer)
notifyObservers()
Observable
theProcessManager: ProcessManager
getTheProcessManager(): ProcessManager
getStartActiv ities(): Collection
getActivatedActiv ities(): Collection
getInProgressActiv ities(): Collection
update()
serialize()
deserialize()
addBusinessProcess(BusinessProcess)
getReadSession(): ReadSession
ProcessManager
update()
«interface»Observer
model: BusinessProcessModel
StartActiv ityProxy(BusinessProcessModel)
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(Activ ityType): ProxyOrActiv ity
getTypeOf(): Activ ityType
StartActivityProxy
«interface»ReadSession
RevisionManager
ProcessViewFactory
«interface»ProcessView
serializeProcesses(Collection)
restoreProcesses(): Collection
«interface»ProcessPersistenceAdapter
fi lename: String
serializeProcesses(Collection)
restoreProcesses(): Collection
ProcessPersistenceXStream
XStream
processBeginTime: Date
TypePersistenceAdapter(Date)
getType(ObjectIdentity): Object
TypePersistenceAdapter
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(Activ ityType): ProxyOrActiv ity
getTypeOf(): Activ ityType
«interface»ProxyOrActivity
BusinessProcessState(BusinessProcess)
getBusinessProcess(): BusinessProcess
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
is InProgress(): boolean
BusinessProcessState
Activated()
getBeginTime(): Date
getEndTime(): Date
Activated
begin: Date
InProgress(Date)
getBeginTime(): Date
getEndTime(): Date
InProgress
begin: Date
end: Date
Processed(Date, Date)
getBeginTime(): Date
getEndTime(): Date
Processed
InProgress(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
is InProgress(): boolean
InProgress
Processed(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
is InProgress(): boolean
Processed
Person
ObjectSpace
- s tate
1
- processViewFactory
{order}
1
- businessProcess1
- activ ities1..*
- businessProcess
1
+ events1..*
- s tart 1
- processView
0..1
- typePers istenceAdapter
1
- businessProcess
1
- state
1
- objectSpace
1
- businessProcesses
*
- consumedEvents
*
- producer
1
- person
0..1
- observers
*
- processPers istenceAdapter
1
- readSession1
- revis ionManager
{order}
1
«call»
0..1 - xstream
Klassendiagramm – Instanzebene
![Page 16: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/16.jpg)
Activ ityState()
getBeginTime(): Date
getEndTime(): Date
ActivityState
type: ObjectIdentity
BusinessProcess(ObjectIdentity, UserActivity, Set)
getTypeOf(): BusinessProcessModel
addActivity(Activ ity)
removeActivity(Activ ity)
addEvent(Event)
removeEvent(Event)
getActivatedActivities(): Set
getInProgressActivities(): Set
isProcessed(): boolean
isInProgress(): boolean
getBeginTime(): Date
getEndTime(): Date
getStartActiv ity(): UserActivity
getProcessView(): ProcessView
getTypePersistenceAdapter(): TypePersistenceAdapter
BusinessProcess
type: ObjectIdentity
Activ ity(ObjectIdentity)
consumeEvents()
undoConsumeEvents()
produceEvents()
setInProgress()
setActivated()
setProcessed()
getConsumedEvents(): Set
getProcess(): BusinessProcess
accept(Activ ityVisitor)
getBeginTime(): Date
getEndTime(): Date
getTypeOf(): Activ ityType
Activity
type: ObjectIdentity
open: boolean
Event(ObjectIdentity, Activity)
getTypeOf(): EventType
getProducer(): Activ ity
setClosed()
setOpen()
Event
SystemActivity(ObjectIdentity)
execute()
evaluateRule(): boolean
getTypeOf(): Activ ityType
SystemActivity
UserActivity(ObjectIdentity)
begin(Person)
complete()
rollback()
getTypeOf(): Activ ityType
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
UserActivity
observers: Observer
Observable()
register(Observer)
deRegister(Observer)
notifyObservers()
Observable
theProcessManager: ProcessManager
getTheProcessManager(): ProcessManager
getStartActiv ities(): Collection
getActivatedActivities(): Collection
getInProgressActivities(): Collection
update()
serialize()
deserialize()
addBusinessProcess(BusinessProcess)
getReadSession(): ReadSession
ProcessManager
update()
«interface»Observer
model: BusinessProcessModel
StartActiv ityProxy(BusinessProcessModel)
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
StartActivityProxy
«interface»ReadSession
RevisionManager
ProcessViewFactory
«interface»ProcessView
serializeProcesses(Collection)
restoreProcesses(): Collection
«interface»ProcessPersistenceAdapter
fi lename: String
serializeProcesses(Collection)
restoreProcesses(): Collection
ProcessPersistenceXStream
XStream
processBeginTime: Date
TypePersistenceAdapter(Date)
getType(ObjectIdentity): Object
TypePersistenceAdapter
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
«interface»ProxyOrActivity
BusinessProcessState(BusinessProcess)
getBusinessProcess(): BusinessProcess
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
BusinessProcessState
Activated()
getBeginTime(): Date
getEndTime(): Date
Activated
begin: Date
InProgress(Date)
getBeginTime(): Date
getEndTime(): Date
InProgress
begin: Date
end: Date
Processed(Date, Date)
getBeginTime(): Date
getEndTime(): Date
Processed
InProgress(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
InProgress
Processed(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
Processed
Person
ObjectSpace
- state
1
- processViewFactory
{order}
1
- businessProcess1
- activ ities1..*
- businessProcess
1
+ events1..*
- start 1
- processView
0..1
- typePersistenceAdapter
1
- businessProcess
1
- state
1
- objectSpace
1
- businessProcesses
*
- consumedEvents
*
- producer
1
- person
0..1
- observers
*
- processPersistenceAdapter
1
- readSession1
- revisionManager
{order}
1
«call»
0..1 - xstream
![Page 17: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/17.jpg)
Activ ityState()
getBeginTime(): Date
getEndTime(): Date
ActivityState
type: ObjectIdentity
BusinessProcess(ObjectIdentity, UserActivity, Set)
getTypeOf(): BusinessProcessModel
addActivity(Activ ity)
removeActivity(Activ ity)
addEvent(Event)
removeEvent(Event)
getActivatedActivities(): Set
getInProgressActivities(): Set
isProcessed(): boolean
isInProgress(): boolean
getBeginTime(): Date
getEndTime(): Date
getStartActiv ity(): UserActivity
getProcessView(): ProcessView
getTypePersistenceAdapter(): TypePersistenceAdapter
BusinessProcess
type: ObjectIdentity
Activ ity(ObjectIdentity)
consumeEvents()
undoConsumeEvents()
produceEvents()
setInProgress()
setActivated()
setProcessed()
getConsumedEvents(): Set
getProcess(): BusinessProcess
accept(Activ ityVisitor)
getBeginTime(): Date
getEndTime(): Date
getTypeOf(): Activ ityType
Activity
type: ObjectIdentity
open: boolean
Event(ObjectIdentity, Activity)
getTypeOf(): EventType
getProducer(): Activ ity
setClosed()
setOpen()
Event
SystemActivity(ObjectIdentity)
execute()
evaluateRule(): boolean
getTypeOf(): Activ ityType
SystemActivity
UserActivity(ObjectIdentity)
begin(Person)
complete()
rollback()
getTypeOf(): Activ ityType
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
UserActivity
observers: Observer
Observable()
register(Observer)
deRegister(Observer)
notifyObservers()
Observable
theProcessManager: ProcessManager
getTheProcessManager(): ProcessManager
getStartActiv ities(): Collection
getActivatedActivities(): Collection
getInProgressActivities(): Collection
update()
serialize()
deserialize()
addBusinessProcess(BusinessProcess)
getReadSession(): ReadSession
ProcessManager
update()
«interface»Observer
model: BusinessProcessModel
StartActiv ityProxy(BusinessProcessModel)
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
StartActivityProxy
«interface»ReadSession
RevisionManager
ProcessViewFactory
«interface»ProcessView
serializeProcesses(Collection)
restoreProcesses(): Collection
«interface»ProcessPersistenceAdapter
fi lename: String
serializeProcesses(Collection)
restoreProcesses(): Collection
ProcessPersistenceXStream
XStream
processBeginTime: Date
TypePersistenceAdapter(Date)
getType(ObjectIdentity): Object
TypePersistenceAdapter
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
«interface»ProxyOrActivity
BusinessProcessState(BusinessProcess)
getBusinessProcess(): BusinessProcess
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
BusinessProcessState
Activated()
getBeginTime(): Date
getEndTime(): Date
Activated
begin: Date
InProgress(Date)
getBeginTime(): Date
getEndTime(): Date
InProgress
begin: Date
end: Date
Processed(Date, Date)
getBeginTime(): Date
getEndTime(): Date
Processed
InProgress(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
InProgress
Processed(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
Processed
Person
ObjectSpace
- state
1
- processViewFactory
{order}
1
- businessProcess1
- activ ities1..*
- businessProcess
1
+ events1..*
- start 1
- processView
0..1
- typePersistenceAdapter
1
- businessProcess
1
- state
1
- objectSpace
1
- businessProcesses
*
- consumedEvents
*
- producer
1
- person
0..1
- observers
*
- processPersistenceAdapter
1
- readSession1
- revisionManager
{order}
1
«call»
0..1 - xstream
![Page 18: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/18.jpg)
Activ ityState()
getBeginTime(): Date
getEndTime(): Date
ActivityState
type: ObjectIdentity
BusinessProcess(ObjectIdentity, UserActivity, Set)
getTypeOf(): BusinessProcessModel
addActivity(Activ ity)
removeActivity(Activ ity)
addEvent(Event)
removeEvent(Event)
getActivatedActivities(): Set
getInProgressActivities(): Set
isProcessed(): boolean
isInProgress(): boolean
getBeginTime(): Date
getEndTime(): Date
getStartActiv ity(): UserActivity
getProcessView(): ProcessView
getTypePersistenceAdapter(): TypePersistenceAdapter
BusinessProcess
type: ObjectIdentity
Activ ity(ObjectIdentity)
consumeEvents()
undoConsumeEvents()
produceEvents()
setInProgress()
setActivated()
setProcessed()
getConsumedEvents(): Set
getProcess(): BusinessProcess
accept(Activ ityVisitor)
getBeginTime(): Date
getEndTime(): Date
getTypeOf(): Activ ityType
Activity
type: ObjectIdentity
open: boolean
Event(ObjectIdentity, Activity)
getTypeOf(): EventType
getProducer(): Activ ity
setClosed()
setOpen()
Event
SystemActivity(ObjectIdentity)
execute()
evaluateRule(): boolean
getTypeOf(): Activ ityType
SystemActivity
UserActivity(ObjectIdentity)
begin(Person)
complete()
rollback()
getTypeOf(): Activ ityType
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
UserActivity
observers: Observer
Observable()
register(Observer)
deRegister(Observer)
notifyObservers()
Observable
theProcessManager: ProcessManager
getTheProcessManager(): ProcessManager
getStartActiv ities(): Collection
getActivatedActivities(): Collection
getInProgressActivities(): Collection
update()
serialize()
deserialize()
addBusinessProcess(BusinessProcess)
getReadSession(): ReadSession
ProcessManager
update()
«interface»Observer
model: BusinessProcessModel
StartActiv ityProxy(BusinessProcessModel)
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
StartActivityProxy
«interface»ReadSession
RevisionManager
ProcessViewFactory
«interface»ProcessView
serializeProcesses(Collection)
restoreProcesses(): Collection
«interface»ProcessPersistenceAdapter
fi lename: String
serializeProcesses(Collection)
restoreProcesses(): Collection
ProcessPersistenceXStream
XStream
processBeginTime: Date
TypePersistenceAdapter(Date)
getType(ObjectIdentity): Object
TypePersistenceAdapter
begin(Person)
complete()
rollback()
getPerson(): Person
getNextPredecessorOfType(ActivityType): ProxyOrActivity
getTypeOf(): Activ ityType
«interface»ProxyOrActivity
BusinessProcessState(BusinessProcess)
getBusinessProcess(): BusinessProcess
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
BusinessProcessState
Activated()
getBeginTime(): Date
getEndTime(): Date
Activated
begin: Date
InProgress(Date)
getBeginTime(): Date
getEndTime(): Date
InProgress
begin: Date
end: Date
Processed(Date, Date)
getBeginTime(): Date
getEndTime(): Date
Processed
InProgress(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
InProgress
Processed(BusinessProcess)
getEndTime(): Date
getBeginTime(): Date
isProcessed(): boolean
isInProgress(): boolean
Processed
Person
ObjectSpace
- state
1
- processViewFactory
{order}
1
- businessProcess1
- activ ities1..*
- businessProcess
1
+ events1..*
- start 1
- processView
0..1
- typePersistenceAdapter
1
- businessProcess
1
- state
1
- objectSpace
1
- businessProcesses
*
- consumedEvents
*
- producer
1
- person
0..1
- observers
*
- processPersistenceAdapter
1
- readSession1
- revisionManager
{order}
1
«call»
0..1 - xstream
![Page 19: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/19.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen GruppenSchnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 20: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/20.jpg)
Schnittstellen zu anderen Gruppen
Kompakte Schnittstelle zur Agenda
Diese wird zum Erzeugen von ToDo-Listen und zur Beeinflussung des Prozessablaufs
genutzt.
![Page 21: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/21.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen OberflächenOberflächen
Resumé und Ausblick
![Page 22: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/22.jpg)
Oberflächen – MainView
![Page 23: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/23.jpg)
Oberflächen – BusinessModelView
![Page 24: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/24.jpg)
Oberflächen – MainView
![Page 25: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/25.jpg)
Oberflächen – ProcessListDialog
![Page 26: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/26.jpg)
Oberflächen – BusinessProcessView
![Page 27: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/27.jpg)
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
![Page 28: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/28.jpg)
Resumé und Ausblick
Zeitbedarf des Projekts bei mehr als Stunden pro Woche pro Person
Vorschlag: 1 Quartal pro Phase Zusammenarbeit
Anforderungsänderungen seitens Auftraggeber?!
25
![Page 29: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/29.jpg)
Danke für die Aufmerksamtkeit
Und das war mal wieder KERNIG...KERNIG...
![Page 30: Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers, Thomas Gutsche, Matthias Pfau FHDW Hannover 2005](https://reader035.vdocuments.net/reader035/viewer/2022081518/55204d6649795902118bbad8/html5/thumbnails/30.jpg)
... und auf in die Prüfungen!... und auf in die Prüfungen!