Web Engineering (703512)
Scenario I
• STI Innsbruck needs a Web application to handle
Meeting/Travel applications and refunds
• Actors:
– Unit Members
– Unit Leaders
– Directors
– Financial Department
2
Web Engineering (703512)
Scenario II – The Workflow
• For each trip:
– The applicant should fill a Meeting Application form
– Once submitted the application is handled over to the
respective Unit-Leader (or to the Directors for unit leaders)
– If the applicant is travelling for a project that does not belong
to his research unit the application has to be approved also
by the unit leader owner of the project
– Once returned from an approved trip, the applicant should fill
the Travel Refund form
– The Travel Refund form is verified by the Financial
Department
– In case of problem the applicant is required to make
correction till the final approval by the Financial Department
3
Web Engineering (703512)
Content
4
Non-commercial Use Only
For Non-commercial Use Onl
rcial Use Only
package content content
[ ]
Travel Application
-destination : String
-startDate : date
-endDate : date
-requestDate : date
-meeting : String
-status : String
< < c o n s t r u c t o r > > + T r a v e l A p p l i c a t i o n ( d e s t i n a t i o n : S t r i n g , s t a r t D a t e : d a t e , e n d D a t e : d a t e , m e e t i n g : S t r i n g , p r o j e c t : P r o j e c t , A p p l i c a n t : E m p l o y e e , P r o j e c t : P r o j e c t , )
...
-name : String
+findProjectOwner() : Employee
Project
Travel Refund Application
-dateSubmission : date
-/total : double
Invoice
-date : date
-price : double sum(toInvoice.pric
e)
Web Engineering (703512)
User Model
5
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
userModel userModel
package [ ]
Travel Application
-destination : String
-startDate : date
-endDate : date
-requestDate : date
-meeting : String
-status : String
< < c o n s t r u c t o r > > + T r a v e l A p p l i c a t i o n ( d e s t i n a t i o n : S t r i n g , s t a r t D a t e : d a t e , e n d D a t e : d a t e , m e e t i n g : S t r i n g , p r o j e c t : P r o j e c t , A p p l i c a n t : E m p l o y e e , P r o j e c t : P r o j e c t , )
...
Employee
-name : String
-password : String
...
<<constructor>>+User( name : String, password : String )
+save()
+checkPassword( password : String ) : Boolean{query}
+validateRegistrationData() : String{query}
+loadUser( name : String ) : Employee{query}
+findUnitLeader() : Employee
...
UnitLeader
+approveTravel( travel : Travel Application ) : boolean
+addTravelToApprove( travel )
+setCurrentUser( user : Employee )
+logout()
+getCurrentUser() : Employee
Session
-name : String
+findProjectOwner() : Employee
Project
Research Unit
+name : String
-hasMember
1..*
-isMemberOf
0..1
Unit Leader
-is Lead by
1
-Leads
1
1
1..*
1..*
1..*
WaitingApproval
1..*
1..*
-currentUser 0..1
Web Engineering (703512)
Data Behaviour
6
Non-commercial Use Only
For Non-commercial Use Only
Travel Application Travel Application
state machine [ ]
Submitted
R e f u s e d
R e f u n d
A p p r o v e d
T r a v e l E n d e d
W a i t i n g
a p p r o v a l
[status=null]
Approved
[status=rejected]
[status='Approved']
Web Engineering (703512)
Submission Process
7
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
Submission Submission
activity [ ]
TravelApplication
(Travel Application::)
d e s t i n a t i o n
P r o j e c t
UnitLeader.addTravelToAppro
ve
(UnitLeader::addTravelToApprove)
travel
Project.findProjectOwn
er()
(Project::findProjectOwner)
Employee.findUnitLead
er
(Employee::findUnitLeader)
target
Session.getCurrentUs
er()
(Session::getCurrentUser)
sesion : Session
<<userAction>>
Submission
destination
addTravelToAp
prove
(UnitLeader::)
travel
[unitLeader<>projectOwner]
Web Engineering (703512)
Navigation Model
8
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
For Non-commercial Use Only
Navigation Diagram
package navigation[ ]
<<index>>
Travel Applications Waiting For Approval
-index : Travel Application [0..*]
: T r a v e l A p p l i c a t i o n [ 0 . . * ]
< < i n d e x > >
Created Travel Applications
<<navigationClass>>
Application
-Application : Travel Application [1]
< < p r o c e s s C l a s s > >
Refund Submission
<<navigationClass>>
Home
{isHome}
<<processClass>>
Approve
<<processClass>>
Submission
<<menu>>
UserMenu
{isLandmark}
<<navigationLink>>
< < p r o c e s s L i n k > >
< < n a v i g a t i o n L i n k > >
t o B e A p p r o v e d
< < p r o c e s s L i n k > >
< < n a v i g a t i o n L i n k > >
- o w n e d A p p l i c a t i o n s
< < n a v i g a t i o n L i n k > >
< < p r o c e s s L i n k > >
< < n a v i g a t i o n L i n k > >
Web Engineering (703512)
Presentation Model
9
For Non-commercial Use Only
For Non-commercial Use
mmercial Use Only
Presentation Diagram
presentation
package [ ]
<<presentationClass>>
User
<<presentationClass>>
: OwnTravelApplication
<<anchoredCollection>>
: TravelApplications
<<anchor>>
: TravelApplication
<<presentationClass>>
: ApplicationsWaitingForApproval
<<anchoredCollection>>
: TravelApplications
<<anchor>>
: TravelApplication
<<presentationClass>>
Submission
<<button>>
Submit : Travel Application
<<form>>
Form : Travel Application
T r a v e l A p p l i c a t i o n
<<presentationClass>>
User