Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers,...
-
Upload
anneliese-bohling -
Category
Documents
-
view
107 -
download
0
Transcript of Entwurf Das Kernmodell eines Workflow-Management- Systems Entwurf Bernd Deterding, Christian Eilers,...
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
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
Einleitung
Umsetzung der Analyse in den Entwurf Architektur-Meetings Festlegung der Programmiersprache Englische Begrifflichkeiten
Agenda
Einleitung Analyse im Entwurf
CRC-VorgehensmodellCRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
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
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
CRC-VorgehensmodellClass, Responsibilities and Collaboration
CRC-VorgehensmodellClass, Responsibilities and Collaboration
Ergebnisse fließen ein in die... Umsetzung des Klassendiagramms, Erstellung von Sequenzdiagrammen und Verfeinerung des Oberflächenprototyps.
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
SchichtenarchitekturSchichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
Schichtenarchitektur
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur KlassendiagrammeKlassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
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
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
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
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
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
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
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
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
Schnittstellen zu anderen Gruppen
Kompakte Schnittstelle zur Agenda
Diese wird zum Erzeugen von ToDo-Listen und zur Beeinflussung des Prozessablaufs
genutzt.
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen OberflächenOberflächen
Resumé und Ausblick
Oberflächen – MainView
Oberflächen – BusinessModelView
Oberflächen – MainView
Oberflächen – ProcessListDialog
Oberflächen – BusinessProcessView
Agenda
Einleitung Analyse im Entwurf
CRC-Vorgehensmodell Fachliche und technische Architektur
Schichtenarchitektur Klassendiagramme Schnittstellen zu anderen Gruppen Oberflächen
Resumé und Ausblick
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
Danke für die Aufmerksamtkeit
Und das war mal wieder KERNIG...KERNIG...
... und auf in die Prüfungen!... und auf in die Prüfungen!