Let’s Help Bo Design Description Version 1.2
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
Revision History Date
Version
2012-11-07
0.1
Initial Draft
Niklas Gillström
2012-11-08
1.0
First version
All group memers
2012-11-2!
1.1
"p#ate# $lass #iagrams% #ataase s$&ema an# figure !-'. (orre$te# spelling errors.
Nives )u*i+%
"p#ate# $lass #iagrams% #ataase s$&ema an# G"I s$reens&ots.
Nives )u*i+%
Final revie/
Antonio Gallu$$i
2012-12-27
201-01-10
1.2
1.
Description
Author
Dani,el amre*ina
Dani,el amre*ina
Page 3
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
Table of ontents ontents 1.
2.
.
Intro#u$tion
1.1 1.2 1. 1.! 1.
5
oft/are ar$&ite$ture
5
2.1
(on$eptual #esign 2.1.1 "ser management $omponent 2.1.2 Inventor3 $omponent 2.1. 6ap $omponent 2.1.! ork or#er $omponent 2.2 Ar$&ite$ture 2. 3stem spe$ifi$ation 2.! 9ternal (omponents
5 7 7 7 7 7 8 8
9ternal interfa$es
'
.1 .2 . .! !.
urpose of t&is #o$ument Inten#e# Au#ien$e $ope A$ron3ms an# areviations 4eferen$es
:ar#/are Interfa$es oft/are Interfa$es (ommuni$ation Interfa$es "ser Interfa$es
' ' ' 10
Detaile# soft/are #esign
11
!.1
11 12 1 1! 1 1 15 17 1' 1'
!.2 !. !.! !. !.5
Implementation mo#ules ; $omponents !.1.1 Inventor3 $omponent $lass #iagram !.1.2 6ap $omponent $lass #iagram !.1. ork or#er $omponent $lass #iagram !.1.! "ser $omponent $lass #iagram Data <3pes ; Formats Dataase 6o#el e site organi=ation Interfa$es to 9ternal 3stems Algorit&ms
Page 4
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
1.
!ntro"uction
1.1
#urpose of this "ocu$ent
<&e purpose of t&is #o$ument is to provi#e information aout >et?s :elp )o pro,e$t #esign. <&e goal of t&is pro,e$t is to $reate soft/are t&at supports t&e ma$&ine operators in t&eir /orking a$tivities. )esi#es t&at% t&e soft/are /ill &ave also ot&er e9tra fun$tionalities t&at aim to &elp in t&e #ail3 a$tivities t&e ot&er people t&at /ork in t&e mine @e.g. ro#u$tion supervisor. As main a$tor /e &ave t&e ma$&ine operator% /&o /orks un#ergroun#% ut t&ere are also four ot&er a$tors t&at /ill &ave a part in t&e s3stem. e #evelope# >:) taking into a$$ount t&e environment in /&i$& it /ill e use# an# ma#e it as usale as possile for t&e final users. <&e s3stem is availale for #ifferent platformsB smartp&ones% laptops% #esktops an# talets. 1.2
!nten"e" Au"ience
<&e inten#e# au#ien$e for t&is #o$ument isB ●
&cope
<&e ar$&ite$ture #es$rie# is a server $lient ar$&ite$ture% /&ere all $omponents are on t&e server si#e an# t&e output from t&e $omponents is #ispla3e# to users t&at $an intera$t /it& t&e s3stem from t&e $lient si#e. <&is #o$ument $overs t&e follo/ing #esign parts use# in t&e pro,e$tB ● ● ● ● ● ● ● ●
1.'
oft/are ar$&ite$ture I#entifie# $omponents 9ternal interfa$es oft/are interfa$es (lass #iagrams Dataase mo#el Appli$ations organi=ation Algorit&ms Acrony$s an" abbreviations
Acrony$ or abbreviation
Definitions
>:)
>etCs :elp )o
DD
Distriute# oft/are Development
"6
"ser management $omponent
(
ork or#er $omponent
6(
6ap $omponent
I( D 4D)6
Inventor3 $omponent oft/are Development it 4elational Dataase 6anagement 3stem
G"I
Grap&i$ user interfa$e
6E(
6o#el Eie/ (ontroller Page 5
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
1.(
References ● ●
ro,e$t DD &ome page &ttpB;;///.fer.uni=g.&r;rasip;#s#;pro,e$ts;lets&elpo ro,e$t Google group &ttpB;;groups.google.$om;group;#s#-pro,e$t2012
2.
&oft)are architecture
2.1
onceptual "esign
*igure &oft)are architecture+1 onceptual "esign <&e overall s3stem is ase# on a $entral server running t&e main soft/are% lo$al #ataase an# $lient appli$ations $onne$te# to t&e $entral server 3 an internal /ireless net/ork. (lient appli$ations are represente# /it& moile an# /e interfa$es.
Page
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
<&e s3stem is uilt out of several $omponents /&i$& intera$t among ea$& ot&er.
*igure &oft)are architecture+2 &yste$ co$ponents
2.1.1
,ser $anage$ent co$ponent
<&is $omponent #eals /it& user a#ministration /&i$& in$lu#es $reating user a$$ounts% e#iting t&eir information or #eleting t&em. <&ese operations are manage# 3 t&e s3stem a#ministrator. 2.1.2
!nventory co$ponent
<&is is t&e main $omponent /&i$& involves ooking of t&e spare parts 3 t&e ma$&ine operators. It offers information on or#er status an# availailit3 an# is responsile for sen#ing notifi$ation regar#ing or#er $ompletion an# inventor3 status. It is also responsile for /are&ouse a#ministration% $ompose# of spare parts or#ering an# $&e$king t&e inventor3 for missing parts. <&is is manage# 3 t&e maintenan$e supervisor. 2.1.%
-ap co$ponent
:ol# t&e map of t&e mine /it& /are&ouse% users% ve&i$les% rooms an# /ork or#er lo$ations% tunnel pat&s an# tunnel statuses. It provi#es t&e s&ortest pat& fun$tionalit3% t&at is use# to s&o/ t&e s&ortest pat& to t&e user from &is position to t&e /are&ouse or /ork or#er pla$e.
Page 7
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
2.1.'
or/ or"er co$ponent
(reation an# e#iting of /ork or#ers. A /ork or#er is an a$tion t&at nee#s to e performe# an# it is assigne# to a ma$&ine operator. 2.2
Architecture
<&e s3stem ar$&ite$ture is ase# on t&ree tiers along /it& a #ataase.
*igure &oft)are architecture+% &yste$ architecture <&e #ata a$$ess la3er offers an interfa$e et/een t&e #ataase an# t&e usiness logi$. <&e usiness logi$ la3er $ontains t&e fun$tionalities of t&e $entral s3stem. <&e presentation la3er $ontains t&e $lient appli$ations /&i$& provi#e t&e user interfa$e for t&e s3stem. 2.%
&yste$ specification
<&e s3stem follo/s $lient-server ar$&ite$ture /it& a moile #evi$e @talet% smartp&one a small laptop or a #esktop $omputer pla3ing t&e role of t&e $lient% an# a $entral server t&at &an#les all t&e in$oming reuests from t&e #evi$es $onne$te# to t&e s3stem. During t&e #evelopment p&ase% t&e $entral server role /ill e fulfille# 3 a virtual ma$&ine running on 6i$rosoft in#o/s erver 2008 42 - ervi$e a$k 1. <&is /oul# e also t&e target $onfiguration for running on real servers in pro#u$tion mo#e% after s&ipping t&e pro#u$t. Bac/en" <&e 6i$rosoft H> erver 2008 9press #ataase management s3stem /ill e use# for t&e #ataase% an# t&e >ogi$ >a3er t&at intera$ts /it& t&e #ataase /ill e implemente# in ( using t&e .N< !.0 Frame/ork. Page !
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
*ronten" As spe$ifie# t&ere are t/o version of t&e /e presentation la3er% one for #esktop $omputers% laptop an# talets an# anot&er for smarp&ones. <&e e interfa$e /ill e #evelope# using A.N<% :<6>% ( an# ava$ript. In a##ition for smartp&ones running An#roi# t&ere /e implemente# a native appli$ation t&at intera$ts /it& t&e /e server. :o/ever% t&e moile version of t&e /e site /ill e still a$$essile from an3 smartp&one t&at &ave a ro/ser appli$ations installe#. 2.'
0ternal o$ponents
6i$rosoftJ H> erverJ 2008 9press is a 4D)6 #evelope# 3 6i$rosoft% an# is a free e#ition of t&eir famil3 of $ommer$ial solutions H> erverJ. <&e 9press version is a goo# an# pra$ti$al solution for uil#ing #esktop an# small server appli$ations% an# /ill fit ver3 /ell in t&e pro,e$t sin$e t&e ot&er tiers of t&e s3stem ar$&ite$ture /ill e also using 6i$rosoftJ te$&nologies. )eing a free pro#u$t% it?ll &elp keeping t&e $osts of t&is pro,e$t fairl3 lo/. 4egar#ing t&e previous assertions% t&e .N< Frame/ork is also a ma,or lo$k in t&is pro,e$t. It en$loses a large numer of liraries ranging from lo/-level to &ig&-level fun$tionalit3% an# t&e vast amount of $o#e fun$tionalit3 alrea#3 implemente# in t&is soft/are frame/ork /ill spare t&e #evelopers from unne$essaril3 reinventing t&e /&eel an# e a goo# stepping stone for t&is pro,e$t.
%.
0ternal interfaces
<&ere e9ists one e9ternal s3stem t&at t&e s3stem /ill useB ● Gloal ositioning 3stem @G <&e s3stem /ill use G to get one or more referen$e points /&en )o is outsi#e t&e mine. <&e referen$e points are use# to get G $oor#inates in t&e mine /&ere t&e G normall3 #oesn?t /ork. <&e route et/een lo$ations $an t&en e #ispla3e# to t&e user. %.1
Har")are !nterfaces
*igure 0ternal interfaces+' Kur appli$ation /ill use t&e uilt-in G to get a referen$e point so t&e map $omponent $an /ork /&en )o is insi#e t&e mine @G #oes not normall3 /ork insi#e t&e mine. <&e G /ill e use# on$e outsi#e t&e mine an# after t&at% ever3t&ing else /ill e $al$ulate#. %.2
&oft)are !nterfaces
Appli$ation for Desktop platform /ill e #evelope# as a /e appli$ation using 6E( pattern. In or#er to provi#e support for most of t&e e9isting smart p&ones an# talets e9isting in t&e $urrent market% t&e appli$ation for 6oile platform also /ill e #evelope# as a /e appli$ation. It /ill &ave an e9ternal interfa$e of a native appli$ation for visuali=ing as a native app. "ser #oes not &ave to a$$ess t&e appli$ation from ro/ser on moile #evi$e ut as an i$on from its moile #evi$e menu. Page "
Let's Help Bo Design Description
Version: 1.2 Date: 2012-12-27
<&ere are several approa$&es to a$$omplis& t&is. e $&ose a $omination of t&e $lient- si#e appli$ation an# a /e appli$ation. It is not re$ommen#e# to uil# t&e An#roi# appli$ation for t&e sole reason of laun$&ing t&e /e site. Instea#% /e /ill #esign t&e /e pages /it& t&e proper $&ara$teristi$s so t&e3 fit it t&is environment. <&e $lient-si#e appli$ation eme#s some /e pages using e Eie/ in appli$ation la3out. %.%
o$$unication !nterfaces
Kur /e appli$ation /ill $ommuni$ate /it& t&e #ataase t&roug& A.N< mi##le/are. "sing A.N< /e $an #3nami$all3 $reate t&e /e pages% fill t&em /it& t&e information from t&e #ataase @using s$ripts an# present t&em to t&e user in t&e grap&i$al user interfa$e. in$e all of our appli$ation logi$ an# #ata la3ers are on t&e server si#e it?s integral to &ave a$$ess to eit&er t&e internal i-Fi net/ork or to t&e G net/ork @outsi#e t&e mine. %.'
,ser !nterfaces
<&e s3stem is #ivi#e# into several $ore $omponentsB ork or#ers% Inventor3% "ser an# 6ap. a$& $omponent $an &ave in#epen#ent or mi9e# /it& usage of ot&er $ore $omponents. All $ore $omponents must support moile an# #esktop platforms. <&e interfa$es of appli$ations are provi#e# for ea$& platform in#ivi#uall3 #ue to in$rease usailit3 ualit3. <&e s3stem an# all t&eir $omponents representations are #evi$e orientate#. <&e usage of t&e s3stem is orientate# into several user t3pes. All users are separate# /it& aut&enti$ation a$$ess an# &ave #ifferent% a##itional or limite# vie/s in G"I. ● ●
(lient - &as &ig& restri$te# a$$ess an# $an onl3 e#it ver3 limite# #ata. @for instan$e% on /ork or#er $omponent $an make $&e$k in if /ork is #one 6anager - &as &ig& level a$$ess @(an a##. e#it% #elete $omponents #ata.
*igure 0ternal interfaces+( -ain page interfaces+ or/ or"er co$ponent
*igure 0ternal
Page 10
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
*igure %+2 Illustrates t&e main page of 6oile appli$ation for $lients. :ere $lients $an a$$ess all $omponents 3 $li$king t&e relative uttons. *igure %+% Illustrates moile appli$ation /it& /ork or#ers $omponent reali=ation for (lient users. <&e navigation et/een /ork or#ers #ates $an e &el# 3 pressing uttons left rig&t on top ar or s/iping t&e s$reen to left or rig&t. a$&
*igure 0ternal interfaces+3 Boo/ing process *igure %+' illustrates t&e ooking pro$ess /it& (lient a$$ess in our /e appli$ation for Desktop platform. in$e% on #esktop platforms t&ere is a large spa$e% it gives us possiilit3 to insert more information on one s$reen $ompare to moile platform. At t&e &ea#er of /e appli$ation t&ere is a navigation of $omponents. Kn t&e left si#e% t&ere is a menu ar t&at $&anges for ea$& user role. <&e menu items list is #ifferentiate# 3 a$$ess t3pe in /e appli$ation @e.g. A#ministrator &as #ifferent menu items $ompare to 6a$&ine operator. >og out form an# navigation for settings are t&e same for all t3pe of users an# it is lo$ate# on top rig&t sig&t of t&e appli$ation.
'.
Detaile" soft)are "esign
'.1
!$ple$entation $o"ules 4 co$ponents
In t&is $&apter t&e $lass #iagrams for t&e follo/ing $omponents /ill e presente#B ● Inventor3 $omponent ● 6ap $omponent ● ork or#er $omponent ● "ser $omponent
Page 11
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
'.1.1
!nventory co$ponent class "iagra$
*igure Detaile" soft)are "esign+5 !nventory co$ponent In t&is $omponent t&ere are all t&e $lasses to manage t&e fun$tionalities relate# to t&e inventor3 s3stem. <&e ma$&ine operator $an ook onl3 one spare part per time% ut multiples items for it.
Page 12
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
'.1.2
-ap co$ponent class "iagra$
*igure Detaile" soft)are "esign+6 -ap co$ponent Page 13
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
<&is #iagram $ontains all t&e $lasses relate# to t&e map $omponent. A map $an e seen as a set of tunnels an# &otspots. a$& &otspot &as its $oor#inate on t&e map% an# it $an represent a user% room% ve&i$le% /are&ouse or pro#u$tion front. '.1.%
or/ or"er co$ponent class "iagra$
*igure Detaile" soft)are "esign+17 or/ or"er co$ponent
In t&e /ork or#er $omponent% /e &ave t&e /ork or#er $lass in /&i$& all t&e #ata aout t&e /ork or#ers is kept. <&ere are also entities t&at represent t&e ve&i$les% rooms an# /are&ouses in t&e mine.
Page 14
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
'.1.'
,ser co$ponent class "iagra$
*igure Detaile" soft)are "esign+11 ,ser co$ponent In t&e user $omponent t&ere are all t&e information aout t&e users t&at e9ist in t&e s3stem. <&e users $an log in /it& username an# pass/or# an# ea$& user &as a spe$ifi$ role an# &otspoti#. '.2
Data Types 4 *or$ats
<&e pro#u$t $ontains t&e follo/ing file formatsB 1. Do$ument file formats ● .#o$ ● .#o$9 ● .p#f ● .ppt ● .ppt9 2.
our$e ● ● ● ● ● ● ●
$o#e;#ataase formats .m#f .$s .asp9 .$ss .,s .#ll .(KNFIG
Page 15
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
'.%
Database -o"el
Workorder
Hotspot
Room
Tunnel
workorderid
hotspotid
roomid
tunnelid
userid
floor
hotspotid
startfloor
hotspotid
latitude
type
endfloor
workorder
longitude
status
startlatitude
details
name
startlongitude
starttime
type
endlatitude
endtime
endlongitude
status
length
priority
verticaldegree horisontaldegree closed name
User
Warehouse
userid username password roleid hotspotid firstname lastname
Order orderid productid
warehouseid
Vehicle
hotspotid
vehicleid
status
hotspotid
warehouseid
model
userid
type
amount
comment
cost
status
orderdate arrivaldate status
Role roleid
Product
rolename
Booking
productid
bookingid
identification
itemid
name
userid
description
amount
image
Item itemid productid warehouseid vehicleid amount
bookingdate
area
collectdate
shelvenumber
status
*igure Detaile" soft)are "esign+12 Database sche$e Kn *igure '+( is s&o/n t&e #ataase mo#el t&at /ill e use#. It is $ompose# of 12 entities /&i$& /ill e transforme# into 12 tales.
Let's Help Bo Design Description
Version: 1.2 Date: 2012-12-27
time% en# time% status an# priorit3. )esi#es t&at% it stores user i# of t&e user /&o is /orking on t&at /ork or#er an# &otspot i# of &otspot on /&i$& t&e user is /orking. In tale "ser t&ere are user i#% user name% pass/or#% i# of user?s role% i# of user?s &otspot% first name an# last name.
eb site organi8ation
in$e t&e usage of t&e pro#u$t is #ivi#e# into t/o platforms% #esktop an# moile% as it /as alrea#3 mentione#% it /ill e #evelope# as /e appli$ation /it& $onsi#eration for #ifferent platform orientations. In our s3stem $lients an# managers #o not &ave #ire$t a$$ess for t&eir a$$ount information. All user #ata pro$e#ure is &el# 3 user management. Kn Inventor3 support $omponents t&ere /ill e aut&enti$ation $&e$k /&ere it separates $lients an# managers an# gives a$$ess for #ifferent menu items% tools% et$. <&e se$urit3 is &el# 3 provi#ing aut&enti$ation for all users of t&e s3stem. a$& t3pe of user is separate# /it& in#ivi#ual a$$ess for items an# pro$e#ure on t&e s3stem. Almost all pages /ill e #evelope# #3nami$all3. <&e #iagrams elo/ s&o/ /&at user /ill see an# navigation #ire$tions on appli$ations. <&e interval arro/s s&o/ aut&enti$ation s$ript.
*igure Detaile" soft)are "esign+ -ain page structure for $achine operator *igure '+ s&o/s simple stru$ture of main page for moile an# #esktop platform interfa$e availale for t&e ma$&ine operator. It /ill $onsist of links to ork or#ers% 6ap% Inventor3% )ooking an# ork or#er pool fun$tionalities . <&e a$$ess for t&e 6ain age is &el# 3 aut&enti$ation for ea$& user. <&is pro$e#ure is &el# on$e% until t&e $ookies /ill e9ist on platform. After t&e aut&enti$ation step ea$& $omponent servi$e $an e a$$esse# /it& provi#ing menu an# items for (lient an# 6anagers separatel3. At t&e main page user $an navigation to one of ea$& $omponent. As an e9ample for separate# a$$ess for $lients an# managers /e $an see elo/ on *igure '+3.
Page 17
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
Figure Detailed software design-7 Work orders
Kn *igure '+3 /e $an see after aut&enti$ation $&e$king /as &el# ea$& t3pe of user &as one a$$ess to t&e s3stem. (lients $an onl3 see t&eir /ork or#ers. 6anagers &ave a$$ess for e#it% #elete an# a## /ork or#ers. <&e navigation of (lients an# 6anagers $an e seen as #ifferent sin$e ot& of t&em &ave a$$ess to separate# pro$e#ure.
*igure Detaile" soft)are "esign+5 -ap Page 1!
Let's Help Bo
Version: 1.2 Date: 2012-12-27
Design Description
*igure '+5 illustrates 6ap $omponent. All t&e users e9$ept for t&e mine $ontrol room operator $an a$$ess to t&e vie/ map fun$tionalit3. Instea#% t&e mine $ontrol room operator $an manage t&e map a$$essing to t&e relative fun$tionalit3.
*igure Detaile" soft)are "esign+6 !nventory support *igure '+6 illustrates navigation of Inventor3 support $omponent. ome of t&e pages are linke# to anot&er $omponent. As /e alrea#3 mentione# ea$& $omponents $an e mi9e# /it& ea$& ot&er. For instan$e% t&ere is a possiilit3 to vie/ t&e item lo$ation on /are&ouse. <&is is reali=e# 3 $alling t&e map $omponent.
'.(
!nterfaces to 0ternal &yste$s
<&e onl3 interfa$e e9pose# 3 t&is pro#u$t to e9ternal s3stems is t&e user interfa$e. <&e fun$tionalit3 of t&e interfa$e is t&e fun$tionalit3 otaine# /&en ro/sing a /e page% ut /it&in t&e user interfa$e all fun$tionalit3 from t&e $omponents $an e retrieve# /it& t&e proper $re#entials. '.
Algorith$s
<&e algorit&m to get all possile routes uses t&e same te$&niue as #ept& first algorit&m. <&is algorit&m is $ustomi=e# to fun$tion in D spa$e /it& a limite# amount of movements in verti$al spa$e to optimi=e performan$e. <&e route generation algorit&m is ase# on $onne$tion $oor#inates /&i$& is from t&e G s3stem% latitu#e an# longitu#e. <&e start point is al/a3s t&e position t&e user is at% t&e en#point $an e several pla$es. For e9ample if t&e user /ants to see possile routes to #ifferent Page 1"
Let's Help Bo Design Description
Version: 1.2 Date: 2012-12-27
/are&ouses for &is o/n position. If t&e $onne$tion $oor#inates mat$&es some lo$ation t&at is a##e# t&e sear$& on t&at ran$& $ontinue% ut if t&ere are no possile $onne$tions t&en t&at route is e9$lu#e# e$ause it #i#n?t lea# to t&e #estination point. In t&e $ase t&at in t&e tunnel en# or eginning o$$urs a split into multiple tunnels all tunnels ut one is a##e# to a ueue an# efore t&e3 are a##e# t&e route to t&at point are $opie# an# t&e ne9t tunnel are a##e# to avoi# infinite loops. If t&e tunnel goes to anot&er floor a $&e$k is ma#e so it is a floor in t&e rig&t #ire$tion an# if it is t&en it is pro$esse# as a ne/ tunnel /it& su-tunnels. After ea$& tunnel eit&er rea$&es an en#-tunnel or &ave a su$$essful pat& to t&e #estination t&e last tunnel a##e# to t&e ueue are pro$esse# ne9t t&en t&is $ontinue until t&e ueue is empt3.
Page 20