Home

Datarec Error Monitoring and Notification

image

Contents

1. Table 3 8 Technical Tools Matrix 36 Chapter 3 Preliminary Study 3 6 Coding Conventions The system that is to be developed will not be maintained by us and in order to im prove the readability of the source code we agreed upon some coding conventions Since we were required to use Java as programming language a good start would be to use the coding conventions that comes with it These coding conventions address many as pects of writing Java code such as the declaration of classes interfaces and functions the indentation and length of lines and naming conventions It is common that inte grated developer environments such as NetBeans encourages the use of the language specific coding conventions by providing suggestions indenting new lines automatically and displaying warnings or errors when using the wrong naming conventions package no vegvesen lt application gt lt layer gt import java util fae Description of the class public class Example Description of the constant public static final String ACONSTANT constant private String variable 4 x Description of the constructor param parameter Description of the parameter f public Example String parameter variable parameter xx Description of the function return Description of the returned value throws Exception Description of the exception public String function thro
2. 8 6 1 Sprint 3 Positive Experiences e Specific deadlines e Better delegation e Delegated chapters e Increase of work hours We have started with specific deadlines for all tasks This made it easier to see the progression of the work and also put pressure on the students that have not involved themselves in the project Due to this the effect is that the efficiency of the work is increased a bit The delegation has been improved again It is partly due to the deadlines which makes it easier to assess when someone would need new work and have finished their tasks We started to delegate chapters in the report to have people that are responsible to control the overall flow of the chapter and check the correctness of the text written There was an increase in the total work hours 8 6 2 Sprint 3 Negative Experiences e Replanning of sprint 3 The implementation of the ONSITE server e Fake hours Leftovers Customer presentation OPC problems no push e Wrong priorities We had to replan the third sprint due to the delays in the server client part of sprint 2 The ONSITE server took much more time than expected From the work done and the hours written and explained in mail there seems to be quite a few fake person hours 91 Chapter 8 Sprint 3 There were some leftovers from this sprint This includes Oracle database drivers for the Web Service timeout error check installation guide and to bundle
3. FR14 The database was initially able to handle storage of network statistics as well as the other errors and warning messages But since the fetching of the network statistics was removed from the project there were no longer any network statistic to store Therefore we removed this feature from the database FR 21 FR22 and FR23 were removed because the support for Datarec 410 was not an important part of the project Since this is a proof of concept the support to Datarec 410 is not crucial Another issue is that the Datarec 410 is independent from the Traffic6 which does not support real time data The customer wishes to have a product which is not dependent on Traffic6 All new hardware installed is Datarec 7 so the necessity to support Datarec 410 will disappear in the future This causes all of the requirements related to the Datarec 410 to disappear 137 Appendix C Appendix Initial Requirement Specification C 4 Inital Product Backlog In this section the initial product backlog is presented ID Description Total Effort Sprint 1 Sprint 2 Sprint 3 Estimate High Priority 1 Continuously fetch data from 105 70 35 0 Datarec 7 installation 11 Set up OPC server 190 0 130 60 10 Fetch network statistics 80 0 80 0 12 Set up OPC client 85 0 25 60 T Detect errors 110 65 45 0 2 Save data in database 70 70 0 0 3 Set up web service 135 135 0 0 Medium Priority 4 Show location of
4. 3 Allthe other data messages should be rejected Result Passed Comments After the test was completed the only data that was added in the database was the error and warning messages This implies that the test was successful and had passed Since the error handler shows the correct behavior A 8 ONSITE Server In this section the testing of the ONSITE Server is presented Test ID T13 Description This is a test that should confirm that the ONSITE server is able to automatically push data and to register the Error Handler as its listener Requirement ID FR4 and FR5 Test criteria A mock up of the Datarec 7 SOAP client needs to be running to produce the errors and the Error Handler must be running and able to send request to register itself as a listener Task 1 The Error Handler should connect to the ONSITE server using the on site servers IP address 2 The mocked up SOAP client should produce an error Expected output 1 The ONSITE server should accept the connection and send an accept message to the Error Handler 2 The ONSITE server should automatically push the error mes sage to the Error Handler Result Passed Continued on next page 127 Appendix A Appendix Testing Table A 13 continued from previous page Comments The reason for using a mocked up Datarec 7 SOAP client instead of a real Datarec 7 is that we had no way to produce th
5. Manager Customer Project Reference Group Sondre L berg S ter Project Manager Bj rnar Valle Secretary amp Assistant Manager Sonik Shrestha QA Manager 2 3 2 Roar Bjurstr m Test Leader Kato St len Design Leader Robert Versvik Implementation Leader Eirik Stene Document amp PR manager Figure 2 2 Organization Chart for the Project Weekly Schedule week consists of one meeting with the customer one meeting with the group advisor and five Scrum meetings In addition to the five scheduled Scrum meetings every team member available should gather and work on the project every weekday Day Time Location Description Attendees Monday 10 15 10 40 P15 4th floor daily Scrum meeting Everyone available meda 10 15 11 00 IT V 464 Advisory meeting All 11 15 11 40 P15 4th floor daily Scrum meeting Everyone available Wednesday 10 15 10 40 P15 4th floor daily Scrum meeting Everyone available day 10 15 10 40 P15 4th floor daily Scrum meeting Everyone available 13 15 14 00 Arbeid Customer meeting All Friday 10 15 10 40 P15 4th floor daily Scrum meeting Everyone available Table 2 4 Weekly Meetings 2 4 Planning for Quality Assurance In every project quality assurance can help ensure a good result Therefore we decided to
6. Write 20 20 Design web interface Design 10 Code Test Automatic notification Design Code 13 20 Test SUM 30 30 30 30 30 30 30 40 40 25 Table 8 1 Sprint 3 Backlog 8 2 2 Comments on the Sprint 3 Backlog Table The server is again the main part This is due to its importance in the overall function of the prototype The second most important part of the third sprint is the creation of the installation guide since this will take some time The design of web interface and 87 Chapter 8 Sprint 3 the automatic notification is something that can be done quite quickly so they are not heavily prioritized 8 3 Sprint 3 Main Deliverables The deliverables for this sprint is the finished prototype meaning all the components had to work together To make this work the developers finished the ONSITE server With this finished functional requirements FR3 FR4 and FR5 were fulfilled See table 8 2 for reference to these requirements ID Description Priority 11 Set up the on site server FR3 The server on site should mimic a subset of the OPC functionality High FRA The server on site should be able to register listeners High FR5 The server on site should be able to push data High Table 8 2 Functional Requirements for the ONSITE Server 8 4 Sprint 3 Design an
7. vr C 4 Inital Product Backlog 0 2 ooo ee ee be Radda ab DE D Appendix Design DI Common Library coro wb a ee Oe eee an D 2 Web Page D 3 Web Service 107 108 108 108 109 110 110 110 112 112 113 114 114 114 115 115 117 118 119 121 123 123 123 125 126 127 127 128 128 130 130 132 D 4 Error Handlerl 2 oo oo onen DAT Initial Design o eps a 4 4 2a a au Sr bahn RS ee E bud DA Final Design 42 24 2 444 a dekke eee ee bb bes Do Database sms m les Die Ss eek a s Eee GE ble D 6 ONSITE server E Appendix Further Use of Traffic Data List of Tables bib AA aS Bw dy BS A HSM a Ga 7 2 2 Risk Assessment 54 aK as ak K a an ek EG ke ea 9 bE ke OR ee PR oe OE ee GE ee ee da 11 EEE EE Ee ee ee ee Dr 12 DD ty cae r rede E Ep EE AA E 18 52 ONS Server von ehr DES DE AE saga BS 18 33 Gas a o p oa renda ee e EE RE ENE GE 18 3 4 Datarer Database lt 4 2 one 2 bd eed dE E ad Bee b t 19 3 5 EEE pac E EE a a paiT 19 EEE EEE EE ENE ee ee ee 19 AN era eA eed aye sed Ga See 28 ve REG Mb bk ROA AD ES GAGA 35 3 9 Product Baco u 0 4 ana dk oe ER ale Added d ees 44 poh amp dt Ad ce dt ee ew 47 en eee 48 AE e ae Roe Heel er 48 KA gre Sok areca aoe E ad 49 p o ge 49 etree eee ee ee 52 5 2 Milestone Table Preliminary Study and Planning Ml 53 5 3 Milestone Table Sprint 1 M2 o o 54 5 4 Milestone T
8. Operability The ability that describes the effort needed for operation and operation control of the system Q3 4 Attractiveness The degree of attractiveness or likability of the user interface Q3 5 Usability compliance Characterizing the systems adherence to stan dards conventions and laws relating to usability e Q4 Efficiency Efficiency is the describes the systems correlation between its level of performance and the amount of resources needed The conditions should be stated Efficiency consists of the following qualities Q4 1 Time behavior Describes response times for stated though put Q4 2 Resource utilization Describes the amount of resources used Q4 3 Efficiency compliance Characterizing the systems adherence to stan dards conventions and laws relating to efficiency 39 Chapter 3 Preliminary Study e Q5 Maintainability Maintainability is the attribute that describes the effort needed to make stated alterations or modifications Maintainability consists of the following qualities Q5 1 Analyzability Describes how easy it is to indentify the main cause of a failure Q5 2 Changeability Describes the amount of effort needed to change the system Q5 3 Stability The attribute that describes the systems sensitivity to changes Q5 4 Testability Describes how easy the system is to test after a system change Q5 5 Maintainability compliance Chara
9. Short circuit on loop s Error on 1968 Short circuit on loop s Error on 2091 Short circuit on loop s Error on 2214 Short circuit on loop s Error on 2337 Short circuit on loop s Error on 2460 Short circuit on loop s Error on 2583 Short circuit on loop s Pb DP DP ib iA iA A b Figure 9 4 Error Handler Error Log The last tab contains a text area This text area contains detected errors and excep tion messages if any exceptions are caught If the error log contains exception messages it means that something has gone wrong while checking for errors and inserting them into the database The error has to be fixed for the Error Handler to be working prop erly 9 3 Web Service In this section the installation and use of the Web Service is presented 9 3 1 Installation The Web Service uses GlassFish as application server so it requires that Java EE and GlassFish is preinstalled Installing the Web Service is done by running its install script setup bat The script needs to be run as Administrator to be able to complete the setup During the setup the user has to enter the installation directory of GlassFish domain name and instance port 98 Chapter 9 User Guide number of the GlassFish instance and the configuration of both the Datarec and Nortraf database During the setup a configuration file is generated This configuration file contains the configuratio
10. UBVERSION Apache Subversion SVN is an open source cross platform version control system founded in 2000 by CollabNet Inc By using Subversion developers are able to work with current and previous versions of files mainly source code web pages and documentation Current release is version 1 6 17 and language used to develop Subversion is C Test Tools 31 Chapter 3 Preliminary Study JUnit JU Unit testing is a method of testing software where a unit is tested by itself against expected results A unit in Java tends to be a class or interface Unit testing helps keep classes modifiable facilitating refactoring without breaking the system through regression testing Developers are able to simply run the tests to see if their refactoring broke the class fixing the new bugs that appeared before committing the new code We opted to use the JUnit testing framework for unit testing in Java It would be used to test the changes made and if the system works Mockito mockttaill Mocking Stubbing is a way to simplify unit testing by making fake versions of classes that the class being tested depends on The fake versions has the same interface as the real thing but will only return set values instead of doing any logic This way the unit being tested is isolated and only the logic is of the unit under scrutiny There are quite a few mocking frameworks for Java that handle the creation of mocked classes easing the wo
11. A 2 Display State Logs for Units Appendix A Appendix Testing Test ID T02 Description Test if the Web Page s log part is working as intended Requirement ID FR24 Test criteria The Web Service must be functional and and have information about the hardware units available Task 1 Open Web Page 2 Select a hardware unit 3 Open unit log Expected output The Web Page should display on overview of all the previous logged incidents with any relevant information Result Passed Comments The Web Page behaved like it was supposed to The Web Page was quite slow but that is documented in T01 A 3 Map Service Test ID T03 Description Test if the Web Page s map service is working as intended Requirement ID FR19 Test criteria The Web Service must be functional and and have information about the hardware units available Task 1 Open Web Page 2 Jump to Datarec 7 unit Expected output 1 The Web Page should open and show a map with the hard ware that has errors displayed with a red marker and working hardware displayed with a green marker 2 The map should be placed zoomed with the selected hardware in the center Result Passed Comments The test went without any irregularities The Web Page was slow during the test with the system integrated 120 Appendix A Appendix Testing A 4
12. notify roadside cafeterias gas stations and hotels If the counting of cars passing is somehow coupled with GPS technology it could tell roadside service installations if they statistically would get new customers This could be calculated from how long the vehicles have been driving and in which direction they are traveling Traffic Jam Assessment The information can also be used to assess if it is a traffic jam If there is a traffic jam information of this can be given to incoming vehicles through signs informing them that they might want to take another route to their destination This could be for vehicles approaching on the same road and vehicles that are coming onto this road Police Ambulance and Firefighters The data could be sent to the vehicles used by the police ambulances and the firefighters This information could then be used to calculate the most efficient route to their destination Lottery There could be created a Vehicle Lottery The lottery could either be based on pure statistical use of the data or with some kind of chip that is recognized as a lottery chip to grant the vehicle the ability to participate This method could also be used to draw some people away from the more trafficated roads A downside of this is that it might take concentration away from driving and increase the probability of accidents Traffic Lights Real time traffic data could be used to control the traffic lights With real time control
13. 1970 described formally for the first time though the term waterfall was not used This article written by Winston W Royce presented the model as flawed and non working The model as Royce described it containes 7 phases 42 Chapter 3 Preliminary Study 1 Requirements specification In this phase the specifications for the system that was going to be developed was found prioritized and sorted This should contain the customers explicit needs Though very hard it is important to cover the customers implicit needs as well 2 Design The design should reflect the requirements and make sure that the end result have the qualities that the customer wants in the system The design includes e General design This consists of the general architecture of the software Different architectures have different qualities and the choice of architecture will therefore affect the end result and the customer satisfaction e Detailed design Often consists of class diagrams use cases and BPMN to show the more specific parts of the system 3 Implementation Implementation is the phase where the developers code the software Also called Construction 4 Integration Here the product is integrated with the existing system 5 Testing and debugging Here the software is tested This is done to find errors and to verify that the software does what the customer wanted Also known as Validation or Verification 6 Installation In t
14. 3 Feedback The customer was very understanding when the reason for the delays and missing require ments was explained He seemed to be satisfied with what he was shown The customer were shown the system working with a mock up of the Datarec The design of the Web Page was also shown but due to a partly damaged screen on the laptop that we used to show the Web Page to the customer it was not easy for him to see anything We promised the customer that for the next meeting we would show him the Web Page on a computer with a working screen 92 9 User Guide Contents A voa v r ee el 91 DIET A A Gey ae S de G ek ee 91 EEE SE BS dp a coe SEE So ae NEGER 92 FEE SES O RO Un 92 G2T Installation kee E 92 Ores USER ars qui tod o Gp dein pe Ge ALR ed ear A eS 94 De Rad EASES AAA 96 96 97 97 97 98 In this section the installation and use of each part of the system is presented The delivered system has installation scripts for all the separate parts 9 1 ONSITE Server In this section the installation and use of the ONSITE server is presented 9 1 1 Installation The ONSITE server consists of two parts DrRegisterNotifications is a web service that handles subscription requests It uses GlassFish as application server so it requires that GlassFish and Java EE is preinstalled The install script also requires that the Java bin directory is placed in the PATH environ ment variable DrNotificatio
15. 3 8 continued from previous page Technologies Importance Comment Oracle High A requirement from the customer Java EE High A requirement from the customer XML High An absolute requirement from the cus tomer SOAP Medium The customer preferred that we used this LaTeX Medium Using another tool would probably only have impacted aesthetic aspects of the report Dropbox Medium Other less practical tools could have replaced its functionality NetBeans Medium Offered some nice functionality but could have been replaced GlassFish Medium Comes with Java EE Mockito Low Made our lives easier during implemen tation MySQL Low Used to make our lives easier Oracle is used in the final delivery Google Docs Low GDocs made administrating tasks eas ier Microsoft Visio 2010 Low Could have been replaced by another tool Gantt Project Low Could have been replaced by another tool Customer provided software Traffic Sp605 for Statens Vegvesen Low Only important for the Dr410 Windows 7 Low Having coded in Java the software is OS independent Customer provided hardware Datarec 7 High Performing tests on the Dr7 was abso lutely critical for our success On site computer High Our solution would not have been pos sible without this ICE mobile broadband High Connecting to the two tools above was essential Datarec 410 Low Outdated and therefore down prioritized
16. 36 EEE EEE SE ee ee 37 OE EEE TE as A ed ee we a 37 3 8 Development Method 39 BE TT os aa o A SA Se AS 39 AENA A II 41 3 9 Conclusion Based on Preliminary Study 43 3 9 1 Table Properties ee 43 3 9 2 Product Backlog Table oo o 44 3 9 3 Choice of Development Method o 44 In this chapter we will explicitly describe the problem that we are facing and the possible solutions Technologies that will be used during the project will also be presented 3 1 Problem and Solution Space In this section the problem and solution space are addressed in form of the current and desired solution together with the technological restrictions from the customer Chapter 3 Preliminary Study 3 1 1 Original Situation This is a short description of the situation the NPRA was in when they came to us with their problem The original project description from the customer can be found in section The essence of their problem is that the important error messages that describe failures and or errors in their system is cumbersome to manually collect from the sathering installations and that a lack of overview over erring hardware is costing them a lot of data The hardware can have months of downtime where it can give bogus data for a long time before the error is discovered making the data highly unreliable Below is a detailed illustration of their curr
17. As a consequence of this we have struggled with reaching the expected amount of person hours every week and in the end we had to drop some of the requirements with low priority Sickness Another foreseen risk was sickness Since autumn is a time of year where the weather takes a turn for the worse it was no big surprise that several group members became sick and needed some days off to recover After this it would seem that we had underestimated the risk assessment for sickness in the initial planning phase of the project They decided to upgrade the probability of this risk as it had affected the amount of person hours in a more negative way than expected Customer Delays In the start of the project the customer had problems with setting up the equipment necessary for us to start testing An important database dump and a connection to the Datarec hardware were the two biggest and most important delays They were both delivered in the start of October This resulted in a late start for us after a period of time where work tasks were limited Communication Problems As the section about language explained we experienced a language barrier Because several of our group members were uncomfortable with expressing themselves in English the discussions at meetings did not always have a very good flow The communication problems hit an all time low when we visited the Norwegian Public Roads Administration s office for a lecture with their experts Th
18. During the setup the user has to enter the installation directory of GlassFish domain name and instance port number of the GlassFish instance and the port number to use to forward status notifications from the ErrorHandlerService to the ErrorHandler The user also has to enter the configurations of both the Datarec and Nortraf database During the setup two configuration files are generated These configuration files contain the information entered by the user and can be used to change the settings of the Error Handler at any time A reboot is required to apply the changes ErrorHandlerService Config errorHandlerHost localhost errorHandlerPort 44446 Listing 9 2 Example Configuration file for the ErrorHandlerService The configuration file of the ErrorHandlerService consists of the host name IP and port number of the ErrorHandler ErrorHandler Config dr_databaseHost localhost dr_databasePassword password dr_database Port 3306 dr_databaseService datarec dr_databaseSoftware MYSQL dr databaseUser username nt databaseHost localhost nt databasePassword password nt databasePort 1521 nt_databaseService nortraf nt databaseSoftware ORACLE nt databaseUser username localPort 44446 servicePort 44444 subscription Timeout 600 minBattery Voltage 10000 Listing 9 3 Example Configuration file for the ErrorHandler 95 Chapter 9 User Guide The configuration file for the ErrorHandler consists of e the
19. The Customer 228 4 48 RR Ria DAE E RA 4 1 6 Project Background ar wih eee see ee e a 4 E ects ioe a oa ye Wek a He eS be Se Gee Soi Boe een AS 5 2 Planning 6 EE a ea een OTA E RE RD RS ES E 6 e aie E ERE E ee 6 2 1 2 Preliminary Study eus ma sakte gel a ae e oe ew 6 2 1 3 Implementation 2 4 44 2401 ana heeded aus T 2 1 4 Report AI he aea VE Bre IN hoes T A toed areas 7 2 2 Risk Management canina 6 oe Oe Sed baga 8 2 2 1 Risk Assessment 24 4 zu ee se EEE RE RE RR A 8 ule te St dt e hat bins ee ee 9 OL AIN 10 de bee ed oe SoS ke ie 12 Sew Reo ee SE O ee 12 2 4 1 Internal Rommel avg ame Se ESS REE SS eee SER 13 pana pare me Bare ne epee ee ed ed OS 13 D EGG bd a HERDER EES 13 2 4 4 File and Document Management 14 eee oe go Bo ae ee Bete aa 14 AAA 15 2 4 7 Advisor lnteraction AE 15 3 Preliminary Study 16 ade 16 aaa as re VA E ee e 16 pos AE erh E NN A da 17 e ea A O gh Gee ee See ae 19 De oe A oe oo DRE GA RES 22 Me LE Er Ba ele E 22 DAL Extra PRUSIA SET SRG SE GE 25 FEET gt s ees Ge whe a Eye DOE 3 3 1 Test Methods Used During the Project RES aM ES VE bs Ge opal SE 3 4 1 Datarec gt e ae ME GE ene eee EGG 3 4 2 Imduchon LoGpel s ox e e ren ra werd 3 5 Technologies Used During the Project Period E qe frei SG Seth Re AE Bae HOS AER HK HOR 3 6 1 Naming Conventions 2 2 22 2 a nenn Os A obs oe cae oe
20. accessed 2011 09 12 OPC Foundation 2011 About OPC What is the OPC Foundation Available http opcfoundation org Default aspx 01_about 01_whatis asp MID AboutOPC Last accessed 2011 09 12 OPC Foundation 2010 OPC XML DA Available http www opcconnect Last accessed 2011 09 12 OpenLayers 2011 OpenLayers Available http trac osgeo org openlayers Last accessed 2011 11 17 Oracle 2011 What is Java Available http java com en download faq Last accessed 2011 09 05 157 Bibliography 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Software Engineering An Object oriented Approch 2011 The Quality Assurance Process Available ISBN 978 0 471 32208 5 Page 40 Last accessed 2011 11 22 Sun Microsystems Inc 2003 Java 2 Platform Enterprise Edition J2EE Overview Available http java sun com j2ee overview html Last accessed 2011 09 12 Tuckman s Theory 2011 Tuckman s team development theory Available Tuck man B Developmental sequence in small groups Last accessed 2011 10 31 Vegvesenet 2011 P veg for et bedre samfunn Available http www vegvesen no Om Statenstvegvesen OmtStatenstvegvesen Omtorganisasjonen Last ac cessed 2011 09 01 Wikipedia 2011 Google Docs Available http en wikipedia org wiki Last accessed 2011 09 14 Wikipedia 2011 ATEX Available http en wikipedi
21. an na eke as 96 9 5 Web Page Front Page 222 aa es 98 9 6 Web Page Display Unit Stats s ess ss rs s RE Hwa aa 99 9 7 Web Page Display State Logs 2 22 2 vr rv nen 100 10 1 Flow E beh eh ke ae eh beans be eee ER 101 10 2 ONSITE Server in the System za 4 4 8 02 20 0 wa de a8 101 11 1 Ts Th ess era ra De naeh rag 109 B 1 Advisory Meeting Summary Template 123 B 2 Customer Meeting Summary Template 124 B 3 Meeting Agenda Template 2 222222 vr arr varar 125 BA Status Report Template o z 244 ee bee ee bee eee oe ees 126 B 5 Work Sheet Template u 2 s re eS 6 en Geek SEG re A 127 ix D 1 Overview Class Diagram of the Common Library 134 FER bet potash eos 135 id 136 EE 137 EEG 137 pg ee 137 TE 138 PE 139 PE 140 es 141 NN 142 ice Boks ee oe seule 143 PETE 143 ee 144 enn 144 NER 145 Leone eg os was 145 epee at aga ay oe 146 EE Bas re 146 io pulpos 146 o a a eee 147 ere re 148 D 23 Class Diagram of DrRegisterNotifications 149 Acronyms and Glossary API Application Programming Interface An interface for third party applications so that it s possible to communicate between software COTS Commercial of the shelf DB Database Error An error is when the internal state of the system deviates from the correct service state Failure The inability of the Datarec 7 hardware to perform its required fu
22. and for this reason a report phase was created This phase runs in parallel with the other phases and stretches from the beginning to the end of the project Chapter 2 Planning 2 1 5 Effort Estimation and Registration In order to keep record of the progress a system that shows the actual hours versus the estimated hours was needed An easy way to do this is by setting up an effort registration table The effort registration table would be updated every week to indicate how many estimated person hours is left of the phase In the table below E notates the estimated person hours while A the actual hours Group no 10 Date November 23 2011 Activity Pe 35 37 38 40 41 42 43 44 45 47 Activity riod sums Planning E 200 E 0 E 200 A 149 A 61 A 210 PreStudy E 200 E 0 E 200 A 131 A 50 A 181 Implementation E 475 E 315 E 315 E 1105 A 254 A 203 A 220 A 677 Report E 125 E 50 E 35 E 35 E 295 E 540 A 94 A 80 A 91 A 58 A 497 A 820 Period sums E 525 E 525 E 350 E 350 E 295 E 2045 A 374 A 445 A 294 A 278 A 497 A 1888 Table 2 1 Effort Registration Table 2 2 Risk Management To every project and team there are risks In this section we will identify characterize and assess situations that may occur during the project The assessment is based on previous group work experiences 2 2 1 Risk Assessment To assess the
23. and sending it to the ONSITE tions server Table 3 1 Datarec 7 19 Chapter 3 Preliminary Study Actor ONSITE server Description A server placed on site Examples of ac Continuously reads the hardware status from Datarec tions 7 s SOAP interface and notifies if an error occur Table 3 2 ONSITE Server Actor Error Handler Description An Java application installed on a server used to han dling errors Examples of ac Create warnings on irregularities and peculiar data tions from Datarec 7 Table 3 3 Error Handler Actor Datarec Database Description A SQL database to store statuses and errors Examples of ac Store the errors fetched by the ONSITE Server tions Table 3 4 Datarec Database Actor Web Service Description The access point to the system Examples of ac Access the errors from the database and send coordi tions nates to the Web Page Table 3 5 Web Service 20 Chapter 3 Preliminary Study Actor Web Page Description Displays web pages containing digital assets Examples of ac The user interface displaying unit state information and tions map images from the Map Service Table 3 6 Web Page 3 1 3 Solution Space The customer gave us a number of requirements that were taken into consideration This was done so that the customer can integrate the solution int
24. are later sent to the error handler The fetching of the status is executed as frequently as possible to make the system as real time as it can be The choice of IDE made the design and implementation of a SOAP client easy for us In NetBeans you can just add a reference to a web service by pointing to its WSDL file and NetBeans generates the required files and sets up a JAX WS client automatically The JAX WS client lets us invoke the methods on the Datarec just as if they were on a local object We decided not to include the automatically generated files in the class diagram to save space and avoid confusion It is the Dr7Communicator class that handles the generating sending and receiving of SOAP XML We decided that the best way to implement the SOAP client was to run it as a separate thread This thread continuously fetches the status of the Datarec and updates a set of model classes These model classes are monitored for changes by some other part of the ONSITE server and are a part of a Model view controller pattern The complete design of the Datarec 7 SOAP Client is presented in Appendix D Design section 6 4 2 Datarec Database To store the statuses and error messages we decided to use a separate database This database separates between statuses error messages and warning messages Since the only difference between error and warning messages is their type we added a column where the type of the message is specified The compl
25. follow certain processes and routines which will be introduced in this section 13 Chapter 2 Planning I g 2 4 1 Internal Routines To handle the internal work we decided on some routines to give a good basis for group communication and efficient work scheduling The routines were as follows Daily internal meetings will be used to distribute tasks and update each other on what have been done since last time More information can be found in the Meetings section below Everyone should work Monday to Friday from 10 15 to 15 15 If something prevents this the lost hours should be caught up on the spare time This will ensure that we get the estimated 25 work hours per person each week To keep in touch with each other while working Skype will be used as an instant online messenger E mail will be used for sending out information for anything particularly important or out of the ordinary If someone is late they will be contacted on their mobile phone 2 4 2 Meetings Internal meeting Every day at 10 15 we should have a short meeting These meetings will be used to distribute tasks and update each other on what have been done since last time Due to other meetings we will have different meeting hours when we are to meet up with our advisor or our customer Advisor meeting Each week we will have an advisor meeting This meeting takes place every Tuesday in room ITV 464 at 10 15 After this meeting we will have our d
26. it is now called the Error Handler The Error Handler also includes parts of what previously had been called the OPC client The original requirement specification can be found in Appendix C while the updated version can be found in chapter FR3 had to be changed due to the fact that the OPC server did not have the possibility to push data which actually makes it impossible to implement the way the original requirement was stated The solution to this problem was to implement a server which 136 Appendix C Appendix Initial Requirement Specification mimics the OPC functionality but also includes the possibility to add other features The priority remained the same after the change FR5 had to be changed since it at the beginning required it to be the OPC server that pushes the data Since OPC did not support the feature we had to change the requirement as well since it could not be based on OPC FR6 had to be removed completely since our system operates through the Internet Initially the Error Handler was supposed to fetch statistics using RMON from the routers along the connection path and report connection errors Since the information we needed from the routers along this path are not assessable by others than the Internet service providers it would be impossible to implement We had the option to implement the RMON protocol on the local network that the servers are installed on but this was not seen as a useful enough tool
27. make sure that requirement FR1 and FR2 is im plemented in the system This means that it should test if the connection using the SOAP interface is working properly Requirement IDs FR1 and FR2 Test criteria This test needs a working Datarec 7 connected to an Ethernet con nection and a working SOAP client to access the interface Continued on next page 123 Appendix A Appendix Testing Table A 9 continued from previous page Task The SOAP client should access the following information on the Datarec 7 hardware using the SOAP client 1 The loop connection status The loop hits The loop frequency status The start time Battery voltage Temperature Most recent vehicle information ON A wR Wh The accumulated number of vehicles and their speed Expected output When checking the result against the information listed using the HTTP service of the Datarec 7 the information should match Result Passed Comments The system gets the right result from the Datarec 7 but the pro cess of fetching data is a bit slow The hardware uses 3 5 seconds when it responds to requests from the SOAP client We think this happens because of the overhead that comes with using SOAP The converting to XML and setting up HTTP takes some time and the hardware in the Datarec 7 is slow We considered the problem to be unsolvable and therefore simply accepted the poor result A 7 Er
28. method to return only the most recent status while setting count to 1 causes it to return all the statuses getRecentErrors int drld int offset int count This function returns an object containing a list of the recent errors of the specified Datarec unit and the Datarec unit s ge ographical location The parameters works in the same fashion as described above getAllDataRecUnits This function returns an object containing a list of all the Datarec units in the Nortraf database In order to increase portability of the web service the support for different database drivers were added The customer uses Oracle database but since a MySQL database was more familiar and accessible we decided to create drivers for both Oracle and MySQL In this way we could use MySQL while testing and the customer could set up the system to use their Oracle database The complete design of the Web Service is presented in Appendix D Design section D 3 6 4 4 Web Page The customer requested that the data gathered from the roadside installations should be presented on a web page The web page includes a map where the locations of the errors are marked The web page also has the functionality to show state and error logs The information required for implementing this functionality is given on demand from the Web Service The Web Service offers four methods to the Web Page more information about them can be found in section When the page is loaded it uses
29. of the traffic flow the vehicle pollution in the bigger cities might be reduced Bibliography Contents 1 2 9 10 11 12 Aanderaa Data Instruments AS AADD 2007 Traffic6 Available www aadi no Datarec Document 20Library 1 Technical 20Notes 20and 20User 20Manuals Traffic6 20Users 20guide 20version 206 516 pdf Last accessed 2011 09 15 Centre of Software Engineering 1991 ISO 9126 The Standard of Reference Available http www cse dcu ie essiscope sm2 9126ref html Last accessed 2011 11 19 Conradi Reidar 2011 Mini glossary of software quality terms with emphasis on safety Available http www idi ntnu no grupper su publ ese index html Pages 1 6 Last accessed 2011 10 31 Fitzpatrick Ronan 1996 Software Quality Definitions and Strategic Issues Avail able Last ac cessed 2011 10 31 IEEE Computer Society 2009 IEEE Standard for a Software Quality Met rics Methodology Available Last accessed 2011 11 11 Microsoft 2009 Recoverability Available http technet microsoft com en us library bb418967 aspx Last accessed 2011 10 31 Norman Walsh 1998 4 Technical Introduction to XML Available xml com pub a 98 10 guide0 html page 2 Last accessed 2011 09 05 NTNU IDI Faculty 2011 Compendium Introduction to course TDT4290 Cus tomer Driven Project Autumn 2011 Available http www idi ntnu no emner tdt4290 docs TDT4290 compendium 2011 pdf Last
30. passes the tests and then starts making new tests and a new cycle starts One drawback with the process is that the developer has to write more code but this process also often helps the project use less time debugging The code often is very modularized since the developer has to make each part of the program from small independent tests 27 Chapter 3 Preliminary Study 3 4 The Hardware As we introduced in chapter one there are two important pieces of hardware in the NPRA s roadside installations These are the Datarec 7s and the induction loops The prototype we are developing in this project is built around them In this section we are going to take a closer look at how they work 3 4 1 Datarec 7 Datarec 7 Signature is the name of the hardware that is used by the NPRA to register traffic It both counts vehicles and processes error messages The traffic registration is based on an inductive loop technology that utilizes the inductive pattern recognition of a vehicle s electronic signature to identify which type of vehicle is driving by The system is based on a Windows CE operating system and has a LAN interface that it can use to communicate with other devices More explicitly the information that you can gather with the Datarec 7 involves the volume velocity length occupancy how much time it takes from the nose of the car enters the first loop till the very back of the car has left the second loop time headway and ti
31. put together of 5 9 developers with cross functional skills They are the ones who do the actual work analyze design develop test and so on Since the team is the ones doing the work they are also responsible for delivering the product e Scrum Master The Scrum Master is not the team leader He or she is supposed to be the buffer that keeps disturbing influences away from the team and removes any obstacles that can stop the team from being able to deliver the sprint goal In addition to this the Scrum Master is the enforcer of rules and should ensure that the Scrum process proceeds as planned Scrum is an iterative and incremental way of working The main part of a Scrum process is the Sprints which is the unit of development The duration of a sprint varies between a week and a month Before each sprint there is a planning meeting used to identify tasks from the product backlog and estimate the work effort needed This is put into the sprint backlog After a sprint there should be a review meeting to find out what did not go as planned and how to keep that from happening Each Sprint should end with a new deliverable of the product The product backlog is used to find out which features to focus on during the Sprint It is not allowed to change anything on the sprint backlog during a Sprint If any requirements are not completed during the Sprint it is returned to the product backlog When a Sprint is completed the team is often require
32. roadside in 55 55 0 0 stallations on a map 5 Display unit information 30 30 0 0 8 Add support for Datarec 410 90 0 0 90 13 Create installation guide 40 0 0 40 14 Display state logs for units 50 50 0 0 Low Priority 9 Design web interface 20 0 0 20 6 Automatic notifications 45 0 0 45 Sum Hours 1105 475 315 315 Table C 5 Product Backlog 138 D Appendix Design Contents sei oe ae ig Godt pe dee we ee ee 134 ee ey Rb ENN EN 135 bh Ente fk OO ee ae ao eee eee E 136 eee RP ee ae ee ee EE ee ee 140 teeth phy ayant aid oda 140 EEE VE he a oes 141 ne gts Bib ue Go a Eee ee ae E ee NE E 147 aera Oboe oe HE aa a gs ER 148 In this section the design of the system is presented Appendix D Appendix Design D 1 Common Library In this section the design of the common library is presented no vegvesen debug helpers Figure D 1 Overview Class Diagram of the Common Library 140 Appendix D Appendix Design D 2 Web Page In this section the design of the Web Page is presented no vegvesen webpage Figure D 2 Overview Class Diagram of the WebPage 141 Appendix D Appendix Design D 3 Web Service In this section the design of the Web Service is presented 3DAJISQIM UISIAIA OU Figure D 3 Overview Class Diagram of the WebService 142 Appendiz D Appendix Des
33. stuff together Sadly the presentation for the customer was not as it should have been due to the fact that we had to use a mock up of the Datarec and that the computer which was showing the web page was partially damaged As explained in the sprint 2 chapter the OPC did not have the ability to push Therefore we decided to make a server and client on both sides This set us back quite a bit and lead to the third sprint having to cover work tasks that were planned for the second sprint There are still a couple of students in our group that are not involving themselves enough in our project This affects the group as a whole It affects both our team spirit and increases the workload for the rest of the group 8 6 3 Sprint 3 Planned Actions This is the last sprint so the planned actions are for the last weeks of the project and good ideas to take to other projects e Continue with deadlines e Continue to increase hours worked e Increase productivity in the report Since the deadlines have had such a good effect we are going to continue with this As the project is getting closer to the end and there is still a lot to do the amount of hours will have to increase even more At this point in our project process we decided to make a new chapter delegation system that is further described in section We hope to increase the productivity in the report writing since certain parts of our report is still quite lacking 8 7 Sprint
34. these methods to get infor mation about errors warnings and locations The customer required that the connection between the Web Page and the Web Service should communicate using XML 3 5 the connection was therefore implemented using SOAP XML 3 5 Using NetBeans as the IDE made it easy to implement the SOAP Client because the generated WSDL file from the Web Service makes NetBeans able to set up a JAX WS client automatically This makes the methods that the web service offer act as if they were on a local object The Web Page including its logic is implemented using Java 3 5 Java Server pages JavaScript and HTML It runs on a GlassFish server which is a server software from 68 Chapter 6 Sprint 1 Oracle implementing the Java6 Enterprise Edition platform This makes it easy to hide some of the logic from the web page itself and let the Web Page only handle the presen tation The map is implemented with map data from Statens Kartverk as suggested by the customer The map is presented using the OpenLayers library which makes it easy to add maps to web pages and also offers easy access to features like markers and zooming The implementation design of the Web Page component can be found in Appendix D Design section and screenshots of the page can be found in section 6 4 5 Error Handler The Error Handler had to consist of four parts A part that e communicates with the ONSITE server subscribing to status events and
35. this is the duration of the project Normally in small projects like this one groups do not enter this phase due to the lack of time Forming Storming Norming Performing Figure 11 1 Tuckman s Theory 113 Chapter 11 Project Evaluation 11 3 Inefficiency and Internal Information Flow Information flow internally in our group was somewhat messy in the start and we did not manage to be as elaborate in distributing work tasks as we should have been This is especially noticeable in the report which did not have the progress that it was expected to have It took about two weeks before we finally got around to define and assign roles among us At this point the low productivity of our group was starting to be slightly concerning and the advisor told us that we had to assign roles and distribute work tasks to try and increase our efficiency In the process of defining roles we came up with a practically redundant role called PR manager Most of the contact between the customer advisor and the group has gone through the secretary and nearly all meetings were agreed to be held weekly Consequently the PR manager role has not had any practical use at all 11 4 Contact with the Customer The customer was represented through Jo Skjermo and Kristin Gryteselv Gryteselv was the originator of the project and Skjermo acted as the main customer representative We met with Skjermo once a week at our regular meetings We had a
36. to method call logic which can be error prone and somewhat complex and it saves us from having to debug yet another component OpenLayers Library gt 5 OpenLayers OpenLayers is a JavaScript library that provides an API for including map services in a web page The library has support for many features on the map service The most 33 Chapter 3 Preliminary Study important features it offers for our project are support for web map service WMS navi gation and markers The OpenLayers API was chosen because it offered all the necessary functionality that this project needed and also the API is well documented II SOAP Simple Object Access Protocol SOAP is a remote procedure call protocol often used in web services It uses XML to communicate between server and client defining a set of rules for encoding data types procedure calls and responses The protocol does not define a method of delivery but HTTP or SMTP are the two most commonly used 24 We were asked to use SOAP by the customer Since it is the interface used by Datarec 7 to give continuously status report to the OPC server Members of the group had experience with SOAP Redundant technologies These are technologies that we went into the project thinking we would need but later discovered that they were redundant OPC OPC is a foundation dedicated to creating open standards for automation in their own words OPC is to automation what printer dr
37. to the Web Service 2 Input a error message to the Web Service Expected output 1 The error and warning messages should be distinguished Result Passed Comments The errors and warnings are separated in the database by a flag The Web Service gets this flags and sets it w for warning and e for errors The system was successful in this task and it was possible to distinguish between errors and warnings 122 Appendix A Appendix Testing A 5 Datarec Database In this section the testing of the database is presented Test ID T08 Description This test is supposed to confirm that the database is able to store the error messages and warnings Requirement IDs FR13 and FR14 Test criteria Have the database running Task 1 Add a warning message stating that it is to high temperature on the Datarec with ID 9410 2 Add an error message saying that there is an error in loop 1 on the Datarec with ID 9725 Expected output The warning message and the error message should be added in the database Result Passed Comments The database was working correctly It is possible to store and get data from the database in the approriate way The test is therefore considered to be successful A 6 Datarec 7 SOAP Client In this section the testing of the Datarec 7 SOAP Client is presented Test ID T09 Description This test should
38. very pleasant tone with Skjermo in our meetings and there were never any arguments or strained atmospheres 11 5 Utilizing the Advisor In previous years the student groups have been assigned two advisors This year however the teams were assigned only one advisor The advisor s responsibility to the student group is to oversee that the project process has the right progress and that the students maintain sufficient contact with the customer Throughout the project period the team and the advisor held weekly meetings where the advisor gave us much needed feedback on the project documentation as well as suggestions on how to best handle the situation they were in These meetings lasted for about an hour every week In addition to these meetings the advisor was available for questions in his office and by mail every work day 114 Chapter 11 Project Evaluation 11 6 Risks that Became Problems In the planning phase of the project we identified a number of risks that may decrease the quality of the end product if such a risk should occur The following items from the risk assessment section have come true Illness communication problems lack of experience wrong priorities technical issues and delayed deliveries Wrong Priorities One of the risks that was assessed in the report was the risk of group members that do not prioritize the project as highly as expected Unfortunately this was the case for some of the members of our group
39. will ensure that the client gets each event in a timely manner When it comes to checking for duplicate events the server can simply ignore it all together and send the current status each time a client polls This would put the burden of filtering duplicates on the clients which is a trivial feature to implement there Other Standards The Datex II v 2 0 standard was brought to our attention near the end of the project It is backed by the European Commission Directorate General for Transport and Energy and seems to be specifically aimed at traffic management and road side data gathering It features among other things both pushing and pulling of data a platform independent data model and location based alerts We think this is a better option for deployment since it has a lot of features that are useful for the NPRA and it is an open standard backed by the EU It is also reasonable to assume that Datex II will be used by other public road administrations in European countries which the NPRA might want to cooperate with Extending the Protocol The protocol could be extended with a heartbeat call enabling the server to more effec tively handle disconnected clients As of now the server will keep waiting for a timeout when a client is not available anymore which can take a bit of time A heartbeat could also be useful for detecting if a client has changed IP address and update it locally on the server to ensure a more robust protocol It
40. works as it should e Datarec 7 SOAP Client The SOAP Client s communication with the Datarec 7 has to be tested e Front End Since the entire front end is implemented during sprint 1 the integra tion of the front end should be tested Sprint 2 By the end of Sprint 2 the following components had to be thoroughly tested e Error Handler Its communication with the database and the ONSITE server has to be tested as well as its ability to recognize and convey errors Sprint 3 By the end of Sprint 3 the following components had to be thoroughly tested e The ONSITE server The ONSITE server s communication with the Datarec 7 and the Error Handler has to be tested e Complete System Test After all the components from the sprints have been integrated with each other we have to test if they can work together as one 61 6 Sprint 1 Contents dh SB Ed ode FG soe ob Re sp d OS bade 48 61 6 2 Sprint 15 Sprint B cklog suas eo ee a eh 61 ah bith ee ens tones he SS Pe a ne 61 Comments on the Sprint 1 Backlog 63 ps dela co an ob 63 PETE 65 65 65 rien EW We cem ip Ane oe hs Se o pa chro pr DE 65 caida EN Hh Alp a knee Der as Gee gt A 66 GAS Mirror Handle s pre pid a Hho ae ES 67 6 5 Sprint 1 Testing 68 Gal Wen Pagos 3 que 22 20 0 russ E spd Gwe di Won dew 68 ERA PE nel rad 71 ee Ba e ew ee an 72 3 6 j 73 73 74 74 The first sprint start
41. 0 20 20 Test plan 10 5 Code 9 8 17 17 16 Test 1121 13 13 4 1 11 Error handler Code 12 7 5 15 21 7 12 7 15 23 Test 3 11 JO 5 4 11 3 1d 13 I5 SUM 35 28 35 35 35 28 35 28 28 28 Table 7 1 Sprint 2 Backlog 7 2 2 Comments on the Sprint 2 Backlog Table The ONSITE server is the most extensive part of the whole project And it is also the main goal for this sprint even though we did not plan to finalize it in this sprint The reason for putting 60 hours into the design of the ONSITE server is that the server should offer some advanced features and therefore needs a carefully chosen design to work appropriately The Error Handler and the ONSITE server should communicate with each other and this feature was planned to be implemented by the first week 7 3 Sprint 2 Main Deliverables The main deliverable for sprint 2 was the implementation of the Error Handler More explicitly the deliverable parts of the Error Handler were to make it able to receive error 79 Chapter 7 Sprint 2 messages from the on site servers get a list of all the roadside installations from the NorTraf database and create warnings on errors and distinctive data table 7 2 shows the functional requirements FR7 FR8 FR9 FR10 FR11 and FR12 this implementation fulfilled ID Description Priority 12 Set up the Error handler FR7 The Error Handler should be able to receive me
42. 0 110 32 4 Map Design 10 5 15 Test 8 2 10 plan Code 10 10 20 Test 5 5 10 5 Unit info Design 10 10 Test 5 5 plan Code 10 10 Test 5 9 14 State logs Design 5 10 15 Continued on next page 64 Chapter 6 Sprint 1 Table 6 1 continued from previous page ID Task Week 1 Week 2 Week 3 ES MTWTFMT WTF MT WIT E Test 5 5 10 plan Code 5 15 20 Test 5 5 SUM 30 30 38 27 40 25 40 35 30 25 25 30 35 35 30 475 Table 6 1 Sprint 1 Backlog 6 2 2 Comments on the Sprint 1 Backlog All of the implemented components goes through a four step cycle The four phases is designing the making of a test plan implementation and testing This model is closely related to the waterfall model so that even though the project is based on scrum the components are implemented with waterfall We decided to start the sprint with design of the data fetcher and error handler The main reason for doing it in this order was that we wanted to know early what kind of error messages the system was able to catch and what kind of format they would have Since our group consists of seven people and not all of us were working on the data and error system we also started with the map service during the first days of the sprint When the design process was finished we decided to start worki
43. 4 15 16 17 18 19 Bj rnar Sonik Week Week Tuesday Wednesday Thursday Friday Monday Tuesday Wednesday Thursday Friday 8 9 10 11 12 13 14 15 16 17 18 19 Eirik Tuesday Wednesday Thursday Friday Figure B 5 Work Sheet Template B 6 Test Table Template In this section the template for test tables is presented Test ID Identification of each test Description Description of the test s purpose Requirement ID Maps each test to an item in the requirements specification Test criteria Criteria for the test to be able to complete dependencies of other modules Task List of tasks to perform during the test Expected output States the expected results by running the test Result States whether the test succeeded Comments Notes on the test Table B 1 Template for Functionality Tests 133 C Appendix Initial Requirement Specifi cation Contents EA seen pena bap RA 128 eh dae bed 130 PETE 130 EE STENE TEEN 132 This section shows how our requirement specification was at the beginning of the project C 1 Functional Requirements ID Description Priority 1 Continuously fetch data from Datarec 7 installations FR1 The system should support the Datarec 7 hardware High FR2 The system should use the SOAP interface to get the status of the High Datarec 7 hardware every second 11 Set up OPC server FR3 The server OPC server s
44. 50 200 Remaining hours EO 150 Ideal Path 100 Figure 7 1 Sprint 2 Burndown Chart As the burndown chart shows the level of efficiency was good Due to the OPC and server problems and the major setback we got about 80 hours behind schedule Hopefully this will be finished during the first week of sprint 3 but will probably make it necessary to drop some of the lesser requirements for the system 83 Chapter 7 Sprint 2 7 6 1 Sprint 2 Positive Experiences e More commitment from certain group members The delegation of tasks was better during this sprint The daily Scrum meetings e Customer happy with Sprint 1 e The amount of person hours have increased The persons that have not worked enough earlier are now starting to contribute a bit more This means that the group at last is starting to get closer to the estimated amount of person hours each week A better delegation of tasks together with more hours made this a more successful sprint in form of management The daily Scrum meetings started to pay off We got a better overview of what was being done what needed to be done and the rate of work done It was also helpful in delegation of work and setting deadlines The customer seemed happy with what had been done in sprint 1 He had some feedback but was overall happy with the result The amount of person hours increased during the second sprint The last week w
45. FR15 The system should have a web service using SOAP High FR16 The Web Service should use the SQL database to offer status and High error data FR17 The Web Services hould use the NorTraf database abstraction to High get the coordinates of the roadside installations FR18 The Web Service should separate warnings and errors High Table 4 1 High Priority Functional Requirements 48 Chapter 4 Requirements Specification 4 2 2 Medium Priority Functional Requirements This table contains all the functional requirements that was considered to be of medium importance ID Description Priority 4 Show location of roadside installations on a map FR19 The system should use a map service to show the locations of the Medium roadside installations on a map 5 Display unit information FR20 The system should display the status of separate installations in a Medium web page 14 Display state logs for units FR24 The system should store the states of the separate installations in Medium a database Table 4 2 Medium Priority Functional Requirements 4 2 3 Low Priority Functional Requirements This table contains all the functional requirements that was considered to be of low importance ID Description Priority 15 Automatic notifications FR25 The system should notify by SMS or email automatically if errors Low occ
46. LaTeX and Dropbox For our coding and implementation we used Apache Subversion and for the templates we used Google Docs These technical tools will be described in the Preliminary Study chapter section 3 5 2 4 5 Task Reviewing and Inspection When a person has written a text it can be quite difficult for him to go back and identify parts of the text that should have been better As humans we tend to have a hard time identifying and acknowledging our own flaws or mistakes This principle is true for a lot of things in life In order to deal with this problem and maintain a high level of quality throughout our project work we assigned reviewers to all work tasks that were delegated We decided that each piece of work of each group member should be inspected by another group member 13 For each chapter in the report we picked one group member to be responsible for the overall quality of the chapter The tasks of the chapter responsibles will be to make sure that everything is consistent and correct and in the end to do a final review of the chapter 15 Chapter 2 Planning 2 4 6 Customer Interaction In addition to the meeting the customer interaction was done either through phone calls or mail e Mail Meeting agenda The day before each meeting we sent the meeting agenda as an attachment Meeting summary The meeting summary was sent by mail as soon as it was written Questions Questions with no immediate nee
47. Sprint 1 mainly consists of implementing the database web service map service and the display of unit information This was much due to the fact that we did not have access to the Datarec hardware in sprint 1 The database is not dependent on any other services for working properly The web service map service and web page get all the information they need from the database Therefore by choosing to implement these parts first we reduced the damage of the delay that threatened the project The implementations of unit information and map service were done in the web page this also made it natural to implement them together The database is a high priority service because it is where all the error messages are stored The storage of error messages makes it possible to show errors after they occur which is a crucial functionality The web service is a high priority service because it made the information in the database useful It connects the errors with their location and the data would be pretty useless if 57 Chapter 5 Sprint Planning the location was not stated The functionality on the web page is important because it makes the information visible to the user But it is only of medium priority because the system does not depend heavily on it and it would be enough to make a rather simple presentation of the data We also wanted to implement the SOAP client on the on site server which makes it possible to continuously fetch data fro
48. TDT4290 CUSTOMER DRIVEN PROJECT NORWEGIAN PUBLIC ROAD ADMINISTRATION Datarec Error Monitoring and Notification Group 10 Kato St len Bj rnar Valle Roar Bjurstr m Sondre L berg S ter Robert Versvik Eirik Stene Sonik Shrestha November 23 2011 Abstract The Norwegian Public Road Administration NPRA is the public agency responsible for the public road network and security in Norway They have numerous road side instal lations that perform vehicle counting and statistics These road side installations stores data that can be accessed through various interfaces Currently the NPRA has a manual and labour intensive method of collecting and processing this data As it is now it can take up to several months before the information gathered can be of any use This is due to the fact that the road side installations do not notify anyone of hardware errors forcing the NPRA to manually check if the data is usable The NPRA has asked for a proof of concept system that automatically detects and stores hardware errors that may corrupt the statistics gathered by the road side installations Through the course TDT4290 Customer Driven Project they have asked student group 10 to create this solution This meant that we would take on the role of consultants and the NPRA would be the customer This report is the documentation of the development process It describes the process from preliminary study and planning through implementati
49. The test did not go well It showed a connection close to non existing We managed to connect but it was too slow to get anything done The reason for this problem was probably that the cabinet acted as a Faraday cage As a solution to this problem the antennas of the modem were angled so that they physically touched with the cabinet itself 3 The third test went well Since the cabinet was made of metal it made it possible to send and receive Now we had a good connection and the hardware was safely in the cabinet The road monitored by the Datarec 7 in Moholtlia is Omkjgringsveien It has four lanes which gives us readings from eight induction loops It is also in a position that has continuous traffic Figure 3 7 Excursion Cabinet and Datarec 7 25 Chapter 3 Preliminary Study Figure 3 8 Excursion Cabinet Datarec 7 Computer and Modem 3 2 1 Extra Excursion During the last three weeks of our project we were unable to connect to the hardware that we had installed in Moholtlia After a week or so of no connection customer repre sentative Jo Skjermo drove up to the site to try and fix the problem Unfortunately the problem was not fixed and we had to try again Sondre S ter met up with one of the 26 Chapter 3 Preliminary Study technicians whom we met at the first excursion and tried to fix the problem by adjusting the modem antennas We did not manage to get a good connection and decided to bring
50. Web Service In this section the testing of the Web Service is presented Test ID T04 Description Testing the Web Service connection to the NorTraf database ab straction Requirement ID FR17 Test criteria Working NorTraf database abstraction connection Task Send a request to the Web Service for coordinates to the NorTraf database for a Datarec 7 with ID 10718 placed at Klett Expected output The coordinates should be 265665 6 7030217 5 Result Passed Comments The coordinates were placed in our database which means that the connection to the NorTraf database would not be tested in this test This was due to the fact that we did not have accsess to the NorTraf database But the system was successfully able to give the correct coordinates and was considered successful Test ID T05 Description Test whether the Web Service is able to accept connections from a SOAP client Requirement ID FR15 Test criteria The tester must have access to a SOAP client Task Try to set up a connection to the SOAP interface to the Web Service using the Web Page Expected output The Web Service should accept the connection from the Web Page Result Passed Comments The tester was successfully able to set up a working connection between the Web Page and the Web Service using SOAP The tests were carried out both by running the server and the clien
51. a ee a NE NE a ee 3 8 Development Method nn nn AM III 882 VM u au ro ACI A AA 3 9 Conclusion Based on Preliminary Study 3 9 1 Table Properties ss u entries ba ne HEG RE DES ARTETA 3 9 3 Choice of Development Method 4 Requirements Specification II 5 6 Uhh dh ee deis GR het ae a na GW Brac ok E Be aoe a Bae ee ee 4 2 1 High Priority Functional Requirements e nea ia a EN A AR ee EE LAR A ener Sprints and Implementation Sprint Planning paa k EEG 5 2 1 Milestones 5 3 Product Backlog FREE e EE a 5 3 2 Sprint PR FEE PET FEE NE og ea mg ee Bie BAe SE ag ip 5 4 1 The Testing Procedures 5 4 2 Overall Schedule of the Testing Sprint 1 46 46 46 46 47 48 48 49 50 51 ol 52 52 59 59 56 57 57 58 58 59 61 61 Sprint L Sprint G als e ss s ss sadni a are an e ata oe a es 61 6 2 Sprint 1 Sprint Backlog vas heared a 61 ge A ee Co ee ee ae 61 6 2 2 Comments on the Sprint 1 Backlog 63 TEN 63 AA EN 65 6 4 1 Dat reo Y SOAP Client 00544 ca sad s e A 65 6 4 2 Datarec Database EEE nn 65 64 3 Web Servi e ee are eo oe po a pe ee 3 65 SE E E e 66 6 4 5 Error Handler RA 67 6 5 Spunt AE 68 6 5 1 Web Pape saa r See ork E OS e an 68 6 5 2 Web Service og v6 che eee eS wo EY Ewe ESS OG ESS 69 6 5 3 Database au u ed ew ee E EA eb Gee a Seen EM
52. a org wiki LaTeX Last accessed 2011 09 14 Wikipedia 2011 Quality Assurance Available http en wikipedia org wiki Quality assurance Last accessed 2011 11 19 Wikipedia 2011 Dropbox Available http en wikipedia org wiki Dropbox_ Last accessed 2011 09 12 Wikipedia 2011 Subversion Available http en wikipedia org wiki Last accessed 2011 09 15 Wikipedia 2011 Simple Network Management Protocol Available en wikipedia org wiki Simple Network Management Protocol Last accessed 2011 09 16 Wikipedia 2011 RMON Available http en wikipedia org wiki RMON Last accessed 2011 09 16 Wikipedia 2011 SOAP Available http en wikipedia org wiki SDAP Last accessed 2011 09 16 Wikipedia 2011 Statens vegvesen Available http no wikipedia org wiki Last accessed 2011 09 19 Wikipedia 2011 Scrum development Available nttp en wikipedia org wiki Scrum development Last accessed 2011 09 22 Wikipedia 2011 Waterfall model Available http en wikipedia org wiki Last accessed 2011 09 22 Wikipedia 2011 ISO IEC 9126 Available http en wikipedia org wiki ISO IEC 9126 Last accessed 2011 10 31 158 Bibliography 2 O 30 31 32 33 Wikipedia 2011 Publish Subscribe Available http en wikipedia org wiki Last accessed 2011 11 10 Wikipedia 2011 GlassFish Available http en wikipedia org wiki Last accessed 2011 11 11 Wiki
53. ability to come up with new tasks or sections to write about in the report This would have made this sprint more effective and productive Some group members did not participate in the project as much as they should have As the continuously low weekly man hours suggest we have a seemingly permanent problem with a couple of group members that are not working enough and the last week of sprint 1 went by with five working members The lack of person hours was our biggest problem in sprint 1 This increased the workload for other group members and also brought with it some irritation Other than that there were no big issues during the first sprint 6 6 3 Sprint 1 Planned Actions e A better delegation of work e Delegate tasks to specialized group members We realized that we had to be better at delegating tasks We decided that we would find out what every group member is good at and pick who does what based on that Also by improving our delegation of tasks we hoped that the group members that did not work enough would start doing what they are supposed to if we would just force some work tasks on them This would hopefully improve the efficiency of the group in general and lead to more work being done 6 7 Sprint 1 Feedback Friday October 14th we presented the results from sprint 1 for the customer The cus tomer representative on this meeting was Jo Skjermo the usual representative At the meeting the customer representative exp
54. able Sprint 2 M3 54 5 5 Milestone Table Sprint 3 M4 nun 54 5 6 Milestone Table Report M5 o o 54 5 7 Milestone Tentation M6 55 5 8 Product ERIN 56 RA AAA AO ee te are De 59 6 1 Sprint 1 Backlog ooa a 63 6 2 High Priority Functional Requirements Sprint 1 oa 222 22 64 6 3 Medium Priority Functional Requirements Sprint 1 64 ik RRA MADAME ONES SE HE eoi 68 EEE EE ee eS 69 6 6 Web Service Test Cases v s ua aha as we Adee dee pe ROS 70 6 7 Database Test Cases rv onen 71 6 8 Datarec 7 SOAP Client Test Cases 2 2 22 a a 71 T Sprint 2 Backlog capas a a OS Gee Ga ee 77 7 2 Functional Requirements Sprint 2 78 vil 1 3 Error Handler Test Gases 42a 208 a ne aa Sees 80 TE ESN sas gracas du du pd pao E eee ee eee wo 85 8 2 Functional Requirements for the ONSITE Server 2 2 86 8 3 ONSITE Server Test Cases 2 2 2 2 2 sr ss naar es 86 B 1 Template for Functionality Tests 127 C 1 High Priority Functional Requirements 129 C 2 Medium Priority Functional Requirements 129 C 3 Low Priority Functional Requirements 0 0 129 C 4 Non Functional Requirements nn nn 130 Ceo Product Bil sacris e ce hee ook OR ee Se Be as 132 List of Figures 2 1 Gantt Chart Diagra
55. after the sprint 2 period was Friday 28th of October Conse quently this was the meeting where we presented the implementations from sprint 2 for customer representative Jo Skjermo Due to the changes in the requirements that happened midway through the sprint we did not quite manage to finish the implementations that we had planned for The separate parts of the system were all finished but they had not yet been integrated with each other It had turned out to be slightly harder than expected We explained how the servers and clients would communicate with each other and the customer was very understanding of the situation that we were in and seemed content with what he was shown It was agreed that we would present the complete ONSITE server client and Error Handler implementations a week later 85 8 Sprint 3 Contents pe EG A 18 Bh he ode he Bl ade oh OBE G r OB plc A 84 8 2 Sprint 3 Sprint Backlog s ss sus ds sms Fee oe me 84 Sprint 3 Backlog Table 84 Comments on the Sprint 3 Backlog Table 85 ra aida da cate ASI ade sk GE ae a 85 e a 86 8 5 Sprint 3 Vesting asa 3 66 Sasse 86 SONS SERVER ma al Geant E a Rome a Sus eg 86 87 87 88 89 90 90 The third and last sprint phase in the project period started in week 43 The planned duration for this sprint was two weeks Sprint 2 was designated to make the on site server and client The second sprint was due to some complications behind schedu
56. aily internal meeting Customer meeting Our customer meetings are usually scheduled for Thursdays They will for the most part take place in Arbeid at 13 15 After this meeting we will have our daily internal meeting for Thursdays 2 4 3 Templates For regular documents we produced a set of templates This was to ensure that they contained all the necessary information make it more efficient and to keep a certain standard The templates we used were 14 Chapter 2 Planning e Status Report Every week we wrote a status report for our advisor This was to give him a clearer view of how the last week had been describing positive and negative experiences and each person s hours for the respective week This was delivered to the advisor together with a full updated version of the report and meeting agenda e Meeting Agenda This was a document containing time and place for the meeting and information about what should be discussed Name and phone number of every attendant was also added e Meeting Summary This document contained the names of attendants time and place and a summary of the meeting e Worksheets To keep track of the person hours for each week we created a spread sheet template where we could fill in our work hours The templates can be found in Appendix B Templates 2 4 4 File and Document Management To ensure safe storage and easy use we used some tools to handle our files For our report we used
57. an be used to remove the installed system The uninstall scripts needs to be run as Administrator to be able to remove all the parts of the system 9 1 2 Usage After installing the ONSITE server runs on its own There is no need for further interac tion with it Just make sure that it is running and that the router is properly configured to allow access to the DrRegister Notifications web service 9 2 Error Handler In this section the installation and use of the Error Handler is presented 9 2 1 Installation The Error Handler consists of two parts ErrorHandlerService is a web service that receives status notifications from the ON SITE servers It uses GlassFish as application server so it requires that GlassFish and Java EE is preinstalled The install script also requires that the Java bin directory is placed in the PATH environment variable 94 Chapter 9 User Guide ErrorHandler is a standalone java application that receives status notifications from the ErrorHandlerService checks if there are any errors and inserts the statuses and possible errors into the Datarec database It also has the functionality to subscribe to and unsubscribe from status events on Datarec units The DrNotificationPusher requires that the Java runtime is preinstalled Both of these parts are configured and installed by running the belonging install script setup bat The script needs to be run as Administrator to be able to complete the setup
58. ance the ultimate goal is to satisfy the customer This fact advocates the choice of Scrum as development method as the customer s needs may change at any given time of the project Some old requirements may not be required at all whereas some new requirements may come through With Scrum the group can incorporate as many changes as the customer wants even during the implementation phase of the project In the start of the implementation phase we appointed Bj rnar Valle and Roar Bjurstr m as Scrum master and product owner respectively The master lead the Scrum meet ings distributed work tasks set deadlines and checked whether the team members did their tasks The product owner came with suggestions and thoughts that preserved the customer s interests After every sprint we held an evaluation meeting where we thor oughly discussed internally in our group what was negative and what was positive 5 2 1 Milestones Within the framework of project management a milestone is the end of a stage that marks the completion of a work package or phase typically marked by a high level event such as completion endorsement or signing of a deliverable document or a high level review meeting We have defined our project milestones to be identical with with the deadlines set by the 53 Chapter 5 Sprint Planning course coordinators in addition to the ends of our project phases Consequently these are our project
59. anning Milestone Report M5 Goal The final report has to include all the necessary chapters and should not be of more than 200 pages Quality Measure The final draft of the report should be complete within the target date for the final approval of the advisor Target Date 18 11 11 Table 5 6 Milestone Table Report M5 Milestone Presentation M6 Goal The final presentation should be prepared and completed at least one day before the deadline Quality Measure Microsoft PowerPoint should be used for the presentation The applica tion should run and work with the device as it is expected to consider MS office versions All the members of our team must be involved in the presentation The presentation should be given in front of the advisor the customers the examiner and others who are invited Target Date The project should be presented on 24th November 2011 at 0915 in ITV 354 Table 5 7 Milestone Tentation M6 As shown in Figure we have planned for a total of five milestones We decided that each deliverable will replace the need for a milestone report At each milestone we have to make a deliverable to either the costumer M2 M3 and M4 or the course coordinator M5 except in the case of M1 M1 did not require a milestone report as it was purely a deadline we set for ourselves to finish our preliminary study and planning by Detai
60. ast time it connected On Site Error A Handler Figure 10 2 ONSITE Server in the System Chapter 10 Discussion of the Implementation Due to this we had to come up with a solution for pushing updates from the hardware to the converter 10 1 2 Details of the Protocol The protocol pushes status change events from the hardware to clients subscribed to the events This means that the protocol follows the publish subscribe pattern 29 allowing clients to register as an observer of an event and getting notified when it occurs Clients use SOAP calls to subscribe unsubscribe to an event returning a unique ID for the client to identify itself to the server The calls implemented by us e String Subscribe ToEvent String eventName String callbackPath String port e void UnsubscribeFromEvent String id Subscribe ToEvent allows a client to subscribe to an event if the server knows of the event given If the call is successful it will give the client an ID to use for identifying itself to the server Each call to SubscribeToEvent will generate a new ID UnsubscribeFromEvent allows a client to stop receiving notifications The client will use the ID given by the server to unsubscribe from said event Since each ID is bound to a specific event it is possible to unsubscribe from one event while keeping the rest as is 10 1 3 Discussion In this section the discussion of push vs pull based protocols and improvements to
61. ble of working with the components being set up at different locations 69 Chapter 6 Sprint 1 6 5 1 Web Page While developing the Web Page it was tested using Mockito to mock up the Web Service It was needed to mock up the Web Service since the Web Service was not created by the time we started implementing the Web Page The testing of the Web Page differs a bit from the rest of the system due to the fact that unit tests were not significantly used This means that the testing had to be done more comprehensively to ensure that the Web Page was error free The fact that unit testing was not used significantly made it crucial to find another way to test the smaller parts of the system The testing of the Web Page was done by trying to make it fail by giving it what was considered to be potential harmful input Input Result Comment Select a unit Passed Worked properly Jump to location Passed Worked properly Open Datarec infor Passed This test failed first time NullPointerException it was mation of a unit not run but passed after some debugging shown on the map Move map with mouse Passed Worked properly Table 6 4 Tests Performed on the Web Page During the testing the test person found a NullPointerException error in the Web Page when referring to an ID which was not contained in the database That needed to be fixed before the test could be retaken The fixed Web Page passed the
62. ccuracy The delivery of agreed effects or results Q1 2 Suitability The appropriateness of functions for specified tasks Q1 3 Interoperability The ability to interact with certain specified sys tems Q1 4 Compliance Characterizing the systems adherence to standards con ventions and laws 38 Chapter 3 Preliminary Study Q1 5 Security The ability to prevent unauthorized access to program or data e Q2 Reliability Reliability is the software s ability to continue working with the expected level of performance under certain stated conditions and for a certain period of time Reliability consists of the following qualities Q2 1 Maturity The frequency of failure due to software faults Q2 2 Fault Tolerance The ability to keep a certain level of performance if there should be a software failure Q2 3 Recoverability The ability to re establish normal level of performance and recover data directly affected by failure Q2 4 Availability Describes the systems ability to be operational when needed e Q3 Usability Usability is the attribute describing the effort needed for use and how the individual experiences the usage for certain stated or implied users Usability consists of the following qualities Q3 1 Understandability The ability describing how logical and applicable the system is Q3 2 Learnability The ability describing how easy it is to learn Q3 3
63. ce the Datarec 7 connection client and the database Quality Measure The first task of this milestone was to implement good routines for daily stand up meetings and distributing tasks efficiently But most impor tantly the purpose of this sprint was to implement test and show the web page and web service to the customer Target Date 07 10 11 Table 5 3 Milestone Table Sprint 1 M2 Milestone Sprint 2 M3 Goal The main goals for sprint 2 were to implement the most significant parts of the on site server and the error handler Quality Measure The main task of this sprint was to set up an on site server and implement most of the error handler Target Date 21 10 11 Table 5 4 Milestone Table Sprint 2 M3 Milestone Sprint 3 M4 Goal The main goals for sprint 3 were to complete the implementations of the on site server and the error handler Other goals were to to make an installation guide and to improve the GUI of the web page Quality Measure The major task of this sprint was to get on site server and client com municating complete all other remaining components of the system and perform an integration test and demonstrate the complete system to the customer Above all get the customer s approval for the completion of project Target Date 04 11 11 Table 5 5 Milestone Table Sprint 3 M4 55 Chapter 5 Sprint Pl
64. ce Locator XML Extensible Markup Language A universal and extensible markup language Preface This project report together with the proof of concept prototype is the deliverable in the course Customer Driven Project TDT4290 This course is a subject at the Norwegian University of Science and Technology NTNU We got an assignment from the Norwegian Public Roads Administration Statens Veg vesen The assignment was to create a system that could report errors in real time for their existing roadside equipment This system had to be a web application that can easily be integrated into their existing system We would like to thank our supervisor Reidar Conradi for his continuous feedback during the project We would also like to thank the customer representatives Jo Skjermo and Kristin Gry teselv from the Norwegian Public Roads Administration for making this possible Trondheim November 23 2011 Sondre L berg S ter Bj rnar Valle Kato St len Roar Bjurstr m Eirik Stene Robert Versvik Sonik Shrestha xiii Part I Introduction 1 Project Directive Contents 1 1 Project Name saa mess wie sh l ws a ein 1 2 Original Project Description 1 3 Project Goa sde AAA 1 4 Involved Parties amp vas 8 S 45 KR RO wD dA gt 1 5 The Customer 3 25 amp sw a a Sad 1 6 Project Background ris 6 0468 048 sees ska a SS a A WwW N N LTE BT Eee A a ee T
65. configuration of the Datarec database the configuration of the Nortraf database e the port number it should listen for incoming status notifications localPort e the port number of the ErrorHandlerService e the time number of seconds before a subscription is marked as timed out e the minimum battery voltage before an error is triggered After the setup is complete an uninstall script is created This can be used to remove the installed system The uninstall scripts needs to be run as Administrator to be able to remove all the parts of the system 9 2 2 Usage After the installation is complete a GUI will appear This is the Error Handler and it has to run for the system to be able to detect errors and store errors and statuses in the database a S Error Handler Subscriptions SKEDSMOVOLLEN 192 168 155 12 8080 a JAKT 86 34 52 43 8080 Teststrekning Klett 192 168 44 13 8080 Figure 9 1 Error Handler Subscriptions The GUI is tab based and the first tab contains the list of subscriptions Here you can add and remove subscriptions Clicking Add Subscription brings up a dialog 96 Chapter 9 User Guide a Add Subscription Select DataRec unit to subscribe to Teststrekning Klett null DatarecID 10718 Name Teststrekning Klett Host IP 192 168 44 13 8080 Subscribe Cancel Figure 9 2 Error Handler Add Sub
66. cterizing the systems adherence to standards conventions and laws relating to maintainability e Q6 Portability Portability is the attribute describing the ease of transfer between different envi ronments Portability consists of the following qualities Q6 1 Adaptability Q6 2 Installability Q6 3 Co existence Q6 4 Replaceability Q6 5 Portability compliance Characterizing the systems adherence to standards conventions and laws relating to portability The definitions above are based on information from and 2 3 8 Development Method Before a decision could be made on what kind of development method to use there had to be done some research 3 8 1 Scrum Scrum is one of many agile methods for software development It was originally meant for physical product development but it has also been used much for management of 40 Chapter 3 Preliminary Study software development When working with Scrum there are three core roles Product Owner Team and Scrum Master e Product Owner This role represents the customer and must ensure that the project is delivering something of value The Product Owner often writes customer centric items like user stories and make sure these are added to the product backlog Every Scrum team should have a Product Owner That role can be combined with being a normal developer but should not be combined with being Scrum Master e Team In Scrum a team is often
67. d Implementation The design for both ONSITE server and Error Handler was finished in sprint 2 so sprint 3 was dedicated to carry out the rest of the implementation and testing 8 5 Sprint 3 Testing This chapter explains the testing done during sprint 3 The ONSITE server was finished during sprint 3 and needed extensive testing In the end of this sprint the whole system was finished which means that we had to integrate all parts of the system to check if it worked together as a unit 8 5 1 ONSITE Server The final testing of the ONSITE server was done in the last week of sprint 3 The ONSITE server is the server that connects to the Error Handler and automatically forwards messages from the Datarec 7 The most important part that needed testing was to make sure that the system was able to push messages and that the ONSITE server could establish a connection to the Error Handler 88 Chapter 8 Sprint 3 T13 involves the ONSITE server T13 can be found in Appendix A Test Id Result Comment T13 Passed The reason for using a mocked up Datarec 7 SOAP client instead of a real Datarec 7 is that we had no way to produce the error at the Datarec 7 location The test went without problems the connection to the Error Handler was successfully established and the pushing was working satisfactorily This also suggests that the Error Handlers part is working according to plan The test was considered succe
68. d of an answer were sent by mail e Phone Questions Questions that needed an immediate answer was taken over the phone 2 4 7 Advisor Interaction Our interaction with the advisor was mainly done during the meetings Other than the meetings we had three ways of interaction with our advisor They were e Mail Meeting agenda The day before each meeting we sent the meeting agenda as an attachment Meeting summary The meeting summary was sent by mail as soon as it was written Questions Questions with no immediate need of an answer were sent by mail e Visit the Advisor s Office During work hours the advisor was usually at his office if we had any questions This option was used for extra reviews of the report technical advice or other sensitive questions e Phone Questions that needed an immediate answer was taken over the phone 16 3 Preliminary Study Contents ee ee E ee 16 Ao za bo Se Sats re a ALR Ge BOR k 16 3 1 2 System Bypansion s sok a ate se 4 Sow Se aw po sek 17 EE ED na ee 19 EEE SE EN EE EE EN 22 EE AAA 22 Sel FR BTG ag a inal AE bob Ban dod SE ES 25 8 3 Teste e s kes S k Senge tal A a kje see Bi A e 26 3 3 1 Test Methods Used During the Project 26 EE EEE EEE NE EEE 27 DAT DMA sas ske bd b e amp AN 27 342 Induction Loops s sa oa sv dre bo siv A e 29 3 5 Technologies Used During the Project Period 29 p GE SETE HS 44S SRE OG d
69. d to demonstrate the software 41 Chapter 3 Preliminary Study PRODUCT INGREMENT OPYRIGHT 2005 MOUNTAIN BOAT SOFTWARE Figure 3 12 Scrum Model In addition to the planning and review meetings there is often a short daily Scrum status meeting These are often called daily stand up meetings since everyone stands upright during the meetings During these meetings every team member should answer three standard questions e What have you done since the last meeting e What do you plan to do today e Have you encountered any problems that may prevent or delay you reaching your goal Central in a Scrum project there is a product backlog This is a list of possible features ordered by business value It is open to anyone and has rough estimates on what amount of effort is needed for each feature These estimates are used to find out which features have the highest Return of Investment and therefore which features to prioritize One of the main ideas for Scrum and other agile development methods is that the envi ronment or the customer s needs can change during the development Therefore Scrum takes on an empirical approach Just accept that new or changed requirements can come and focus on maximizing the probability of a quick delivery of the next increment 3 8 2 Waterfall The Waterfall method of development is to do the parts in sequence and it is therefore called a sequential design process The model was in
70. dation of implementing the system Type Description Responsibility Unit Test Tests the low level code for expected output Programmer with unit tests Helps to ensure that each part of the code works as expected Integration Test After completion of a module it needs to be Test leader integrated with the rest of the system Af ter this procedure the integration tests make sure the system works as it should Functionality Test Tests the functionality of the module against Test leader the requirement specification Complete System Test Tests all of the components integrated to Test leader work together as one Table 5 9 Test Overview 5 4 2 Overall Schedule of the Testing The project is implemented in the three sprints discussed above The components that were finished in each sprint had to go through testing before they could be considered finished Sprint 1 By the end of Sprint 1 the following components had to be thoroughly tested 60 Chapter 5 Sprint Planning e Web Page The Web Page consists of three functionalities that have to be tested separately and together These three are displaying unit information displaying state logs for units and marking error locations on a map e Web Service The Web Service s communication with the database and the Web Page has to be tested e Database It has to be tested whether storing and getting the data messages we operate with
71. dware But due to the problems that occurred we did not have time for a proper final testing This means that the prototype developed may not be completely faultless 89 Chapter 8 Sprint 8 8 6 Sprint 3 Review The third and last sprint contained the rest of the second sprint and some lesser re quirements The ONSITE server which was what did not get completed in sprint 2 was the most important part of the third sprint The lesser requirements that were included in sprint 3 e Design web interface e Create installation guide e Automatic notification Due to the delay from sprint 2 some of the lesser requirements were not included in the backlog for sprint 3 Sprint 3 burndown chart 350 300 250 200 E Remaining hours Ideal Path e sor 150 100 Figure 8 1 Sprint 3 Burndown Chart As the burndown chart shows the sprint was a bit behind schedule When this sprint was at an end it was closer to the plan than the second sprint Due to the ONSITE server we had to skip some lesser requirements and that includes the Automatic notification which was in the sprint backlog Since the Automatic notification and installation guide was not 90 Chapter 8 Sprint 3 completed the sprint ended with about 50 hours left The installation guide is something that will have to be done during the last two weeks before the presentation
72. e combined worked for 145 hours which is much better than what has been done pre viously 7 6 2 Sprint 2 Negative Experiences e Still struggling with reaching estimated person hours e The first week low amount of person hours e Trouble with the OPC The estimated amount is still out of our reach even though we are getting closer The first week had a low amount of person hours With under 100 hours worked we lacked nearly half the estimated workload The reasons for this was that some of the students did not put in enough work and several students were ill We could not use the OPC standard quite as planned Instead we had to make our own kind of server which mimics the OPC standard The reason for this was that OPC is unable to push data This set us back a bit and made the sprint harder and more time consuming 84 Chapter 7 Sprint 2 7 6 3 Sprint 2 Planned Actions e Even better at task delegation e Increase the total amount of hours worked even more There is always room for improvement and this group is no different With a better and more even delegation of tasks the progress should get better and more steady There is also room for improvement with regard to the hours worked each week Our hope is to get everyone at least over 20 hours for the next week This should also increase the amount of actual work done which makes us able to catch up a bit to the plan 7 7 Sprint 2 Feedback The first customer meeting
73. e experts had not been made aware that their presentation should have been in English Consequently they showed up with Norwegian PowerPoint slides and were completely caught off guard as they struggled with expressing themselves in English Lack of Experience The distribution of work tasks the planning and the report writing were all aspects of the project that were characterized by the fact that we were not very experienced with such big projects In the beginning of the project the way that we distributed tasks was kind of unorganized Most of the time we just found something 115 Chapter 11 Project Evaluation to do on our own initiative This way of working can be very inefficient Luckily we got much better at this after a while and increased our productivity When we made the project plan we assumed that every student would manage to work 25 hours every week throughout the whole semester This was much too optimistic After three weeks we realized that we were already behind schedule which was quite disappointing Luckily once our group started producing code in the first sprint they were able to finish several important implementations in significantly less person hours than what was planned for This made up for much of the lost time None of us had any significant experience with producing such elaborate technical docu mentation that is required for the Customer Driven Project This has made the project report very ti
74. e during sprint 2 The error handler is a high priority functionality because it is this service that caches the errors The on site server is high priority because the customer wanted a system which pushes data The Datarec 7 is not able to push data but in the future the functionality of the on site server should be offered by the roadside hardware Therefore since we are making a prototype of the system it is important that the system has this functionality 5 3 4 Sprint 3 The on site server and the error handler had to be finished during sprint 3 and with these parts complete the system should be able to run But in sprint 3 we also planned to implement support for automatic notifications via mail or sms design the web interface in a more advanced way create a user manual and add support for the Datarec 410 The plan was to finish the on site server and the error handler and then add functionality that 58 Chapter 5 Sprint Planning is not as critical for the project but makes the system better These additions would be added if there was time for it The installation guide is needed to make the system usable for new users This had medium priority in sprint 3 The support for Datarec 410 is a feature that will be added in sprint 3 and is a good feature for the system since most of the current hardware is of this sort but since all new equipment is of the Datarec 7 type it would not be a critical if it was not implemented Th
75. e error at the Datarec 7 location The test went without problems the connection to the Error Handler was successfully established and the pushing was working satisfactorily This also suggests that the Error Handler s part is working according to plan Therefore the test was considered successful 128 B Appendix Templates Contents refer 123 ean 123 EEE TEEN 125 ET 126 EEE 127 SOE EE PN 127 In this section the different templates used during the project are presented B 1 Advisory Meeting Summary Template In this section the template for advisory meetings is presented TDT4290 Group 10 Advisory meeting summary Date Time Location Attendees Students Kato St len Sonik Shrestha Roar Bjurstr m Sondre L berg S ter Bj rnar Valle Robert Versvik Eirik Stene Advisor Reidar Conradi Meeting Agenda 1 2 ER Figure B 1 Advisory Meeting Summary Template Appendix B Appendix Templates B 2 Customer Meeting Summary Template In this section the template for customer meetings is presented TDT4290 Group 10 Customer meeting summary Norwegian Public Roads Administration Hardware Fault Monitoring and Notification for Roadside Infrastructure Date Time Location Attendees Students Customer Representatives Kato St len Kristin Gryteselv Sonik Shrestha Jo Skjermo Roar Bjurstrom Sondre L berg S ter Bj rnar Valle Robert Versvik Eirik Stene Ad
76. ed NFR1 The system should have an instal Q3 Usability Q3 2 Learnability lation guide and user manual NFR2 The web interface should have a Q3 Usability Q3 3 Operability clear design NFR3 The web interface should use Q3 Usability Q3 4 Attractiveness Ajax to enhance user experience NFR4 The system should be pro Q6 Portability Q6 1 Adaptability grammed in Java Java Enter prise NFR5 The system should be easy to in Q5 Maintainability Q5 2 Changeability tegrate into the customer s exist ing system Table 4 5 Mapping Non Functional Requirement with Software Attributes More information about each of these qualities and attributes can be found in sec tion 50 Part II Sprints and Implementation 5 Sprint Planning Contents ee ee ad ee ag eee ee 51 o AS SD com ee Sy ae SEE 52 iles 52 53 Product Backlog ss iee a 8 2 2 4 re EO ei a Sie pd a 55 EEE EEE NE EE E 55 ENE SEE EET a EET 56 SEG GE PEER ET a EE PEDER 57 AE REA es 57 id A A A a a a A 58 9 4 1 The Testing Procedures 58 5 4 2 Overall Schedule of the Testing 59 This section is dedicated to the planning of the implementation phase introduced in section 5 1 Sprint Phases The chosen life cycle model 3 9 3 Serum is built up of sprints These are implemen tation phases with a presentation for the customer at the end We chose to have three sprint phases to implement this project The first sprin
77. ed be eb RAE E ad be Wim Sot A RSS aa Be E ee GSR 9 3 Web Servicel ooo a a a a a aka 93 1 Installation ss reo sa PRR AE D A RES Soe a oe ee as ee ee ee EE e io Be EGE ee ee a dais eee SO Da IA lt so coe gene ee EP q d pee ay eS hae E ne ee ek 10 1 ONSITE Server lt ee aa a en 4 IM A NE 10 1 2 Details of the Protocoll DAG Rd Ra OD a ee 10 2 Fr Handler vrede SE AEE EN 10 3 Web Service PAPE EN SE EEE TN gb Ge a Se ee DST EG 10 4 1 Exception Handling x au 4 ke ss an en an 10 4 2 yar pr rare ideen III In Retrospect 11 1 Cultural Differences between the Students REE EE KEENE TER 11 4 Contact with the Customer 2 4 000 20 sak ek EE EE a OE EEE OE NN E e A 11 6 Risks that Became Problems 2 22 2 28 na casa ea a 11 7 Changes in Requirements 2 54 042646 44264556 Bee A eS 11 8 Initial Bacon moe oo a ara ea aa ba DAE A ae V Appendices A Appendix Testing A 1 Display Unit Information a 2 0 a oo oe G4 a er A 2 Display State Logs for Units 2 5 62255 as He eee ee A 4 Web Service e a a Bes ee eS ee AAA A ee hee Eee aa a E E BESTER o po e EE Lhd Gh ia RUIM Ee ORs e Sipe eas des es es as A Ra EE C Appendix Initial Requirement Specification C 1 Functional Requirements ao a a a a a nn C 2 Non Functional Requirements o C 3 Changes in Requirement Specification
78. ed in the fourth week of the project period which was week 38 At the first sprint meeting we started the sprint planning We soon realized that the product backlog had to be modified and slightly reorganized in order to get a clear sense of progress for each sprint The first sprint was designed with the main focus of setting up and finishing the web service and the database In addition to this there should be put a substantial effort into making the SOAP interface continuously fetch data from the Datarec 7 and make the system detect errors As sprint 1 was a week longer than other two planned sprints we thought they should also put some effort into some of the lower prioritized items during the sprint Thus we agreed that setting up the map service and making the web service display unit information and state logs for units should be finished during sprint 1 Chapter 6 Sprint 1 6 1 Sprint 1 Sprint Goals We found that it would be useful to identify a set of sprint goals for each sprint which they would aim to satisfy As none of our team members had any previous experience working with agile development a considerable goal was to successfully carry into effect the knowledge about Scrum that they had acquired through preliminary study and the Scrum lecture the 13th of September This would mean implementing good routines for daily stand up meetings and distributing tasks efficiently In addition to this we designed a sprint backlog specif
79. ed with a short description Some of the technologies turned out to be redundant midways in the project 30 Chapter 3 Preliminary Study Organizational Tools In this section the tools we used to organize our files used during the project period Google Docs Google docs Google Docs is a web based office suite It is a free service offered by Google With Google Docs it is possible to collaborate on documents in real time with other users The service supports the creation of normal text documents spreadsheets and presentations We started using this because it would allow us to cooperate on documents We also use it to write down our work hours in a spreadsheet 17 LaTeX ETEX LaTeX is a document markup language a modern system for annotating a text in a way that is syntactically distinguishable from that text It is primarily used to translate XML based formats to PDF LaTeX uses the TeX typesetting program which is a multiplatform typesetting system designed by Donald Knuth Using LaTeX the user is able to focus on the content of what they are writing instead of how it looks since LaTeX takes care of the visual presentation of structures like sections tables figures etc Dropbox Dropbox is a Web based file hosting service provided and operated by Dropbox Inc It uses cloud computing technology which make users able to use file synchronization to store and share content in repositories across the web Subversion
80. en Open Open Open Open Open Open 2011 11 21 14 45 57 0 33 0 13003 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 53 0 32 8 13006 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 49 0 33 1 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 45 0 33 0 13006 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 41 0 33 0 13006 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 144537 0 33 0 13006 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 34 0 32 8 13008 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 30 0 33 0 13007 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 45 26 0 33 0 13008 Open Open Open Open Open Open Open Open Open Open Open Open Figure 9 7 Web Page Display State Logs The State Log page displays the information about the previous status messages that have been sent from the roadside installations The State Log offers information about temperature battery voltage and loop statuses When the user clicks Back the Unit Status page that he came from is displayed If the user clicks on the arrow button he will be sent to the page where the incoming Datarec statuses are displayed This status page disp
81. ent system Services Real time Registration of N z Equipment EEA Measuring station Configuration of Measure station register equipment and devide register Surveillance of measure stations Computation of no Point Services historic Data cdllection Distance data statistics Indexes Updating Collecting of road Transen L and quality network mo E 5 Collecting assurance of Traffic and quality traffic data links assurance Point 3 and Distance Updating computation ofroad of ferry data refrence point NVDB Central system ATK Toll plaza Ferry companies Figure 3 1 Original System at the NPRA 3 1 2 System Expansion This section contains a short high level description of the extensions that we are going to make to their system Our main objectives are to make the Datarec 7 hardware automatically send the error messages to their systems so they do not have to manually collect it and to send automatic notifications about any errors that should occur Our customer asked for a real time system that continuously checks the data from the Datarec 7 for errors because it is important to fix them as soon as possible to avoid gathering bogus data Datarec 7 offers an Ethernet connection which makes the fetching of real time data much faster In our development period we will have access to one roadside counting station where we will place a server laptop On this laptop we will 18 Chapt
82. equirement Specification Table C 3 continued from previous page ID Description Priority FR25 The system should notify by SMS or email automatically if errors Low occur Table C 3 Low Priority Functional Requirements C 2 Non Functional Requirements ID Description Priority 13 Create installation guide and user manual NFR1 The system should have a installation guide and user manual Medium 9 More extensive design of web interface NFR2 The web interface should have a clear design Low NFR3 The web interface should use Ajax to enhance user experience Low Other NFRA The system should be programmed in Java Java Enterprise High NFR5 The system should be easy to integrate into the customer s existing High system Table C 4 Non Functional Requirements C 3 Changes in Requirement Specification The requirements had to be changed during the project because the technologies that were initially suggested had some technical limitations There have been some name changes of things during the project The server which was been named the OPC server has been renamed into the ONSITE server in the final report The ONSITE server refers to the server computer which is placed by the roadside installations This causes some minor fixes on requirements that refers to product backlog ID 11 There was also a name change in the detect error part
83. er 3 Preliminary Study implement a server that frequently pushes the gathered data to another computer which can be one of our own personal computers or a computer at the NPRA s offices This is where the data will be processed by an implementation that we have called the Error Handler The Error Handler should have the functionality to catch errors and insert a new entry with all the relevant information into a database This is where our so called Web Service comes into play When a new entry is put into the database the Web Service pulls it out and feeds it to a web page The web page displays the current state of the roadside installations A state log is displayed in a clear interface Since the history of an installation can be viewed in the state logs the manual pre processing of the data is reduced If the logs state no errors for a specific installation the data can be used straight out of the box and in case of hardware errors the real time notification system reduces the downtime of installations Installations with hardware errors would be displayed on a map Together with the customer we agreed upon the following dataflow model of the system extensions Error Handler Web Service Figure 3 2 Dataflow Model of the System Additions We Are Making Overview of the system extensions Actor Datarec 7 Description Vehicle classifier used to register road traffic Examples of ac Fetching roadside data
84. erefore this had medium priority Later in the project it was considered to be unnecessary to implement this feature and it was therefore removed from the backlog The initial backlog planned at the beginning of the project can be found in Appendix C If we had enough time we wanted to implement an advanced GUI for the project This was not so important because we were mainly working with a proof of concept but it would make the usability of the system better Therefore we made this low priority The system should also offer automatic notification by sms and email when errors occur This was a small addition and was only considered a small priority 5 4 Test Plan This section presents the test plan for the testing of the implementations that were planned in the sprints 5 4 1 The Testing Procedures We decided that we were going to try to implement the system using a Test Driven Development model 3 3 1 But since we were inexperienced with the model it would not be possible to implement the entire system using the TDD model The TDD model would also make the coding more time consuming for inexperienced users which meant that we had to take some shortcuts to be able to finish in time The unit tests are written using the JUnit framework We decided that we should also use a tool called Mockito 3 5 to make the system testable before the entire system was complete Mockito offers the possibility to mock up Java classes that are yet to be imp
85. essage from the ONSITE server The testing of whether the Error Handler was able to get the IP address from the NorTraf database was hard to check in a satisfactory way because the database we got from the costumer only had telephone numbers stored We added the IP address manually to make it possible to test and then it was successful Another issue is that we did not have access to the real NorTraf database during the project so the costumer needs to test this feature themselves with access to the database The Error Handler is equipped with Oracle drivers the NorTraf database is an Oracle database so this should be working properly Since this feature was fully functional on our prototype it should be working on their system as well and is therefore con sidered successful Test ID T11 Description This is a test constructed to test if the Error Handler i capable of handling all planned errors Requirement ID FR10 Continued on next page 125 Appendix A Appendix Testing Table A 11 continued from previous page Test criteria A mock up of the ONSITE server which is capable of sending data containing all the necessary errors The connection between the ONSITE server and the error handler should be set up Task 1 The ONSITE server should send a message containing infor mation stating that there has been a short circuit 2 The ONSITE server should disconnect the netw
86. ete database scheme is presented in Appendix D Design section D 5 6 4 3 Web Service It was a requirement from the customer that the data gathered from the roadside instal lations was to be presented through a web service The web service offers the statuses and errors from the database and separates between resolved and unresolved errors It also has the functionality to offer state and error logs and the geographical location of the Datarec units Information of the Datarec units such as their geographical location is obtained from the NorTraf database Another requirement was that all message passing should be XML preferably SOAP XML and for this reason we implemented the web service as a SOAP interface Again NetBeans made the task simple By creating a web application and adding a web service 67 Chapter 6 Sprint 1 all we had to do was declare the functions that were to be available through the SOAP interface This is the RequestHandler class and it has four methods getUnresolvedErrors This function returns an object containing a list of the unre solved errors and a list of their geographical location getRecentStatuses int drId int offset int count This function returns an object containing a list of the recent statuses of the specified Datarec unit and the Datarec unit s geographical location The offset and count parameter is used to get subsets of the statuses Setting offset to O and count to 1 causes the
87. guish between errors and warnings Table 6 6 Web Service Test Cases The Web Service has also been tested with extensive use the Web Service was running during testing of the Web Page Even though we were not looking for any specific problems these tests thoroughly tested whether the Web Service contains errors that we did not plan for During these tests it was found that the Web Service handled the database being empty in a poor manner and that had to be fixed 6 5 3 Database This section includes documentation of the testing process of the database The database was mostly tested by simply using it We never encountered any problems with the database we set up The database was the first component we implemented fully and there have been calls to the database since The database is part of FR13 and FR14 and TOS found in Appendix A is testing whether the database fulfills the requirements 72 Chapter 6 Sprint 1 Test Id Result Comment T08 Passed The Database was working correctly It is possible to store and get data from the database in the appropriate way The test is therefore considered to be successful Table 6 7 Database Test Cases 6 5 4 Datarec 7 SOAP Client This section includes documentation of the testing process of the SOAP client The Datarec 7 SOAP is located at the ONSITE server and is the only part communicating directly with the Datarec 7 The client was developed us
88. hardware The hardware supports other protocols like ftp which might be faster than the SOAP interface This would alleviate the bottleneck of accessing the status of the hardware which is fairly slow in the current implementation Speed Issues with Datarec The onsite server tries to pull data from the datarec using its SOAP interface continu ously We measured that it took from 3s to 5s for the server to fetch a status from the datarec which puts a bottleneck on the server By implementing the on site server on the hardware itself it might be possible to avoid this bottleneck 10 2 Error Handler The Error Handler turned out to be the most complex component of the system and since we had the impression that the developed system would be useful to the customer we decided to implement every single bit of it even though it was very time consuming If it would have been clearer for us that the research done during the implementation of the ONSITE server was the most interesting part of the project we would have dedicated more hours to that instead of the Error Handler The Error Handler has checks for detecting if e a loop has a short circuit 107 Chapter 10 Discussion of the Implementation e the current frequency is outside the bounds e the battery voltage is below a predefined minimum e the connection with the Datarec unit has timed out These error checks only detect some of the possible errors A suggestion would be to als
89. he of necessary tools ies delivery and resources to the team is delayed of the project results will de crease team s efforts on ac tivities that can be done without the de layed resources Table 2 2 Risk Assessment 2 3 Project Organization The success of a project relies heavily on its organization A structured work and infor mation flow increases productivity and motivates the group members to make a better effort 2 3 1 Roles In order to get a structured work flow roles are assigned to each group member Each role consists of related tasks that together creates a routine In addition to the resposibilites that comes with the specific roles each one of us will contribute where we can be it coding or writing the report 10 Planning Person Role Description Sondre L Seeter Project Leader The project leader should resolve group conflicts be a common contact person and make sure milestones are reached in desired time He will be the one who checks and documents the group mem bers work hours Eirik Stene Document manager The document manager is responsible for the general quality of the deliverable documents Roar Bjurstrom Test leader Re quirements respon sible Modelling designer The making of a test plan and co ordinating the testing of the system is the main responsibilities of the test leader The requirements res
90. his phase the software is installed for the end users and ready for use 7 Maintenance This phase is the one where the end user gives feedback often in the form of complaints This feedback is used to remove more of the errors and improve the software further This is a task often outsourced since developers tend to dislike working on the same project for a long time 43 Chapter 3 Preliminary Study a Figure 3 13 Waterfall Model With feedback the Waterfall model can become an iterative development model It still consists of separate phases but with feedback errors and opportunities for improvement is found Then the needed phases can be started anew 27 3 9 Conclusion Based on Preliminary Study As a result of the preliminary study we ended up with the product backlog Table and a choice of development method The product backlog will act as a base for the requirements specification 3 9 1 Table Properties The requirements are prioritized after their importance in the project The backlog items are rated with high medium or low priority High priority indicates that the item is of high importance and that the item is necessary to make the system acceptable for the costumer These functionalities must be implemented and will have the main focus during the sprints Medium priority indicates that the function is of some importance Thes functions add functionality that the customer wants but it is not an abs
91. his section will present the purpose of the project the mandate and the goal 1 1 Project Name The title of the project is Hardware fault monitoring and notification for roadside in frastructure It was given by the customer and it describes in short what will be created For more information about the problem and solutions see Preliminary Study section 1 2 Original Project Description The Norwegian Public Roads Administration has a large number of instal lations at the side of the Norwegian road network that performs vehicle reg istration and counting The data from these installations is used for multiple purposes included deciding on future infrastructure needs As of today there is no overall system for detection or notification of hardware failure at these installations even if the hardware is able to perform some self diagnostic Because of this the collected data has to undergo a manual and somewhat labor intensive process before it can be of further use With better notification and logging of errors this process can hopefully be reduced Our wish is a design and prototype for a system that gather information on both hardware Datarec7 or newer and data communication state given from our telecom provider and display this information in a clear interface We wish for a web based interface where we can check status analyze faults and read out state logs We also wish to examine if it is possible to automatically e
92. hould match the design of the internal system to the customer because this would increase the usability of the page e The GUI of the Error Handler should be extended into the Web Page to make it easier for the user to connect to the on site servers 110 Part III In Retrospect 11 Project Evaluation Contents 11 1 Cultural Differences between the Students 108 EE EE So ae wee 108 A 109 Es rd E SA E E 110 ee a a UE 110 11 6 Risks that Became Problems 110 eee A AAA 112 11 8 Initial Backlog ca sos ars di Ren ees 112 This section contains the evaluation of the project as a whole and of the different parts of the project 11 1 Cultural Differences between the Students Our student group consisted of seven students six of whom were Norwegian The seventh group member was an international Masters degree student from Nepal This resulted in English as the main language for communication throughout the project Although most of us mastered English to an acceptable level some were better than others Most of us were not used to speaking English which initially made the oral communication rather stuttering and poor It would actually appear to be a surprisingly big problem for communication at the first few meetings The broken English presumably made several group members act more shyly than they usually would Consequently the internal ice breaking in our group got off to a wot ryingly s
93. hould offer a mock up of a subset of the High OPC functionality FR4 The server OPC server should be able to register listeners High FR5 The OPC server should be able to push data High 10 Fetch network statistics FR6 The system should use RMON to fetch statistics describing network High traffic 12 Set up OPC client FR7 The OPC client should be able to receive messages from the OPC High server FR8 The OPC client should be able to register itself as a listener to the High OPC servers FR9 The OPC client should get a list of all the roadside installations and High their IP addresses from the NorTraf database abstraction level 7 Detect errors and faults FR10 The system should use the data from the network monitor and High OPC server to detect network irregularities peculiar data loop faults hardware faults or wrong hard wiring Continued on next page Appendix C Appendix Initial Requirement Specification Table C 1 continued from previous page ID Description Priority FR11 The errors should be separated from the regular data messages High FR12 The error handler should create warnings on irregularities and pe High culiar data 2 Save data in database FR13 The system should use a SQL database to store the statuses and High errors FR14 The system should convert the messages from the OPC
94. ically for sprint 1 This sprint backlog consisted of carefully chosen items from the product backlog that would form a basis for the subsequent sprints to build on The main goals for sprintl are to de sign implement and test the web page web service the Datarec 7 connection client and the database The web page web service and the database part should be successfully presented to the costumer at Thursday the 13th of October 2011 6 2 Sprint 1 Sprint Backlog This section presents the backlog with documentation for sprint 1 6 2 1 Sprint 1 Backlog Table The numbers in the backlog table represents the number of hours that we have planned to spend on each item in the list ID Task Week 1 Week 2 Week 3 E MITIWITIFIM TIWITIFIM TIWITIAF 1 Fetch data Design 10 10 20 Test 5 15 10 plan Code 8 1818 4 4 32 Test 2 12 2 1 qd 8 Continued on next page 63 Chapter 6 Sprint 1 Table 6 1 continued from previous page ID Task Week 1 Week 2 Week 3 E MTIWITIF MT WT FM T WIT E 7 Error Han dler Design 10 15 20 5 50 Test 5 10 15 plan 2 Database Schema 10 10 Design 15 10 25 Test 5 5 10 plan Code 4 4 4 2 14 Test 1 p L 13 15 41 3 Web service Design 10 10 5 25 Test 5 10 15 plan Code 518 181818 18 8 1515 58 Test 2 2 12 2 2 2 11
95. icle The system does not have the ability to report errors on this equipment Therefore the customer came to us with the task to create a system that runs diagnostics on the system The system should have the ability to send notifications if any errors occur This information should be displayed through a web service The web service shows different kinds of error messages It reports whether there is a failure what type of failure it is what kind of equipment it is and where it is lo cated 1 7 Duration The estimated workload per person was 5 hours each day This gives 25 hours per person every week in the assigned project period During the semester this adds up to 310 hours for each project member Since our group consisted of seven students the esti mated workload would be 2170 hours for the whole project Project Start 30th of August 2011 Project end and presentation 24th of November 2011 2 Planning Contents 2 PHASES ora ds este adri o ri weir St ae ee rd e po bey s r pled ob 6 6 6 7 7 7 8 8 dce te Se Ew we aaa awit A ee id 16 9 AE E EA 10 12 ee ser Mn e ie 12 241 Internal Rotnes ssc e sms E Be en ee 13 13 AAA 13 14 14 15 15 This section is dedicated to the planning of the project It describes the organization scheduling and risk management of the project 2 1 Phases To get a better overview of the project we divided the process into phases The first two phases are spen
96. icles and their mean speed during a specified time interval Figure 3 10 Datarec 7 Signature Version 4183 8 loops up to 4 lanes Version 4650 12 loops up to 6 lanes Dimensions 290x220x65mm Hardware interface Ethernet 10Mbit RS232 Software interface Web server FTP server SOAP Sensors 8 or 12 inductive loops Temperatures Full operation 40C to 85C Power 9 15V Current consumption 12V 35mA average Environment IP65 Display 2 lines each 8 characters Data styles Interval and or vehicle by vehicle Data output Count time gap and headway occupancy length vehicle type classification Table 3 7 Technical Information 29 Chapter 3 Preliminary Study 3 4 2 Induction Loops The Datarec 7 gets its data from a number of inductive loops which are installed under the asphalt For each lane in the road there are two loops as illustrated below Figure 3 11 Datarec Induction Loops In addition to counting each vehicle that drives by these loops also gather data about velocity and more as mentioned earlier They register the times for when a vehicle passes the first and the second loop and then simply calculate its speed with the v d t formula 3 5 Technologies Used During the Project Period The customer had some restrictions on what technologies we could use Most of them were known to us but not all In this section the technologies will be present
97. ign no vegvesen webservice bal Figure D 4 Class Diagram no vegvesen webservice bal no vegvesen webservice dal Figure D 5 Class Diagram no vegvesen webservice dal no vegvesen webservice soap Figure D 6 Class Diagram no vegvesen webservice soap 143 no vegvesen webservice dr db DrDbOracleDriver getRecentStatusesQuery in offset int in count int string getRecentErrorsQuery in offset int in count int string getUnresolvedErrorsQuery string getStatusQuery string getLoopStatusesQuery string getDriverClassName string getConnectionUrl string DrDbOracleDriver getRecentStatusesQuery in offset int in count int string getRecentErrorsQuery in offset int in count int string getUnresolvedErrorsQuery string getStatusQuery string getLoopStatusesQuery string getDriverClassName string HgetConnectionUrl string DrDbDriver getRecentStatusesQuery in offset int in count int string getRecentErrorsQuery in offset int in count int string getUnresolvedErrorsQuery string getStatusQuery string getLoopStatusesQuery string DrDbMySqlDriver getRecentStatusesQuery in offset int in count int string getRecentErrorsQuery in offset int in count int string getUnresolvedErrorsQuery string getStatusQuery str
98. in 70 6 5 4 Datarec 7 SOAP Clhent so 2 2 4 2 VES EE EES 71 6 5 5 Testing the Integration of the Database the Web Service and the Web Pavel saa ct maato Ree ha sia ewe aoe ee Bos 71 7 8 EE te ees Bare Sere es a ee ee 12 Da A a ss o 73 6 6 2 Sprint 1 Negative Experiences 73 De A 74 6 7 Sprint 1 Feedback ess s 00 20 dr ee abe A be eS 74 Sprint 2 76 AE 76 7 2 SPE Sprint Backlog s s u bas o ri a we oe 76 KE Ge Ge Rage ae SA 76 eee ee 7 She ik ooh ee qo eee ee ee 77 Bee GE e Bee ae sn er 78 7 4 1 ONSITE Server praia GE AR 78 74 2 Error Handler s s 48 2 ae 25 getban gabet ahead 78 TA Sprint 2 Testing cs sas ra E ee RR 79 Lol Error Handler puede E UE RES A A 79 a e SETE a rl ra da o e e 80 AN 81 7 6 2 Sprint 2 Negative Experiences lt 4648 hakk ee aa 82 We cg Sig ga ge AB EE Ee ee 82 7 7 Sprint 2 Feedback sir crisi EO eo A 83 Sprint 3 84 JE EPP PE 8 2 Sprint 3 Sprint Backlog ke pag sau a u aa A ae Je re ndo e Or ee E a er te eeee eesti pause en AN A 8 5 1 ONSITE Server 2 22 lt lt Re 4 nn en 8 5 2 Complete System Test s ca cad pa oe AA he aie eek RA oe ee ee ee wee eae ee ee a ete ee 8 6 2 Sprint 3 Negative Experiences 00004 IE A re ee ee 8 7 Sprint 3 Feedback sass eres ss dan S PS oS RR ROS AA A JE A gion pis 2 0 4 6 ee aa eee Ee ARA 2 Error He ac IS s SE SNE A 9 2 1 _Installation a3 34 2 we
99. ince the customer wanted us to use SOAP XML as message passing we decided to use web services While a web service would solve the task of receiving status notifications checking for errors and inserting them into the database it would not be able to subscribe to the events At this point we had decided that it would be best if the user of the system could manually specify which units to subscribe to and for this we needed a GUI The Error Handler is now a standalone application with a GUI It has a SOAP client that handles subscribing to events and a socket server that listens for incoming connections from which to receive status notifications from the Error Handler Service In order to list all the available Datarec units to subscribe to we had to create a database connection to the NorTraf database While doing this we decided to adapt the support for different database drivers as we did with the Web Service implemented in sprint 1 The complete design of the Error Handler and ErrorHandlerService is presented in Ap pendix D Design section D 4 7 5 Sprint 2 Testing The Error Handler was the only component which was supposed to be finalized during sprint 2 Even though the test plan for the ONSITE server was constructed during sprint 81 Chapter 7 Sprint 2 2 the documentation of the testing is included in the testing chapter in sprint 3 section 8 5 7 5 1 Error Handler It was initially planned to test the Error Hand
100. ing getLoopStatusesQuery string getDriverClassName string HgetConnectionUrl string DrDbConstants COLUMN_DR_ID string COLUMN_STATUS_ID string COLUMN_START_TIME string COLUMN_TEMPERATURE string COLUMN_BATTERY_VOLTAGE string COLUMN TIMESTAMP string COLUMN LOOP ID string COLUMN STATUS CHARACTER string COLUMN DESCRIPTION string COLUMN ERROR ID string COLUMN ERROR CODE string COLUMN RESOLVED string COLUMN TYPE string COLUMN HITS string COLUMN MIN FREQUENCY string COLUMN CURRENT FREQUENCY string COLUMN MAX FREQUENCY string TABLE STATUS string TABLE LOOP STATUS string TABLE ERROR string DrDbConnection dbDriver DrDbDriver getRecentStatuses in drid int in offset int in count int Status getRecentErrors in drid int in offset int in count int Error getUnresolvedErrors Error connect void close void getStatus in statusld int Status getLoopStatuses in statusld int LoopStatus extractStatuses Status extractErrors in errorResult ResultSet Error interface IDrDbConnection getRecentStatusesflin drld int in offset int in count int Status getRecentErrors in drid int in offset int in count int Error getUnresolvedErrors Error connect void close void dal Error LoopStatus erro
101. ing a TDD model and is there fore tested during development At the early phases of the development the Datarec 7 was mocked up because it was important to isolate the problems to being on the client itself During testing of the component it became clear that the Datarec 7 responds very slowly The Datarec 7 SOAP Client is part of FR1 and FR2 in the requirement specification The following tests were applied to make sure that the requirements are fulfilled A more detailed description of the test can be found in Appendix A Test Id Result Comment Tog Passed The system gets the right result from the Datarec 7 but the process of fetching data is a bit slow The hardware uses 3 5 seconds when it responds to requests from the SOAP client We think this happens because of the overhead that comes with using SOAP The converting to XML and setting up HTTP takes some time and the hardware in the Datarec 7 is slow We considered the problem to be unsolvable and therefore simply accepted the poor result Table 6 8 Datarec 7 SOAP Client Test Cases 6 5 5 Testing the Integration of the Database the Web Service and the Web Page This section describes the testing process involving the integration of the Datarec Database the Web Service and the Web Page From now these components combined are referred 13 Chapter 6 Sprint 1 to as the front end The front end was tested in sprint 1 because
102. ining hours 250 Ideal path E 200 150 100 Figure 6 1 Sprint 1 Burndown Chart As the burndown chart shows the work started off at a slow start in sprint 1 During the last period of the sprint the level of efficiency increased This was partly because of a clearer delegation of tasks and members working from home In this case working from home improved our efficiency since less of the work time was used for idle chatting One of the reasons this burndown chart does not show a straighter line is that we try to avoid working in the weekends On the end it was also partly affected by a delivery in another course for some of our group members 6 6 1 Sprint 1 Positive Experiences e Got close to everything done e The implementation parts were done effectively Even with our person hours problem we got very close to everything done That was good since the hours lost would have to be placed into sprint 2 6 6 2 Sprint 1 Negative Experiences e Not very effective work on the report 75 Chapter 6 Sprint 1 e Should have delegated work better e Some people did not participate as much as expected e Lack of person hours The work on the report was slow and ineffective because the tasks that were focused on were to try to fill out parts already written This is tedious work and often leads to it being ineffective The delegation of work should have been better And also the
103. initially decided that the waterfall model would be a good and stable choice The customer though through representative Jo Skjermo expressed the wishes of Scrum as the model of development The reason for this wish was the possibility of changes in the requirements specification We then decided that since the customer wanted this specific model we might as well agree to this Gaining experience with the Scrum development model was also a reason to let go of the Waterfall choice 45 Chapter 3 Preliminary Study Therefore the development method used in this project is Scrum Since we decided to go with Scrum roles needed to be assigned for the Scrum meetings Bj rnar Valle was elected our Scrum Master while Roar Bjurstr m took the role of Product Owner The rest of our project group were assigned to the Team As for meetings in Scrum the decision was to have daily Scrum meetings These would replace the internal meetings 46 4 Requirements Specification Contents pr dd GE aa ee nd a ee 46 ee a ee ee ee ee ee 46 High Priority Functional Requirements 46 Medium Priority Functional Requirements 47 4 2 3 Low Priority Functional Requirements 48 ei a de 48 EEE 49 This is the chapter where the various functional and non functional requirements speci fications are identified discussed and explained The customer came to us with a quite concise description about what properties he wanted
104. is especially useful with mobile clients as these have a tendency to change addresses more than desktop clients 106 Chapter 10 Discussion of the Implementation Improvements to the Current Implementation The implementation suffers from having too many points of failure as it is now The web service runs completely independently of the desktop app and the server requires both applications to run to work at all An improvement to this would be to integrate the web service and desktop app into one application that is both server and client at once This would enable a more robust and elegant method of sharing data by simply having a shared thread safe area of memory both can access The downside of this approach is that we would have had to implement the SOAP middleware themselves converting XML data into a SOAP method call The current implementation also calls each client synchronously when a change in status is detected This means that if a client is unresponsive the server will wait for it to time out before sending the status to the next client This is not acceptable if the server will serve many clients at once but can be fairly easily fixed by making each call to a client run in its own thread It is also possible to use a worker thread pool allowing multiple calls to clients to be handled simultaneously without the overhead of thread creation Another improvement might be to use another interface for fetching the data off the
105. it does not have any dependencies on the other parts of the system The Web Service pulls the data from the Datarec Database on request from the Web Page To test the front end we integrated the three parts and prepared them to run as a system Since changes in the database should cause the Web Page to change we tested it by changing the information in the database and checking how well the Web Page reacted to this We tried this technique with various different inputs At the end of sprint 1 the front end seemed to be working to satisfaction At least from what we could tell as we had to manually add input to the database instead of getting it automatically from the implementations that would handle this job in the future The front end would have to be tested in pair with the rest of the system in Sprint 3 before we could know for sure 6 6 Sprint 1 Review When this sprint started we were a little afraid of coming further behind schedule The reason for this was mainly due to the lacking man hours we had up till that point Over the three weeks the sprint lasted we only got 25 hours behind schedule This was estimated using a burndown chart We thought this was a successful sprint since we still had problems with reaching the estimated weekly hours and during the last week of the sprint only had 5 group members that worked 74 Chapter 6 Sprint 1 Sprint 1 burndown chart 500 450 4 400 350 300 E Rema
106. ivers were to Windows They have released several standards for communication between entities 9 For this project we will be using OPC XML Data Access which was released as 1 0 in 2003 This standard uses SOAP and XML for communicating back and forth following a schema defined by the OPC Foundation IO The reason for using OPC came from the architecture described by the customer The Norwegian Road Administration has scheduled an installation of a OPC server to com municate with Datarec 7 and requested that we would create a mock up on a computer on site OPC was not used after all This was due to the realization that the standard did not offer functionality for pushing data which was a must for this implementation SNMP Simple Network Management Protocol is a protocol for managing devices that is con nected to an IP network The protocol consists of a set of data objects that are exposed 34 Chapter 3 Preliminary Study in form of variables which describes the system status and configuration These variables are just object identifiers OIDs mapped to a value The information about the variables and the structure of the management data is defined in management information bases MIBs The variables can be read and set remotely SNMP was not used after all RMON Remote Monitoring is an extension to SNMP RMON focuses on analyzing the unit s network traffic and provides statistics that can be used in netwo
107. lays up to 30 statuses sorting them from new to old If there are more than 30 statuses the user can click to the next page 103 10 Discussion of the Implementation Contents 10 1 ONSITE Server sas s do sc ee he ede a a da A 101 1011 Rationale a 2 g dd Seb ents S de Me Sod sak Bree 101 10 2 Error Handler sos sad sodio Se ee E A a a we E 104 103 Web Service lt cores dao WS ew a ae Se 105 104 Web Pases ss Bay Dim De a a ae de 105 10 4 1 Exception Handling 10 42 Tniprovements scope ade a nk 105 In this section the discussion of the implementation is presented 10 1 ONSITE Server In this section the implementation of the ONSITE Server is discussed 10 1 1 Rationale RegisterNotifications DataRec 7 DrNotificationPusher z SubscribeToEvent f get Traffic UnsubscribeFromEvent getServer Whenever the unit s status Calls functions to register for changes send a notification to Stores statuses and errors notificaitons all listeners se ErrorHandler ErrorHandlerService Database 1 j 1 eventCallback Figure 10 1 Flow Chart In sprint 2 the we that the OPC XML protocol had no push notification method defined The customer wanted the system to push a status message whenever the hardware detects a change of status while OPC XML is a pull based protocol where the client has to get any updates from l
108. le This made us skip some of the lesser requirements for sprint 3 to be sure we would finish the most important parts of the project in time The requirements that in the revised plan were to be done in sprint 3 were the ONSITE server and client installation guide design of web interface and the automatic notification by sms and mail 8 1 Sprint 3 Goals The main goals for sprint 3 were to finish the implementation of the ONSITE server and client which is the most important part of our system implementation The installa tion guide the web interface design and the automatic notification comes in addition to this With the problems in sprint 2 the server and client part turned out to be very time consuming This can also be seen in the backlog where the server and error handler which is a part of the client has been prioritized with about 55 percent of the allocated time in the backlog Chapter 8 Sprint 3 8 2 Sprint 3 Sprint Backlog This section presents the backlog with documentation for sprint three 8 2 1 Sprint 3 Backlog Table The numbers in the backlog table represents person hours that we have planned to spend on each item in the list Story ID Story Task Week 1 Week 2 M T W T T W T 11 Set up the ONSITE server Code 12 12 12 12 25 25 Test 31313 3 30 Error Handler Code 12 12 10 Test 13 Create installation guide
109. leader R6 Dropouts One or more group mem bers drop out of the course H The quality of the project results will de crease Accept Divide the extra workload among the rest of the team and try to cope with the reduction in staff Project manager R7 Wrong priorities One or more group members fails to do their tasks L The quality of the project results will de crease Avoid ber of the team rec If a mem ognizes that another member of the team is not pulling his own weight because his pri orities lie elsewhere the project manager should be involved in order to resolve the is sue Project manager Continued on next page Chapter 2 Planning Table 2 2 continued from previous page Id Case Consequences P Strategy Responsible R8 Oversleeping L The team M Avoid Tell the over Project manager One or more group has to waste sleeping team mem members fail to their time by bers that they have attend a meet updating the to pull themselves to ing because they oversleeping gether If it contin overslept team mem ues threaten to in bers after the volve course staff meeting R9 Technical issues M The qual L Accept Try to get Nobody Failure of technical ity of the project hold of substitute components results will de equipment crease R10 Delayed deliver H The quality M Accept Focus the Nobody T
110. led planning of T3 Sprint1 T4 Sprint 2 and T5 Sprint 3 has been explained in its respective sections see section 6 7 and 8 5 3 Product Backlog This section contains the plan for which parts of the product backlog that were the conclusion of the preliminary study the backlog can be found in section 5 3 1 Table This updated product backlog table describes the total effort estimate for each sprint and parts of the sprints as well as which functional requirements FR or non functional re 56 Chapter 5 Sprint Planning quirements NFR fulfilled with each task For more information about the requirements refer chapter 4 Requirements Specification ID Description Total Sprint 1 Sprint 2 Sprint 3 Req Effort Esti mate High Priority 1 Continuously fetch data 70 70 0 0 FR2 from Datarec 7 installation 11 Set up on site server 315 0 165 150 FR3 5 7 Make errorhadler 275 65 150 60 FR7 12 2 Save data in database 70 70 0 0 FR13 14 3 Set up web service 135 135 0 0 FR15 18 Medium Priority 4 Show location of roadside 55 55 0 0 FR19 installations on a map 5 Display unit information 30 30 0 0 FR20 13 Create installation guide 40 0 0 40 NFR1 14 Display state logs for units 50 50 0 0 FR24 Low Priority 9 Design web interface 20 0 0 20 NFR2 3 6 Automatic notifications 45 0 0 45 FR25 Sum Hours 1105 475 315 315 Table 5 8 Product Backlog 5 3 2 Sprint 1
111. lemented This makes the testing of a half implemented system easier Each component goes through four testing phases 1 The component is tested using unit testing 2 The component functionality is tested using black box testing 3 The component is integrated into a part of the system and the interaction between the components is tested Since the system has a clear distinction between front end and back end they will be tested as two separate units before they are integrated 99 Chapter 5 Sprint Planning 4 The testing of the entire integrated system The black box tests have been produced during the sprints and are a part of Appendix A The front end is in considered to be the Datarec Database the Web Service and the Web Page The back end is considered to be the ONSITE server the Error Handler and the Datarec Database The reason for testing the front end and the back end separate from each other is that the front and back end can be working standalone and have no dependencies on each other This makes it possible to start testing of the Web Service and Web Page early Due to the fact that we are developing the system purely as a proof of concept the testing does not have to be as extensive as it would be for a system that is developed for actual use This means that the customer will not be performing an acceptance test since the customer s main interest in the result of our project is our experience with and recommen
112. ler during sprint 2 But due to delays in the implementations the actual testing was not completed before sprint 3 The Error Handler was developed using the TDD technique which means that it had gone through testing during the development phase The Error Handler had three major parts that needed testing the connection to the ONSITE servers the detection of errors and inserting errors and warnings into the database These features correspond to the requirement identified in chapter T10 T11 and T12 tested these features The tests can be found in Appendix A Test Id Result Comment T10 Passed The setup with the ONSITE server worked satisfactorily and the con nection was successfully set up The Error Handler successfully received the message from the ONSITE server The testing of whether the Error Handler was able to get the IP address from the NorTraf database was hard to check in a satisfactory way because the database we got from the costumer only had telephone numbers stored We added the IP address manually to make it possible to test and then it was successful Another issue is that we did not have access to the real NorTraf database during the project so the costumer needs to test this feature themselves with access to the database The error handler is equipped with Oracle drivers the NorTraf database is an Oracle database so this should be work ing properly Since this feature was fully functional on our prototy
113. llation yellow if there is a warning and green if the roadside installation is running appropriately When the jump to location button is clicked the map should move to a local view where the marker is placed When the user clicks on the marker or the name of the Datarec under the Unresolved errors list the page opens the unit status page for the Datarec If the user wants information about a Datarec which does not have an error it is possible to get to the unit status page by using the drop down list called List of DataRec units and press submit 101 Chapter 9 User Guide Back JAKT Status Status WARNING WarningMessage The frequency is outside the bounds on loop s 1 4 Description Kontroll av at sommertid ligger inne i DR 08 04 11 Unit Status Operativt Temprature 22 1 Battery Voltage 13015 Status Timestamp 2011 10 13 05 15 30 0 Unit Start Time 2011 10 02 00 00 00 0 Loops Loop ID 1 Status OK Current Frequency 4522 Hits 4392 Max Frequency 6232 Min Frequency 3423 Loop ID 2 Status OK Current Frequency 4522 Hits 4392 Max Frequency 6232 Min Frequency 3423 Okstad Figure 9 6 Web Page Display Unit Status When the user opens the Unit Status page the information about the current status and its location should be displayed as illustrated in the example above The user can either click back which will open the front page or click Dis
114. low start After two weeks we got together in our spare time to have a meal together socialize and get to know each other This social meeting and the first lecture on group dynamics made us more comfortable with each other and lead to communication gradually going more smoothly 11 2 Becoming a Team Some of us knew each other a bit from before and some did not know anyone This is a typical start on the project for a group that was randomly put together Using Tuckman s theory for team development there were four possible stages Chapter 11 Project Evaluation 1 Forming Getting to know each other 2 Storming Challenging each other 3 Norming Working together 4 Performing Working as one The first phase is the Forming phase Here the team members try to get to know each other The language barrier made this phase a little problematic for us but the transition to phase two still went very fast for most of us A reason for this might be that some of us knew each other from before The second phase did not last long and there have been few big confrontations or loud arguments The transition to phase three came fast for most members of our team Third phase is the phase where people work together help each other out and are sup portive This is the stage most of us were on for the main duration of the project Phase four is the last and the optimal state to be in Our team did not enter this state The main reason for
115. m sonia ome woe ewe SEG pad SS 6 2 2 Organization Chart for the Project 12 3 1 Original System at the NPRA es ss 2 rs a8 a 16 3 2 Dataflow Model of the System Additions We Are Making 18 3 3 Data Flow Error Handler and ONSITE Server 20 3 4 Data Flow Web Service 2 u G8 we hes ee EA E eS 21 3 5 The Future System with Our Extensions 4 21 3 6 Excursion Technicians and Jo Skjermo 23 3 7 Excursion Cabinet and Dataree 2 4 save barske GE eS 24 3 8 Excursion Cabinet Datarec 7 Computer and Modem 25 1 9 Black Box Temp va frk ed Ei Ge pd Quad we ee ed G 26 3 10 Dataree 7 Signature 2 2 444 4 4 3 DE EERE GER N G 28 3 11 Datarec Induction Loops gt xa des ar ar bbe La bas 29 3 12 Scrum Modell a ope aes eRe eee he a eee a Womens 41 3 13 Waterfall Modell 4 2 4 6 iria A SSS 43 5 1 Gantt Chart Diagram Describing the Sprints 51 5 2 Activity Network Chart 24 seede b e Sek SE es 53 6 1 Sprint 1 Burndown Chart 222 sage km aaa a ee F 73 7 1 Sprint 2 Burndown Chart cui 2 Sark SMET a 81 8 1 Sprint 3 Burndown Chart 0 34 2 u un sekk RRR dna 88 9 1 Error Handler Subscriptions cases Se god Sa Ge ee ee eS 94 9 2 Error Handler Add Subscription 024 94 9 3 Error Handler Database Configuration 95 9 4 Error Handler Error Log essas eos sauer
116. m at their counting site in Moholtlia Usually their roadside installations do not include server laptops and ICE modems but for the software that we will implement they were both necessary The Moholtlia site is usually not operational The NPRA only install their Datarec 7 hardware at this site for about four weeks every year to get a sufficient coverage of this road Omkjoringsveien However for our testing purposes the Datarec 7 was to remain at the site for the rest of the year Unfortunately due to some technical problems we had to go on another excursion in mid November to move the Datarec 7 from Moholtlia to the graphics lab at NTNU Bjgrnar and Sondre were the two students that joined to see where the installation site was how it looked and to take some pictures Figure 3 6 Excursion Technicians and Jo Skjermo 24 Chapter 3 Preliminary Study The excursion lasted for about two hours When both the computer and the ICE modem were set up student Bjgrnar called the students whom were working at the school to test the connection Before everything was working properly three tests were needed 1 The first test was to make sure that the connection worked For this test both the computer and the modem were outside the roadside cabinet The connection worked fine so the modem and computer were placed inside of the cabinet 2 The second test was to see how the connection was affected by the cabinet
117. m the Datarec 7 early in the project The reason for this was to ensure that any critical hardware issues were discovered early in the project so that we had time to recover from them Since we got access to the hardware rather late we also added some time for this in sprint 2 The fetching from the Datarec 7 is a high priority functionality because without it it would be impossible to get data to the system since almost all the information comes from the Datarec 7 hardware 5 3 3 Sprint 2 The important functionality that needed to be implemented in sprint 2 was the error handler and the on site server The initial plan was to implement an OPC client and add a service that fetched network statistics This was abandoned due to reasons explained in chapter It was important to implement the error handler and the on site server in sprint 2 because with this part done we actually would have a working system quite early in the project period With a running system it would be easier to test and to get a better view if anything else needed to be implemented The error handler should initially have been done by the end of sprint 2 but since we added much more complexity into the error handler we thought it would be a good idea to add time for finishing it during sprint 3 The on site server is probably the most complex part of our project and also needed to be extended into sprint 3 This means that it was not probable that anything was completely don
118. me consuming and we soon realized that we might have underestimated the time it would take to write the report Technical Issues We lost about three days worth of testing due to a bug with the Datarec 7 hardware which was that the Datarec reset its own IP address whenever we tried to connect to it through remote desktop When the Datarec and the server laptop was installed on site three work days later the bug was fixed Four weeks before our final presentation the ICE modem in Moholtlia stopped working It was not fixed until three weeks had passed Because of this we did not get to show the customer how our system would work with their actual hardware installations instead of just with out mocked up version of it 11 7 Changes in Requirements Changes of the requirements are common when having an agile development method We lost a lot of time in sprint 2 when our biggest requirement had to be reworked We were already deep into implementing an OPC server when we found out that had to scrap it and start over with a new server implementation The changes of our requirements specification are presented in Appendix C Requirements Specification 11 8 Initial Backlog As the Scrum phase came close we realized that the product backlog which we had designed should have been much different Therefore we redesigned it so that every sprint would produce separate parts of the final system This design makes for a clearer sense of progress and give
119. me gap of the vehicles passing by This data can be registered for one vehicle or for the average value over 5 minutes 15 minutes or 1 hour The Datarec 7 can be accessed through its SOAP interface with a number of requests Below is a list which presents the different requests that Datarec 7 responds to as well as a short explanation of how we used them e LOOP_CONNECT is used to check the status of the Datarec 7 s connection to its loops If the connection status is not as it should be an error has to be raised e LOOP HITS returns a string with the number of loop hits meaning how many vehicles have driven by the inductive loops that the Datarec 7 is connected to e LOOP_FREQ returns a string with the frequencies of the loops that are connected to the Datarec 7 e START returns the start time of the Datarec 7 interface e BATTERY returns the battery voltage of the Datarec 7 in mV This is checked against a minimum and a maximum value If the value is outside one of these a warning message is sent e TEMPERATURE returns the temperature of the Datarec 7 device in degrees Cel cius This is checked against a minimum and a maximum value If the value is outside one of these a warning message is sent 28 Chapter 3 Preliminary Study e VEHICLE returns the data of the most recent vehicles detected by the loops It can return data for any number of vehicles from 0 up to 10 e VEHICLE_ACC returns accumulated number of veh
120. mer required To get around this we made a normal desktop application running a loop that pulls statuses from the hardware then calls a SOAP method for every client that is registered with the server Clients register through the Web Service which then sends the info needed to the desktop application through sockets The complete design of the ONSITE server is presented in Appendix D Design 80 Chapter 7 Sprint 2 section 7 4 2 Error Handler The schedule for sprint 2 was to implement the design created in sprint 1 but after some suggestions of changes from the customer we redesigned parts of the Error Handler The new design was more complex than the initial design but the new suggestions can only be partly blamed for this While redesigning we added parts that were thought to make the Error Handler more useful What we called OpcClient in the initial design is now separated into two parts Subscriber isa JAX WS SOAP client that handles the subscribing to and unsubscrib ing from status events on the ONSITE servers ErrorHandlerService is a JAX WS web service that is used to receive status notifi cations from the ONSITE servers When it receives a notification it uses the converter to transform the notification into a recognized format before sending the notification to the Error Handler through a local socket connection The reason we did this is that we needed to mimic an OPC server s ability to push notifications and s
121. milestones Tasks Duration work days Dependencies T1 Planning 14 T2 Pre Study 14 T3 Sprint 1 15 T1 and T2 M1 T4 Sprint 2 10 T3 M2 T5 Sprint 3 10 T4 M3 T6 Report 60 T7 Presentation Preparation 3 T5 T6 M4 and M5 Table 5 1 Task Duration and Dependencies The different tasks are IDed by T1 7 and the different milestones are IDed by M1 5 sheq 09 18 11 ed ST 14 Days MI 16 09 11 Sprin oF S Rea amp Aeg of NS 07 10 11 Sprin s N 3 EN o o 2 a 21 10 11 Sprint ws Presentation Finish 24 11 11 04 11 11 Figure 5 2 Activity Network Chart 54 Chapter 5 Sprint Planning Milestone Preliminary Study and Planning M1 Goal The main goals of this period was to get an overview of the problem and solution of the project gather the customer s requirements and plan our project period Quality Measure The most important task of this period was to learn the overall overview of the project get to know every group member and prepare a product backlog Target Date 16 09 11 Table 5 2 Milestone Table Preliminary Study and Planning M1 S Milestone Sprint 1 M2 Goal The main goals for sprint were to design implement and test the web page web servi
122. mputation Updating of ferry data of road refrence in NVDB pot Central system Toll plaza ATK Ferry companies Figure 3 5 The Future System with Our Extensions 3 1 4 Existing Solutions Systems such as these are usually tailored to the customer s existing systems For the Datarec there to be an existing off the shelf solution to the entire problem due to the fact that NPRA asked us to make a proof of consept system The solution consists of several systems one that checks the roadside installations for hardware errors one that acts as a web service providing access to the data from the error checking and one that uses the web service to display the information The system that checks for hardware errors might become obsolete if the hardware vendor decides to implement some kind of self diagnosis in the future The rest of the systems can be modified to support the changes The UK National Traffic Control Centre exposes some of their traffic data using a solution based on the Datex II standard Through this solution it is possible to get a list of current and future roadworks events loop based data and more Users can also query data for a specific location they are interested in 23 Chapter 3 Preliminary Study 3 2 Field Excursion We got an invitation to join Jo Skjermo and some technicians for a field trip to check out the roadside equipment They were going to install a Datarec 7 a server laptop and an ICE mode
123. n Priority 1 Continuously fetch data from Datarec 7 installations FR1 The system should support the Datarec 7 hardware High FR2 The system should use the SOAP interface to get the status of the High Datarec 7 hardware every second 11 Set up the on site server FR3 The server on site should mimic a subset of the OPC functionality High FR4 The server on site should be able to register listeners High FR5 The server on site should be able to push data High 12 Set up the Error Handler FR7 The Error Handler should be able to receive messages from the High on site servers FR8 The Error Handler should be able to register itself as a listener to High the on site servers FR9 The Error Handler should get a list of all the roadside installations High and their IP addresses from the NorTraf database abstraction level FR10 The system should use the data from on site server to detect pecu High liar data loop failures hardware errors or wrong hard wiring FR11 The errors should be separated from the regular data messages High FR12 The Error Handler should create warnings on irregularities and pe High culiar data 2 Save data in database FR13 The system should use a SQL database to store the statuses and High errors FR14 The system should convert the messages from the on site server for High database storage 3 Set up Web Service
124. n of both the Datarec and Nortraf database and can be modified at any time to change the settings of the Web Service A reboot is required to apply the changes Web Service Config dr_databaseHost localhost dr_databasePassword password dr_database Port 3306 dr_databaseService datarec dr_databaseSoftware MYSQL dr_databaseUser username nt_databaseHost localhost nt_databasePassword password nt_databasePort 1521 nt_databaseService nortraf nt databaseSoftware ORACLE nt database User username Listing 9 4 Example Configuration file for the Web Service After the setup is complete an uninstall script is created This can be used to remove the installed system The uninstall scripts needs to be run as Administrator to be able to remove all the parts of the system 9 3 2 Usage After installing the Web Service runs on its own There is no need for further interaction with it Just make sure that it is running and that the router is properly configured to allow access to it 9 4 Web Page In this section the installation and use of the Web Page is presented 9 4 1 Installation The Web Page uses GlassFish as application server so it requires that Java EE and GlassFish is pre installed 99 Chapter 9 User Guide Installing the Web Page is done by running its install script setup bat The script needs to be run as Administrator to be able to complete the setup During the setup the user has to enter the installation di
125. nPusher is a standalone Java application that receives subscription requests from DrRegisterNotifications while continuously fetching the status from the Datarec unit and pushing notifications of changes to the subscribers The DrNotifica tionPusher requires that Java is preinstalled Both these parts are configured and installed by running the belonging install script setup bat The scripts needs to be run as Administrator to be able to complete the setup Chapter 9 User Guide During the setup the user has to enter the installation directory of GlassFish domain name and instance port number of the GlassFish instance and the port number to use to forward subscription requests from DrRegisterNotifications to DrNotificationPusher The reason for having to specify the port number of the local socket connection is to ensure that it is not used by another application The two parts also has a configuration file This configuration file specifies the port number to use when forwarding subscription requests and which events that can be subscribed to The configuration file is automatically created while installing but can be altered at any time later to change the settings of the ONSITE server A reboot is required to apply the changes ONSITE Server config port 11111 events UNIT STATUS CHANGED EVENT Listing 9 1 Example Configuration file for the ONSITE server After the setup is complete an uninstall script is created This c
126. nctions Faraday cage An enclosure formed by conducting material that blocks out external static and non static electric fields Fault A fault is a defect in a hardware device or component or an incorrect step process or data definition in a computer program 3 Gantt Chart A bar chart used for demonstrating project schedules HTML Hypertext Markup Language A standard language for web pages HTTP Hypertext Transfer Protocol A communication protocol that is used for data transfer between a server and a client HTTPS Hypertext Transfer Protocol Secure A communication protocol used for en crypted data transfer of web pages IDE Integrated Development Environment ISO International Organization of Standardization JAVA EE JAVA Enterprise Edition xl JAVA RMI JAVA Remote Method Invocation JDBC JAVA Database Connectivity JMS JAVA Message Service JSP JAVA Server Pages JVM JAVA Virtual Machine MIB Management Information Base NPRA Norwegian Public Roads Administration Statens Vegvesen PHP PHP Hypertext Preprocessor PMA Post Mortem Analysis method used to evaluate a project to find weak and strong points in the project RMON Remote Monitoring A standard monitoring specification SDK Software Development Kit A set of development tools that help in the creation of applications SNMP Simple Network Management Protocol SVN Subversion SQL Structured Query Language URL Uniform Resour
127. ng on the Web service which was the most extensive part of sprint 1 The web service is dependent on a working database and the implementation of the database was therefore done in parallel with the web service We decided to postpone the Unit information and state log part to the end of the sprint This was due to the fact that the components were not crucial for the presentation of sprint 1 6 3 Sprint 1 Main Deliverables The deliverables for the first sprint was mainly to implement the web page web service database and Datarec 7 SOAP client Because of the inaccessibility of the Datarec hard ware a mockup of Datarec 7 was created to simulate connection with the SOAP client This answers the high priority requirements Table 6 2 FRI FR2 FR13 FR14 FR15 FR16 FR17 FR18 ID Description Priority 1 Continuously fetch data from Datarec7 installations 65 Chapter 6 Sprint 1 ID Description Priority FR1 The system should support the Datarec7 hardware High FR2 The system should use the SOAP interface to get the status of the High Datarec7 hardware every second 2 Save data in database FR13 The system should use a SQL database to store the statuses and High errors FR14 The system should convert the messages from the on site server for High database storage 3 Set up web service FR15 The system sho
128. nt systems the Datarec 7 hardware has no good way of notifying maintenance crew about errors This leads to a high percentage of downtime when the hardware is of no use This downtime also lead to loads of extra work since the information has to be controlled before it can be used Our practical goal of the project is to develop a prototype system for the customer that will drastically lower this percentage of downtime by making the Datarec 7 hardware automatically notify maintenance crew about errors if they occur When the NPRA gather the data that is collected by the Datarecs they can very rarely use a 100 of it If they download the data directly from the site 85 95 of the data are on average usable If downloaded form the Traffic6 software though the percentage of usable data can go as low as 50 This is a worryingly low number Hopefully the proof of concept system that we are developing will improve this number drastically Chapter 1 Project Directive 1 4 Involved Parties There are three groups of stakeholders for this project The customer the Customer Driven Project course staff and the project group The customer is represented through e Jo Skjermo e Kristin Gryteselv The course staff represented through e Reidar Conradi The project group e Kato Stolen e Roar Bjurstrom e Bjgrnar Valle Sondre L berg S ter Eirik Stene Robert Versvik Sonik Shrestha 1 5 The Customer The customer that represen
129. o implement checks that detect if e the temperature of the Datarec unit is outside the bounds e the average speed of the counted vehicles is negative suggests that the loops has been installed wrong e the average speed of the counted vehicles is way higher than the speed limit suggests that the loops has been installed wrong e a connected loop suddenly disappears from the Datarec unit suggests that the loop has died This would widen the search for errors and make the data from the Datarec units more reliable 10 3 Web Service There is not so much to discuss when it comes to the Web Service It is a very simple web service that gives access to the data in the Datarec database and can easily be extended to obtain desired functionality The only thing worth mentioning is that it has no way of suppressing or deleting errors from the database If a Datarec unit has an unresolved error when removed from the system the Web Service would always report that error as unresolved and there would be no other way of deleting the error than to manually deleting it from the database A simple extension of the Web Service would solve this problem 10 4 Web Page This section describes the details about the implementation of the web page part of the system 10 4 1 Exception Handling The Web Page is responsible for handling the SOAPException_Exception that is thrown from the Web Service and the error caused when the Web Page i
130. o their systems We were expected to use Java or Java EE for the project and all data communication should be done with SOAP XML In order to fit the student made system into any existing systems we needed to make a web service Another requirement the customer had was that if an error occurred on a roadside installation the location of the installation should be displayed on a map In a future system the roadside installations would all be connected through fiber or Ethernet but in today s system most of them are connected to the 3G network or even modems The 3G network with its max capacity of 500 kbps has limited bandwidth and the time it takes to connect to a unit is considerably higher than through fiber or Ethernet To improve the performance the customer suggested that they could put a mini PC on site which would continuously read the status of the units and notify if any hardware errors occur This mini PC would run a server pushing data to a client that would parse it for database storage The customer had originally requested that we would implement this server in OPC XML but we discovered that OPC XML did not offer all the functionality that we needed The server would instead be implemented with functionalities that mimics OPC XML 21 Chapter 3 Preliminary Study ONSITE server Error Handler Datarec Database Nortraf Database Figure 3 3 Data Flow Error Handler and ONSITE Server A lapt
131. olute necessity to complete the project Chapter 3 Preliminary Study Low priority indicates that the function is of little importance to the product This means that the function will add some nice features to the system but it is not crucial Because of this any functions with low priority will have low focus in the sprints and will only be implemented if there is time left for it in the final sprint 3 9 2 Product Backlog Table The set of activities in the product backlog are listed in the table below ID Description High Priority 1 Continuously fetch data from Datarec 7 installation 11 Set up on site server 7 Make error handler 2 Save data in database 3 Set up web service Medium Priority 4 Show location of roadside installations on a map 5 Display unit information 13 Create installation guide 14 Display state logs for units Low Priority 9 Design web interface 6 Automatic notifications Table 3 9 Product Backlog 3 9 3 Choice of Development Method The decision of what development process to choose was discussed in detail within our group We were initially set on following the waterfall model The reason for this was that it is a quite simple way of working With the waterfall model the requirements specifications are set at the start and do not change This seemed to be a fitting model since the needs of the NPRA does not change fast or often So from this we had
132. on on a map service and displaying unit information and state logs for said units In addition to this we had finished setting up the web service In other words all the planned items from the sprint 1 backlog had been successfully implemented except for the Detect errors item Consequently this item was carried over to sprint 2 7 1 Sprint 2 Sprint Goals The main goals for sprint 2 were to implement most of the error handler and the on site server When the sprint started we thought we were going to implement an OPC server but midway into the sprint we had to change some requirements and our sprint goal became to implement most of the ONSITE server instead Since sprint 1 was not quite done some parts had to be moved into the start of sprint 2 The new plan was to finish the part from sprint 1 as fast as possible We predicted that the ONSITE server and error handler would be very time consuming especially the server That is reflected through the fact that we have allocated more time to the implementation of the server than the error handler Chapter 7 Sprint 2 7 2 Sprint 2 Sprint Backlog This section presents the backlog with documentation for sprint 2 7 2 1 Sprint 2 Backlog Table The numbers in the backlog table represents person hours that we have planned to spend on each item in the list Story Story Task Week 1 Week 2 ID MT W T IF MIT W T F 11 On site server Design 2
133. on to the project evaluation The report consists of chapters describing these phases in detail given in an intuitive order To solve the problem we developed a SOAP based service that continuously requests the status of the installations and pushes any changes to an error handler This service was to be placed on a computer connected to the road side equipment The error handler checks the received statuses for errors or irregularities and stores them in a database In addition to this a web service and a web page was created The web service acts as the access point to the information stored in the database and the web page shows the statuses of the road side equipment in a list and the errors are shown on a map with a location marker For a future system we recommend using a push based protocol Even though it is more complex than a pull based protocol it will make the system real time at minimum bandwidth costs by only pushing when there are any changes The Datex II v2 0 standard seems to be a good choice as it aims at traffic management and road side data gathering and supports both pushing and pulling of data As for further use of the traffic data we suggest among other things making it avail able for emergency transport helping them calculate the most efficient route to their destination Contents 1 2 sa ra ne ee ds A eg 2 pame rra a e 2 La Project CO os sor ss dk rra A ALE eee 3 LA Te PE ssa MAD e EE e o E ee 3 1 5
134. op PC hosting a server is placed on site This server continuously reads the hard ware status through the Datarec 7 s SOAP interface and notifies if an error occurs The error handler listens for notifications from the on site server and parses them for database storage To give access to the error notifications in the database a web service needs to be set up The web service will be the access point of the system Error Messages gt ja DB SOAP Interface Web Page _ gt Datarec Database Warning Messages Nortraf Database Figure 3 4 Data Flow Web Service The map service will use the web service to display installations with hardware error on a map 22 Chapter 3 Preliminary Study H i ONSITE Error Web Map i 4 Server handler Senis Service Datarec Database Services FEET x Registration of O Measuring station Configuration of Measure station register equipment nd device register taf Rointdata Surveillance of measure stations Computation Distance Indexes Data callection Services historic _ data statistics Distance data Traffic amp transport Updating Ferry data Collecting of road Transson L and quality network me aa E Collecting assurance of Traffic and quality traffic data links assurance Point a 3 Distance co
135. ork connec tion Expected output 1 The messages should be added in the database 2 The Error Handler should catch the timeout and add a time out warning in the database Result Passed Comments The Error Handler successfully recognized the errors and added them into the database The test is therefore considered successful Test ID T12 Description This test will make sure that the Error Handler is capable of han dling errors and warnings while there also is data which do not provides any information about errors Requirement ID FR11 and FR12 Test criteria Atleast one on site server should be set up and running It should be able to send errors warnings and traffic data to the Error Handler The Database should be running so the Error Handler could store the data Task 1 Mock up 10 error free data messages in the on site server and send them to the error handler 2 Send a warning about frequencies being to high w Send a new message without error 4 Send a message containing information about a short circuit Continued on next page 126 Appendix A Appendix Testing Table A 12 continued from previous page Expected output 1 The warning message should be added in the database con taining a flag W informing that it is a warning 2 The error message should be added in the database contain ing a flag E informing that it is an error
136. pe it should be working on their system as well and is therefore considered successful T11 Passed The error handler successfully recognized the errors and added them into the database The test is therefore considered successful T12 Passed After the test was completed the only data that was added in the database was the error and warning messages This implies that the test was successful and had passed The error handler shows the correct behavior Table 7 3 Error Handler Test Cases 82 Chapter 7 Sprint 2 7 6 Sprint 2 Review At the start of second sprint we were in quite good spirits even with the problems we had with lazy evasive group members and the slight lag in schedule Sprint 2 did not go quite as smoothly as we had hoped however At the end of week 41 which was the first week of the sprint the group and the customer came to the conclusion that a major requirement had to be changed The server that was to run on the on site laptop was supposed to be using OPC Sadly OPC could not push which mean that we had to figure out something else This was a major set back Because of this we would need to have a server and a client on each side both in the ONSITE server and at the Error Handler This meant that the requirements would take longer to implement than planned and resulted in an even more delayed finish of the second sprint Sprint 2 burndown chart 350 300 2
137. pedia 2011 Milestones Available http en wikipedia org wiki Milestone project management Last accessed 2011 11 14 Wikipedia 2011 Faraday cage Available http en wikipedia org wiki Faraday cage Last accessed 2011 11 18 Wikipedia 2011 IEC 9126 Available http en wikipedia org wiki ISO Last accessed 2011 11 19 159 Bibliography 160
138. play Statelogs which will open a new page that displays the state log of the roadside hardware 102 Chapter 9 User Guide Back SKEDSMOVOLLEN Timestamp Temperature C Battery Voltage mV Loop Statuses 2011 11 21 14 46 41 0 33 0 13005 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 30 0 33 0 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 27 0 33 0 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 24 0 32 9 13005 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 21 0 33 0 13005 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 17 0 33 1 13005 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 14 0 33 0 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 11 0 33 0 13001 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 08 0 33 0 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 04 0 33 1 13004 Open Open Open Open Open Open Open Open Open Open Open Open 2011 11 21 14 46 01 0 33 1 13005 Open Open Open Open Open Op
139. ponsible makes sure that the requirements spec ification correspond to the customer s needs at all times The modelling manager is responsible for the quality of the models and fig ures that are to be included in the doc umentation Kato Stolen Design Leader The responsibilities of the design leader is to coordinate the design phase This person has the final say in decisions re garding the architecture of the system Continued on next page 11 Chapter 2 Planning Table 2 3 continued from previous page Person Role Description Robert Versvik Implement ation Leader The implementation leader makes sure that we follow the planned architecture and design of the system in addition to ensure that we do not exceed the allot ted time of the implementation Sonik Shrestha Quality Assurance Manager The quality assurance manager makes sure we have identified the relevant product qualities and that the design and implementation realize these Bjgrnar Valle Secretary The secretary takes notes and writes summaries from all the meetings and sees to that everyone included gets a copy He also organizes notes and ques tions ahead of the meetings The secre tary takes the lead in the project man ager s absence Table 2 3 Project Roles 12 Chapter 2 Planning Kristin Gryteselv Steering Comitee Jo Skjermo
140. r Handler and ErrorHandlerService is pre sented I uses uses I a uses uses uses Figure D 10 ER Diagram of the ErrorHandlerService 147 Appendix D Appendix Design ep J S ep JS PUEYIOJJ3 UISIABIA OU qu ap ep lep i Figure D 11 Overview Class Diagram of the Error Handler 148 Appendix D Appendix Design no vegvesen errorhandler Figure D 12 Class Diagram no vegvesen errorhandler no vegvesen errorhandler dal Figure D 13 Class Diagram no vegvesen errorhandler dal 149 Appendix D Appendix Design no vegvesen errorhandler dr db E m Figure D 14 Class Diagram no vegvesen errorhandler dr db no vegvesen errorhandler service dal Figure D 15 Class Diagram no vegvesen errorhandler service dal 150 Appendix D Appendix Design no vegvesen errorhandler errorcheck Figure D 16 Class Diagram no vegvesen errorhandler errorcheck no vegvesen errorhandler net Figure D 17 Class Diagram no vegvesen errorhandler net 151 Appendix D Appendix Design no vegvesen errorhandler nt dal Figure D 18 Class Diagram no vegvesen errorhandler nt dal no vegvesen errorhandler nt db Figure D 19 Class Diagram no vegvesen errorhandler nt db no veg
141. receiving status notifications e converts the incoming status notifications to a recognized format e detects errors e inserts statuses and errors into the database The customer wanted us to mimic an OPC server s behavior by mocking up a subset of its functionality For this reason the part that communicates with the ONSITE server had to be an OPC client At this point we did not know how to actually implement an OPC client so we just added a class that would encapsulate the functionality of communicating with the OPC server The implementation of the Error Handler was scheduled for sprint 2 hence we still had some time to figure out the details When the OPC client receives a status notification it uses a converter to transform the notification to a recognized format before passing the notification to the error handler The error handler uses several status checkers to determine if there are any errors before inserting the status and possible errors into the database The complete design of the Error Handler is presented in Appendix D Design section 6 5 Sprint 1 Testing This section describes the testing of each of the components that were finished during Sprint 1 The components that were finished were the Datarec Database the Web Service the datafetcher from Datarec 7 and the Web Page The Web Page Web Service and the database were located at different computers at the time of the testing to ensure that the system also is capa
142. rectory of GlassFish domain name and instance port number of the GlassFish instance as well as the host name IP and port number of the Web Service from which it gets its data During the setup a configuration file is generated This configuration file contains the host name IP and port number of the Web Service and can be modified at any time to change the settings of the Web Page A reboot is required to apply the changes Web Page Config host localhost port 44445 Listing 9 5 Example Configuration file for the Web Page After the setup is complete an uninstall script is created This can be used to remove the installed system The uninstall scripts needs to be run as Administrator to be able to remove every part of the Web Page from your system 9 4 2 Usage of the Web Page After the installation is complete the Web Page is deployed on the GlassFish server it was installed on The site will then be possible to access from http IP Port WebPage The Web Page is responsible for the presentation of the error data stored in the Datarec error database 100 Chapter 9 User Guide Unresolved errors Teststrekning Klett 10718 SKEDSMOVOLLEN 9410 List of DataRec units Datarec7 name SKEDSMOVOLLEN Figure 9 5 Web Page Front Page The site contains a map that displays the roadside installations with a marker The marker should be marked red if there is an error on the roadside insta
143. ressed that the project so far looked good He had some feedback for the Web Page and the graphical user interface there He wanted to introduce different frames to the user interface The reason for these different frames was to make the map s position static while the information about the Datarec 76 Chapter 6 Sprint 1 unit can be scrolled through at will Other than that the customer representative came with some suggestions on how to make the errors easier to recognize and make it easier to read the information TT 7 Sprint 2 Contents do sd e oop ab abe ode Be soe de Lg as ABE tues de 76 72 Sprint 2 Sprint Backlog ss s 6 baie eG ar sa s 76 re o ee g 76 7 2 2 Comments on the Sprint 2 Backlog Table 77 FEE ERR ae TURE SSL ke ecg EE 77 UE DD re 78 TAT NS REE 2 4 0 0 E Be eS ods oe ee iaai 78 RA Eror Handler a s Ge had 2 2 SESS eS de Dy 78 7 2 Spent 25 Testing so secos ii studs ke safe Gave 79 ToL bror Hamden o ss 0 4 rake s fak S G ES 79 ETE EE de ee we E 80 7 6 1 Sprint 2 Positive Experiences 81 7 6 2 Sprint 2 Negative Experiences 82 7 6 3 Sprint 2 Planned Actions 82 TT Sprint 2 Feedback 4 65 pus 30 s ema ee we veses 83 The second sprint phase in the Scrum period started in week 41 and was planned to last for two weeks During sprint 1 we had implemented functionality for saving data in a database continuously fetching data from the Datarec 7 showing locati
144. risks we evaluated their potential severity of impact and their probability of occurrence The consequences and probability P are said to be either low L medium M or high H Chapter 2 Planning Id Case Consequences Strategy Responsible R1 Illness A group M Increased Reduce Assign de Project manager member gets ill workload for the limited tasks to the ill during the project rest of the team person R2 Comm prob H The quality Avoid Double check Everyone in lems Communi of the project and make sure that volved cation with the results will de everyone is on the customer advisor crease same page with meet group members ing summaries R3 Internal team M The qual Avoid Do ice break Everyone in the conflict Group ity of the project ing exercises and let team members disagree results will de everyone have their or dislike each crease say other R4 Lack of experi M The project Accept Be thorough Everyone in the ence Project intro is more prone in the pre study phase team duces new concepts to time expen and utilize the advisor sive mistakes well R5 Incorrect re H The quality Avoid Double check Design leader quirements of the project and make sure that quality assur Misunderstand results will de everyone is on the ance manager ings regarding the crease same page with meet implementation requirements ing summaries
145. rk analysis The data is presented in the same way as SNMP as object identifiers mapped to a value Initially we were going to use RMON to fetch data from the network traffic and de tect irregularities from the roadside installation by request from the customer However this data is only available for Internet Service Providers and as such we did not use it Traffic6 Traffic6 is a software used to administer different measuring locations along the road and terrain It is used by the Norwegian Public Roads Administration to fetch data from the Datarec 7 and Datarec 410 hardware It also includes checking the equipment and sensors checking the clock in the equipment control the data from Datarec 7 and Datarec 410 check if the data is registered correctly and storing logs Technical Platforms In this section we have created a matrix where we rate the importance of all the technical tools that we have used during the project period Tools that have been very important to our project period are marked as high while tools that could have been replaced by something else or offered non critical functionality have been marked as medium or low Technologies Importance Comment Student chosen software Apache Subversion High Coding would have been a nightmare without this tool Unit testing High Critical in the test driven development process Continued on next page 35 Chapter 3 Preliminary Study Table
146. rkload on the users We decided to use Mockito as a mocking framework Mockito made it possible to test parts of the program before it was finished and it makes it possible for the program to make function calls to functions which have not yet been implemented This functionality was the reason for our decision to use Mockito Technologies Used for Implementing d SS Java gt Java Java is an object oriented programming language designed by Sun Microsystems Java code compiles to Java byte code which can be run on the JVM This makes Java a platform independent language Java is used in a wide specter of applications examples include web servers databases web frameworks and more Java makes it possible to write a project that can be run on any platform due to the Java Virtual Machine This makes it very portable compared to using other languages like C that are competing in the same field as Java The customer specified Java as the preferred language for this project Most of us had previous experience with Java 32 Chapter 3 Preliminary Study Java EE is a set of libraries for Java to simplify making fault tolerant distributed and tiered applications based on modular components running on an application server The libraries included in Java EE give an API for XML JDBC RMI JMS e mail web services etc and define how to coordinate between these 14 In this project it is applicable due to the libraries that simplifie
147. rld int loopld int statusld i drld int statusld int drid int statusld int statusCharacter string description string hits int minFrequency int currentFrequency int maxFrequency int errorCode int description string timestamp string resolved bool type char nt startTime string temperature double batteryVoltage int timestamp string loopStatuses LoopStatus toString string status Status toString string toString string Figure D 7 Class Diagram no vegvesen webservice dr 144 Appendix D Appendix Design no vegvesen webservice nt db Figure D 8 Class Diagram no vegvesen webservice nt 145 Appendiz D Appendix Design D 4 Error Handler In this section the design of the Error Handler is presented as ER and class diagrams In order to save space the class diagrams does not contain getter and setter methods D 4 1 Initial Design In this section the initial design of the Error Handler is presented This design was modified after changes to the requirements ho og I KOG m low ia E sasn S3ISN sasn sasn sasn Figure D 9 Initial ER diagram of the Error Handler 146 Appendiz D Appendix Design D 4 2 Final Design In this section the final design of the Erro
148. ror Handler In this section the testing of the Error Handler is presented Test ID T10 Description This test is constructed mainly to test whether the connection be tween the ONSITE server and the Error Handler is working cor rectly But it also tests the connection between the Error Handler and the NorTraf database to check that it is successfully able to get IP addresses from the database Requirement ID FR7 FR8 and FR9 Test criteria There should exist at least one working ONSITE server Continued on next page 124 Appendix A Appendix Testing Table A 10 continued from previous page Task 1 The Error Handler should connect to the ONSITE server us ing the Error Handler s GUI and the IP address of the ON SITE server 2 The on site server should add the error handler as a listener 3 The ONSITE server should send a error message to the Error Handler using the connection that was set up Expected output 1 The GUI should show the IP address of the ONSITE server in the list of IP addresses 2 The connection should be successfully set up and the ON SITE server should now be able to send messages to the Error Handler 3 The Error Handler should receive the error message Result Passed Comments The setup with the ONSITE server worked satisfactorily and the connection was successfully set up The Error Handler success fully received the m
149. s the making of web services that use for example SOAP The SOAP serving is handled through the JAX WS technology XML lt xml gt XML is a markup language which makes it possible to structure data The documents are readable by humans due to it being a text instead of binary but structured in a way that is easy to read for a computer The format is well documented and widely used ensuring that most languages have a parser readily available either through the standard library or through an easy to find download The structure of the document is also well suited for expressing metadata without changing the way the document is parsed 7 We used XML mainly because of the requirements from the customer where it says that all files use XML to communicate Some of us had experience with XML before hand GlassFish E a GlassFish is an open source application server project and is intended for the Java EE platform The project was initially started by Sun Microsystems but is now sponsored by Oracle Corporation and it is therefore also known as Oracle GlassFish Server GlassFish supports all the different Java EE API specifications like JDBC RMI e mail JMS web services XML and so on This allows for creation of a portable and scalable application We used GlassFish because it handles SOAP calls for us converting the XML messages to a method call and it is a tried technology This saves us from having to implement the XML SOAP message
150. s unable to connect to 108 Chapter 10 Discussion of the Implementation the Web Service This is handled by displaying an error page instead of the usual Web Page when the error is thrown The error page is implemented using a test that checks whether the Web Page is able to successfully gather the necessary information to load the page using the Java try catch statement The error web page displays a clean web interface informing that an error has occurred and displaying the error message involving the exception 10 4 2 Improvements Since this is developed as a proof of concept the Web Page functionality and its graphical user interface have not been prioritized as highly as it would have been in a further developed system The designing of a web page is a time consuming task and we simply could not spare the time for it After using our Web Page a while we have had some ideas that could increase the usability of the Web Page These improvements are presented and explained below Functional Improvements This list is a suggestion of functional improvements on the web page e The web page should be able to auto update the information about the roadside hardware statuses without having to refresh the entire page e The web page should be able to load the information faster than it actually does in the current implementation In order to achieve this the access to the database has to be faster and the web service should limit i
151. s us finalized implementations that we can show to the customer In retrospect we are wondering if the best way to design the sprints would have been to 116 Chapter 11 Project Evaluation aim to implement a minimum of the highly prioritized requirements to make a functional system in sprint 1 and then further extend the system in the following sprints 117 Part IV Appendices A Appendix Testing Contents IR 114 PEST ETEN 114 NE EN EE 115 v te be SLET SIS FSS G SEG AG 115 ETE ERT ea ee oe nd 117 i Sag oe NG 118 ee ak he RDA ee ADE oe Sd 119 sce Bp PERSEN EE ENER 121 This section includes a more detailed elaboration on the requirement tests A 1 Display Unit Information In this section the testing of displaying unit information is presented Test ID TOI Description Test if the Web Page s unit part is working as intended Requirement ID FR20 Test criteria The Web Service must be functional and have information about the hardware units available Task 1 Open Web Page 2 Select a hardware unit 3 Open unit information Expected output The Web Page should display an overview of all the information relevant to the selected unit s status Result Passed Comments The test went without any irregularities The test is passed because the expected output matches the real output The Web Page was slow during the test with the system integrated
152. scription When opening this dialog the Error Handler populates a drop down menu with all the Datarecs available in the Nortraf database If the Datarec unit you want to subscribe to is not in the list you can choose to create a custom subscription The only thing is that you have to specify the Datarec ID of a Datarec unit that is in the database otherwise the Web Service will not be able to map the statuses and errors to a Datarec unit The Error Handler fetches the IP of the router that the Datarec is connected to from the Nortraf database If the IP is not present you need to specify a host name or IP address before subscribing You also have to specify the port number of the DrRegister Notifications service as shown in figure if it uses any other than the default HTTP port 80 r Error Handler Figure 9 3 Error Handler Database Configuration 97 Chapter 9 User Guide The next two tabs are for modifying the configuration of the databases You can modify all the different fields After modifying the configuration you have to click Save Settings to save the settings is S Error Handler Subscriptions Datarec Database Nortraf Database Could not load config Reason errorhandler cfg The system cannot find the file specified Error on 1599 Short circuit on loop s Error on 1722 Short circuit on loop s Error on 1845
153. server and High network monitor for database storage 3 Set up web service FR15 The system should have a web service using SOAP High FR16 The web service should use the SQL database to offer status and High error data FR17 The web service should use the NorTraf database abstraction to get High the coordinates of the roadside installations FR18 The web service should separate warnings and errors High Table C 1 High Priority Functional Requirements ID Description Priority 4 Show location of roadside installations on a map FR19 The system should use a map service to show the locations of the Medium roadside installations on a map 5 Display unit information FR20 The system should display the status of separate installations in a Medium web page 8 Add support for Datarec 410 FR21 The system should support the Datarec 410 hardware Medium FR22 The server on site should run Traffic6 to get data from the DataRec Medium 410 FR23 The OPC server should parse and offer the data from Traffic6 Medium 14 Display state logs for units FR24 The system should store the states of the separate installations in Medium a database Table C 2 Medium Priority Functional Requirements ID Description Priority 15 Automatic notifications Continued on next page 135 Appendix C Appendix Initial R
154. ssages from the High on site servers FR8 The Error Handler should be able to register itself as a listener to High the on site servers FR9 The Error Handler should get a list of all the roadside installations High and their IP addresses from the NorTraf database abstraction level FR10 The system should use the data from on site server to detect pecu High liar data loop failures hardware errors or wrong hard wiring FR11 The errors should be separated from the regular data messages High FR12 The Error Handler should create warnings on irregularities and pe High culiar data Table 7 2 Functional Requirements Sprint 2 7 4 Sprint 2 Design and Implementation This section presents the design and implementation of the ONSITE Server and Error Handler 7 4 1 ONSITE Server For the implementation we decided to go with GlassFish server a server software from Oracle implementing the Java6 Enterprise Edition platform and normal java desktop programs running on the same computer The server runs the web service used for communicating over SOAP This allows us to handle SOAP calls fairly transparently enabling us to use SOAP calls like normal Java methods The downside of using a server like GlassFish is that web services lack a main method like Java desktop applications have This meant that we could not have a loop continuously pulling data from the Datarec hardware which the custo
155. ssful Table 8 3 ONSITE Server Test Cases 8 5 2 Complete System Test This section describes the testing that was performed when the entire system was fin ished The testing of the system was delayed to after sprint 3 because of the delays in the implementation When the testing was supposed to be performed the connection to the roadside hardware failed Therefore we had to go and get the roadside installation from its location and place it on the graphics lab at NTNU This happened in the last week of the project which meant that the system did not have much time to be completely tested The Database Web Service and Web Page were tested together in sprint 1 but the testing of the integration of the system had been limited During the time the connection to the roadside hardware was unavailable some limited testing was done using a mock up that included a simulation of multiple roadside hard ware and using a black box test where the user was using the Web Page and the Error Handler GUI The mock up produced status messages every 10 seconds with a 25 prob ability of the status to be an error This led to the discovery of some problems with the integration of the system but the problems were all successfully fixed Ideally the testing should have been performed with multiple real pieces of hardware that were actually installed roadside with the possibility to produce errors by for instance pulling out the cables of the har
156. stimate undetected hardware errors from lack of expected vehicle traffic and Chapter 1 Project Directive display this in the interface Automatic notification of hardware faults to the correct instances using sms or email could also be considered Finally it is also a wish that the system should be easy to integrate into existing systems and databases at the Norwegian Public Roads Administration In the original project description the words error fault and failure are used to denote the same threat We have chosen to use different meanings for each word Their respective meaning is defined in the glossary 1 3 Project Goal For this project the ultimate goal was to deliver a well defined and functional prototype product which related to the client s expectations This report summarizes the handling and work done and assures that the customer can continue to work on the prototype delivered and integrate it into the existing system We agreed to strive for the best grade possible and as such it was a major driver in reaching the project goal During the project phase there were plenty of things to learn Beforehand we had expectations to acquire a sense of real life work experience Other big goals would be to learn as much as possible about working in teams documenting a customer project process and learning as much as possible about the technical aspects involved in the development of the software In the customer s curre
157. t on one single computer and by running them on separate computers The test went without any irregularities and was accepted Test ID T06 Description Test to confirm that the Datarec database is able to offer status and errors messages to the Web Service Requirement ID FR16 Test criteria The system should have a Web Service and a Datarec database Continued on next page 121 Appendix A Appendix Testing Table A 6 continued from previous page Task 1 Set up a connection between the database and the Web Ser vice 2 The tester should make the Web Service get two status mes sages from the database 3 The tester should make the Web Service get two error mes sages from the database Expected output 1 The connection should be established 2 The Web Service should receive the status messages 3 The Web Service should receive the error messages Result Passed Comments The system was able to get the status messages and the error mes sages successfully This implies that the communication between the database and the Web Service worked appropriately and the test was successful Test ID T07 Description A test which confirms that the Web Service is enable to separate warnings and errors Requirement ID FR18 Test criteria The system should be able to produce warnings and errors mes sages Task 1 Input a warning message
158. t on planning and preliminary study while the remaining phase is an implementation phase The planning of this phase is covered in section A report phase for evaluation was also added since writing the report is a continuous process throughout the project and consumes a lot of time The phases are shown in the Gantt chart below Chapter 2 Planning project PreStudy Implementation Figure 2 1 Gantt Chart Diagram 2 1 1 Planning Phase Organizing the process is an essential part of the project A thorough plan will help us to get off to a good start and keep up the momentum It is also important to identify risks and create strategies to avoid or minimize the impact of them 2 1 2 Preliminary Study The preliminary study phase is dedicated to getting a good understanding of the problem at hand and identifying the existing solutions By getting a good overview of both the problem and the solution space the probability of making a satisfiable system increases significantly The result of the preliminary study will be a choice of life cycle model and a prioritized list of requirements 2 1 3 Implementation The implementation phase of our project is the part where the implementation of the system is carried out The choice of how to execute this phase is based on the conclusion of the preliminary study 2 1 4 Report Writing Writing the report meeting summaries and agendas consumes a lot of time
159. t the functions in the Web Service have been tested a lot This table contains module testing for the Web Service that tests whether the Web Service fulfills its requirements More detailed information about the tests can be found in the appendix A 71 Chapter 6 Sprint 1 Test Id Result Comment T04 Passed The coordinates were placed in our database which means that the con nection to the Nortraf database would not be tested in this test This was due to the fact that we did not have access to the Nortraf database But the system was successfully able to give the correct coordinates and was considered successful T05 Passed The tester was successfully able to set up a working connection between the Web Page and the Web Service using SOAP The tests were carried out both by running the server and the client on one single computer and by running them on separate computers The test went without any irregularities and was accepted T 06 Passed The system was able to get the status messages and the error messages successfully This implies that the communication between the database and the Web Service worked appropriate and the test was successful Tor Passed The errors and warnings are separated in the database by a flag The Web Service gets this flags and sets it w for warning and e for errors The system was successful in this task and it was possible to distin
160. t was planned to be over three weeks while the two succeeding sprints should last 2 weeks The reason we chose to have three weeks for the first sprint was to get more work done before the first implementation presentation for the customer This way we would get the time to actually implement a significant part of the system that is worth presenting There were several reasons behind the choice of three sprints e Project duration e Minimal sprint duration e Scrum experience e Difference between scrum and waterfall The project duration makes it a necessity to have relatively short sprints The normal minimal sprint duration is two weeks Therefore the last two sprints have a two week duration The first sprint is a bit longer three weeks Three sprints would also give Chapter 5 Sprint Planning us experience with Scrum deliverables and presentations This of course in addition to the Scrum meetings Scrum roles and Scrum planning Another reason for having three sprints was that it had to be different than the Waterfall model september 2011 oktober 2011 Sprint Sprint2 Sprint3 Figure 5 1 Gantt Chart Diagram Describing the Sprints 5 2 Quality Assurance This section will describe in detail what we agreed to do in order to ensure that its product held a high level of quality It will also briefly discuss the choice of Scrum as development method in the perspective of quality assurance In quality assur
161. ted the assignment is The Norwegian Public Roads Admin istration a Norwegian government agency Being one of the largest agencies in Norway they are responsible for the planning construction and operation of the national road network vehicle inspection and vehicle requirements driver training and licensing Be fore the founding of The Norwegian Public Roads Administration Justisdepartementet had the responsibility of public roads in Norway In 1864 The Directorate of Public Roads were established and Norway got their first Vegdirektor From 1885 to 1944 it was placed under The Ministry of Labour and has since been a subordinate of The Ministry of Transport Jo Skjermo and Kristin Gryteselv represent the Intelligent Transport System and Ser vices ITS department of The Norwegian Public Roads Administration ITS is a common Chapter 1 Project Directive term for the use of information and communication technology in the transport sector Through the use of technology the ITS department is trying to make a safer transporta tion system with better passability accessibility and a better environment 25 1 6 Project Background The Norwegian Public Roads Administration are recording the individual vehicles that pass certain points on the public roads To do this they have installed roadside equip ment throughout Norway Their solution as of today records the number of vehicles as well as the velocity and the length of the veh
162. test and was ready for module tests The Web Page was supposed to fulfill the requirements that involved e Display unit information e Show location of roadside installations on a map e Display state logs for units Therefore they had to be tested with T01 T02 and T03 The full description of the test can be found in appendix A 70 Chapter 6 Sprint 1 Test Id Result Comment the test with the system integrated TO1 Passed The test went without any irregularities The test is passed because the expected output matches the real output The Web Page was slow during Page also was slow but that is documented in TO1 T02 Passed The Web Page behaved like it was supposed to In this test the Web the test with the system integrated T03 Passed The test went without any irregularities The Web Page was slow during Table 6 5 Web Page Test Cases After the Web Page was accepted as a component we integrated the Web Page with the database and the Web Service Then it had to be tested if the integration had affected the behavior of the system and all the tests needed to be redone The tests confirmed that the integration had been successful But the Web Page was rather slow after the integration We suspected that this was because of the database which was at that moment located at a rather slow connection in USA 6 5 2 Web Service The Web Service was developed using a TDD model This implies tha
163. the implementation is presented Push vs Pull based Protocols A push based protocol is by design more complex and error prone than a pull based protocol A pull based protocol can mostly ignore client side routing issues like NAT port forwarding and client changing IP simplifying the design drastically A push based protocol needs to be able to connect to the client like it was another server which necessitates punching through routers and firewalls It also needs know the IP of the client which often changes over time unlike most servers Opening ports to the 105 Chapter 10 Discussion of the Implementation outside world will also cause a network security concern enabling another vector of attack for hackers This can be unacceptable in an organization or business which makes pushing data to the client much more error prone and complex The advantages of a push based protocol is that clients are notified the moment an event happens on the server It also makes it easier to make the server only send new events removing duplicate events by simply checking against the last event pushed This is because the server can assume that every client got the last event pushed by the server while a pull based protocol would have to store the last event each client pulled The advantages can be alleviated by using a couple of tricks with a pull based protocol Setting the interval a client polls the server for its status to a lower value
164. the hardware to the graphics lab at NTNU After we had installed it in the lab the connection worked well and we could finally test our system with errors from the real Datarec instead of the mockup 3 3 Testing The system needs to be extensively tested before it is delivered to the costumer The testing is to ensure the reliability of the software and to ensure that the software fulfills the requirements from the costumer 3 3 1 Test Methods Used During the Project Black Box Testing Black box testing is a test method where inputs are checked to see if they produce a valid output This test Input utput ee ing method does not look into the internal structure of the program but ensures that the external structure is Black b correct The tester should not be required to have any knowledge about the internal structure of the program Figure 3 9 Black Box Testing For this method to be effective it is important to select input at critical areas such as the edges in the input domain This method is effective for testing the system against its requirements Test Driven Development Test driven development TDD is a software development process where the developer makes automated unit tests before writing any actual code The unit tests are small and consist of valid input and output to a part of the program The input and output are tested against each other when a test is run The developer produces the code which
165. the system to have These proper ties were summarized in a product backlog section 3 9 In order to fulfill the properties from the backlog we defined a number of detailed system requirements both functional and non functional The following tables contain the items from the product backlog in bold text accompanied by the requirements specifications that have to be fulfilled for each separate item to be implemented The functional requirements define the function ality that the system should have and the non functional requirements defines constraints on how the functionality is supposed to be implemented The requirements did evolve during the project due to changes in the costumers preferences and we have documented these changes in appendix C 4 1 Table Properties The properties of the table concerning the requirement specification is identical to the table properties concerning the product backlog These properties can be found in section 3 9 1 Identification of each requirement is done by giving a requirement the letters FR or NFR followed by a number FR stands for Functional Requirement and NFR stands for Non Functional Requirement 4 2 Functional Requirements This section includes the functional requirements Chapter 4 Requirements Specification 4 2 1 High Priority Functional Requirements The following section contains all the functional requirements that were considered to be of high importance ID Descriptio
166. ts interaction with the database more It would also be a good idea to have a cache that keeps the images that are loaded most often since the loading of images in the map is quite time consuming e The errors that occur in the error reporting system should all be displayed on the Web Page this would make the error reporting system more reliable since the user will have easier access to information about system failures Graphical Improvements This list is a suggestion of graphical improvements on the web page e When the user is looking at a unit with an error a graphic illustration should show exactly which piece of hardware internally in the unit that has an error An example would be that when a loop has failed the Web Page would display all the loops and mark which one of them that has failed 109 Chapter 10 Discussion of the Implementation e When the user clicks on the marker of the hardware unit a pop up message de scribing its status message should appear e The state logs should involve more information It should also display a graph that displays the evolution of the unit state This would help to identify the nature of warnings Here is an example with the temperature The temperature can be high during a small amount of time which is not critical but if the temperature is rising during a long period of time it could indicate an error in the cooling system of the hardware e The overall design of the Web Page s
167. uld have a web service using SOAP High FR16 The web service should use the SQL database to offer status and High error data FR17 The web service should use the NorTraf database abstraction to get High the coordinates of the roadside installations FR18 The web service should separate warnings and errors High Table 6 2 High Priority Functional Requirements Sprint 1 The medium priority requirements FR19 FR20 FR24 were also fulfilled ID Description Priority 4 Show location of roadside installations on a map FR19 The system should use a map service to show the locations of the Medium roadside installations on a map 5 Display unit information FR20 The system should display the status of separate installations in a Medium web page 14 Display state logs for units FR24 The system should store the states of the separate installations in Medium a database Table 6 3 Medium Priority Functional Requirements Sprint 1 6 4 Sprint 1 Design and Implementation This section presents the design and implementation of the Datarec 7 SOAP Client Datarec Database Web Service and Web Page It will also present the design of the Error Handler 66 Chapter 6 Sprint 1 6 4 1 Datarec 7 SOAP Client This is the part of the ONSITE server that is continuously fetching the status of the Datarec 7 Its only functionality is to use the SOAP interface of the Datarec 7 to get the status and store it as object classes which
168. ur Table 4 3 Low Priority Functional Requirements 4 3 Non Functional Requirements In this section the non functional requirements are presented ID Description Priority 13 Create installation guide and user manual NFR1 The system should have a installation guide and user manual Medium 9 More extensive design of web interface NFR2 The web interface should have a clear design Low NFR3 The web interface should use Ajax to enhance user experience Low Continued on next page 49 Chapter 4 Requirements Specification Table 4 4 continued from previous page system ID Description Priority Other NFRA The system should be programmed in Java Java Enterprise High NFR5 The system should be easy to integrate into the customer s existing High Table 4 4 Non Functional Requirements 4 4 Quality Assurance and Requirement Specifica tion For this system there are a few software attributes that stand out as more important than others Because of the functinal requirements the functionality of the system is one very important attribute It is considered to be the most important attribute for this project The non functional requirements show that usability portability and maintain ability also are important These attributes are coupled with non functional requirements in table ID Non Functional Requirement Quality in Use Sub attributes Us
169. vesen errorhandler soap Figure D 20 Class Diagram no vegvesen errorhandler soap 152 Appendix D Appendix Design D 5 Database In this section the database scheme is presented PK FK1 statusld PK loopld startTime status temperature description battery hits time minFrequency currentFrequency maxFrequency Error PK FK1 drid PK messageld FK1 statusld errorCode description time resolved type Figure D 21 Database Scheme of the Datarec Database 153 Appendix D Appendix Design D 6 ONSITE server In this section the design of the ONSITE Server is presented no vegvesen datarec fetcher no vegvesen datarec fetcher trafficstatus no vegvesen datarec fetcher unitstatus Figure D 22 Class Diagram of DrRegusterNotificationP usher 154 Appendix D Appendix Design no vegvesen datarec notifications no vegvesen datarec notifications common no vegvesen datarec notifications server Figure D 23 Class Diagram of DrRegisterNotifications 155 E Appendix Further Use of Traffic Data Contents The Norwegian Public Roads Administration is at some point going to make parts of the information that they gather public This opens up for some new interesting ideas Some of these ideas need cooperation with other markets and business brands Cafeterias gas stations and hotels A future use of the information could be to
170. visor Reidar Conradi Meeting Agenda 1 2 3 Meeting Summary Figure B 2 Customer Meeting Summary Template 130 Appendix B Appendix Templates B 3 Meeting Agenda Template In this section the template for meeting agendas is presented TDT4290 meeting agenda date Time 08 15 15 00 Location Attendees Students Kato St len Sonik Shrestha Roar Bjurstrom Sondre L berg S ter Bj rnar Valle Robert Versvik Eirik Stene Advisor Reidar Conradi Meeting Agenda 1 2 3 Figure B 3 Meeting Agenda Template 131 Group 10 Appendix B Appendix Templates B 4 Status Report Template In this section the template for status reports is presented TDT4290 Group 10 Status report Group 10 week Meetings and summary for this week What was good What was bad What must be improved Person hours rome 1 reser Fr sm Fr Tf ome sms estee gt EEE RE Figure B 4 Status Report Template 132 Appendix B Appendix Templates B 5 Work Sheet Template In this section the template for work sheets is presented Monday Robert Sondre Week Week Tuesday Wednesday Thursday Friday Monday Tuesday Wednesday Thursday Friday 8 9 10 11 12 13 14 15 16 17 18 or Roar Kato Week Week Tuesday Wednesday Thursday Friday Monday Tuesday Wednesday Thursday Friday 8 9 10 11 12 13 1
171. ws Exception return variable 37 Chapter 3 Preliminary Study Il Listing 3 1 Coding Conventions Example 3 6 1 Naming Conventions The readability of the source code is also dependent on the naming conventions used Below is a list of naming conventions we will use during this project e Packages should use the format no vegvesen lt application gt lt layer gt e Classes should be nouns with the first letter of each internal word capitalized MySqlDatabaseDriver e Interfaces should follow the same rules as for classes but beginning with a capital T IDatabaseConnection e Methods should be verbs with the first letter lowercase and the first letter of each internal word capitalized getUnitStatus e Variables should have meaningful rather than short names int upTimeMinutes 34 Avoid int i k m width 3 7 Software Qualities A system can have different qualities Not all of these qualities can be combined fully which forces the developers and designers to make trade offs and choose the most impor tant qualities The ISO IEC 9126 gives an overview of the six main qualities which each consists of other more specific qualities e Q1 Functionality Functionality is the attribute that focuses on giving the customer what he or she wants A system is supposed to satisfy the stated and implied needs of the customer which can be quite tricky Functionality consists of the following qualities Q1 1 A

Download Pdf Manuals

image

Related Search

Related Contents

USER'S MANUAL  collaboration assistant de justice et arpege  QSF-T15/T15SM/T15F Service Manual      BDI 6014  PDF/326KB      Multi-Product Calibrator - Minerva Metrology and calibration  

Copyright © All rights reserved.
Failed to retrieve file