Home
available as PDF
Contents
1. lr 30 City Explorer dee cose 2 2222 nora o OG 31 City Explorer use case3 31 City Explorer use case 4 2 2 a a e 32 City Explorer use case D cll 32 City Explorer use case 6 33 City Explorer use case 7 33 City Explorer use case 8 amp 8 33 City Explorer use case 9 34 City Explorer use case 10 34 City Explorer use case 11 be ee o ERG 34 City Explorer use case 12 35 City Explorer use case 1 3 35 City Explorer use case u aac cerra te os 36 City Explorer use case 15 36 City Explorer use case 16 37 City Explorer use case 17 oro 37 City Explorer use case 18 38 Non functional requirements ooa a len 40 Basis requirements 2 225229 Xo 3 Xue e E e 43 Tailoring requirements 44 Sharing 45 City Explorer test case1 2l len 73 138 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 6 13 6 14 6 15 6 16 p 17 6 18 A l C 1 C 2 C 3 CA C 5 C 6 C 7 C 8 C 9 LIST OF TABLES City Explorer test 2 73 City Explorer test case os sos casca emata otat 73 City Explorer test 4 73 City Expl
2. Empty Tours e Fixed Tour Kirker e Free Tour required fields Create new tour from Gruppeturen Fixed Tours Shoppingturennnnnn All tours Choose Tour Pub tour Gruppeturen SaveTour Johnny s supertour aN p Update Tours Creating your own tour You might find that none of the tours that exist does not really suit yourself or you might want to create a tour based on your own experiences for someone else to enjoy Figure D 11 shows you how this would be done To the left of the figure you can see the button for opening the creation screen to the right Fill inn the Name field choose whether you wish a fixed or free tour press save and voila you have created new tour D 2 TAILORING 123 Figure D 12 Button to add locations to a tour left selecting locations for adding right Favourites Empty Tours Lokka Kirker Shoppingturennnnnn Fru lundgren Qa Show map Delete SEE Blaest Camp Jaro Tourtorial Drug store Camp Jaro Studentersamfundet Pub However this tour you ve just created is currently empty How you go about adding locations to your newly created emtpy tour you can see on figure D 12 Starting off in the tour screen you can longpress your tour to get a menu of actions on that tour To the left in figure D 12 you can see this menu with the Add locations button highlighted The list to the right then appears c
3. 4T User interface navigation flow chart 49 Hgb level lage diagram 24 2224 44445 RR Sees 50 RPI ee ee a ee BYE 51 Sequence diagram favorizing Pol 52 Sequence diagram creating Pol 53 Sequence diagram updating Pol List 54 Sequence diagram sharing Pol 55 Communication between activities 57 Glass Diagrami Jeu uou OE ee nk ee 65 Class Diagram CE 66 Glass c uuum Shed poe ex m Feb a a 67 Glass Diagrami d c era do e o ok Rn 68 4 Mirco C 69 The opening screen left and the Locations screen right 113 The location details screen left and the Show Map but sco oe oer RS 114 The map view left and the directions to a location right 115 The tour list left and the list of locations in a tour right 116 The tour list left and the list of locations in a tour right 117 133 134 LIST OF FIGURES D 6 The button for opening map in a tour left and the corre sponding map with locations right 118 D 7 The button to open filtering left and the filtering list right 119 D 8 The opening screen with left and the explore map right 119 D 9 The New Location button left and the location creation right 120 D 10 The Choose location button left and the location selec
4. Basic flow 1 Click on a free tour 34 CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 12 City Explorer use case 9 Use Case 9 covers 1 8 2011 05 04 Name Cycle through all Pols in a tour Summary The user must be able to view all Pols in a tour one by one and switching easily between them Actor User Precond Activity 4 Tour view or Activity 8 Directions has been activated from Activity 3 Pol details or Tours in Activity 2 Plan by selecting a single Pol Postcon Two or more Pols in a tour have been displayed in the order they are stored in the tour Basic flow 1 Cycle through the tour by clicking or gt Table 3 13 City Explorer use case 10 Use Case 10 covers 52 7 2011 05 10 Name Create a new tour from an existing tour Summary The user may create a new free tour from an existing tour Actor User Precond TAB Touns in Activity 2 Plan is activated Postcon A new free tour with the Pols of an existing tour is created Basic flow 1 Press the button menu on the device 2 Click Menu New Tour 3 Fill in the mandatory fields and choose free tour 5 Click CHoosE Tour and choose the tour you want to copy Pols from 6 Click Save Tour Table 3 14 City Explorer use case 11 Use Case 11 covers S 2 61 2 71 2011 05 10 Name Create a new tour Summary A user may create a new tour Actor User Precond TAB Touns in Activity 2 Plan is activated Postcon Newly created tour is
5. C 121 D 11 The New Tour button left and creation screen right 122 D 12 Button to add locations to a tour left selecting locations for sdding right Cm 123 D 13 Accessing timetable left and creating the timetable right 124 D 14 The Choose tour button left and the tour selection right 125 D 15 How to delete locations from tours left and how to delete o big crocie EEE HE EER 126 D 16 Opening the sharing of locations left and location selection for sad ooe es c dose Sk we eg ok E ea RR RU 127 D 17 The list of ways to share locations left and list of devices available for sharingi shi uides sor go ed 128 D 18 The list of ways to share locations left and list of devices available for sharing right lll 129 D19 Updating tOus xk dE qe 130 Appendix F List of Tables This appendix lists all of the tables seen in the report 135 136 APPENDIX F LIST OF TABLES List of Tables zd 2 2 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 3 21 3 22 3 23 3 24 3 25 6 1 Risk assessment 16 Work distribution percentage 23 Basis requirements 26 Tailoring requirements 2 4 44440 eee be 26 Sharing requiremenis 4 27 City Explorer usecasel
6. focus on UI and an interface to a swappable DB e 3 x Requirement specifications functional non functional some changes are justly desired because there are cases of incoherence in the list of features between some highly prioritized items and the envisioned development progress the client needs to know that their list is problematic e 4 0 Brief outline of alternatives why are we writing this app reuse client s research e 5 0 Miscellaneous time plan risk analysis Notes This outline might have gone somewhat beyond what is necessary for the preliminary version Nevertheless members present at the meeting took the liberty of either assigning to others or divide amongst themselves all sections mentioned in the Preliminary report table of contents above 1 0 Everyone 1 and 2 Group intro John Arne 1 0 and 3 Diagrams Christian 3 Requirements Kristian 3 0 Only a start Belen 5 and 4 Risk excluded Jaroslav Homework You might or might not remember from English class an exer cise where pupils are instructed to summarise a story or present an idea in 50 A 1 WITH GROUP 87 words or less The idea is that you write half page figure out what is really essential trim it down to 50 words 2 4 sentences and discard everything else This might be a good way to present our problem in the very beginning of the report The assignment is for everyone to make a few sentences so that we may pick out
7. getimageURL String getGeoPoint GeoPoint equals Object boolean toString String hashCode int f Poi Parcel writeToParcel Parcel int void registerDataSetObserver DataSetObserver void unregisterDataSetObserver DataSetObserver void getCount int getltem int Object getltemid int long hasStablelds boolean getView int View ViewGroup View getltemViewTyper int int getViewTypeCount int isEmpty boolean compareTo Section int project CityExplorer gui onCreate Bundie void onListltemClick ListView View int long void onResume void onPrepareOptionsMenu Menu boolean onCreateOptionsMenu Menu boolean onOptionsltemSelected Menultem boolean onActivityResult int int Intent void CHAPTER 5 IMPLEMENTATION lt lt Java Class 9 PlanTabTrip lt lt Java Class 9 TripAdapter project CityExplorer data amp TripAdapter Context int ArrayList lt Trip gt remove Trip void getView int View ViewGroup View items O lt lt Java Class gt gt 9 Trip project CityExplorer data modify Builder getLabel String getDescription String isFreeTrip boolean getldGlobal int getldPrivate int getPois ArrayList lt Poi gt getFixedTimes HashMap lt Poi Time getPoiAt int Poi addPoi Poi void insertPoi int Poi void removePo
8. Involved classes Buttons NewPoiActivity java CATEGORY DROP pown Choose cate gory Poi java sEARcH Opens the browser and searching for images with your given name with Google Images CHoosE Location gt Locations in Activity 2 Plan Save Location Save the Pol in the database 5 2 IMPLEMENTATION DESIGN 63 Menu buttons MENU SAvE Location Save the Pol in the database Activity 6 Create Tour In activity 11 the user can make a new tour The user can set the name and whether or not it will be a fixed or a free tour It will start by being an empty tour so you can add Pols later on or you can choose to derive the Pols from an existing tour Involved classes Buttons NewTripActivity java CHoosE Tour gt Tours in Activity 2 Plan Trip java Save Tour Save the tour in the database Menu buttons MENU SAvE Tour Save the tour in the database Activity 7 Map view Activity 7 shows a map The activity can be used to show either a Pol or a tour in a map using Google Maps The buttons lt and gt appear only when the user navigates to this activity from Activity 4 Tour view Involved classes Buttons MapsActivity java show previous PoI MapIconOverlay java gt show next Pol MapTripOverlay java A PoI opens up the Quick Action for the selected Pol PoiToPoi java Quick Actions QA DETAILS gt Activity 3 Pol Details QA GET DIRECTIONS gt Act
9. Time spent on project activities not documented Flat group structure not working B 3 STATUS REPORT SPRINT 5 95 Risk analysis updates Added an entry for illness B 3 Status report sprint 5 Some items from the previous sprints have accumulated to this date Our source code has more functionality than the GUI can show The intention for these two weeks was to resolve those issues Group update lot of programming and report work is done at the start of this sprint mainly by 4 members of the group Attempts to make the remaining members contribute failed due to unresponsiveness to emails and Facebook messages After the first week of the period Belen informs us by mail that she was dropping the subject because she did not feel she was able to contribute satisfactory listing time constraints and lack of knowledge as reasons The risk analyses does not give a complete picture in this type of event In reality the consequences and the solution is more complex There are three possible outcomes and solutions to problem The first is that the group have to take on the entire workload for the leaving member The second outcome is to agree with the customer to reduce the workload by dropping some of the lower priority specs The final solution is to compromise between the first two outcomes The rest of the group takes on some of the responsibilities of the missing member as well as reducing the total workload In usual case the
10. alternative solutions Wait to recover redistribute work work from home Talk to each other how we are doing on our part and help each other if we are stuck at some point Solve the conflict or have a talk with the supervisor Notify supervisor Reassign member s roles Distribute the work to unaf fected members Install git 12 2 7 WBS 17 2 7 WBS In order to estimate the time we need to complete the project a work break down structure 13 graph see figure 2 1 has been used The number to the right of each label represents a percentage of the total time allocated to the project Each work package is estimated to consume no more than the indicated percentage Figure 2 1 Work breakdown structure Srephie Design s gg RN o 2 5 Calendar 3 ee new edit_ pa Maintenance en 7 a r Preliminary Studies Research 1 5 gt _ fintementaion gai REN ERN Eewupwok fa rependi Ee References J 05 Supervisor 15 2 8 Work process reflections This chapter contains a description of the work process It is intended that this chapter will give a more detailed view of the project For a summary of the weekly process see the status reports located in appendix B 18 CHAPTER 2 PROJECT MANAGEMENT In the start of the project the group had some problems with communica tion
11. City Authors group 10 John Arne Wye Kristian Greve Hagen Oscar Aarseth Christian Berg Skjetne Jaroslav Rakhmatoullin Maria Belen Gallego Garcia Supervisor Alfredo Perez Fernandez IT2901 INFORMATICS PROJECT 2 DEPARTMENT OF COMPUTER AND INFORMATION SCIENCE NTNU Norwegian University of Science and Technology May 2011 Table of Contents 1 Introduction Ll Product 2o sco bo p ow Ro RR EROR 8 Project Management 21 Prestudi S m o 2 1 Alternative Solutions a eC OOM es he BAR EK RE ERE eS nNE REP 24525 MH Ye OE es 23 Stakehold rs gt ss ao oo mew oko cx o rota ZO xau 2 3 2 Team Organi 222224299 kom eee eS 24 Development model Fee 2 4 1 Borrowed elements 2 5 Development environment Z0 Riek Analysis nuo n ow Re Xs 2 WB ees See ew gum dudo do dod 2 8 Work process reflections Ag Work cx 2 o4 Co ee PES Re rH Requirements specification 3 1 Functional requirements 3 2 Use case 3 2 1 Basis nas TEE osean a a e A ee eS a iuis soe E E m4 Use Cases aO 3 4 Non functional requi
12. made Group update After the mid semester report delivery and correctionsafter comments from the supervisor the group puts the report out of their minds and starts focusing on the coding This results in that a lot of progress is made on the program several classes are made which makes the general outline of the program and workload easier to visualize for all of the group members Positive feedback on the program is received by the customer from the meeting 14th of March Progress summary Programming is done on details of Pols bugs are fixed icon support for MapView is implemented and more In general alot of refining has been done on the program See table C 7 for detailed information Problems still many shaky sections in the report people are still bad at documenting work B 5 Status report sprint 7 Two weekly meetings with the client has been held 28th of March and 4th of April and testing on the application based on the use cases was done on both dates Group update The group has talked about the importance of document ing work not only the documentation done in the backlog for use in the report but also the importance of documenting the changes comitted to the SVN server These comments are very useful when developing since one can easily check what has been done recently by other developers Progress summary In addition research has been done on how to imple ment calendar times to the tours and i
13. With Grp cc c4 uo Ye AUR EU Roe ee Ue we enc ALL 25 Ja SUE u nae eR ooh e ex KEES GRA A SUIT a unos eek aq aite E RC E Sale IL 2011 iod eue d e ee RE REG A Wib BUE auod acea Sy Re A21 24 Jan 2011 A22 SL Jan eo deo ed ox px ec 4 XO X o A 2 3 7 Feb 2011 A24 14 Feb 2011 A 2 5 28 Feb 2011 Ao With Supervisor e woe aeg woe ho SR de NUR We YO Wal A a ULL xii kk TR DE o UR DE ERE Ce Aod T pu ocu 3 Oh eee ee Status Reports B 1 B 2 B 3 B 4 B 5 B 6 Status report Status report Status report Status report Status report Status report sprints Tand 2 22222 2499 9m on wes sprints g and uu Re Eee ES PONG p ee ey She coro Pm ocn dM DTI B 7 Status report last call C Backlog 1 Project backlog 222229 9o PER aes eed woe d a os Los DER s mar og Non Y beg ok eS LL SEE BD eee BSD EES GA DPE RE ee oe ee ee ee Ee eS Ms ee Ro EE BE ud d E ZEN ROW Oa 450 OPE KER oue oe Wes LO GEM unos be eee Eee ae d DUO 2
14. 1 53 2 53 3 53 4 53 5 City Explorer should provide support for browsing Pols stored on a server downloading Pols stored on a server sharing Pols beteween users browsing tours stored on a server downloading tours stored on a server 3 2 Use case diagrams The use cases 14 explain how an end user might proceed to exploit the functional requirements We use regular use cases for the three main aspects of the application 28 CHAPTER 3 REQUIREMENTS SPECIFICATION 3 2 1 Basis city exploration Figure 3 1 displays an overview of the Basis city exploration use cases they are described more detailed in tables 3 4 through 3 12 Figure 3 1 Use Cases for requirements 51 1 1 8 Basis city exploration 1 List all downloaded PoIs 2 Display the description of a single Pol 3 Show the graphical location of a single Polon a digital map 4 Filter listed PoIs by category 5 Display directions to a Polin a digital map 7 Display a trip in a digital map User 8 List all PoIs in a free trip 9 Cycle through all Pols in a trip 3 2 USE CASE DIAGRAMS 29 3 2 2 Tailoring Figure 3 2 is an overview of the use cases which define the Tailoring part of the application See tables 3 13 through 3 18 for a closer description Figure 3 2 Use Cases for requirements 52 1 52 71 10 Create a new trip from an existing trip 11 Create a new trip 12 Setting a PoI as
15. 1 Press the button menu on the device 2 Click MENU UPDATE LOCATIONS 3 Choose the Pols you want to download to your device 4 Press the button menu on the device 5 Click MENU UPDATE LOCATIONS Table 3 20 City Explorer use case 17 Use Case 17 covers 3 3 2011 05 10 Name Summary Actor Precond Postcon Sharing Pois between devices The user can share Pols with another user User Activity 2 Plan is activated and TAB Locations is se lected A user has sent one or more Pols to another user Basic flow 1 Press the button menu on the device 2 Click MEnu SHARE 3 Choose the Pols you want to share 4 Press the button menu on the device 5 Click MEnu SHARE 6 Select the wanted sharing method and follow the on screen directions 7 When the other user has received the file that was sent open it using City Explorer by clicking on the file and choos ing City Explorer 38 Use Case 16 CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 21 City Explorer use case 18 covers S 3 4 3 5 2011 05 10 Name Browsing and downloading tours stored on a server Summary The user can browse and download tours stored on a server Actor User Precond Activity 2 Plan is activated and TaB Tours is selected Postcon The user has browsed and downloaded wanted tours from a server Basic flow 1 Press the button menu on the device gt W h2 Click MENU UPDATE Tours Choose the
16. 10 Meeting with the client 5 1 1 d Management 21 Meeting with the supervisor 5 1 1 Management 11 Meeting with the group 5 1 1 1 Poi 22 Menu buttons for navigating to PoI de 3 tails and mapview 51 1 1 3 Plan 23 Showing Pols in a listview 1 2 20 3 Map view 24 Showing Pols in a mapview 51 21 30 2 15 4 Map view 25 Showing a free tour in a mapview 30 5 5 5 51 71 Total 98 10 23 15 C 2 SPRINTS 105 C 2 3 Sprint 3 Table C 4 Sprint 3 14th of February 20th of February Backlog Item Sprint Description Hrs O C J JR K Item est Management 10 Meeting with the client 5 2 Design 26 Splash screen 15 10 Database 27 Create locations for testing 10 4 Plan 28 Connect poi list view to a provider 2 Plan 29 Selecting favourite pois S2 1 12 8 Plan 30 Add support for categories 1 Pol 31 Create an activity for displaying infor 2 2 mation about a place 51 1 PoI 32 Create the layout of the details of a Pol 4 8 51 1 Map view 33 Make the map pins react to actions and 8 add support for zooming Maintenance 34 Revise the Backlog 10 Maintenance 35 Switching views QuickActionPopup 8 12 51 3 Maintenance 36 Rewrite the PoI list to use an Adapter 2 2 2 in a List View Total 87 0 8 7 26 20 106 APPENDIX C BACKLOG C 2 4 Sprint 4 Table C 5 Sprint 4 21st of February 27th of February Backlog Item Sprint Description Hrs O C J J R Item est Management 10 Meeting with the client 5 Tour 37 Showing a free tour in a list view S1 7 30
17. 1066 wobos re a SY RC Dus Is gu 22 oo bx AR ES D User Manual DI rc s eroris etoos uw Pee RU REOR VE D2 42333 44943 43 942324244 D 3 Sharing amp Updating E List of Figures F List of Tables Glossary Bibliography 101 101 103 103 104 105 106 107 108 109 110 111 113 113 120 126 131 135 139 140 Chapter 1 Introduction The following document is the result of the work of six students on a project centered around the science of planning and developing an information sys tem The project emulates a real software development endeavor because an external customer is serving the request As such the project mandates an elaborate documentation of both the development process and the resulting product In our case the product is a tourist application for mobile devices running Android 2 2 1 1 1 Product description The core idea The City Explorer is an attempt to fill a gap in the market for mobile tourist guides In addition to facilitating the work of tourist offices City Explorer also enables regular tourists to contribute The main ob jective is to help potential Fishermans Wharf users in exploration of new cities by giving them a pool of existing points of interest and tours as well as allow ing users to create their own points of interest and tours Details tour is a col lection of points
18. 12 00 Navigate intent Save Clear Calendar Calendar Directions E View Add Pol pee Same Activity View Aon direction Bla bla bla bla bla bla bla address st 1337 7050 Trondheim Norway Phone 555 123 456 address ___ i Copy existing Save Pol Trip 50 CHAPTER 4 SYSTEM ARCHITECTURE 4 2 1 Architecture classes The class diagram 14 in figure 4 3 shows a high level description of the class structure of the program The data package reflects the content of the database see section 4 2 2 The gui package reflects the components of the GUI see 5 2 1 The map package contains the classes necessary to show a map with different overlays This is a high level representation and is only intended to give a simple overview of the relation between the classes in the program Figure 4 3 High level class diagram Plan Screen list POI list pu o i ri Map Screen Trip Trip Overlay Database updater Database connector 4 2 2 Architecture database The ER diagram 17 in figure 4 4 shows an overview of the database structure used in the program Since the database back end system is not part of the specification this information is mainly given to help the reader understand 42 ARCHITECTURE DESIGN 51 the relation between the different data objects used in the program An online database and a local database is require
19. 12 Other 38 Figure out how to pass data between 5 2 2 activities 51 3 Plan 30 Add support for categories Plan 39 Enable the search button to bring upa 8 search and filter overlay 1 4 Design 40 Theme and style touch ups 5 2 Map view 33 Make the map pins react to actions 8 6 add support for zooming to them Database 41 Create database schema 5 4 Database 42 Add support for fetching data from the 5 4 database Maintenance 34 Revise the Backlog 10 4 8 Maintenance 43 Set up the databases MySQL and 5 5 SQLite Total 87 6 21 0 22 C 2 SPRINTS 107 C 2 5 Sprint 5 Table C 6 Sprint 5 28th of February 13th of March Backlog Item Sprint Description Hrs O C J JR K Item est Design 32 Improve the layout of the details of a 6 8 Pol 51 1 Design 44 Xml layouts and bitmaps 1 5 10 Design 45 Xml layouts and bitmaps 52 6 8 4 Tour 46 Show fixed tour in mapview 51 61 8 8 Tour 4T Make a quick action for all Pols ina 4 6 list 1 5 Tour 25 Show free tour in mapview 91 71 15 4 Tour 37 Showing free tour in a listview S1 7 6 4 Plan 48 Show favourite Pols in listview 1 2 5 4 3 Plan 49 Make the Pol list respect the filter se 8 2 lections 1 4 Plan 50 Show favourite Pols in mapview 1 21 4 3 Pol 51 Menu button in detailview 1 5 6 Pol 29 Selecting favourite Pols 2 1 4 1 MapView 52 Make a quick action for all Pols 16 10 2 map 1 5 Tour edit 53 Create New Tours activity 2 6 52 7 16 16 Maintenance 54 Add author field
20. CE Database updatePoi Database Query notify DataChanged getPois Database Query ArrayList lt Poi gt Figure 4 6 show the similarities between changing favorites status of a Pol and creating a new Pol All other functions that calls the database will be very similar to these two sequence diagrams so we have only included those to illustrate how the program classes communicate with the database 42 ARCHITECTURE DESIGN 53 Figure 4 6 Sequence diagram creating a Pol Database Connector 1 createNew addPol Database Query Database Query 7 ResultSet 7 7 ArrayList Poi T The sequence diagram 14 in figure 4 7 show the process of updating the device s local storage with information contained on a webserver When the user request his list to be updated a message is sent to the server which is sent back and parsed before being sent back as a list of Pols 54 CHAPTER 4 SYSTEM ARCHITECTURE Figure 4 7 Sequence diagram updating Pol List Database updater QU ebserver Que Server File 7 ArrayList Poi 7 Viewing figure 4 8 one can see the sequence of classes called when the user prompts to share one or more of his Pols with another android device through a Bluetooth 18 connection The Pols are sent as object between the classes in teh City Explorer
21. ID could be implemented to resolve this issue in the future 7 4 Advanced Rating System One of the ideas discussed in the early parts of the project was to imple ment an advanced rating system storing several bits of information about a review and the reviewer By doing some simple statistics a system could make very good recommendations for other users based on the user s data age interests etc 7 5 Social Media Pages This type of application could benefit from social media site integration The information shared on these pages could automate an advanced rating system see section 7 4 The sharing of tours and pois could also be in tegrated in to the site or sites Automatic check in sharing of a user s location could also be integrated 7 6 PLUG IN SYSTEM 79 7 6 Plug in System The ability to associate behaviors to Pols e g games through the plug in of Pol specific components was a point on the specification list that has been removed in agreement with the customer The reason for the removal of this point was uncertainty about how it should be implemented Two solutions were discussed First a solution is a pure Android based plug in system 22 The problem with this is that deployment becomes difficult since the developer of the plug in has to know how City Explorer works Another problem is that the plug in software will only be usable together with City Explorer The last downside is that the plug in has t
22. Our initial attempt at setting up a convenient communication channel for all members in the form of an IRC channel failed due to our different habits Assuming that all members were online at all times proved to be a mistake While regular email got the messages across to all members not everyone found it to be very convenient A solution that proved successful despite reluctance from some members was a Facebook group We figured that posting messages there would be optimal because most members visit the site on a regular basis Partially due to the communication problems in the beginning we also had difficult time producing the first prototype We had not devoted enough time to a discussion of what the application should be like resulting in con fusion and conflicting views among members To resolve this we decided to make a GUI flow chart together see figure 4 2 This gave us a clearer un derstanding of what the application should be like and how we would fulfill the various requirements Another reason for the slow start was that most of us had not worked with Android before Things went more smoothly after one of the members who did have previous experience with Android wrote the start activity demonstrating the basic approach Oscar was at the hospital during the first three weeks of the project and had already fallen a bit behind when we delivered the preliminary version of the report As he had no previous experience with the Andr
23. Some of the column headers in the activity WP Work package plan are abbreviated Their meaning is Res Resource defined to the right Est Work hours planned Hrs Work hours spent B 1 Status report sprints 1 and 2 The first two sprints of our project were spent working on a sketch of the GUI After the GUI navigation flow was done we worked on realising the GUI elements in terms of Android s XML layouts We spent the first week working on the project documentation and with the backlog Group update We discussed the content of the preliminary report and delegated sections for everyone to work with We abandoned the google docs repository and made a report folder in the SVN repository for the documen tation with plain TEXt files instead Progress summary Tasks that have been performed by the group are described in sprints 1 and 2 see tables C 2 and C 3 in section C 2 Problems GUI components not properly documented Architecture design missing Routines not followed or documented sprints status reports 93 94 APPENDIX B STATUS REPORTS B 2 Status report sprints 3 and 4 City Explorer graphic user interface works and can navigate through some of the different options The Plan activity shows a list of Pol and is able to show them on a map The Map activity can show tour with a path between them A class has been written for both MySQL JDBC and SQLite Android Group update Christian was ill during the firs
24. a favourite 13 Create a new Pol User 14 Create a fixed trip from an existing trip 15 Create a new Pol from an existing Pol 30 CHAPTER 3 REQUIREMENTS SPECIFICATION 3 2 8 Sharing Figure 3 3 presents an overview of the use cases associated with the Shar ing aspects of the application See tables 3 19 through 3 21 for a closer description of these use cases Figure 3 3 Use Cases for requirements 53 1 3 5 16 Browsing anc downloading Pols stored on a server 17 Sharing Pols between devices 18 Browsing anc downloading trips stored on a server 3 3 Textual Use Cases Here is the textual use cases shown which describe each use case more detailed Table 3 4 City Explorer use case 1 Use Case 1 covers S 1 2 1 3 2011 05 04 Name List all downloaded Pols Summary The user must be able to browse places that have been previously downloaded Actor User Precond The local database holds at least one Pol Postcon Activity 2 Plan with a grouped list of all Pols is visible Each group is denoted by the category of the Pols within it Basic flow 1 The user clicks PLAN in Activity 1 Start 2 The user clicks TAB LocATIONS 3 3 TEXTUAL USE CASES 31 Use Case 2 Name Summary Actor Precond Postcon Basic flow Table 3 5 City Explorer use case 2 covers 1 1 2011 05 04 Display the description of a single PoI Information such as an address a picture a description the ope
25. according to categories e g museum landmark dE navigation to a Pol from an arbitrary location including other Pols 51 6 showing a fixed tour in a calendar view 51 61 showing a fixed tour in a map view 51 7 showing a free tour in a list view 51 71 showing a free tour in a map view 51 8 going trough a tour 43 Status 44 CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 24 Tailoring requirements Identifier Requirement Status The City Explorer shall provide support for 52 1 marking certain Pols as favourite 52 2 adding categories to user created Pols 52 3 creating a new Pol from scratch 92 4 creating a new Poi from an existing Pol 52 6 creating a fixed tour from an existing tour 2 61 creating a fixed tour from scratch 92 7 creating a free tour from an existing tour 52 71 creating a free tour from scratch 3 5 REQUIREMENTS HISTORY 45 Table 3 25 Sharing requirements Identifier Requirement Status The City Explorer should provide support for 593 1 browsing Pols stored on a server 53 2 downloading Pols stored on a server 93 3 sharing Pols beteween users 53 4 browsing tours stored on a server 93 5 downloading tours stored on a server 46 CHAPTER 3 REQUIREMENTS SPECIFICATION Chapter 4 System Architecture Decisions regarding the design and implementation of the application are discussed in this chapter 4 1 Overall Architecture Figure 4 1 Ov
26. but are parsed in a connector class and sent as text files over the connection between the devices 59 42 ARCHITECTURE DESIGN Figure 4 8 Sequence diagram sharing a PoI Sharing connector D Sharing Connector ex 7 7 Text File T 7 56 CHAPTER 4 SYSTEM ARCHITECTURE Chapter 5 Implementation Since this project mostly involves user interface development the archi tecture is simple Also since the platform running the system is Android many of the design practices is forced by the platform design We have chosen the software implementation based on the recommended practices for Android Some of the effects of this is a flat layered design with minimal communication between the different screens in the program The reason that the Android system uses this approach has to do with the way the Android operating system handles multitasking In short the effect is that no persistence should exist between the screens because they can be destroyed and garbage collected at a time chosen by the operating system i e if it is not an active activity This has the effect that we can not have a core class tying the entire user interface together Figure 5 1 Communication between activities Parcelable 1 Activity 2 Activity 57 58 CHAPTER 5 IMPLEMENTATION The passing of data between the screens is done by making the objects that we wish to send parcelable to a set of primitive types When the sender initiates the
27. follow up work chapter plug in system section 14 Table 3 22 Non functional requirements Identifier Requirement Priority 54 1 54 2 54 3 54 4 54 5 54 6 The City Explorer client shall be implemented on the Android platform TBD Android version 2 2 will be tested both on the Android mobile and tablet platforms provided by the customer should follow Android recommendations for application interface should provide partial functionality when no Internet access is available should be extendible to accommodate composition support should use existing Android building blocks when possible e g browser and navigation support 3 5 Requirements History Modifications Here we will list and explain all edits done on the requirements during the course of the project By discussing the requirements among ourselves and with our client alot of changes have been proposed while developing the application The following requirements were split into two This was done because they explained two different aspects of the application in one requirement Therefore referencing to one of these requirements then got more specific after they were split requirement 1 2 was split into 51 2 and 1 21 requirement 1 6 was split into 51 6 and 1 61 requirement 51 7 was split into 1 7 and 51 71 requirement 2 6 was split into 52 6 and 52 61 requirement 52 7 was split into 2 7 and 52 71 H H M H H H 3 5 REQUI
28. is a collection of three scenarios that will fully capture all of the requirements 6 1 Client testing Over the course of the project we have demonstrated the application weekly for our client This gave us the opportunity to fix minor flaws and change behaviour according to the client s wishes By doing this we were confident that all the requirements were fulfilled and the final client test could be completed successfully The application was delivered to the client on 11th of April for testing and the final client testing was performed on 2nd of May and 9th of May 6 2 Scenarios Each of the three scenarios in this section will include multiple actions the user can do Scenario 1 The user wants to make a tour from scratch Start by creating a new empty and free tour called My Tour Filter the 71 72 CHAPTER 6 TESTING list of Pols by three categories look through the Pols in the three categories and choose one Pol from each category to the newly created tour Now you should have a tour consisting of three Pols You would like to see that this is true so you will go to your tour and check this To make sure you can use this for something useful view your tour on the map Loop through the Pols so you can clearly see that you have exactly those three you wanted Scenario 2 The user wants to plan and take a tour Start by selecting the fixed tour you would like to take through the city The screen with the list of all
29. it is a component of the application responsible for exposing functionality and for processing user input 58 API Application Programming Interface 39 Extreme Programming Extreme Programming is a software development methodology See reference 8 13 GUI Grapical user interface The interface shown to the user that enables the user to interact with and be informed by the program 48 50 52 http Hypertext Transfer Protocol HTTP is the foundation of data commu nication for the World Wide Web http en wikipedia org wiki HTTP 70 IDE Integrated Development Environment 14 php PHP is a general purpose scripting language originally designed for web development to produce dynamic web pages http www php net 70 Pol Point of interest is a location with attached information 8 48 52 58 SCRUM SCRUM is an iterative incremental framework for project man agement See reference 7 13 101 SDK Software Development Kit 14 SQlite SOlite is an embedded relational database management system http wiw sqlite org 70 tour A tour is a set of one or more Pols 7 25 27 43 45 48 51 58 89 90 VM Virtual Machine 14 139 140 Glossary Bibliography 1 Google inc android developers reference http developer android com reference packages html Accessed 27 February 2011 J Floch framework for tailored city exploration Paper to be pub lished in the proceedings of Third International S
30. of interest such as sightseeing destina tions churches or even shopping malls The content of a tour is not limited to 7 8 CHAPTER 1 INTRODUCTION a specific field of interest beyond what might be associated with the provider who owns it such as the tourist office or an architecture association In or der to obtain such tours the user has to pick a provider from an internally stored list and browse through their repository of tours The user may also download single Point of Interest Pol without selecting a particular tour Once the user has obtained or created an interesting tour they will be able perform a number of activities with highlights including e Getting directions navigation to a particular destination in the tour using Google Maps e Displaying a description a picture and other useful information asso ciated with a particular destination e Scheduling a tour by their preferences or by following an attached time schedule if the creator of the tour has specified this e Displaying a map with a path through all of the destinations as well as viewing each stop separately e Viewing all stops in a tour simultaneously on a map without the sug gested path between them e Going through a tour both as an actual tour or simply by browsing all the destinations on the device at home e Adding destinations to a tour and removing undesired destinations Chapter 2 Project Management A project is usually defined as a
31. on Alfred Getz vei toward H gskoleringen 28 M gt Turn right onto Hagskoleringen 10m Turn right to stay on Hogskoleringen 250 Vestre Havstein Slight right to stay on Hogskoleringen 7 The Star button on the menu to the right in figure D 2 can be pressed if you want to add this location to your own personal list of favourites Viewing tours This part allows you to view different tours around the city A tour is basically just a collection of locations often suited to a set of interests e g a Pub tour or a Shopping tour 116 APPENDIX D USER MANUAL Figure D 4 The tour list left and the list of locations in a tour right 1 16 23 Johnny s supertour Studentersamfundet Empty Tours Microbryggeriet Kirker Fru lundgren Fixed Tours Bl st Shoppingturennnnnn Olavs pub All tours Pub tour Gruppeturen Free Tours Johnny s supertour To get to the list of tours you simply press the tab marked in to the left in figure D 4 Here you see a list over different tours separated by 3 categories Fixed Tours Free Tours and Empty Tours The main difference between a fixed and a free tour is that a fixed tour is set to a time schedule while a free tour is not planned to be taken at any specific time during the day empty tour is of course a tour that contains no locations The screen to the right on figure D 4 is the list you view when you press one of the tours in the
32. pie chart showing distribution of active android os version on the android market in february 2011 http developer android com resources dashboard platform versions html Accessed 13 March 2011 Google i o 2010 android ui design patterns Accessed 7 March 2011 J G Raghu Ramakrishnan Database Management Systems McGraw Hill 3 ed 2002 Wikipedia bluetooth technology reference http en wikipedia org wiki Bluetooth Accessed 12 May 2011 1 http code google com p ancal Accessed 14 May 2011 Wikipedia comma separated values http en wikipedia org wiki Comma separated values Accessed 13 May 2011 W3schools introduction to xml http www w3schools com xml xml whatis asp Accessed 14 May 2011 Paller Plug in http www mylifewithandroid blogspot com 2010 06 plugins html Accessed 11 May 2011 Wikipedia international system of units http en wikipedia org wiki International System of Units Accessed 13 May 2011
33. some good ideas and put together a mean definition of our problem in a compact paragraph We need to do some work before the weekend Everyone works on their sections until 17 00 on Thursday 27 Jan 2011 and upload what they have by then The idea is for us to have something to talk about when we meet on Friday The section 1 0 problem definition is for Friday 88 APPENDIX A MEETINGS A 1 3 11 March 2011 Present Jaroslav Christian Oscar The report needs updating Some things that needs to be done are listed in the next paragraph other things that were pointed out by the supervisor at the last meeting will be mailed by Christian any minute now Report do s for Tuesday 15 Mar 2011 Move sprints to the appendix Split the following specifications 1 2 1 5 1 6 1 7 2 2 2 5 2 6 2 7 Risk list write about it Oscar Architecture write section text Christian New section glossary ntro remove henceforth CE Poor planning In order do be able to predict the impact of someone loos ing time in a sprint we will have to assign or pick all tasks in a sprint before it starts To solve the problem further that is to be able to predict the impact on the project result of a member quitting or similar we will assign respon sibilities to people The responsibilities will be the various work packages Homework To do s and the mail from Christian 2 WITH CLIENT 89 A 2 With C
34. written to run under Android on mobile phones and larger hand held devices such as tablets This is a requirement from our customer The non functional requirements can be found in the requirement specification chapter see section 3 4 To communicate within our team we decided to use Internet Relay Chat IRC e mail and 1 weekly group meeting For meeting minutes see ap pendix A After trying IRC for a while we found out that it was much easier to create a group on Facebook 11 A short discussion of this can be found in the work process reflections section 2 8 Communication with client is done in the weekly meetings and by e mail Our supervisor will meet us every other week and is also available on e mail 2 6 Risk Analysis This risk list Table 2 1 is a plan of actions to avoid risks and to minimize their consequences if they should occur We have chosen to display the risks using a formula that states Likelihood Impact Severity What this means is that the estimated probability of an accident occurring multiplied with the estimated loss of progress if the accident should occur gives us an idea of the importance to avoid a certain risk The higher the severity the more important it becomes to prevent this accident and to know what adjustments to make if we are unable to prevent it The scale of severity has an upper bound which is the smallest square of an integer the multitude of which will be enough to itemize all element
35. 0 Testing Percentage 5 20 20 1 0 0 0 0 0 0 0 Research Percentage 15 00 0 0 0 5 0 0 1 0 0 0 Chapters Percentage 35 39 9 101 455 26 7 4 0 5 Introduction 2 0 0 0 0 0 5 0 5 0 5 0 5 Project Management 5 10 10 1 0 5 1 5 0 0 Requirements spec 6 05 2 0 1 0 0 5 2 0 0 0 Sytem Architecture 55 45 LU 0 0 0 0 0 0 0 0 Implementation 4 10 20 00 0 0 1 0 0 0 Testing 3 1 0 20 0 0 0 0 0 0 0 0 Follow Up Work 1 09 0 1 0 0 0 0 0 0 0 0 Appendices 7 L0 1 0 2 0 1 1 1 9 0 0 Glossary 1 060 1 0 0 0 0 0 0 0 0 0 References 0 5 0 0 0 0 0 0 0 0 0 5 0 0 Meetings Percentage 7 5 17 17 13 0 9 1 3 0 6 Supervisor 15 0 0 3 0 3 0 2 0 3 0 1 Client 3 0 7 07 0 5 0 3 0 5 0 3 Group 3 0T 07 0 5 0 4 0 5 0 2 24 CHAPTER 2 PROJECT MANAGEMENT Chapter 3 Requirements specification This chapter contains the client s description of the application The func tional requirements describe the various activities a user can expect to per form with the application Whereas the non functional requirements define aspects of the application such as the supported operating system devices and design guidelines We have changed the requirements slightly according to advice from our supervisor in order to eliminate some ambiguity How ever no changes were done without the client s consent and the lists in this chapter remain close to the original ones listing of the modifications done on the requirements can be found in the requirements history section 3 5 at the end of this chapter
36. 2 6 has been split into 2 6 and 2 61 requirement 2 7 has been split into 2 7 and 2 71 requirement 2 2 previously being Showing favourite Pols in a list view or in a map view was dropped and rewritten as Adding categories to user created Pols requirement 2 3 Easily switching between a favourite Pols list view and map view was dropped because it is covered in 1 3 requirement 2 4 Filtering favourite Pols according to categories was dropped because it is covered in 1 4 requirement 2 5 Navigation to a favourite Pol from the current loca tion or any other place was dropped because it is covered in 1 5 requirement 2 8 Showing a fixed tour created by the user in a calendar or in a map has been dropped because it is covered in 1 6 and 1 61 requirement 2 9 Showing a free tour created by the user in a calendar or in a map has been dropped because it is covered in 1 7 and 1 71 requirement 2 10 Going through a tour created by the user has been dropped because it is covered in 1 8 requirement 2 11 has been moved to 2 3 requirement 2 12 has been moved to 2 4 Problems stil many shaky sections in the report status reports not done properly sprint 6 not planned B 4 STATUS REPORT SPRINT 6 97 B 4 Status report sprint 6 Two meetings have been held with the supervisor in this period 16th and 25th of March We received comments on the report improvements were
37. 7 9 Integration with UbiCompForAll compo sition tool When the UbiCompForAll composition tool and back end system has been developed and deployed some changes to the software have to be made The integration with the composition tool is on the non functional requirement list located in the requirement specification chapter see section 3 4 but since neither the tool nor the back end was deployed at the time of develop ment the requirement could not be met Appendix Meetings This appendix includes all of our meeting dates and some meeting min utes which shows examples of how the meetings were conducted The table A 1 shows an overview of all the formal meetings we have had The reason we only had three formal group meetings is because our working sessions at school served as forums for our discussions and we did not find it necessary to document all those discussions The formal group meetings see section A 1 includes the meeting minutes for those that were documented Regard ing the meetings with the client see section A 2 only some examples are documented because they were performed very similarly all the time Most of these meetings we were going through the requirement specification list and discussed and tested which requirements that was done The meetings with our supervisor see section A 3 is also some examples because these meetings were almost the same everytime as well We were going through the report and go
38. 8 shows to the right the result you get when you press the Explore button a map showing locations withing a 500 meters vicinity You can press the individual marks on the map to get to the details screen for the corresponding location D 2 Tailoring This part of the User Manual involves the users ability to tailor their own sights and experiences in a city using the City Explorer on Android It covers the more advanced aspects favorizing locations creating new locations creating tours and adding deleting locations from them aswell as setting timetables for your tours Figure D 9 The New Location button left and the location cre ation right New Location Tutorial Location Favourites Description Studentersamfundet Category Castle v Olavs pub Address Address Microbryggeriet Zip Zip code Fru lundgren p City Telephone Telephone Bleest Opening Open hours nidarosdomen Hours Camp Jaro Web page Web page Image Image URL required fields Choose location entry to make new from Choose Location 5 dm Filter Update Locations ERR Creating locations If you find yourself sitting in a beautiful cafe for example Edgars cafe in Studentersamfundet in Trondhjem which for some reason has not yet been added to the City Explorer you might want to add D 2 TAILORING 121 this to your list of locations Figure D 9 shows how you would go about
39. Just just Get Directions Viewing locations This is the most basic part of the application the ability to view information about different locations in a city The screen you see to the right in figure D 1 is the screen that appears when you pressed the Plan button in the opening screen As you can see this is a list with names of different locations in the city seperated by the categories to which they belong If you press one of the entries detailed information about that location will appear as seen on the screen on the left in figure D 2 Pressing the web page on the details screen will open the web browser with the corresponding url address Pressing the telephone number will activate the call function and the number will be called with your android phone As seen on the screen to the left in figure D 2 more options will be available if you press the menu button on your phone In this image the Map Button is highlighted pressing this button will show you a map with the address of this location shown as seen on the left screen in figure D 3 On the screen D 1 EXPLORING 115 beside you have what is shown if you press the Get Directions button which will give you directions on how to get to the location Figure D 3 The map view left and the directions to a location right Walking M Alfred Getz vei Reitanstien Via H gskoleringen 4 0 km 50 min Walking directions beta use caution Head northeast
40. M development model 7 C 1 Project backlog Table C 1 shows us the project backlog This is an overview of all the sprints 101 APPENDIX C BACKLOG 102 Table C 1 Project backlog Sprint 1 2 3 4 5 6 T 8 Last Nr call Item title Description Requirement Hrs 102 98 87 87 186 220 191 174 270 spec est Report Writing the documentation 49 52 64 66 18 172 Maintenance Resolving issues code documentation 43 16 17 2 52 9 updating elements Management Planning activities meetings 16 13 2 10 3 3 7 Design Graphical and structural design and 10 6 12 16 14 12 implementation Pol Displaying information about Pol 51 1 2 7 Tlo 8 2 Pol new edit Creating a Pol S3 3 6211 5212 52 2 Tour new edit Creating a tour 526 562 61 16 8 3 9 27 62 71 53 6 Tour Displaying information about a tour 51 6 1 61 S1 8 22 29 12 25 1 917 81 71 Map view Displaying Pols and tours in a map 91 21 1 61 S1 71 42 0 6 12 17 4 S1 3 519 521 1 Showing tours Pols in a list 514 S12 S813 24 11 6 24 25 16 53 4 63 5 S3 1 563 2 921 1 5 Other Bugfixing and coding that does not fit 53 6 4 I9 24 36 28 in other categories Database Store and retrieve information 93 21 83 2 53 6 10 12 9 5 S3 4 3 5 3 6 Hours 108 81 61 73 168 154 139 164 232 Spent C 2 SPRINTS 103 C 2 Sprints Table C 2 through table C 8 shows us all of the sprints in the project The sprints includes sprint items which is small packages of work that needs to be done It also show
41. ODEL 13 main idea of RAD is to compress all of the phases found in a traditional SDLC into several short iterations From the iterative approach repeating all phases follows a clearer understanding of the requirements for the system as well as a closer match of user expectations This is not an argument against the quality of requirement analysis in traditional SDLCs but it is very important in our case to understand the problem at hand from early on and be able to adopt to modifications in the requirements This point is crucial for our decision to adopt a RAD approach and to bor row elements from different Agile methodologies in our development model Other reasons include e We can not spend a substantial portion of the allocated time in the beginning of the project developing an elaborate plan because of the client s request for a prototype after the second meeting e The client has warned us that some of the requirements may change because some aspects of the system are still under investigation e We are free to suggest and implement new functionality at any time during the project e The client requested weekly meetings with reports and presentations of the application For meeting minutes see appendix A e Some of the group members are familiar with elements from SCRUM 7 and Extreme Programming 8 e A rigid time limit e The different modules of the application can be developed in parallel to each other 2 4 1 Borrowed elem
42. PENDIX MEETINGS A 3 With Supervisor A 3 1 24 Jan 2011 Present Jaroslav Kristian Belen John Arne This meeting was just a formality so we could meet our supervisor He talked a little bit about what he could do for us and what he could not do To sum up he can only assist us with the project management and the report He will not provide us with assistance regarding the application A 3 2 7 Feb 2011 Comments on the preliminary report and work so far e We have to provide rationale for why we will not use commandline or e g NetBeans instead of Eclipse e We have to have a status report so we can be more aware of some issues during the project e We need a risk analysis e Meeting minutes should be in the report e We have to have one person that makes all contact with the customer and the supervisor e We need to include the difference between functional and non functional requirements e Improve the structure of the report e All members of the group have to read through the report so that we catch typos and poor sentence structure e A more objective perspective is needed when writing the report e Need to add references to things like SCRUM MySQL and other tools or brands we are using e Need to add estimated hours and actual hours on the different phases of the project e g in the sprints e Send everything to the supervisor at least 24 hours before a meeting with him Appendix B Status Reports
43. REMENTS HISTORY A The following requirements were dropped because detailed discussion over the requirements proved that they were already covered through earlier re quirements requirement 92 2 Showing favourite Pols in a list view or in a map view was dropped because it was already covered in 1 2 requirement 2 3 Easily switching between a favourite Pols list view and map view was dropped because it was covered in 51 3 requirement 2 4 Filtering favourite Pols according to categories was dropped because it was covered in 51 4 requirement 2 5 Navigation to a favourite Pol from the current lo cation or any other place was dropped because it was covered in 51 5 requirement 2 8 Showing a fixed trip created by the user in a cal endar or a map was dropped because it was covered in 51 6 and S1 61 requirement 52 9 Showing a free trip created by the user in a calendar or in a map was dropped because it was covered in 51 7 and 51 71 requirement 2 10 Going through a trip created by the user was dropped because it was covered in 51 8 Additional changes were also made Adding categories to user created Pols was added at 52 2 requirement 2 11 was moved to 2 3 requirement 2 12 was moved to 82 4 The non functional requirement 4 5 Should be extendible to accom modate composition support has not been fulfilled This is because the UbiCompFo
44. We have chosen not to modify them significantly because it makes the acceptance tests easier to conduct and because it makes the reporting of the progress to the client more precise That is when we reported to the client which functionality has been implemented we used these requirements 3 1 Functional requirements Table 3 1 lists basis city exploration requirements They describe the most important functionality according to the client and have the highest priority in the implementation phase The terms fixed and free tour serve to distinguish between how a tour may be displayed Fixed tours may be displayed in a calendar view scheduled and on a map with a suggested navigation path from one Pol to the next Free tours are displayed in a map with a path through all Pols and without a schedule 25 26 CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 1 Basis requirements Identifier Requirement Priority The City Explorer shall provide support for 51 1 displaying information about Pols H 51 2 showing Pols in a list view H 51 21 showing Pols in a map view H S1 3 easily switching between a Pols list view and map view H S1 4 filtering Pols according to categories e g museum landmark M 51 5 navigation to a Pol from an arbitrary location including other Pols H 51 6 showing a fixed tour in a calendar view H 51 61 showing a fixed tour in a map view H 51 7 showing a free tour in a list view L 51 71 showing a free tour in a map v
45. a pianobar Blaest Add Location Erling Skakkes gate 3 Google The Nidaros i im Cathedral det Delete Time Table for Tour Filtering your locations Now we jump back to the screen shown to the right in figure D 1 to show how to suit the location list for yourself Figure D 7 displays to the left the button for opening the filter list which is displayed to the right In this list you can check off the categories you would like to have displayed in the location list including the Favourite category Pressing the OK button will get you back to the location list containing only the categories corresponding to what you checked in the filter D 1 EXPLORING 119 Figure D 7 The button to open filtering left and the filtering list right LOCATIONS Favourites Filter Studentersamfundet Church Lokka Olavs pub Drug store Microbryggeriet Fru lundgren Night club Blaest nidarosdomen Pub Camp Jaro P t Shopping New Location Update Locations City EXPLORE The Explore button And now as mentioned in the beginning of this section we will explain the function of the Explore button in the opening 120 APPENDIX D USER MANUAL screen of the City Explorer It is quite simply the button you would like to press if you find yourself downtown and bored one day and would like to check out the sights and shops in your close vicinity Figure D
46. ame summary Actor Precond Postcon Basic flow Use Case 7 Name summary Actor Precond Postcon Table 3 9 City Explorer use case 6 covers 81 6 2011 04 28 View a fixed tour Displays a tour in a time table User The database holds at least one fixed tour containing at least one Pol TAB TounRs in Activity 2 Plan is activated The tour is shown in a time table 1 Click on a fixed tour Table 3 10 City Explorer use case 7 covers S 1 61 1 71 2011 05 04 Display a tour in a digital map A user will want to see all Pols that are associated with a tour in the map User The database holds at least one tour containing at least one Pol Either of Activity 3 Pol details or TaB Tours in Activity 2 Plan is active Activity 8 Directions displays all Pols of a tour in the map Basic flow 1 Press the button menu on the device 2 Click MENu sHOW ON MAP 3 Activity 8 Directions is activated and displays a cate gory icon on the coordiantes of every Pol in the tour Use Case 8 Name summary Actor Precond Postcon Table 3 11 City Explorer use case 8 covers 51 7 2011 05 04 List all Pols in a free tour The user must be able to see all Pols of a free tour in a list User The database holds at least one free tour containing at least one Pol raB Touns in Activity 2 Plan is activated All Pols associated with a free tour are itemized in the simple list of Activity 3 Pol details
47. ation using Google Maps violate some license Preliminary report due on 31 Jan We had a look at the requirements for the preliminary report defined in one of the documents on It s Learning The following points must be documented Development model waterfall scrum XP Description of the environment Definition of the problem Description of the application Functional and non functional requirements 84 APPENDIX A MEETINGS Possible obstacles we are facing map license means we will use open streetmap org inadequate knowledge of the Android platform Brief outline of alternative solutions High level outline of the architecture Team description roles and members Basic time plan Homework Think about what to ask the client and the supervisor read the documents attached in the email from the client and read up on Android A 1 WITH GROUP 85 A 1 2 6 Jan 2011 Present Jaroslav Christian Belen Short summary We continued more or less were we left off the last time which means that the main focus of our discussion was centered around the report We worked out the table of contents in more detail and talked about what the different sections should contain The structure presented in the Preliminary report table of contents below does not have to be how we put the document together in the final version but it would be nice to have a logical flow Preliminary report table of content
48. choice of solution is governed by cost but since the only resource we have in this project is time the increase in cost is acceptable as long as the group members are able and willing to work more The group will probably not be able to take on all of the responsibilities and workload of the missing member so the solution chosen is the compromise solution The group will discuss with the client about dropping some of the requirements We anticipate that this will be fine based on discussions on the subject in an earlier meeting After discussing amongst the group and having a meeting with the client alot of changes have been made to the functional requirements see the para graph Requirements update B 3 below for details Progress summary Tasks that have been performed by the group are described in Sprint 5 C 6 section C 2 96 APPENDIX B STATUS REPORTS We have had to postpone some of the milestones One problem caused by this is that tailoring and sharing requirements have to be documented after the deadline for delivering a version of the report to which we can get comments We will have to finish the documentation of those parts as much as possible before the implementation is completed in order to benefit from comments by the supervisor Requirements update requirement 1 2 has been split into 1 2 and 1 21 requirement 1 6 has been split into 1 6 and 1 61 requirement 1 7 has been split into 1 7 and 1 71 requirement
49. ctivity 3 Pol details Pol details displays information about a selected Pol A user can activate this Activity in at least three ways 1 by clicking an item in the list of the tab Locations in Activity 2 2 by clicking an item in the list of Activity 4 Tour view 3 by clicking a Pol in Activity 7 Map view The buttons and gt appear only when the user navigates to this activity from Activity 4 Tour view Involved classes Buttons PoiDetailsActivity java show previous PoI Poi java gt show next Pol 62 CHAPTER 5 IMPLEMENTATION Menu buttons MENU SHOW ON gt Activity 7 Map MENU GET DIRECTIONS gt Activity 8 Directions MENU STAR Toggle favourite status of Pol Activity 4 Tour view Activity 4 opens when a tour is selected The activity shows all of the Pols in tour in a list view Involved classes Buttons TripList java 1iTEM POIS LIST gt Activity 3 Poi Details Trip java Quick Actions QA DELETE FROM TOUR gt Delete Pol from the current tour QA SHOW ON gt Activity 7 Map QA GET DIRECTIONS Activity 8 Get directions Menu buttons MENU ADD LOCATION gt Locations tab in Activity 2 Plan MENU SHOW ON gt Activity 7 Map MENU DELETE gt Delete the current tour MENU TIME TABLE FoR Tour gt Activity 9 Calendar view Activity 5 create Pol Activity 5 allows you to create a new Pol
50. d to allow full functionality when the phone is both connected and disconnected to the Internet The two databases is similar in design but the implementation may be different This will be further discussed in section 5 2 5 The diagram shows the tables and fields of the database as well as the connections between them The poi table shows us the fields that a particular poi should have This is similar with the tour table The trip_poi table connects the poi and tour tables in a many to many connection This means that a Pol can be included in many tours and a tour can include many Pols The address table is a helper table that contains an address for a Pol The category table is a simple table that holds all the categories and a Pol can be assigned to one category Figure 4 4 ER diagram INT ip i id INT INT i i global STRING poi number INT title STRING STRING description STRING BOOLEAN free trip BOOLEAN INT INT INT openingHours STRING page STRING url STRING in Li MER 31 id INT street name STRING id INT title STRING 52 CHAPTER 4 SYSTEM ARCHITECTURE 4 2 3 Architecture sequence diagrams The sequence diagram 14 shown in figure 4 5 shows an example of a GUI element changing the favorite status of a Pol After the update has been sent the component updates the list of Pols Figure 4 5 Sequence diagram favorizing a Pol Database Connector T
51. e Tours Pub tour Save Tour Johnny s supertour Mi cce Creating a new tour based on an old one If you want to create a tour based on another tour you can use the Choose tour button in the creation screen as seen in figure D 14 The locations contained in the tour you choose in the right screen in figure D 14 will be loaded into your new tour 126 APPENDIX D USER MANUAL Figure D 15 How to delete locations from tours left and how to delete tours right 5 22 57 Pub tour Lokka Olavs pub Empty Tours Kirker Q Fixed Tours Shoppingturennnnnn Fru lundgren Britania pianobar Add Locations Show on map Bl st Tourtorial Deleting locations from your newly created tour The process of removing locations from your tour is shown to the left in figure D 15 and deleting tours from your phone s memory is shown to the right D 3 Sharing amp Updating This part of the User Manual involves the users ability to share among themselves the things they might enjoy to see in a city using the City Ex plorer on Android We will go through how you go about sharing a location with friends updating locations from a server and updating tours from a server D 3 SHARING amp UPDATING 127 Figure D 16 Opening the sharing of locations left and location selection for sharing right Favourites LOCATIONS Drug store Lokka Camp Jaro Studentersamfundet Fru
52. ents Our development model consists of several elements from Agile models such as SCRUM and Extreme Programming We will now present a descriptions of those elements and how we have adopted them The Backlog The backlog is located in appendix C The concept of backlog offered by Scrum encourages developers to record all features of an applica tion The content of the recorded list is usually based on use scenarios items in this list are prioritized according to the needs of the client while the time needed to complete each task is estimated by the team The most important tasks are then chosen for implementation in the next sprint RAD 14 CHAPTER 2 PROJECT MANAGEMENT iteration That point in our backlog is identical to any other backlog but other concepts vary e Our items priority is not displayed in the backlog because they are based on the client specified priorities from the requirements specifica tion see section 3 e Our items represent work packages see section 2 1 as well as individual tasks or modules of the application Pair Programming This concept is borrowed from Extreme Program ming and is rather self explanatory Our slight modification of this concept is that we use several computers instead of one and a pair programming ses sion may have more than two participants We find this way of working very helpful because we are able to help each other with problems as soon as they arise 2 5 Developme
53. erall system architecture Figure 4 1 shows the overall architecture of the system The main part of the system is divided in to a back end server and a client Only the client AT 48 CHAPTER 4 SYSTEM ARCHITECTURE is part of this project The server is going to be created at a later time Since the client software does not have a back end server to test against a simple server has been created for testing purposes The server is described in this report for consistency but it is not part of the specification The idea is to have a central server hosting Pols and tours The Pols can be added by different institutions or individuals for example tourist office school museum The client part of the system is able to download this information from the server and display it to the user The system also supports sharing and creating of information by users of the client 4 2 Architecture design The user interface is separated in to the screens shown in the figure 4 2 The figure also shows the navigation flow in the GUI The GUI is further discussed in section 5 2 1 49 42 ARCHITECTURE DESIGN Figure 4 2 User interface navigation flow chart Program Start Trip I Pol 1 careen Impp N Trip 2 Pol 2 Trip 3 Pol 3 Browse Server New Poi Trip Categories Share Calendar 4 Pol 1 Navigate from Walk 400 m current location Navigate from another Pol Walk 250 m vi Pol 3
54. eviation is shown in the deviation chart see figure 2 3 This chart shows the deviation in percentage If the percentage is zero we have estimated correctly If the percentage is above zero we have underestimated the workload and vice versa if the percentage is under zero we have over estimated the workload As seen in the charts we have overestimated the workload The calculated average deviation is 1696 which means that we have to adjust our future estimates accordingly 2 5 WORK PROCESS REFLECTIONS 21 Figure 2 2 Sprint workload overview Sprint workload overview Deviation Percentage 59 173 37 300 37 34 Project work package distribution At the end of the project the back log is able to give a good indication of the how the group distributed working hours between the different parts of the project The estimation of the work load of each part in the project was done at the beginning of the project and is described in the WBS section of the report see section 2 7 The two 22 CHAPTER 2 PROJECT MANAGEMENT most important parts of the project are the Iterations coding and the report parts estimated to 56 percent and 36 5 percent respectively Calculations done on the backlog after the project was completed shows that the actual work done on the parts match the estimates with only small deviations The group used 59 7 percent of the total hours on coding and
55. finite event It has objectives tasks and limitations in human resources as well as the implicit time constraint This chapter describes a plan of actions during the three phases our project will traverse and presents an oversight of the activities within those phases We will also discuss the applied tools and techniques and how they have improved the outcome 2 1 Pre studies According to research conducted by the client 2 there is a number of similar applications Unfortunately they lack in functionality on one or several of the following points e exploitation of potential context awareness inherent to mobile devices e geographical wideness support for many cities e quality of the user interface e tailoring tours according to users desires While the collected opinions of potential users express an interest in a better application they were not the direct cause of our client s efforts to suggest an application as specified by the requirements specification see chapter 3 The goal of our client is rather exploration in the area of end user composition of mobile 3 In order to facilitate the development of the application our client has chosen the open source Apache license 10 CHAPTER 2 PROJECT MANAGEMENT 2 1 1 Alternative Solutions The description of the project is rather specific and the client s requests are unambiguous There might be room for suggestions but not misinter pretation Exist
56. g all members This flat structure seems suitable because everyone involved will receive the same grade Besides when everyone shares roles it is impossible to blame failure in a specific area of the project e g management docu mentation development on a single individual The decision to have a flat group structure has not been without problems This is discussed in more detail in the work process reflections section 2 8 2 4 Development model A traditional Software Development Life Cycle is based on a struc tured step by step approach to developing systems The steps which may be considered normal in such a model include a preliminary investigation re quirement analysis logical and physical design implementation maintenance and deployment None of the steps may be executed before the preceding step is finished Because of this the whole process can be slow and cumber some It does not allow a team to produce prototypes in a short time period and the users of the application are involved only in the initial phases This means that any feedback from the users has to wait until the first public release candidate which may be too late in our case if the client finds our implementation unsatisfactory Rapid Application Development is a more recent and flexible approach to development some times referred to as Agile Development models The The paragraphs about RAD and SDLC are based on pp 189 194 6 2 4 DEVELOPMENT M
57. gories empty fixed and free 5 2 IMPLEMENTATION DESIGN 59 e Activity 3 opens when a Pol is selected The activity shows a detailed view with all of the information about the Pol e Activity 4 opens when a tour is selected The activity shows a view of all of the Pols in a tour e Activity 5 allows creating a Pol e Activity 6 allows creating a tour e Activity 7 shows a map The activity can be used to show a map with either a tour or Pol e Activity 8 opens the directions activity allowing you to get directions from one Pol to another e Activity 9 opens the calendar view allowing you to see or change times for your fixed tour 5 2 1 User interface The GUI is divided in nine main Activity elements They are the center pieces of the application because all functionality is exposed through them While designing and implementing the GUI we have followed some of the recommendations mentioned in the Google I O video 16 We found ele ments such as Quick Actions especially useful and they are described more closely later in this sub chapter 5 2 2 Quick Actions Parallel functionality to a context popup which appears whenever a user right clicks on an object in a GUI of a regular computer application is offered through a list of quick actions A quick action can be shown after long clicking an object in the interface There is no clear way of knowing whether an object
58. h the supervisor to dicuss the uneven workload during the project aswell as the group member who has been missing for several weeks B 7 STATUS REPORT LAST CALL 99 Group update The supervisor recommended us to set up work dis tribution chart depicting how the total workload of the project has been distributed among the group members Work on that was done this week and the results were sent to the supervisor Continuing efforts to contact the missing group member have proven to be less than successful The group reached him on the phone at one point but the only responce from him was that he was not very motivated to work We have yet to reach him since This has been grounds for concern from the rest of the group since this was the last week before delivery there has been a lot of work to be done Progress summary The last planned elements of the applications were implemented before the meeting with the client at the beginning of the sprint After that mostly work on the report has been done On the report we have refined alot of the sections and gone through the whole report correcting typos and other erroneous elements See table C 10 in section C 2 for more details on work done in this period Problems at time of delivery Jaroslav is still not reachable 100 APPENDIX B STATUS REPORTS Appendix Backlog This appendix includes the Project backlog and all of the sprints These concepts is a part of the SCRU
59. handover it first packages the object and sends it via an intent When the receiving screen or Activity as they are called in Android starts up it can retrieve the package from the intent that started it and unpack the package to build a new identical object See figure 5 1 5 1 Packages project CityExplorer gui This package holds the Activities for the project see figure 4 2 and helper classes for creating lists and other gui components project CityExplorer data This package holds the classes for mirroring database content in memory For example Pol tour address it also holds the database interface and the database connectors project CityExplorer map This package holds the classes needed to show the information on a map project CityExplorer map route This package holds the classes for showing a route on a map 5 2 Implementation design Figure 4 2 shows all of the different Activities of the application Here is a short description of each activity e Activity 1 is the starting screen This is the first thing a user sees after opening the application The screen has two buttons Plan and Explore The plan button launches activity 2 The explore button launches activity 7 showing a map with the users current position and nearby POIs e Activity 2 is a tab view showing either Pols or tours The Pols are listed by categories always showing the favourites first The tours are 6 99 listed in cate
60. i int void setTime HashMap lt Poi Time void setTime Poi Time void void isEmpty boolean equals Object boolean toString String Trip Parcel writeToParcel Parcel int void 5 2 IMPLEMENTATION DESIGN Figure 5 4 Class Diagram 3 67 68 CHAPTER 5 IMPLEMENTATION Figure 5 5 Class Diagram 4 lt lt Java Class 9 MapsActivity project CityExplorer map onPress MaplconOverlay void onClick View void onActivityResult int int Intent void lt lt Java T 2 basis 9 MapTripOverlay c project CityExplorer map IconOverlay Context int GeoPoint amp MapTripOverlay Trip n draw Canvas MapView boolean void tePos GeoPoint void setCurrentPoilndex int void getCurrentPoilndex int onTap GeoPoint MapView boolean getPoi Poi roadSegments getlmage Bitmap lt lt Java Class setlmage Bitmap void 9 PoiToPoi getScreenPts Point project CityExplorer map getGeoPoint GeoPoint PoiToPoi Poi Poi evaluateClick int int boolean drawRoadSegment MapView Canvas Paint void isFreeTrip boolean getldGlobal int getldPrivate int getPois ArrayList lt Poi gt getFixedTimes HashMap lt Poi Time getPoiAt int Poi addPoi Poi void insertPoi int Poi void removePoi int void setTime HashMap lt Poi Time gt void se
61. id onCreateOptionsMenu Menu boolean onOptionsltemSelected Menultem boolean onClick View void onClick View void onActivityResult intint Intent void onActivityResult intint Intent void 0 1 lt lt Java Class gt gt db 0 1 lt lt Java Interface gt gt setTime HashMap lt Poi Time gt void selTime Poi Time void pecu 7 o cearTimes void isEmpty boolean equals Object boolean toString String Trip Parcel writeToParcel Parcel int void getAllPois String ArrayList lt Poi gt getAllPois Boolean ArrayList lt Poi gt address 0 1 getAlITrips ArrayList lt Trip gt pom Fe getAllTrips Boolean ArrayList lt Trip gt int Java Class getPoi int Poi Time RA editPoi Poi void poer getCategoryld String int f Time int int getCategoryNames ArrayList lt String gt newTrip Trip void getAllEmptyTrips ArrayList lt Trip gt deleteFromTrip Trip Poi void addPoiToTrip Trip Poi boolean addTimesToTrip Trip void getUniqueCategoryNames ArrayList lt String gt getUniqueCategoryNamesAndlcons HashMap String Bitmap deleteTrip Trip void deletePoi Poi boolean setContext Context void getPoiPrivateldFromGloballd int int getTripPrivateldFromGloballd int int getTrip int Trip lt lt Java Class gt gt lt lt Java Class gt gt 9 SQLiteCo
62. iew L 51 8 going trough a tour H Table 3 2 lists the tailoring requirements of the application They de scribe the various planning activities a user may perform and how they can modify the data This table has medium to high priority and it is important that we fulfill these requirements as well Table 3 2 Tailoring requirements Identifier Requirement Priority The City Explorer shall provide support for 52 1 marking certain Pols as favourite H 52 2 adding categories to user created Pols M 52 3 creating a new Pol from scratch M 52 4 creating a new Poi from an existing Pol M 52 6 creating a fixed tour from an existing tour H 92 61 creating a fixed tour from scratch H S2 7 creating a free tour from an existing tour L S2 71 creating a free tour from scratch L Table 3 3 represents the sharing capabilities of the application They describe the Internet enabled functionality such as browsing and download ing Pols and tours stored on a server and sharing Pols and tours between 3 2 USE CASE DIAGRAMS 27 users This functionality is of least importance to the client and should be implemented when the basis and tailoring requirements have been satisfied In agreement with the customer we have removed the requirement to share tours for technical reasons For a further discussion on this see the follow up work chapter section 7 3 Sharing of Tours Table 3 3 Sharing requirements Identifier Requirement Priority 53
63. in the table by an integer If there are 9 elements in the list likelihood and impact will be on a scale from 1 to 3 Where higher values have a higher importance If there are 10 16 elements they will be on a scale between 1 and 4 and so on This scale makes the severity of each risk relative to the other risks The list also contains all the preventive actions we are taking and all remedial actions we are prepared to take for every risk 16 CHAPTER 2 PROJECT MANAGEMENT Table 2 1 Risk assessment Description Preventive action Likelihood Impact Severity Insufficient time 3x3 9 Have an overview of the time we have to our disposal Data loss 2x3 6 Create daily archives from the central SVN Incompetence 2x3 6 Plan and document implemen tation strategy before coding document failed implementa tion attempts Illness 2x2 4 Avoid infecting others dress well keep good hygiene get enough sleep Member s shirking work 242 Deadlines within the group Conflicts within group 1422 Have an open discussion Do not overrun others ideas Group member drops out 1 2 2 Motivate be inclusive by as signing roles perform social activities Unforeseen delays E SE Work more every week to keep safe buffer Server failure 1 1 1 Run svn update on the whole repo every day Remedial action Talk to each other and keep an eye on the deadlines Recover from archives Help each other try and find
64. ing applications do provide interactive maps information and de scriptions of places selection of favourites and type based filtering of des tinations The City Explorer is not very original in that respect but two features of City Explorer that in our opinions make this project very inter esting are e decentralized generation of contents as in there may be several service providers and users may share their own places and tours e an open source model with a plug in system as an important future goal These characteristics turn City Explorer into a potentially global application which in our view is more exciting than a regular school project 2 2 Project Schedule 2 2 1 Phases The completion of the project is preceded by three phases They are the Plan and Design Iterative Development and Last Call three phases are estimated to fit within the time frame of 16 weeks starting on the 20th of January and ending on the 15th of May These dates coincide with the dates of our first meeting and the final deadline for this document Plan and Design The initial phase ran for three weeks starting on 20th of January and ending on 6th of February This time was spent working out the details of the schedule and establishing routines Iterative Development The main part of the project ran for 12 weeks with one week in the end set aside for testing It started on 7th of February and ended on 8th of May The main
65. ions labeled by the primary category of the Pols within The list of tours is also divided into sections empty fixed 112 and free The tours are placed under each section according to what kind of tour it is Involved classes Buttons PlanActivity java Locations gt Pols listing PlanTabActivity java Tours gt tours listing PlanTabPoi java iTEM POIS List gt Activity 3 Poi Details PlanTabTrip java ITEM TouRS LIST gt Activity 4 Tour view SeparatedListAdapter java Section java PoiAdapter java Poi java TripAdapter java Trip java 5 2 IMPLEMENTATION DESIGN 61 Quick Actions tours tab QA ApD Locations gt Locations in Activity 2 Plan QA SHOW on gt Activity 7 Map qa DELETE Delete selected tour Locations tab QA sTAR Toggle favourite status of Pol QA ADD TO TOUR gt Tours in Activity 2 Plan QA sHOW ON MAP gt Activity 7 Map QA GET DIRECTIONS gt Activity 8 Directions QA SHARE Share a Pol with another person QA DELETE Delete selected Pol Menu buttons in Locations tab MENU NEW Location gt Activity 5 Create Pol MENU SHARE gt Locations in Activity 2 Plan MENU FILTER gt Filter Pols according to categories MENU UPDATE LOCATIONS gt Locations in Activity 2 Plan Menu buttons in Tours tab MENU NEW Tour gt Activity 6 Create tour MENU UPDATE TOURS gt Tours in Activit 2 Plan A
66. ivity 8 Directions Activity 8 Directions The activity where the user can select locations between which they wish to see navigation help 64 CHAPTER 5 IMPLEMENTATION Involved classes Buttons NavigateFrom java PoI prop pown Choose Pol Poi java NaviGATE Opens up Google Maps which gives you navigation support Activity 9 Calendar View The Calendar View is a view that lets you add Pols in a tour in a time specific order It also displays the amount of time the user has to spend walking between each particular Pol in the tour Involved classes CalendarActivity java Trip java Time java Menu buttons MENU SAvE Times Save the created times in the database MENU CLEAR TiMwEs Clear the times in the view 5 2 4 Implementation Classes The class diagrams 14 shown in figure 5 2 5 3 5 4 5 5 and 5 6 shows the implementation of the diagrams in the architecture chapter see section 4 2 1 Figure 5 2 shows the classes involved with the creation of Pols and Tours figure 5 3 shows the classes involved in showing tours and Pols in a list The classes in figure 5 4 handles the calendar view whilst figure 5 5 shows the classes for viewing tours and Pols in a map and finally The classes in figure 5 6 handles sharing and the downloading of new Pols and tours 5 2 IMPLEMENTATION DESIGN 65 Figure 5 2 Class Diagram 1 lt lt Java Class gt gt 9 NewTripActivity project CityExplorer gui onCreate Bundle vo
67. l 83 Added geocoding when adding new 3 2 pois Report 61 Use Cases 16 5 11 Report 85 Added testing section 2 2 Plan 91 Implementing sharing of Pols 16 8 Plan 87 Remaking category filter 10 4 Tour 78 Making a new tour from an existing 5 3 tour 52 6 Tour 86 Implementing calendar view 51 6 8 Design Redesign tab buttons 51 1 Design 89 Xml layouts and bitmaps 10 2 Database 88 Update database diagram with new 6 2 fields and primary keys Other 92 Browsing and downloading Pols 16 Other 93 Browsing and downloading tours 16 Other 75 Bugfixing 10 4 Maintenance 94 Fixing Javadoc 8 5 4 Maintenance 84 Code revert and bugfixing 24 16 8 Maintenance 90 Implementing changes recommended 16 5 9 by the client Total 174 66 32 0 66 2 SPRINTS 111 C 2 9 Last call Table C 10 Last call 9th of May 15th of May Backlog Item Sprint Description Hrs O C J JR K Item est Management 10 Meeting with the client 1 1 1 Management 21 Meeting with the supervisor 1 1 1 1 Report 85 Writing testing section 2 Report 95 Finalization of the report 200 20 50 50 50 Other 75 Bugfixing 10 4 Other 93 Browsing and downloading tours 24 8 8 8 Plan 91 Implementing sharing of Pols 16 8 Maintenance 94 Fixing Javadoc 8 5 4 Total 270 21 68 69 0 74 112 APPENDIX C BACKLOG Appendix D User Manual This manual goes through the different uses of the City Explorer D 1 Exploring This part of the User Manual involves the users ability to explore a city of previously u
68. lient A 2 1 24 Jan 2011 e We will receive one device for development e The client wants to see a plan of the project for the next meeting e The project will be licensed under the Apache License e Future meetings will find place in Sintef ITC on Mondays at 14 15 e A Pol might be contain Description Game History Application Quizzes e A tour can contain several Pols e We were asked to think about how to make the application work in offline and online modes A 2 2 31 Jan 2011 Comments on the preliminary report e Remember to write on the importance of documentation Until the next meeting e Make diagram for the GUI e Working on simple GUI components A 2 3 7 Feb 2011 Comments on the preliminary report e Justify our choices for development environment e g MySQL e The architecture is not documented e Backlog should be more detailed and specify when the various parts will be done does not really work that way Comments on the GUI see figure 4 2 e Button to edit a tour e Add poi from map minimum time for GPS to stabilize 90 APPENDIX MEETINGS e New edit Pol screen enable setting the location on a map or by using your current location e Tour screen To from times on each POI How long do we spent in each place Calendar view e How to distinguish my own content from public Other e Consider using local and or Internet database We will try both A 2 4 14 Feb 2011 P
69. lter Updating locations from server If you have a look at figure D 18 you can see that the process of updating the locations stored on your phone with information stored on an online server is pretty strait forward The first screen shows the accessing via the locations menu and the next screen shows the selection of which locations to download from the server 130 APPENDIX D USER MANUAL Figure D 19 Updating tours 00 19 Server Tours Empty Tours ch k ristianturen Kirker Fixed Tours Shoppingturennnnnn All tours Pub tour Gruppeturen Free Tours Johnny s supertour New Tour Updating tours from server This is the same process as when you update locations from a server only accessed through the tour menu as shown in figure D 19 Appendix E List of Figures This appendix lists all of the figures seen in the report 131 132 APPENDIX E LIST OF FIGURES List of Figures 21 2 2 2 8 3 1 3 2 3 3 4 4 2 4 3 4 4 4 5 4 6 4 7 4 8 5 1 5 2 5 3 5 4 5 9 5 6 Bil D 2 D 3 D 4 D 5 Work breakdown structure 17 Sprint workload overview s cos e 0400 21 DETALON unu GE d RR d 21 Use Cases for requirements 611 518 28 Use Cases for requirements 92 1 2 71 29 Use Cases for requirements 93 1 3 5 30 Overall system architecture
70. lundgren Lokka nidarosdomen Olavs pub Dublin Cafe Drug store Microbryggeriet Camp Jaro Studentersamfundet New Location Pub Filter Update Locations Sharing locations with a friend The process of sharing locations with a friend is shown in figure D 16 When in the locations screen you press the share button as shown to the left in figure D 16 to access the list of locations to the right Select the locations you wish to share open the menu and press the share button 128 APPENDIX D USER MANUAL Figure D 17 The list of ways to share locations left and list of devices available for sharing right Oy s USB connected Bluetooth device picker Share ce file using Scan for devices Bluetooth devices KRISTIAN PC Pair with this device Subscribe in BeyondPod This will prompt the list you can see to the left in figure D 17 where you have several means of sending the location information to someone However the recommended ways are bluetooth and email The next screen shows a list of devices you can send to so select your friends android device and he will receive it D 3 SHARING amp UPDATING 129 Figure D 18 The list of ways to share locations left and list of devices available for sharing right Church LOCATIONS Christian Drug store Kristian Camp Jaro John Arne Studentersamfundet L kka Olavs pub Dublin Cafe Microbryggeriet c Fi
71. maintenance and 35 7 percent on the report The group is pleased with the distribution of work between the parts and the low deviation also shows that we have made good initial estimate which we were able to follow throughout the project 2 9 Work distribution As mentioned in the work process reflections section 2 8 in this chapter we have not contributed equally to the project Because of this we have included table describing each person s work distribution in percentage see table 2 9 based on the actual percentage we were supposed to work on each part of the project seen in the work breakdown structure figure 2 1 The top row in the table indicates the initials of the group members C is Christian Berg Skjetne is Kristian Greve Hagen is John Arne Oye O is Oscar Aarseth J R is Jaroslav Rakhmatoullin and B is Maria Belen Gallego Garcia 2 9 WORK DISTRIBUTION 23 Table 2 2 Work distribution percentage C K J O JR B Total Percentage 29 9 29 7 16 9 6 0 16 5 1 1 Coding Percentage 45 15 8 15 4 7 1 1 0 5 8 0 0 Graphical design 6 0 5 30 20 0 0 0 5 0 0 Pol 3 0 5 0 3 0 0 0 0 2 8 0 0 Tour 2 0 3 0 1 0 1 0 0 1 5 0 0 Map 5 30 0 0 0 0 1 0 1 0 0 0 Calendar 3 3 0 0 0 0 0 0 0 0 0 0 0 Pol new edit 5 00 3 0 2 0 0 0 0 0 0 0 Tour new edit 4 0 0 3 0 1 0 0 0 0 0 0 0 Plan 7 3 0 30 1 0 0 0 0 0 0 0 Database 6 3 5 1 0 1 0 0 0 0 5 0 0 Sharing 4 20 20 0 0 0 0 0 0 0 0 Maintenance Percentage 6 0 5 05 25 1 5 1 0 0
72. me HashMap lt Poi Time void Shia _ DatabaseUpdater JS Sig pond pepe setTime Poi Time void nad df DatabaseUpdater Context equals Object boolean dolnternetUpdatePois getinternetPois ArrayList lt Poi gt getFixedTimes HashMap lt Poi Time getPoiAt int Poi addPoi Poi void toString String hashCode int f Poi Parcel writeToParcel Parcel int void doFileUpdatePois String int storePois ArrayList Poi int doUpdateTrips int M getinternetTrips ArrayList lt Trip gt address O 1 storeTrips ArrayList lt Trip gt int ae fixedTimes O b i A Java Class gt gt PoiAddress Ny Time on project CityExplorer data writeToParcel Parcel int void 70 CHAPTER 5 IMPLEMENTATION 5 2 5 Implementation Database The actual implementation of the databases described in section 4 2 2 is realised as two different databases The online database is realised using a simple Http call using a Php web server The local server is realised by a SOlite server on the device The reason for choosing this solution is because the Android operation system has built in support for SQlite The web server is chosen because of the unstable connection nature of a mobile phone A database system without a persistent connection is recommended 5 3 Implemented default Android components As stated in
73. n share Pols with another user Status Passed Table 6 18 City Explorer test case 18 Test Case 18 covers S 3 4 3 5 2011 05 10 Name Browsing and downloading tours stored on a server Summary The user can browse and download tours stored on a server Status Passed Chapter 7 Follow up Work This chapter contains suggestions for developers wanting to extend and im prove on the work done during this project 7 1 Back end system Since the specification did not include the construction of a back end In ternet server system the testing system implemented in the program is very simple more complex system should be implemented in the future The current system is based on csv files 20 simply because they are very easy to parse The new back end system could possibly communicate with the pro gram using another file format since the csv file format is less standardised and has less support for meta data than for example the xml 21 file format The back end implemented by the group for testing is based on static csv files hosted on a web server The future back end should implement a proper database system The important thing to consider is to base the protocol used in the communication between the back end system and the program on a protocol with a non persistent connection This is discussed further in the implementation chapter see the implementation database section 5 2 5 7 2 Web Portal One of the more novel feature
74. nening hours a website and a telephone number that is recorded about a particular place is made visible User The local database holds at least one Pol Activity 2 Plan is active The user is informed about name description category and address of a Pol Activity 4 Tour view is active 1 Click TaB Locations 2 Click an item in the list Use Case 3 Name Summary Actor Precond Postcon Basic flow Table 3 6 City Explorer use case 3 covers 1 21 1 3 2011 05 04 Show the geographical location of a single PoI on a digital map The map activity must be able to show where a particular place is in order to let users orient themselves and decide on whether they wish to visit the place User Internet connection is established database holds at least one Pol Locations in Activity 2 Plan is activated The map activity displays a category icon which indicates where a particular place is 1 The user selects a Pol by long clicking the corresponding item in the list 2 A list of quick actions appears 3 The user clicks qga sHow IN MAP 4 Activity 8 Directions is activated with the map centered on the coordinates of the selected Poi 32 Use Case 4 Name summary Actor Precond Postcon CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 7 City Explorer use case 4 covers 51 4 2011 05 04 Filter listed Pols by category Enables the user to filter pois by category User TAB Location
75. nknown pubs shops and other sights to see using the City Explorer on Android Figure D 1 The opening screen left and the Locations screen right LOCATIONS Cit Favourites Studentersamfundet EXPLORER m Olavs pub Microbryggeriet Fru lundgren Bleest nidarosdomen Camp Jaro Cathedral nidarosdomen Lade Kirke Heimdal Kirke 113 114 APPENDIX D USER MANUAL The screen to the left in figure D 1 is the main screen that is shown when you run the City Explorer As you can see there are two buttons Plan and Explore Starting off we will delve into the usage of the Plan button and then explain the Explore button in the end of this section Figure D 2 The location details screen left and the Show Map but ton right 3 y t 15 53 D 16 19 Tutorial Location Tutorial Location Press the menu button on your device to display Press the menu button on your device to display options regarding this location options regarding this location Webpage URLs and telephone numbers can be Webpage URLs and telephone numbers can be pressed to activate the proper action for it pressed to activate the proper action for it Category Castle Category Castle Address Holbergsgate 14a Address Holbergsgate 14a 7015 7015 Trondheim Trondheim Telephone 48211554 Telephone 48211554 Opening Never open Opening Never open Hours Hours Web page www cityexplorer com Web page www cityexplorer com
76. nnector project CityExplorer data 66 Figure 5 3 Class Diagram 2 lt lt Java Class PlanActivity project CityExplorer gui lt lt Java Class gt gt 9 PlanTabPoi project CityExplorer gui lt lt Java Class gt gt 9 PlanTabActivity project CityExplorer gui onCreate Bundie void L onCreateOptionsMenu Menu boolean onCreate Bundie void onResume void onPrepareOptionsMenu Menu boolean onCreateOptionsMenu Menu boolean onOptionsitemSelected Menultem boolean onListltemClick ListView View int long void onActivityResult int int Intent void A initGPS void onLocationChanged Location void onProviderDisabled String void onProviderEnabled String void onStatusChanged String int Bundle void onClick DialogInterface int boolean void onClick Dialoginterface int void adapter 1 lt lt Java Class gt gt 9 SeparatedListAdapter project CityExplorer data lt lt Java Class gt gt 9 PoiAdapter project CityExplorer data getltem int Object items O i oco int lt lt Java Class gt gt getViewTypeCount int getltemViewType int int getView int View ViewGroup View getltemid int long notifyDataSetChanged void getldPrivate int isFavourite boolean getCategory String getTelephone String getOpeningHours String getWebPage String
77. nt environment In order to save valuable time at the beginning of the project we chose to write the application in the Eclipse IDE The time saving argument is not the only one that tipped the scale All group members were already familiar with Eclipse and we are thus able to help each other if any problems arise with either the version control back end or during compilation Further if the knowledge shared among us turns out to be insufficient to solve a particular problem we can turn to the large community of Eclipse users and developers This is a good option to have because the probability of getting stuck with some problem for a long time is reduced Furthermore Eclipse supports the Android SDK through a plug in which facilitates the conversion to Dalvik bytecode Android Java VM and the creation of binary packages for Android For centralized version control we chose SVN 9 because it is provided to us by the university SVN is also what we have used previously because it facilitates sharing of code between several developers SQLite 10 will be used to store the data internally in the application It is widely used in Android development and by using it we are adhering to the non functional requirement 4 6 using existing Android building blocks We are designing primarily with a local database because the requirements for sharing amongst users of the application is not of high priority 2 6 RISK ANALYSIS 15 The application is
78. o be downloaded separately from the application in the Android Market On the other hand one upside to this solution is that it is very flexible and fast allowing for use of all the features of the Android system as well as allowing for off line use The other solution discussed was a web based solution This allows for easy deployment and updating no separate downloading required and the plug in code can be reused for other web based content The downside of this solution is that it requires the phone to be connected to the Internet Both of these solutions could be implemented in the future 7 7 Support for non SI units The specification did not mention the use of units so SI units of measurement 23 and the 24h time was implemented The reason we chose this implementa tion is because most of the people in the world are using SI units The units are hard coded in to the application but can easily be changed A setting to choose the units should be implemented to accommodate different locales 7 8 Translation The specification did not mention the use of language so English seemed to be the most suitable language The reason we chose this language is because English is understood by most of the people in the world Most of the text written in the application is written in a separate string xml file so it is easy to translate Some of the text is hard coded but this should also be easy to change 80 CHAPTER 7 FOLLOW UP WORK
79. objective in this phase was to produce a working application Every iteration will be referred to as a sprint Documentation for each sprint is worked out at the beginning of the sprint in sprint backlog 2 3 STAKEHOLDERS 11 Last Call The finalization of this document will find place in the last phase and final week of our schedule It started on 9th of May and ended on 15th of May Some important tasks will include proof reading removal of reproduced information review by external parts and formatting 2 2 2 Milestones The iterative phase of the project is defined by a few milestones They are intermediate project objectives and help us to keep the project on schedule A secondary purpose of the milestones is to tell the client when she can expect the various requirements to be implemented The milestones concerning this report are set by the course coordinator while milestones concerning the requirements were set by us during the plan ning phase Unfortunately due to unforeseen delays the milestones were postponed See appendix section B 2 The following list contains the updated dates for the completion of the various parts of the application 31 Jan Delivery 16 00 Project report VERY preliminary version 28 Feb Delivery 16 00 Project Report mid semester version 13 Mar Basis requriments fullfilled 08 Apr Delivery 16 00 Project report for final comments from supervisor 25 Mar Tailoring requirement
80. odle in order to figure out a time which is good for everybody A 1 WITH GROUP 83 series of questions was asked during the meeting which the non attending members are urged to think about Some of them include Do you have an Android phone Have you got any experience with the platform Do you have any preferences regarding the development model for the project Do you have any questions for the client Because of the clumsy nature of email when there are more than two participants in a conversation creating an IRC channel was suggested Some good clients are X chat mIRC Irssi and for those of you with smart phones there are probably good alternatives in your favourite app store Have a look and tell us what you think Questions for the client Do we get a SVN repository Are there any competing applications Has any research been done among potential users Do we get one or more Android phones to develop on Which version of the platform are we supposed to develop on Is there back end for the information to be stored If a back end exists what formats does it use Is there any documen tation Do we need to write an application for PCs and tablets Why is it a good idea to develop this application For the report Are we trying to provide an alternative to something Is there huge money to be made Someone s personal dream Does the intended functionality of the application e g navig
81. oid programming platform more time than expected was used to learn this and his direct contribution to the group was limited as a result of this Still the process was not optimal because the work load was unevenly distributed Several factors contributed to this with the most important being high time demands in other courses illness amongst members and poor planning of group activities Our self organizing of the team was apparently a bad choice Despite the code that was available for studying in SVN not everyone was certain about how to write the application and certainly everyone left the writing of the report to everyone else The problem became very evident in sprint 4 which was one week before the midterm report was due The active members attempts to motivate the rest of the group to work with the report were not very successful during that week resulting in a mid term report that did not meet our supervisor s expectations One week after the midterm delivery Belen informed us by e mail that she was dropping the subject She felt incapable of contributing in a satisfactory manner listing time constraints and lack of knowledge as reasons for this See 2 8 WORK PROCESS REFLECTIONS 19 the status reports in appendix B for further information and consequences One problem leading up to this was that we did not distribute responsibilities This made it harder to figure out what each member was supposed to do at a given time Another
82. ontaining all the locations here you can mark which locations to add marked locations are highlighted in light blue and add them to your tour 124 APPENDIX D USER MANUAL Figure D 13 Accessing timetable left and creating the timetable right Pub tour 6 Lokka 7 Olavs pub Dublin Cafe Microbryggeriet 3 Holdeplassen 10 Fru lundgren 11 Britania pianobar 12 00 Christian Bl st 13 00 Kristian 14 16 m 17 Delete d s FA Add Location Show on Map Setting a timetable for your tour When inside the tour you can access the timetable as shown to the left in figure D 13 To set times for each of your locations you have to touch the hour you want to set it to and drag your finger across the timetable to the correct minute as shown to the right in figure D 13 A list of the locations in your tour will appear and you must add them to the timetable you must put them into the table in the correct order The City Explorer will calculate the time you need to walk between loca tions The hour you need to leave a location to get to the next depends on the walking distance and the time you ve set for arriving at it D 2 TAILORING 125 Figure D 14 The Choose tour button left and the tour selection right 16 32 16 33 New Tour Empty Tours Name Kirker Fred Tour Shoppingturennnnnn Free Tour All tours required fields Create new tour from None Fre
83. orer test 5 74 City Explorer test case6 ee 74 City Explorer test case T gt soa resco RR RR x y keun 74 City Explorer test case8 a len 74 City Explorer test case 9 75 City Explorer best case 10 75 City Explorer test case 11 75 City Explorer test case 12 75 City Explorer test case 13 75 City Explorer test case 14 76 City Explorer test case 15 76 City Explorer test case 16 osos Ro Xx 76 City Explorer test case 17 76 City Explorer test case 18 76 Jur IDEM nouus EE EP kde w 82 Project backlog o soni dae wu RU 102 Sprint 1 31st of January 6th of February 103 Sprint 2 7th of February 13th of February 104 Sprint 3 14th of February 20th of February 105 Sprint 4 21st of February 27th of February 106 Sprint 5 28th of February 13th of March 107 Sprint 6 14th of March 27th of March 108 Sprint 7 28th of March 10th of April 109 Sprint 8 25th of April 8th of May 110 C 10 Last call 9th of May 15th of May 111 Glossary Activity From the Android reference An activity is a single focused thing that the user can do In other words
84. ours in a crucial part of the project At the same time we lost contact with Jaroslav He stopped showing up at school and even though we continuously tried to contact him via email phone and Facebook we could not reach him As per the final delivery we have not yet been able to meet with him Because we have not gotten a hold of him he has not been contributing in the last weeks of the project and the remaining group members had to take on additional work to compensate for the loss of manpower This was the chosen solution as suggested by the risk assessment table see section 2 6 On the 11th of May we had a meeting with the supervisor regarding the problems we have had within the group We explained the current situation and we all agreed that the most fair solution to our problem would be to ask for separate grading We do realise it might be a bit late in the semester to report our troubles but we still felt it was necessary to discuss this and ask for guidance on the matter Working hours estimation To find out if our working estimates correlate to the actual hours spent we plotted the hours spent and the hours estimated including the target workload per sprint in a chart see figure 2 2 Starting from sprint one up to sprint four we had sprints lasting one week Starting from sprint five we increased the sprint length to two weeks per sprint This explains the major jump in hours after week four A better illustration of the actual d
85. place Status Passed Table 6 4 City Explorer test case 4 Test Case 4 covers 51 4 2011 05 04 Name Filter listed Pols by category Summary Enables the user to filter pois by category Status Passed 74 CHAPTER 6 TESTING Table 6 5 City Explorer test case 5 Test Case 5 covers 1 5 2011 05 04 Name Display directions to a Pol in a digital map Summary Launches Activity 9 Calendar View where the source and destination between which the user wishes to navigate can be selected before invoking Google Maps or other applica tion capable of giving directions Status Passed Table 6 6 City Explorer test case 6 Test Case 6 covers 81 6 2011 04 28 Name View a fixed tour Summary Displays a tour in a time table Status Passed Table 6 7 City Explorer test case 7 Test Case 7 covers S 1 61 1 71 2011 05 04 Name Display a tour in a digital map Summary A user will want to see all Pols that are associated with a tour in the map Status Passed Table 6 8 City Explorer test case 8 Test Case 8 covers 81 7 2011 05 04 Name List all Pols in a free tour Summary The user must be able to see all Pols of a free tour in a list Status Passed 6 8 TEST CASES 75 Table 6 9 City Explorer test case 9 Test Case 9 covers 81 8 2011 05 04 Name Cycle through all Pols in a tour Summary The user must be able to view all Pols in a tour one by one and switching easily between them Status Passed Table 6 10 City Explorer test case 10 Tes
86. previous list If you look at figure D 5 you can see the left screen shows the menu with the button for showing timetable for this fixed tour highlighted The screen to the left is the timetable that appears when you press that button In the timetable you have the locations from the tour lined up at the time you are supposed to visit them aswell as the time to walk between them If you press the locations you will get to the detail screen if you press the walking distanses you will get the walking directions D 1 EXPLORING 117 Figure D 5 The tour list left and the list of locations in a tour right Lokka 14 Olavs pub 15 00 Lokka Dublin Cafe Microbryggeriet 16 00 Olavs pub Holdeplassen lundgren 17 00 Dublin Cafe Britania pianobar Blaest 18 00 Microbryggeriet 19 00 Holdeplassen L3 20 00 Fru lundgren Add Location Show on Map 17 F Save Times Clear Times From the menu when you ve entered a tour you also have the possibility to view all the locations on a map by pressing the button as shown in figure D 6 with directions between the locations as shown to the right in the same figure The arrows on top of the screen can be used to cycle through the locations 118 APPENDIX D USER MANUAL Figure D 6 The button for opening map in a tour left and the corresponding map with locations right Lokka Olavs pub Dublin Cafe Microbryggeriet Holdeplassen Fru lundgren Britani
87. problem was that we did not use a lot of time to map out the members individual abilities and knowledge This could have been very useful for addressing and avoiding these problems before they occurred Another problem may be that the group did not discuss the individual members expectation of the course in terms of workload and grade Having this information makes for more correct expectations of the effort of other members and could also have helped us identify potential problems before they occurred After Belen left Oscar realised that his contribution did not really out weigh hers at this time and he asked the group if he should leave as well But during a meeting we had with the supervisor it got explained to us that it was possible to have a sit down with the teacher to discuss expectations for this course and try to come up with a solution Even though Oscar wanted to use this option we strongly recommended him not to As the trouble around Belen leaving had made the group look disorganized enough Oscar have been ill for a big part of this semester and it has greatly affected his workload Not only has he been away when hospitalized but his physical condition has been greatly reduced and he has technically been on sick leave for 8 weeks during this semester He has chosen to ignore this and still tried to participate for most of these weeks Documentation for Oscar s sick leave can be provided if necessary Despite this setback work on
88. rAll composition tool and back end system does not yet exist This makes it hard to implement the application with composition support Completion This section contains a history of our progress on completing the require ment specification list The orange colour means that we have started imple menting the requirement The yellow colour means that the requirement has been partially implemented The green colour means that the requirement has been fully implemented The dates in the tables specifies at which date the requirements was started partially implemented and fully implemented respectively Since the requirement specification list was updated each week 42 CHAPTER 3 REQUIREMENTS SPECIFICATION some of the requirements were fully implemented during this period This explains why some status cells does not have a date As in the functional re quirements section See section 3 1 table 3 23 lists the history for the Basis city exploration requirements table 3 24 lists the history for the Tailoring requirements and table 3 25 lists the history for the Sharing requirements 3 5 REQUIREMENTS HISTORY Table 3 23 Basis requirements Identifier Requirement The City Explorer shall provide support for 51 1 displaying information about Pols 51 2 showing Pols in list view 51 21 showing Pols in a map view 51 3 easily switching between a Pols list view and map view 514 filtering Pols
89. recommendations for ap plication interface by adhering to the recommendations mentioned in the Google I O Video UI Patterns 16 For more details see the implementa tion chapter section 5 2 1 Perhaps the most difficult non functional requirement to fulfill is 54 4 offline functionality During the planning phase and early in the project we have discussed how we might implement map functionality without an active Internet connection using Openstreetmap org Those plans were abandoned due to the complexity of such a solution and the limited amount of time at our disposal Nevertheless our application does function offline but maps and navigation are not available in this specific mode including browsing and downloading of Pols and tours stored on a server and other functions that clearly needs an Internet connection to fully function To meet requirement 54 5 the application should be able to integrate with the composition tool developed by UbiCompForAIl We have met 4 6 reusing existing android building blocks by including no external libraries in our application except Google API version 8 We have used the integrated Google Maps for displaying our maps and added 40 CHAPTER 3 REQUIREMENTS SPECIFICATION the opportunity to open an URL in the default browser In agreement with the customer we have decided to remove the require ment that accommodates new types of Pol entities Plug in For a further discussion on this see the
90. rements ao Reg irements History s su dive hy sse Se RE Res System Architecture Al Overall Architecture o cs sasaa AGE doe bede 4 2 Architecture 4 2 1 Architecture 4 2 2 Architecture database 4 2 3 Architecture sequence diagrams 10 10 10 11 11 12 12 12 13 14 15 17 17 22 25 25 2T 28 29 30 30 39 40 Implementation ml cou ek OR ox oe d 19 e n Un ee eae die UR US 5 2 Implementation design 5 21 5 2 2 Quick Actions i142 dex EE A ES Band SUEDE 2 ue xc US CORO UR a Re 5 24 Implementation Classes 5 2 0 Implementation Database 5 8 Implemented default Android components Testing 01 Ghent testing ce Ee Hee eR eS be OVE PERMIT Cuv 3 NI 194 CT Follow up Work 7 1 Back end system Lucus Reo RR ORE mox eos Ta Web Portal ous za Pe eS ROROX EX ARBOR T3 Sharing of Tours o e eresse AUR ood ER ES nd 7 4 Advanced Rating System a To Socal Media PAESE o cc usos oko SSA GR ES ede 10 Flugin DDR o e coe orte woe ek eoi Qni Support fornon OL NERA sp esso ikru x OX X MGR Te INE uou seo dh ono toe doo o 9 o4 ed eg dew 7 9 Integration with UbiCompForAll composition tool Meetings
91. resent Jaroslav e Non f req Should be extendible to accommodate new types of Pol entities Open a poi as a game Activities related to places or cities e The importance of modifying user created content was stressed e Sprint 3 0 Last sprint 1 Pol on map map lt gt list poiview 2 Calendar view 3 Map fixed tour e A local database was more important than an Internet based because the client intended to bring this prototype to possible stakeholders such as arkitektforeningen and ask them about making a tour out of their book about Trondheim for example e We agreed on the term tour instead of itinerary which was origi nally proposed by our client A 2 5 28 Feb 2011 Present Jaroslav Belen Christian Kristian Oscar Items for sprint5 2 WITH CLIENT 91 e Display modes for a tour List view and calendar view e Create an activity for selecting or entering details about to and from before invoking Google Maps context aware pois in a list of suggestions should be in proximity of location e Add a menu button in tour view get directions e Add a button to QA in map view navigate here Other e Send apk to the client e Collect signatures from members who have not signed the contract e Documentation the most significant parts of the api are The API javadoc and architecture models e My way is not the only way make suggestions to alternative ap proaches 92 AP
92. s e 1 0 Introduction to the project problem definition high level diagram to show our corner of the client s system e 1 x Introduction of the group roles and responsibilities scrum has a flat structure and we think it fits our group well difficulty of assigning a leader is present even more than in any other situation be cause we do not know each other we are not avoiding responsibility but sharing it because the grade is shared and because it is too easy to blame some particular role in a project Everyone has every role e 2 0 Model description choice of process model the client made it clear that changes might arise we are welcome to suggest features the client needs first and foremost a good GUI Making several prototypes is an approach to GUI development with many practical benefits the group is comfortable with agile development because we know it from before e 2 x Development environment Eclipse Android 2 2 SVN MySQL Why are we choosing these environments Primarily phones but 86 APPENDIX MEETINGS also a tablet if the client provides it e 3 0 Project description more diagrams program classes architecture use cases etc description of the technical issues possibly a handbook for the ap plication features of the application e 3 x Description of a layered app and the layers UI interface back end and other modules back end is not going to be very solid or reusable
93. s in Activity 2 Plan is activated The list of all Pols contains only those places which meet the selected categories Basic flow Use Case 5 Name Summary Actor Precond Postcon 1 The user presses the menu button on the device 2 A dialog with check boxes for categories appears 3 User checks the desired categories and clicks 0K Table 3 8 City Explorer use case 5 covers 61 5 2011 05 04 Display directions to a Pol in a digital map Launches Activity 9 Calendar View where the source and destination between which the user wishes to navigate can be selected before invoking Google Maps or other applica tion capable of giving directions User Either Activity 8 Directions or TAB LOCATIONS in Activ ity 2 Plan is active A third party application with navigation support has been launched and is showing the directions Basic flow Alternative flow 4a Long click the desired PoI Click qa cET DIRECTIONS in quick action popup Activity 9 Calendar View is activated Select navigate from current position The user clicks NavieaTE Select the preferred navigation application The directions are drawn on the display 4al 4a2 4a3 4a4 Select navigate from another location Select location from the list of Pols The user clicks NAvIGATE Select the preferred navigation applicatio 4a5 The directions are drawn on the display 3 8 TEXTUAL USE CASES 33 Use Case 6 N
94. s fullfilled 15 Apr Sharing requriments fullfilled 02 May Delivery of application to the client for final testing 15 May Delivery 16 00 Project report final version 23 24 May Presentation of projects 2 3 Stakeholders Since this is not a big commercial project the number of interested parties is limited to the client and the six members responsible for the development The client is presumably conducting market research and is looking to en tice third parties in future development by demonstrating the merits of this project Our interest is simple we like to write Java code 4 and aim to get a good grade in this course 12 CHAPTER 2 PROJECT MANAGEMENT 2 3 1 The Client Our client is the independent research institute SINTEF 5 represented by Jacqueline Floch She is responsible for the unpublished paper A Framework For User Tailored City Exploration 2 In the context of this paper she has requested this application We are also told that this will be incorporated under the larger umbrella of the research project UbiCompForAll 3 The idea of UbiCompForAll is about providing support to end users so they can easily compose service behaviours in ubiquitous service environments 2 3 2 Team Organization At the start of this project the group consisted of the six authors mentioned on the front page We have chosen not to assign specific roles to any of the members to divide the responsibility for the project equally amon
95. s of City explorer is the ability to create and share user created content with other users of the software A web portal for the program s user community would allow users and tourist offices to create and update content themselves To facilitate this the ability to upload tours and pois directly to a web server could be integrated TT 78 CHAPTER 7 FOLLOW UP WORK 7 3 Sharing of Tours One point on the original specification list that was removed was the abil ity to share tours The reason for this is quite technical The pois in the local database holds two identifiers one private ID which identifies the poi in the local database and one Global ID which identifies the pois in the local database that has been downloaded from the Internet When a poi is downloaded it is assigned a private ID The problem is when you transfer a poi without a Global ID there is no way to distinguish the newly added poi from other pois since it is automatically assigned a private ID by the SQLite database Since the private ID is the ID used to assign a poi to a tour newly imported poi without a global ID can not be assigned automatically temporary identifier could be used to get a handle to the imported poi But since this method could not eliminate pois already in the database from being duplicated the decision to remove this specification was reached in agreement with the customer method for comparing pois based on con tent and a temporary
96. s us the estimated time of each individual sprint item the persons who is responsible for doing them and actual hours spent The top rows in the tables indicate the initials of the group members C is Christian Berg Skjetne is Kristian Greve Hagen is John Arne Oye O is Oscar Aarseth J R is Jaroslav Rakhmatoullin and B is Maria Belen Gallego Garcia C 2 1 Sprint 1 Table C 2 Sprint 1 31st of January 6th of February Backlog Item Sprint Description Hrs O C J JR K Item est Report 1 Problem description 4 3 2 Report 2 Architecture 5 4 Report 3 Group organization 3 2 2 Report 4 Requirement specifications 4 4 Report 5 Development environment 8 2 2 2 Report 2 Time plan 3 4 Report 7 Alternatives 3 4 Report 8 Sketching GUI 15 3 3 3 3 3 Report 9 Digitalizing GUI 3 3 Management 10 Meeting with the client 5 1 1 1 1 Management 11 Meeting with the group 5 1 1 1 1 1 Management 12 Backlog Initial version 3 2 2 Management 13 Backlog Sprint 1 1 1 Management 14 Backlog Sprint 2 1 1 Management 15 Setting up Mumble 1 1 Maintenance 16 Environment Eclipse 10 2 Maintenance 17 Environment SVN 10 2 Maintenance 18 Environment Android SDK 10 2 Maintenance 19 Mobile phone drivers 5 3 Maintenance 20 Report Latex 3 4 6 Total 102 17 24 20 26 21 104 APPENDIX C BACKLOG C 2 2 Sprint 2 Table C 3 Sprint 2 7th of February 13th of February Backlog Item Sprint Description Hrs C J Item est Management
97. ss you want to download to your device Press the button menu on the device Click MENU UPDATE Tours 3 4 NON FUNCTIONAL REQUIREMENTS 39 3 4 Non functional requirements Table 3 22 describes the nonfunctional requirements of the application These requirements impose certain constrains upon the architecture and im plementation Some of the requirements are neither visible to the end user nor are they easily verifiable with tests Instead they need to be thought through carefully to ensure that the application meets them Requirement number 54 1 implemented on Android is not particularly difficult to verify because the code either compiles against the Android Level 8 API or it does not The client did not specify a particular reason for choosing this version of the OS However a significant portion roughly 6096 of active devices on the android market in the first quarter of 2011 were running version 2 2 15 We also know that Android was preferred because of support for flexible software composition and the open source Apache 2 0 license page 2 2 Our client has provided two development devices running Android 2 2 that are at our disposal at all times The two devices are the Google Nexus One and the Samsung Galaxy Tab The application is developed on both devices and tests are performed on both to ensure that we meet 84 2 tested on both moblie and tablet Android platforms We have met requirement 54 3 follow Android
98. st Sort by severity 1 Report 71 Add glossary 5 1 Report 2 Handle suggestions from the supervisor 10 4 3 Report 13 Make status report for sprint 4 10 Report 74 Make status report for sprint 5 6 2 2 2 2 Other 58 Create intermediate activity between 16 12 navigate to and Google Maps 51 5 Other 75 Bugfixing 10 4 1 1 1 Total 220 11 41 19 35 48 C 2 SPRINTS 109 C 2 7 Sprint 7 Table C 8 Sprint 7 28th of March 10th of April Backlog Item Sprint Description Hrs O C J JR K Item est Management 10 Meeting with the client 5 1 1 1 Mapview 76 Loop through all Pols in a tour in 4 4 mapview S1 8 Design 67 Redesign menubuttons 51 1 1 1 1 Design Redesign tab buttons 51 1 12 5 Tour 66 Create activity calendarview 51 6 40 18 6 Tour 78 Quick action for making a new tour out 4 of an existing 52 6 Tour 79 Xml layouts and bitmaps 2 6 52 7 1 Tour edit 53 Add field free or fixed in new tour 3 S2 6 2 61 Report 80 Fix the changes recommended by the 80 4 15 3 10 25 supervisor Report 81 Update database diagram with new 2 2 fields and primary keys Report 61 Use Cases 3 1 1 Report 61 Make Use Cases for Tailoring and shar 10 5 ing Report 82 Make status report for sprint 6 16 Other T9 Bugfixing 10 2 35 12 5 Total 191 4 44 22 2T 42 110 APPENDIX C BACKLOG C 2 8 Sprint 8 Table C 9 Sprint 8 25th of April 8th of May Backlog Item Sprint Description Hrs O C J JR K Item est Management 10 Meeting with the client 5 1 1 1 Po
99. stored in the database Basic flow 1 Press the button menu on the device 2 Click MENU NEw Tour 3 Fill in the mandatory fields and choose whether you want a fixed or a free tour 4 Click Save Tour 3 8 TEXTUAL USE CASES 35 Table 3 15 City Explorer use case 12 Use Case 12 covers 82 1 2011 05 10 Name Summary Actor Precond Postcon Setting a Pol as a favourite The user may change a Pols favourite status User Activity 4 Tour view is active and displays the selected Pol The selected Pol has changed favourite status Basic flow 1 Press the button on the device 2 Click Menu Favour1tTEe marked as a star Table 3 16 City Explorer use case 13 Use Case 13 covers S 2 2 2 3 2011 05 10 Name Summary Actor Precond Postcon Create a new Pol The user may create new Pols User TAB Locations in Activity 2 Plan is activated The database contains the newly created Pol Basic flow 1 Press the button menu on the device 2 Click MENU NEWw Location 3 Fill in the mandatory fields 4 Click Save Location 36 Postcon Basic flow CHAPTER 3 REQUIREMENTS SPECIFICATION Table 3 17 City Explorer use case 14 Use Case 14 covers 82 6 2011 05 10 Name Create a fixed tour from an existing tour Summary The user may create a fixed tour from an existing tour Actor User Precond TAB Touns in Activity 2 Plan is activated The tour is displayed in TAB Touns in Activi
100. t Case 10 covers 52 7 2011 05 10 Name Create a new tour from an existing tour Summary The user may create a new free tour from an existing tour Status Passed Table 6 11 City Explorer test case 11 Test Case 11 covers S 2 61 2 71 2011 05 10 Name Create a new tour Summary A user may create a new tour Status Passed Table 6 12 City Explorer test case 12 Test Case 12 covers 52 1 2011 05 10 Name Setting a Pol as a favourite Summary The user may change a Pols favourite status Status Passed Table 6 13 City Explorer test case 13 Test Case 13 covers S 2 2 2 3 2011 05 10 Name Create a new Pol Summary The user may create new Pols Status Passed 76 CHAPTER 6 TESTING Table 6 14 City Explorer test case 14 Test Case 14 covers 82 6 2011 05 10 Name Create a fixed tour from an existing tour Summary The user may create a fixed tour from an existing tour Status Passed Table 6 15 City Explorer test case 15 Test Case 15 covers 52 4 2011 05 10 Name Create a new Pol from an existing Pol Summary The user may create new Pols from existing Pols Status Passed Table 6 16 City Explorer test case 16 Test Case 16 covers S 3 1 3 2 2011 05 10 Name Browsing and downloading Pols stored on a server Summary The user can browse and download Pols stored on a server Status Passed Table 6 17 City Explorer test case 17 Test Case 17 covers 53 3 2011 05 10 Name Sharing Pois between devices Summary The user ca
101. t feedback on what we could do better 8l 82 APPENDIX A MEETINGS Table A 1 Our meetings Group Client Supervisor 20 Jan 2011 24 Jan 2011 24 Jan 2011 26 Jan 2011 31 Jan 2011 7 Feb 2011 11 Mar 2011 7 Feb 2011 2 Mar 2011 14 Feb 2011 11 Mar 2011 28 Feb 2011 16 Mar 2011 T Mar 2011 25 Mar 2011 14 Mar 2011 1 Apr 2011 28 Mar 2011 11 May 2011 4 Apr 2011 11 Apr 2011 2 May 2011 9 May 2011 A 1 With Group A 1 1 20 Jan 2011 Present Jaroslav Kristian Christian Belen General thoughts and suggestions Either Google docs or a flat file in a SVN repository may be used to store the project documentation So far we have one vote for either option and two neutral votes We will most likely use an agile methodology to work with the project Scrum was suggested because some of the members are familiar with it In reality we will probably have to assimilate elements from other models and remove or alter elements of Scrum because of the constraints of our environment students working on a project A meeting with our supervisor was proposed to be held on Monday 24 Jan 2011 None of the attending members of the group could think of any questions for him We have to just meet him and listen to any advice he might have for us It is probably wise to speak with him before we meet the client We need to find a date to meet with the client She has sent us an email with a request to fill out a do
102. t seems to show that the hours on 98 APPENDIX B STATUS REPORTS this is overestimated See table C 8 in section C 2 for more details on work done in sprint 7 Problems time constraints may lead us to not being able to implement the Shar ing requirements see table 3 3 in section 3 1 B 6 Status report sprint 8 During this period two meetings have been held with the client on the 11th of April and 2nd of May A meeting with the supervisor was held at 1st of April Group update Since the start of this period we ve had trouble contacting Jaroslav which has resulted in no work being done by this group member the last weeks Attempts to contact him via e mail phone and facebook have all proven unfeasible While the group is concerned both about the condition of the grou member aswell as the time constraints nothing is done on this problem except for increasing the work load on the remaining members Progress summary After meetings with the client several changes were recommended Some of the time in this sprint went to correcting them See table C 9 in section C 2 for more details on work done in this period Problems unable to get a hold of a group member for weeks B 7 Status report last call During this period one meeting was held with the client on the 9th of May Testing was perfomered with the client on the finished application The client seemed to be pleased with the result A meeting was held wit
103. t week of this period On the 20th John Arne informed us that he was leaving to attend his grandfathers funeral and would not be back until the following Sunday Since the midterm delivery is due this week the rest of the group has to increase their workload The group has unfortunately not worked sufficiently evenly with the report up till now and as an effect we are unable to follow the risk analyses exactly and have to increase the number of hours worked by the rest of the group The group agrees to work more steadily with the report to avoid this situation in the future During the last days of the period some members does not contribute to the satisfaction of the rest The rest of the group have to work even more hours to cover for the work not being done by these members in addition to John Arnes work The Facebook group page does not seem to be read by all members despite them being urged to read it as well as reprimanded via mail for not doing so Progress summary During the period of sprint 3 and 4 alot of work has been done on the report aswell as the GUI of the application We now have a functioning user interface which makes it easier to do personal testing on the application Detailed tasks are described in Sprints 3 and 4 see tables C 4 and C 5 in section C 2 Problems GUI components not properly documented Architecture design missing Some members participating less than desired Need to discuss the situation
104. tTime Poi Time void ClearTimes void isEmpty boolean 6 equals Object boolean toString String Trip Parcel writeToParcel Parcel int void 5 2 IMPLEMENTATION DESIGN 69 Figure 5 6 Class Diagram 5 lt lt Java Class lt lt Java Class gt gt PlanTabPoi 9 PlanTabTrip project CityExplorer gui project CityExplorer gui onCreate Bundle void onListltemClick ListView View int Jong void onResume void onPrepareOptionsMenu Menu boolean onCreateOptionsMenu Menu boolean onOptionsltemSelected Menultem boolean onActivityResuit int int Intent void onCreate Bundie void onResume void onPrepareOptionsMenu Menu boolean onCreateOptionsMenu Menu boolean onOptionsitemSelected Menultem boolean onListltemClick ListView View int long void onActivityResult int int Intent void A initGPS void onLocationChanged Location void onProviderDisabled String void onProviderEnabled String void onStatusChanged String int Bundle void onClick DialogInterface int boolean void onClick DialogInterface int void 0 1 lt lt Java Class Trip downloadedTrips getldPrivate int isFavourite boolean getCategory String 6 getTelephone String c xen getOpeningH String insertPoi int Poi void 7 ae lt lt Java Clas gt gt o A removePoi int void String 07 PLE setTi
105. the Pols contained in the tour will bve shown Review them to verify that this is the correct tour Open the menu and go into the timetable for this tour On the timetable are some already set times for the different Pols however you would like to set new times To do so you open the menu and clear the time schedule for the tour You then set new times for each of the Pols in the tour Save the time schedule Now the time has come to take the tour so then you open its time schedule You press the heading of the first PoI you are supposed to visit its information and address appear You get directions to the Pol and visit it When the time has come for you to leave and visit the next Pol you repeat this procedure until you have gone through your whole tour Scenario 3 The user wants to create a Pol and download another from a server then share them both with his friend via Bluetooth You find yourself sitting at a beautiful cafe wanting to share this Pol with other people Start off by opening the Pol creation menu via the menu in the Locations list Fill in the correct information in the fields and select Cafe in the Category field Save the Pol Verify that your new Pol has appeared in the Locations list Then open the update list through the menu to download the other Pol you are goind to share Select the Pol from the list of available Pols on the server and select to update them This Pol should now also appear in
106. the non functional requirement specification see section 3 4 the use of default Android building blocks is encouraged In the layout design we have chosen to use almost exclusively default Android components The only places the graphics of the Android look and feel has been changed are on the start up screen buttons see section 5 2 3 and on the tabs in the plan activity see section 5 2 3 Other default components we have used is the intent filtering system We have implemented this to give the user the ability to get directions to and from a Pol and to send and receive Pols between users Other default components are the implemtation of the SQLite 10 database and the Google Maps components see section 5 2 3 from the Google API The quickaction bar is a gui component implemented after suggestion on the Google IO 16 The calendar view see section 5 2 3 was inspired and partly built on the AnCal application 19 Chapter 6 Testing An important part of the agile development model we have used is iterative testing Therefore we have used the weekly meetings with the customer to test the different aspects of the application Because of this we have decided to conclude it all with customer test using all the use cases Since the use cases cover all of the functional requirements a test of the use cases will ensure that we fulfill all the functional requirements specified by the customer The scenarios section 6 2
107. the project was stable during the rest of sprint 5 During sprint 6 work went on as normal The meeting with the client on 21st of March was cancelled and at the meeting with the supervisor on the 25th of March we got criticised for not reporting all hours We had struggled for some time to find a solution to how we could make the calendar view work This was finally solved and the work on making this feature started Sprint 7 started at the 28th of March and would primarily be about work ing on the report as we had our last evaluation from the supervisor at the 9th of April We had delivered an earlier version of the report to the client and got some very helpful feedback on Monday the 4th of April Thereafter a lot of time was spent working on her suggested improvements before we delivered the next version to the supervisor After this came the Easter holidays and even though we had not planned for this to happen everyone took a break from work in the period of the 11th 20 CHAPTER 2 PROJECT MANAGEMENT to the 24th of April We once again lost some manpower during this period when Oscar had to go back to the hospital for his second surgery He scheduled his surgery to happen in the Easter holidays so he would be unavailable for as short a period as possible Unfortunately his surgery did not go as well as expected and he needed yet another week for recovery Even though he informed the group about this right away we lost valuable working h
108. to do this Figure D 10 The Choose location button left and the location selec tion right 16 10 16 08 New Location Favourites Name Name Studentersamfundet Description Description Lokka Category Castle v Olavs pub Address Address Jj icis aua Zip Zip code Fru lundgren City City Bl st Telephone Telephone nidarosdomen Opening Open hours Camp Jaro Hours webpage Web page Image URL Tutorial Location Image URL required fields Cathedral Choose location entry to make new from nidarosdomen Church Save Location Lade Kirke Heimdal Kirke As you can see the menu in the location list contains a New Location button which brings you to the creation screen On this screen you can fill in the information regarding the location and save it in your database Remember to assign your location to a suitable category by using the drop down menu at the Category field If the location you want to create differs only a little from a location you already have you would be smart to use the Choose location button in the creation screen as displayed in figure D 10 Doing this will show you your list of locations as seen to the left in figure D 10 choosing one of them will fill the information contained in that location into your creation fields 122 APPENDIX D USER MANUAL Figure D 11 The New Tour button left and creation screen right 16 33 New Tour Name Tourtoria
109. to tours and Pols 1 1 52 6 52 7 52 10 Maintenance 55 Update the affected tables in the 1 1 database make new primary key Database 56 Convert from MySQL to SQLite 6 9 Other 57 Add support for installing to SD card 1 1 Other 58 Create intermediate activity between 16 navigate to and Google Maps 51 5 Report 59 Write status report risks stakeholders 16 16 Report 60 Formatting and user interface Report 61 Use Cases Report 62 WBS Report 63 Requirements and sprints Total 186 41 30 47 41 108 APPENDIX C BACKLOG C 2 6 Sprint 6 Table C 7 Sprint 6 14th of March 27th of March Backlog Item Sprint Description Hrs O C J JR K Item est Pol 64 Add support for images 51 1 6 Tour 65 Loop through all Pols in a tour list 6 view 51 8 Tour 47 Make a quick action for all Pols ina 8 2 2 list 1 5 Tour 66 Create activity calendarview 51 6 40 Tour 37 Showing a free tour in a listview 1 7 3 Design 67 Redesign menubuttons 51 1 6 1 6 1 Design 45 Xml layouts and bitmaps 52 6 4 Design 44 Xml layouts and bitmaps 51 5 10 4 MapView 52 Make a quick action for all Pols ina 8 8 map 1 5 MapView 68 Add support for icons 5 8 MapView 69 Show all nearby Pols when clicking on 1 explore Tour edit 53 Create activity for creating tours 2 6 16 8 52 61 Management 70 Make a general strategy for how to cre 16 10 ate the calenderview Report 61 Use Cases 3 10 Report 61 Make Use Cases for Tailoring and Shar 20 5 10 ing Report 59 Risk li
110. ty 2 Plan 1 Press the button on the device Click xENv NEw Tour Fill in the mandatory fields and choose fixed tour Click CHoosE Tour Choose the tour you want to create a new from Press the Save Tour Click on the newly created tour Press the button menu on the device 9 Click MENU TIME TABLE FOR TOUR 10 Drag your finger to select times and Pols 11 Press the button menu on the device 12 Click Menu SaveE Times OIA C de to Table 3 18 City Explorer use case 15 Use Case 15 covers 52 4 2011 05 10 Name Create a new Pol from an existing Pol Summary The user may create new Pols from existing Pols Actor User Precond TAB Locations in Activity 2 Plan is activated Postcon The database contains the newly created Pol Basic flow 1 Press the button on the device Click uEeNu NEW Location Press the CHoosE Location Select the Pol you want to create a new from Edit the wanted fields Click Save Location Dm gt W 3 8 TEXTUAL USE CASES 37 Table 3 19 City Explorer use case 16 Use Case 16 covers S 3 1 3 2 2011 05 10 Name Summary Actor Precond Postcon Browsing and downloading Pols stored on a server The user can browse and download Pols stored on a server User Activity 2 Plan is activated and TAB Locations is se lected The user has browsed and downloaded wanted Pols from a server Basic flow
111. will produce a list of quick actions short of trying to long click it However items in the lists of Activity 2 as well as Pol icons in the map will have quick actions A list of quick actions may be longer than the width of the display The user can scroll the list horizontally in those cases by holding one finger on the list and dragging it to the left 60 CHAPTER 5 IMPLEMENTATION 5 2 3 Activities An overview of the elements discussed in this section is available in figure 4 2 Following each Activity there are listings of items associated with it such as visible buttons quick actions source file classes and menu buttons Buttons referred to in the use case section 3 2 are defined in those lists Activity 1 Start This is the first visible activity after launching City Explorer Button pian launches the tab view showing either Pols or tours Activity 2 Button ExPLORE launches the map Activity 7 showing the current position of the device and nearby Pols Involved classes Buttons StartActivity java PLAN gt Activity 2 Plan ExPLORE gt Activity 7 Map Activity 2 Plan Plan consists of two tabs named Locations and Tours which list all currently downloaded Pols and tours respectively The list of Pols is divided into several sections where each one is presented with a header line that is the name of the category to which the Pols in the section are assigned That is Pols are grouped in sect
112. ymposium on End User Development IS EUD 2011 Ubicompforall ubiquitous service composition for all users http ubicompforall org Accessed 13 May 2011 Wikipedia java programming language http en wikipedia org wiki Java programming language Accessed 14 May 2011 Sintef itc http www sintef no Accessed 27 February 2011 M Marakas SYSTEMS ANALYSIS amp DESIGN an active approach McGraw Hill 2 ed 2006 international edition Scrumalliance an innovative approach to getting work done cessed 14 May 2011 A gentle introduction to extreme programming http www extremeprogramming org Accessed 27 February 2011 Wikipedia apache subversion http en wikipedia org wiki Apache Subversion Accessed 14 May 2011 Sqlite http www sqlite org index html Accessed 13 Mars 2011 Facebook http facebook com Log in required Accessed 13 May 2011 141 142 12 13 14 15 16 17 18 19 20 21 22 23 BIBLIOGRAPHY git the fast version control system http git scm com Accessed 6 April 2011 Wikipedia work breakdown structure http en wikipedia org wiki Work breakdown structure Accessed 7 April 2011 M Fowler UML Distilled A Brief Guide to the Standard Object Mod elling Language Addison Wesley Educational Publishers Inc 3 ed 2003 Google inc
113. your Locations list To share these two newly added Pols with your friend you open the sharing list from the menu in the Locations list Select the two newly added Pols and start sharing them Doing so will prompt a menu where you can select different means of sending the information Select the e mail function fill in your friends e mail address and send it Your friend should now receive the Pols on his Android device 6 3 TEST CASES 73 6 3 Test Cases These are the test cases for our application They are based on the use cases in the requirements specification chapter see section 3 3 Table 6 1 City Explorer test case 1 Test Case 1 covers S 1 2 1 3 2011 05 04 Name List all downloaded Pols Summary The user must be able to browse places that have been previously downloaded Status Passed Table 6 2 City Explorer test case 2 Test Case 2 covers 51 1 2011 05 04 Name Display the description of a single PoI Summary Information such as an address a picture a description the openening hours a website and a telephone number that is recorded about a particular place is made visible Status Passed Table 6 3 City Explorer test case 3 Test Case 3 covers S 1 21 1 3 2011 05 04 Name Show the geographical location of a single Pol on a digital map Summary The map activity must be able to show where a particular place is in order to let users orient themselves and decide on whether they wish to visit the
Download Pdf Manuals
Related Search
Related Contents
User`s Manual Manual de Instruções Aquecedor de Ar Enxutinha Instructions for use Samsung Indbygnings microbølgeovn 20 liter FW77KUST Brugervejledning ASSMANN Electronic AK-320101-030-S 1. CARACTERÍSTICAS TÉCNICAS LG LFX29937ST Energy Guide JB-QBC-BS10 OPERATING INSTRUCTIONS MEDIUM ROUND - Springfree Trampoline Copyright © All rights reserved.
Failed to retrieve file