11.10.2013 Views

Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)

Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)

Slides Part 2 (OOA, pages 1-128, pdf, 4 slides per page)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

USE CASE “PREPARE APPLICATION/CONTRACT”, COMBINED<br />

FRAGMENTS<br />

sd EnterClientData<br />

Employee<br />

c_data_present?<br />

alt<br />

[cdp] c_data_present!<br />

[else]<br />

c_data_not_present!<br />

enter_c_data<br />

c_data_entered<br />

: Agency<br />

sd PrepareAppl/Contr<br />

Employee<br />

ref EnterClientData<br />

alt<br />

[ok]<br />

[else]<br />

97<br />

prepare_application<br />

application_prepared<br />

contract_prepared<br />

contract_not_prepared<br />

: Agency<br />

Pre = exists client : Client with client.nr = cl nr<br />

coregion<br />

check_application<br />

application_accepted<br />

application_not_accepted<br />

CentralOffice<br />

Post = application.nr ′ = app nr, where app nr new appl. number<br />

prod = car ⇒<br />

application.applicationData ′ =<br />

generate application(client.clientData,<br />

al.productData, al.alData, a data)<br />

ForAppl ′ = ForAppl ∪{(application, al)}<br />

prod = liability ⇒<br />

application.applicationData ′ =<br />

generate application(client.clientData,<br />

pl.productData, pl.plData, a data)<br />

ForAppl ′ = ForAppl ∪{(application, pl)}<br />

99<br />

O<strong>per</strong>ation = prepare application<br />

Description = An application for a known client is prepared.<br />

Reads = supplied cl nr : CNr<br />

supplied prod : Prod ID<br />

supplied a data : applicationData<br />

client : Client with client.nr = cl nr<br />

hi, al, pl : Product<br />

Changes = new application : Application<br />

PreparesAppl, ForAppl<br />

Sends = Employee: {application prepared(app nr)},<br />

CentralOffice:{check application(prod,<br />

application.applicationData ′ , app nr, client.clientData)}<br />

prod = health ⇒<br />

98<br />

application.applicationData ′ =<br />

generate application(client.clientData,<br />

hi.productData, hi.hiData, a data)<br />

ForAppl ′ = ForAppl ∪{(application, hi)}<br />

PreparesAppl ′ = PreparesAppl ∪{(client, application)}<br />

is sent{application prepared(app nr)}<br />

is sent{check application(prod, application.applicationData ′<br />

100<br />

app nr, client.clientData)}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!