TDT4290 at IDI/NTNU Group 2
Total Page:16
File Type:pdf, Size:1020Kb
TDT4290 at IDI/NTNU Group 2 Frode Sandholtbr˚aten, Jostein Gogstad, Michael Stokes, Remy Jensen, Espen Nielsen, Konrad G Beiske Customer: Bouvet ASA Preface This report is the result of a project performed during the autumn semester of 2007 by six Masters degree students at The Norwegian University of Science and Technology (NTNU) - Department of Computer and Information Science. The project is a part of the course TDT4290 - Customer Driven Project. Our customer in this project was Bouvet ASA, a Norwegian consulting company with its headquarter in Oslo. The representatives from Bouvet ASA was Stig Lau and Unn Aursøy. The task presented was to create a prototype of an application capable of mixing music, although the application should be extensible so that other media types could be incorporated easily. This application should be realized by the use of new technologies such as topic maps, tolog and Qt Jambi. The customer also requested that the development model used by the group should be iterative which made this report different from the previous ones in this course. The group would like to thank the customer's representatives, Stig Lau and Unn Aursøy, for all the feedback and suggestions received throughout the project. We would also thank Reidar Conradi and Ida Sørensen for keeping the project on track. Last, we wish to say thanks to Marte Svalastoga for the nice logo she created for our front page. Trondheim, November 20th 2007. Frode Sandholtbr˚aten Jostein Gogstad Michael Stokes Espen Nielsen Konrad G. Beiske Remy Jensen Abstract This paper describes the result of customer driven project 2007, group 2. The project has its main focus on investigating the use of bleeding edge technologies in desktop applications for our customer Bouvet ASA. We develop an application designed to mix an arbitrary number of different media together, be they audio, video, or some- thing else entirely. The only media supported at the end of the project is audio, but the application is designed for easy extension to other domains. The bleeding edge technologies include Topic Maps, TOLOG, Qt Jambi, and Aspect Oriented Program- ming. Contents 1 The project1 1.1 About the customer............................1 1.2 The task..................................1 1.3 How to read this report..........................2 2 Project directive3 2.1 Introduction................................3 2.2 Project mandate.............................4 2.3 Constraints................................7 2.4 Project plan................................8 2.5 Organization............................... 15 2.6 Project management........................... 16 2.7 Quality assurance............................. 17 2.8 Test Plan................................. 19 2.9 Templates and standards......................... 22 3 Pre-study 23 3.1 Introduction................................ 23 3.2 Requested solution............................ 24 3.3 Business requirements.......................... 32 3.4 Evaluation criteria............................ 34 3.5 Ontology.................................. 35 3.6 Topic Maps................................ 37 3.7 Dynamic objects and the model..................... 40 3.8 Aspect Oriented Programming...................... 41 3.9 The Qt Jambi framework......................... 42 3.10 Music software already on the market.................. 47 3.11 Licenses.................................. 52 3.12 Solution evaluation............................ 56 3.13 Conclusion................................. 58 4 Sprints explained 59 4.1 Introduction................................ 59 4.2 Description of sprints........................... 59 4.3 The number of sprints.......................... 60 i Contents ii 4.4 The structure of each sprint chapter................... 60 4.5 Estimating effort............................. 61 5 Sprint #1 - The Exploration 62 5.1 Introduction................................ 62 5.2 Planning.................................. 63 5.3 Requirements............................... 64 5.4 Design and Implementation....................... 74 5.5 Testing................................... 83 5.6 Evaluation................................. 83 6 Sprint #2 - The TurnAround 87 6.1 Introduction................................ 87 6.2 Changes.................................. 87 6.3 Planning.................................. 88 6.4 Requirements............................... 89 6.5 Design and Implementation....................... 92 6.6 Testing................................... 106 6.7 Evaluation................................. 107 7 Sprint #3 - The Accomplishment 110 7.1 Introduction................................ 110 7.2 Changes.................................. 110 7.3 Planning.................................. 111 7.4 Requirements............................... 111 7.5 Design and Implementation....................... 112 7.6 Testing................................... 122 7.7 Evaluation................................. 123 8 Evaluation 125 8.1 Introduction................................ 125 8.2 Process and results............................ 126 8.3 The customer and the project task................... 133 8.4 The Course................................ 136 8.5 Tools.................................... 139 8.6 Further work............................... 143 8.7 What would we do differently?...................... 145 8.8 Conclusion................................. 146 A Appendix 154 A.1 Risk Assassment............................. 154 A.2 Resources................................. 159 A.3 Templates................................. 160 A.4 Minutes.................................. 162 A.5 Design................................... 165 Contents iii A.6 Tests.................................... 166 List of Tables 2.1 Time table for the phases........................ 11 2.2 Phase responsibilities........................... 13 2.3 Template for presenting non-acceptance tests.............. 21 2.4 Folder structure for our code....................... 22 3.1 MP3 license cost............................. 53 3.2 Qt Jambi licensing prices......................... 54 5.1 Sprint #1 effort estimate and goals................... 63 5.2 Priority table for the requirements in Sprint #1............ 73 5.3 Requirements to be implemented during Sprint #1.......... 73 5.4 Sprint #1 resource usage......................... 85 6.1 Sprint #2 effort estimate and goals................... 89 6.2 Priority table for the requirements in Sprint #2............ 92 6.3 Requirements to be implemented during Sprint #2.......... 92 6.4 List over the new tests created during this sprint............ 106 6.5 Sprint #2 resource usage......................... 107 7.1 Sprint #2 effort estimate and goals................... 111 7.2 Requirements to be implemented during Sprint #3.......... 111 7.3 List over the new tests created during this sprint............ 122 7.4 Sprint #3 resource usage......................... 123 8.1 Sprint resource usage summarized.................... 128 A.1 Risk table................................. 158 A.2 Risk matrix table............................. 159 A.34 Test tracing matrix over buisness reuirements.............. 177 A.35 Test tracing matrix over reuirements................... 178 iv List of Figures 2.1 Scrum sprint example...........................9 2.2 Gantt diagram for the schedule..................... 11 2.3 Organization chart............................ 15 3.1 Context data flow diagram of the requested solution.......... 26 3.2 The structure of a performance..................... 27 3.3 Rate adjustment of a performance................... 28 3.4 Example of how notes are used to describe music........... 29 3.5 A prototype GUI to demonstrate the overlapping of songs...... 31 3.6 Overview of the most important topics in the ontology........ 35 3.7 Topic map key concepts, picture from.................. 37 3.8 Jambi architecture drawing....................... 43 3.9 The observer pattern........................... 44 3.10 The Qt designer.............................. 47 3.11 FastTracker 2 screenshot......................... 48 3.12 Reason 3 screenshot............................ 49 3.13 Screenshot from VirtualDJ........................ 50 5.1 Package diagram of the architecture chosen in Sprint #1....... 75 5.2 Dataflow diagram of the architecture chosen in Sprint #1....... 75 5.3 UML class diagram of model architecture #1.............. 76 5.4 UML class diagram of model architecture #2.............. 79 5.5 An event driven approach........................ 80 5.6 Mixer structure.............................. 81 5.7 Initial paper prototype of the GUI.................... 83 5.8 Initial Qt Jambi prototype of the GUI.................. 83 6.1 A package diagram of chosen design at Sprint #2........... 93 6.2 A dataflow diagram of chosen design at Sprint #2........... 94 6.3 UML class diagram of the model described in section 6.5.2...... 95 6.4 Example of two media models...................... 97 6.5 Example of a Composition model.................... 97 6.6 Detailed description of a part of the example in Figure 6.4....... 98 6.7 Detailed description of a part of the example in Figure 6.5....... 98 6.8 The event based topic map simplified.................. 99 v List of Figures vi 6.9 Persistence UML class diagram..................... 99 6.10 Renderer structure............................ 102 6.11 Changes to the paper prototype..................... 104 6.12 UML class diagram of the GUI module................. 105 6.13 The GUI results from Sprint #2..................... 105 7.1