1 Introduction 1 1.1 Purpose 1 1.2 Document overview 1 1.3 Reading instructions 2 1.4 System overview 2 1.4.1 Hardware and software requirements 2 1.4.2 Data distribution and collection 2 1.5 Document dependencies 3 1.5.1 Documents that effect the architecture 3 1.5.2 Documents effected by the architecture 3 1.6 Document distribution 3 1.7 Glossary 4 2 Architectural decisions 7 2.1 Desired properties 7 2.1.1 Usability 7 2.1.2 Extensibility 7 2.1.3 Modular structure 7 2.2 Philosophy 8 2.2.1 Make it simple 8 2.2.2 Make it right 8 2.2.3 Make it clean 8 2.2.4 Make it usable 8 2.3 Modularization 9 2.4 Testability 9 2.5 Identifying modules 9 2.5.1 Choice and motivation 9 2.5.2 Process 9 2.6 Layered approach 10 2.6.1 GUI layer 10 2.6.2 Action layer 10 2.6.3 Proxy layer 10 2.6.4 API layer 10 2.7 Choice of design method 11 2.7.1 Object Oriented Design 11 2.7.2 Notation standard 11 2.8 Choice of development environment 11 2.8.1 Modeling tool 11 2.8.2 Platform 11 2.8.3 Development environment 12 2.9 Project states 12 3 Use cases 13 3.1 Subsystems 13 3.1.1 Project management 13 3.1.2 Test management 13 3.1.3 Result management 13 3.1.4 Configuration management 13 3.2 Fulfilment of requirements 14 4 Modules and layers 17 4.1 GUI layer 17 4.2 Action layer 17 4.2.1 Project Manager 17 4.2.2 Project Builder 18 4.2.3 Test Manager 18 4.2.4 Test Runner 18 4.2.5 Result Manager 18 4.2.6 Configuration Manager 18 4.3 Proxy layer 19 4.3.1 Storage Proxy 19 4.3.2 Sound API Proxy 19 4.3.3 Configuration Proxy 19 4.3.4 Result Proxy 19 4.4 API layer 20 4.4.1 Java IO 20 4.4.2 Java Sound API: 20 4.5 Layers overview 21 4.6 Dynamic aspect 22 5 Graphical user interface 23 5.1 Audio Jury Administrator 23 5.1.1 Project manager 23 5.1.2 Project creator 23 5.1.3 Project renamer 23 5.1.4 Project deleter 23 5.1.5 Closed project deleter 23 5.1.6 Project editor 23 5.1.7 Test creator 23 5.1.8 Test importer 23 5.1.9 Test duplicator 24 5.1.10 Test deleter 24 5.1.11 Test editor 24 5.1.12 Single selector 24 5.1.13 Pair selector 24 5.2 Audio Jury Client 24 5.2.1 Project selector 24 5.2.2 Project instructor 24 5.2.3 Data collector 24 5.2.4 Test instructor 24 5.2.5 Practice completion notifier 24 5.2.6 Interactive CCR rater 25 5.2.7 Interactive ACR rater 25 5.2.8 Automatic rater 25 5.2.9 Endorser 25 5.2.10 Project completion notifier 25 5.2.11 Interrupt notifier 25 6 Possible extensions 27 6.1 Further development 27 6.1.1 Custom scale creation 27 6.1.2 Built-in result preview 27 6.1.3 New test methods 27 6.1.4 Advanced database 27 6.1.5 Remote client management 27 6.2 Maintenance 28 7 References 29 7.1 Internal documents 29 7.2 External documents 29 Appendix A Activity diagrams 1 Appendix B Low-Fi GUI prototype 1 Appendix C GUI call diagrams 1