AMPLIDIR - a Software System for Social Support to Decision
Total Page:16
File Type:pdf, Size:1020Kb
Universidade do Minho Escola de Engenharia Nelson Manuel Oliveira de Faria AMPLIDIR - A Software System for Social Support to Decision Tese de Mestrado Mestrado Engenharia Electronica Industrial e Computadores Trabalho efectuado sob a orientação do Professor Doutor Paulo Garrido Outubro de 2008 Acknowledgements I want to express my gratitude to Prof. Paulo Garrido for sharing all his passion for learning, the persistence during this work and his dedication to make this work possible. I am in debt with my parents, which worked hard to give me the possi- bility to reach this objective. Finally, I want to dedicate this dissertation to my wife and my daughter. Without their patience, support and love this dissertation would not have been possible. i ii Resumo A explora»c~aoe aproveitamento do conhecimento do maior n¶umeroposs¶³vel de membros nos processos de decis~aopode estimular substancialmente o sucesso das organiza»c~oes. Atrav¶esdo alargamento e aprofundamento da participa»c~aodos membros ¶eposs¶³vel aceder a um maior leque de percep»c~oes, decis~oesalternativas e suas implica»c~oes. Esta disserta»c~aodescreve os passos seguidos para de¯nir os requisitos, especi¯ca»c~aoe implementa»c~aode um prot¶otipo de Social Decision Support System (SDSS). A abordagem para a cria»c~aodo prot¶otipo foi a reutiliza»c~ao de um bug tracker em c¶odigoaberto, pela semelhan»cacom os requesitos seleccionados para a constru»c~aodo prot¶otipo. O desenvolvimento do prot¶otipo de SDSS utilizou o bug tracker Mantis e implicou a rescrita de parte deste. A arquitectura deste providenciou a autentica»c~aode utilizadores, gest~aode utilizadores, funcionalidades de email, tratamento de recep»c~aode ¯cheiros e gest~aode sess~oes. As funcionalidades implementadas no prot¶otipo SDSS incluiu a discuss~ao de quest~oes,perguntas/respostas e vota»c~oescom distribui»c~aode utilizadores por ¶areas. O n¶³vel de desenvolvimento do prot¶otipo permite test¶a-loem organiza»c~oes de forma a recolher informa»c~oespara as funcionalidades implementadas. Ao longo deste trabalho, a reutiliza»c~aode software de c¶odigoaberto mostrou ter vantagens para prototipagem r¶apida,porque resolve grande parte dos problemas iniciais de implementa»c~ao. iii iv Abstract Exploring and exploiting the knowledge of as many members as possible in decision processes can foster substantially the success of an organization. Through widening and deepening members participation it is possible to access a wide range of perceptions, decision alternatives and their implica- tions. This dissertation describes the steps for a Social Decision Support Sys- tem (SDSS) prototype requirements de¯nition, design and implementation. The approach for creating the prototype was to reuse an existing open source bug tracker, because its functions are similar to the selected requirements for the prototype under construction. The basic software development of the SDSS prototype proceeded as a rewriting of the open source Mantis bug tracker. The architecture of this one provided user authentication, user management, email functionalities, ¯le upload handling and session management. Features implemented in the SDSS prototype include issues discussion, questions/ answers and polls, with distribution of users among di®erent areas. The prototype was developed to the level where ¯eld testing in organi- zations can be conducted to collect feedback for the implemented features. Along this work it showed up that reusing existing open source software for fast prototyping has advantages, as it solves most of the initial problems in project implementation. v vi Contents 1 Introduction 1 1.1 Decision processes in organizations ............... 1 1.2 Objectives ............................. 3 1.3 Dissertation organization .................... 5 2 Decision Support Systems 7 2.1 Decision Support Systems study ................ 7 2.1.1 Evolution of Decision Support Systems ......... 7 2.1.2 Types of Decision Support Systems ........... 9 2.2 Decision Support Systems usage in organizations ....... 10 2.3 Social Decision Support Systems ................ 13 2.3.1 The potential of SDSS .................. 15 2.4 Features for a generic SDSS ................... 18 2.4.1 Objectives ......................... 19 2.4.2 System features ...................... 19 2.4.3 Opportunity for development of a Social Decision Sup- port System ........................ 23 2.5 Usage examples for SDSSs .................... 23 3 Free and Open Source Software and Bug-Trackers 25 3.1 Free and Open Source Software ................. 25 3.2 Bug trackers - Possible approach for basis of implementation 26 3.3 Available bug trackers and features ............... 27 3.3.1 Commercial systems ................... 27 3.3.2 Open source systems ................... 32 3.3.3 Bug trackers functionalities ............... 34 3.4 Commercial versus Open Source bug trackers ......... 36 3.5 Using a bug tracker as base for development .......... 37 4 Prototype Design 39 4.1 Prototype objectives ....................... 39 vii viii CONTENTS 4.2 Prototype features description .................. 39 4.2.1 Users authentication ................... 39 4.2.2 Bug to issues and project to area transformation ... 40 4.2.3 Issue submission and issue management ........ 40 4.2.4 Questions submission and answers collecting ..... 41 4.2.5 Voting system ....................... 42 4.2.6 Issue \tagging" ...................... 43 4.3 Design proposal for a DSS - Amplidir ............. 44 4.3.1 Assumptions and dependencies ............. 44 4.3.2 Architectural strategies ................. 44 4.3.3 System architecture ................... 45 4.3.4 Questions and answers .................. 46 4.3.5 Voting system ....................... 48 4.3.6 Issue tagging ....................... 49 4.3.7 Detailed system design .................. 49 5 Prototype Implementation 51 5.1 Amplidir prototype implementation .............. 51 5.1.1 Development environment ................ 51 5.1.2 Test environment ..................... 53 5.2 PHP Language Overview .................... 53 5.2.1 PHP Introduction .................... 53 5.3 Implementation approach .................... 55 5.4 Changes in the software design ................. 57 5.5 Help material to users ...................... 57 5.6 Prototype Interface ........................ 58 5.6.1 Login page ........................ 58 5.6.2 Entry page ........................ 58 5.6.3 Main Menu ........................ 59 5.6.4 Issue List ......................... 60 5.6.5 Issue comments tagging ................. 60 5.6.6 Issue fast feedback .................... 61 5.6.7 Issue searching ...................... 61 5.6.8 Question list ....................... 62 5.6.9 Question detail ...................... 63 5.6.10 Question submission ................... 64 5.6.11 Poll list .......................... 64 5.6.12 Poll detail, voting and results detail .......... 65 5.6.13 Poll submission ...................... 66 5.7 Tests performed .......................... 67 CONTENTS ix 6 Conclusion 69 6.1 Results ............................... 69 6.2 Advantages and disadvantages using the open source Mantis bug tracker ............................ 70 6.3 Future work ............................ 71 6.3.1 Field test of Amplidir .................. 71 6.3.2 New features to add ................... 71 A Questions API 73 A.1 Class QuestionData ....................... 73 A.2 Functions ............................. 73 A.3 Classes and functions to be developed in questionanswer api.php 74 A.4 Functions ............................. 74 A.5 Questions database schema ................... 75 B Polls API 79 B.1 Class PollData .......................... 79 B.2 Functions ............................. 79 B.3 Functions to be developed in poll voting api.php ....... 80 B.4 Voting system database schema ................. 80 C Issue tagging functions and database schema 85 C.1 System actions .......................... 85 C.2 Issue tagging database schema ................. 85 D Detailed system design: action diagrams 87 D.1 Detailed system design: Questions action diagrams ...... 87 D.2 Detailed system design: Polls action diagrams ......... 95 E PHP Language Overview 101 E.1 PHP Introduction ........................ 101 E.2 PHP Variable types ....................... 103 E.3 PHP Operators .......................... 104 E.4 Assignment Operators ...................... 104 E.5 Bitwise Operators ........................ 104 E.6 Comparison Operators ...................... 105 E.7 Execution Operator ....................... 105 E.8 Incrementing/Decrementing Operators ............. 105 E.9 Logical Operators ......................... 106 E.10 Array Operators ......................... 106 E.11 PHP Control structures ..................... 106 x CONTENTS E.12 PHP functions .......................... 108 E.13 Function arguments ....................... 108 E.14 Function arguments by reference ................ 108 E.15 PHP classes ............................ 109 List of Tables 2.1 Information gaps ......................... 16 3.1 Bug tracking commercial solutions ............... 32 3.2 Bug Tracking open source solutions ............... 34 4.1 User interface source code ¯les description ........... 47 4.2 Library source code ¯les description .............. 47 4.3 Voting system user interface source code ¯les description ... 49 4.4 Voting system library source code ¯les description ...... 49 xi xii LIST OF TABLES List of Figures 2.1 Murray Turo® model ....................... 17 2.2 Super areas ............................ 18 2.3 Areas