Statement and Confirmation of Own Work



Similar documents
A Monitored Student Testing Application Using Cloud Computing

Oracle Database 10g Express

FileMaker 13. ODBC and JDBC Guide

FileMaker 12. ODBC and JDBC Guide

Online Enrollment and Administration System

Sisense. Product Highlights.

VOL. 2, NO. 1, January 2012 ISSN ARPN Journal of Science and Technology ARPN Journals. All rights reserved

FileMaker 11. ODBC and JDBC Guide

FileMaker 14. ODBC and JDBC Guide

ICE Trade Vault. Public User & Technology Guide June 6, 2014

DreamFactory Security Whitepaper Customer Information about Privacy and Security

Application Development for Mobile and Ubiquitous Computing

An Esri White Paper October 2010 Developing with Esri Business Analyst Server

Course Handbook. BSc Web Design and Development. Page 1 of 17

The SkySQL Administration Console

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Caplin Trader 1.4. Catalog Of Documents. August 2009 C O N F I D E N T I A L

Introducing the Adobe Digital Enterprise Platform

Integrating Online Banking and Top-up Card into Payment Gateway

UQC103S1 UFCE Systems Development. uqc103s/ufce PHP-mySQL 1

Software Development Standard Deliverables

Project Management Plan. DFY Company. Project Manager Linda Jiang.

Mark: Moderated Final

SOFTWARE TESTING TRAINING COURSES CONTENTS

CTI Higher Certificate in Information Systems (Engineering)

Rich Internet Applications

REDCap General Security Overview

Course Scheduling Support System

Oracle Application Express MS Access on Steroids

System Development and Life-Cycle Management (SDLCM) Methodology. Approval CISSCO Program Director

Indian Journal of Science International Weekly Journal for Science ISSN EISSN Discovery Publication. All Rights Reserved

Deepak Patil (Technical Director) iasys Technologies Pvt. Ltd.

Administrator s Guide for the Polycom Video Control Application (VCA)

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

SOLUTIONS IT CONSULTANCY

Monitoring Trading Applications with Flex. Yakov Fain Farata Systems

Accessing Data with ADOBE FLEX 4.6

Keyword: Cloud computing, service model, deployment model, network layer security.

KonyOne Server Prerequisites _ MS SQL Server

Information Technology Services

Getting Started with Microsoft Office Live Meeting. Published October 2007 Last Update: August 2009

Getting Started with Microsoft Office Live Meeting. Published October 2007

Comparative Analysis of Various Automated Test Tools for Flex Application

An Esri White Paper June 2010 Tracking Server 10

Analysis of SQL injection prevention using a proxy server

Software Requirements Specification

Customer Bank Account Management System Technical Specification Document

SOA Software API Gateway Appliance 7.1.x Administration Guide

CMS Query Suite. CS4440 Project Proposal. Chris Baker Michael Cook Soumo Gorai

ni.com Remote Connectivity with LabVIEW

Symplified I: Windows User Identity. Matthew McNew and Lex Hubbard

CSCI110 Exercise 4: Database - MySQL

GARDEN STATE APARTMENTS LLC. CUSTOMER RELATIONSHIP MANAGEMENT SYSTEM (FINAL MILESTONE)

SOFTWARE INSTALLATION INSTRUCTIONS CLIENT/SERVER EDITION AND WEB COMPONENT VERSION 10

An Oracle White Paper June Security and the Oracle Database Cloud Service

Web Application Development Using UML

Technical Specifications (Technical Architecture) Yes No Comments Operating system

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

SQL Injection Vulnerabilities in Desktop Applications

SYSTEM DEVELOPMENT AND IMPLEMENTATION

Legal notices. Legal notices. For legal notices, see

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

Webapps Vulnerability Report

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

FileMaker Server 13. FileMaker Server Help

ICT. Universityy. in any

This Readme includes information pertaining to Novell Service Desk 7.0.

Software Requirements. Specification. Day Health Manager. for. Version 1.1. Prepared by 4yourhealth 2/10/2015

HP OO 10.X - SiteScope Monitoring Templates

Product Presentation. BBSC A new generation of broadband e-collaboration services

System to System Interface Guide

Online shopping store

Building Java Servlets with Oracle JDeveloper

Comparison of Moodle and ATutor LMSs

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

MiContact Center Outbound

Fasthosts Internet Parallels Plesk 10 Manual

Zeus Networks Company Portfolio


Uni Sales Analysis CRM Extension for Sage Accpac ERP 5.5

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Benchmarks of SQL Query Performance for ODBC and Oracle Call Interface

An Oracle White Paper February Oracle Data Integrator 12c Architecture Overview

Social Media in the Process Automation Industry

Getting Started Guide

FileMaker Server 11. FileMaker Server Help

Open source framework for interactive data exploration in server based architecture

FileMaker Server 10 Help

TAO Installation Guide v0.1. September 2012

Windows Azure Pack Installation and Initial Configuration

Intranet Website Solution Based on Microsoft SharePoint Server Foundation 2010

Citrix EdgeSight Administrator s Guide. Citrix EdgeSight for Endpoints 5.3 Citrix EdgeSight for XenApp 5.3

Deep Security/Intrusion Defense Firewall - IDS/IPS Coverage Statistics and Comparison

Designing for Dynamic Content

System. CMS Vendor Comparison. Ektron 8.6. Drupal Sitecore 6.5. Kentico EMS 8.2. EPiServer WordPress SharePoint Umbraco 4.

PROJECT MANAGEMENT SYSTEM

Monitoring System Status

OCR LEVEL 3 CAMBRIDGE TECHNICAL

Database FAQs - SQL Server

Transcription:

Statement and Confirmation of Own Work Programme/Qualification name: University of Wales BSc (Hons) in Business Computing and Information Systems All NCC Education assessed assignments submitted by students must have this statement as the cover page or it will not be accepted for marking. Please ensure that this statement is either firmly attached to the cover of the assignment or electronically inserted into the front of the assignment. Student declaration I have read and understood NCC Education s Policy on Academic Dishonesty and Plagiarism. I can confirm the following details: Student ID/Registration number: 296338 Name: Centre Name: Module Name: Module Leader: Project Supervisor: Francois Dempers CTI Durbanville Information Systems Project Islam Choudhury Paul Bocij I confirm that this is my own work and that I have not plagiarised any part of it. I have also noted the assessment criteria and pass mark for assignments. Due Date: Sunday 9th August 2009 Student Signature: Francois Dempers (2009-08-09) Submitted Date: Sunday 9th August 2009 1

Detailed Design Chat (Francois Dempers August 2009) Table of Contents 1) Introduction...3 1.1) Background...3 1.2) Design Goals...3 2.) Architecture...4 2.1) Introduction...4 2.2) Data...5 2.3) Communication...6 3) Development...7 3.1) Process...7 3.2) Tools...8 4) Module Design Chat...9 4.1) Overview...9 4.2) Application Model...10 4.3) Data Model...11 5) Operation...11 5.1) User types...11 5.2) Licensing...11 5.3) Installation...11 6) Miscellaneous...12 6.1) Conformance with standards...12 6.2) Expandability...12 6.3) Security...12 7) Glossary...13 8) Bibliography...13 9) Appendix A Data Dictionary...13 2

1) Introduction 1.1) Background This is the detailed design document for the chat module of the Open Groups project. This document serves as an component level overview of the module. Every group on the system will have its own chat component. The purpose of the module is to provide a platform for the members of a system group to interact with each other in real time, without the usual delays associated with traditional components such as a forum or a blog. A key goal of the system is to provide a platform for users to collaborate, the chat module is intended to provide users with this platform. The module allows users to do the following actions: Send and receive text messages Send and receive video/audio messages Draw diagrams on a shared whiteboard This document forms 1 half of the module's detailed design. The other half being a user interface prototype which will be developed using this document as a basis for its design considerations. Parts of this document have been reproduced from the high level design document of the system, available from the system's project website at http://code.google.com/p/opengroups/. Please refer to the high level design document for further background information. 1.2) Design Goals The module should be designed in such a way, that users will find it easy and intuitive to use. The module should be easy to navigate and understand. An efficient design is especially important, because if users are unable to use the module, then a major project goal may be left unfulfilled, namely to provide an effective platform to support collaboration amongst group members. 3

2.) Architecture 2.1) Introduction The system will be created using a client-server architecture using the following technologies: Adobe AIR 1.5 used to develop the client side code PHP 5.2.1 used to develop the server side scripts MySQL 5.0 used as the database server of the application As all of these technologies are able to run cross platform, thus the system will have no problem being deployed on Windows, Macintosh and the various distributions of Linux. Client side the application will run on the user's desktop. Each group member will have their own desktop client. The desktop clients will interface with a web server which is hosted on the Internet. The web server in turn has access to a database server also hosted online. A separate server is used for the chat and real-time capabilities of the application. Figure 1 depicts the overall system architecture. Figure 1 Overall System Architecture (Deployment Diagram) 4

The system will be developed in 7 distinct phases. Each phase will have it's own associated client side, server side and database code. Figure 2 lists the system development phases and their target completion dates. The development phase for the chat module is highlighted in yellow. ID Phase Hours Start Date Target Date DP1 Application Shell / Core System 42 17 Jul 2009 26 Jul 2009 DP2 Forum 21 31 Jul 2009 2 Aug 2009 DP3 Chat 21 7 Aug 2009 9 Aug 2009 DP4 Calendar 14 14 Aug 2009 15 Aug 2009 DP5 Media Gallery 21 16 Aug 2009 22 Aug 2009 DP6 Management Tasks 14 23 Aug 2009 28 Aug 2009 DP7 Polls and Survey 14 29 Aug 2009 30 Aug 2009 Figure 2 System Development Phases (Work Schedule) As the end of each phase is reached, the deliverables of that phase gets integrated into the overall system. DP1 develops the core of the system, where all other subsequent modules can integrate into. There are thus no dependencies between the other modules. Figure 3 depicts the resulting internal structure of the system. The development phase for the chat module is highlighted in yellow. DP1 DP2 DP3 DP4 DP5 DP6 DP7 Figure 3 Internal System Architecture 2.2) Data The system will have 1 central relational MySQL database hosted online which will serve as the primary data source for all of the system modules. The database will only be accessible via the PHP web server as shown in figure 1. The database schemata for the module is provided in section 4, and the supplementary data dictionary is provided in Appendix A. 5

2.3) Communication Communication between the AIR client and the PHP web server will be done through the AMF protocol. AMF is a native data exchange format (Patrick, 2007) used by AIR. Using AMF, data is compressed into a very small format, thus reducing the amount of bandwidth utilized by the application. AIR is able to serialize and de-serialize data to the AMF format extremely quickly because AMF is native to AIR itself. This enables data to be sent across the network quickly, thus reducing latency in the application. To enable the PHP web server to understand and interpret AMF data streams (Arnold, 2007) an additional PHP library called AMFPHP will be used. This library translates incoming AMF data into native PHP data, and also translates outgoing data back into AMF data. AFCS (Adobe, 2009) will be used to develop the chat module of the application. AFCS is a component library and hosted online service with which real-time social applications can be developed rapidly. Infrastructure and deployment concerns are taken care of as the service is hosted on Acrobat.com by Adobe. No server side components thus have to be developed. Modules which require SMS message to be sent will make use of the SMS gateway provided by www.clickatell.co.za 6

3) Development 3.1) Process As previously stated, each system module will be developed as a distinct new phase. At the start of every phase a detailed module design will be produced which will include a requirements model, user interface prototype, database design and class level design. Once the design is complete the system module can be developed, and integrated into the overall system. At this point various testing activities will be carried out such as unit testing, acceptance testing, regression testing, performance testing and usability testing. A test report will be produced after this is completed. The final steps in the process is to produce user and API documentation for the module, and to deploy the system to a production environment. Figure 4 shows this process and its artefacts in detail. Process Activity Artefact Detailed Design Requirements Modelling Use Case Diagrams Time Scheduling User Interface Prototyping Application Modelling Data Modelling Deployment Modelling Gantt Chart Executable Prototype Class Diagram, Sequence Diagrams Entity Relationship Diagram, Data Dictionary Deployment Diagram Build Development Source Code Integration Test Test Planning Test Plan Unit Testing Regression Testing Performance Testing Usability Testing Executable System Test Cases / Test Report Test Report Test Report Test Report Implementation Deployment Deployed System Documentation Figure 4 Module Development Process User Guide, API Reference Documentation 7

3.2) Tools There are a number of tools available that can be used to speed up the module development process. The Flex Builder 3 IDE has a built in tool for developing user interface prototypes, downloadable from http://www.adobe.com/products/flex/. API documentation can be generated using the ASDoc utility which ships standard with the IDE. Unit testing can be automated by using a unit testing framework, such as Flex Unit 4 available from http://opensource.adobe.com/wiki/display/flexunit/downloads. An article concerning its implementation was created by Elrom (2009) and is available at http://www.insideria.com/2009/05/flashbuilder4-willsupport-fle.html. StarUML has been used to produce all of the UML diagrams in this document, available from http://staruml.sourceforge.net/en/download.php. MySQL Workbench 5.0 OSS was used to create all of the entity relationship diagrams in this document, available from http://dev.mysql.com/downloads/workbench/5.1.html. 8

4) Module Design Chat 4.1) Overview Group members are able to perform the following actions when using the chat component of their group: Send and receive text messages Send and receive video/audio messages Draw diagrams on a shared whiteboard Figure 5 shows the use cases that have been defined for the module. Figure 5 Chat Use Case Diagram Figures 6 illustrates the typical sequence of events which should occur given the user interactions with the system provided by figure 5. Figure 6 Chat Sequence Diagram 9

Information Systems Project: Project Proposal 4.2) Application Model Figure 7 provides an overview of the classes utilized by the module. Figure 7 Chat Class Diagram 10

4.3) Data Model Figure 8 provides the database schema used by the module. An accompanying data dictionary is supplied in Appendix A. The module has an extremely basic data model as most of it's functionalities are based on real time technologies rather then complex data storage. The data requirement of the module centres around the chaturl column of the groups table, which stores the URL of the Adobe Flash Collaboration Service chat room for each group. Figure 8 Chat Entity Relationship Diagram 5) Operation 5.1) User types The system has 4 distinct user types, they are: System User Group Member Group Manager Administrator A system user is an individual who has an account on the system, but has not joined any groups. They only have limited functionality, such as having a profile page and updating his/her account settings. A group member is an system user who has joined 1 or more groups. They have access to the same functionalities as a system user, as well as the modules of their groups. Group managers are system users who have created 1 or more groups. They have access to the same functionalities as a system users and group members. They also have access to the management features of the groups they manage. An administrators is a system user who have access over all system functionalities, including system administration functionalities. 5.2) Licensing With the permission of NCC education and the University of Wales, the source code of the project be licensed under the open source GNU Lesser General Public Licence available at: http://www.fsf.org/licensing/licenses/lgpl.html 5.3) Installation The client side application will be installed using an AIR installer package. Flex Builder 3 has a built in function to generate this package. In order to run software created with Adobe AIR, version 1.5 of the AIR runtime environment has to be installed on the users operating system, available from: http://get.adobe.com/air/. 11

6) Miscellaneous 6.1) Conformance with standards Adobe has made available a detailed document concerning Flex coding conventions, available at: http://opensource.adobe.com/wiki/display/flexsdk/coding+conventions Likewise, Zend has also made available a detailed document concerning PHP coding conventions, available at: http://framework.zend.com/manual/en/coding-standard.html These documents should be consulted whilst developing the system to ensure that code is created in a consistent manner. This will result in professional looking code that is well organised and maintainable. 6.2) Expandability It is important that the system be developed in such a way which allows future developers to be able to extend functionality and built their own modules. Therefore, a modular architecture has been chosen to create the system to allow for easy future expansion and development. However, the building of special tools and measures to allow this is beyond the scope of the project at present and will be the concern of future system iterations. 6.3) Security Only individuals with registered accounts on the system will be able to gain access to it. Upon start up of the application users will be prompted to provide an email address and password combination. This combination will be validated against the list of registered users on the system. The result thereof will be used to either grant or deny system access to a user. Additionally, measures will have to be put in place in order to prevent deliberate system attacks such as SQL injection. SQL injection (Laksmono, 2008) is a well known technique that can be used by attackers to gain access to, corrupt and delete the data in an online database. It works on the principal of typing malicious SQL queries into the text input fields of a online application instead of legal values. An effective way to prevent this in PHP is to use a built in function such as mysql_real_escape_string(). Refer to the following articles on this subject for more information: http://laksmono.com/2008/03/26/php-mysql-injection-prevention/ http://www.tizag.com/mysqltutorial/mysql-php-sql-injection.php 12

7) Glossary Acronym API FUG IDE RIA SQL UID Description Application Programmer Interface Document used by developers to understand and extend a system. Flex User Group Community of Adobe Flex developers Integrated Development Environment System that can be used to develop software products. Rich Internet Application Software that uses the Internet to deliver it's content Structured Query Language, Is the de facto standard language used to interact with relational databases Unique Identifier Unique value identifying a record in a table 8) Bibliography Adobe. (2009) Adobe Flash Collaboration Service, [Online], Available: http://labs.adobe.com/technologies/afcs/. Retrieved 18 May 2009. Arnold, W. (2007) Flash remoting for PHP: A responsive Client-Server Architecture for the Web, [Online], Available: http://www.amfphp.org/. Retrieved 18 May 2009. Elrom, E. (2009) FlashBuilder 4 will support FlexUnit 4 - tutorials and feature overview, [Online], Available: http://www.insideria.com/2009/05/flashbuilder4-will-support-fle.html. Retrieved 30 May 2009. Laksmono, G. (2008) Simple PHP MySQL Injection Prevention, [Online], Available: http://laksmono.com/2008/03/26/php-mysql-injection-prevention/. Retrieved 28 May 2009. Patrick, T. (2007) The ABC's of AMF, [Online], Available: http://www.onflex.org/ted/2007/11/abcs-of-amf.php. Retrieved 17 May 2009. 9) Appendix A Data Dictionary Entity: Groups Description: Stores the groups a user can choose from. Attribute Type Description groupuid VARCHAR(32) The primary key of the table. groupname VARCHAR(55) The name of the group. description TEXT The description of the group. logourl VARCHAR(1000) The URL where the group's logo can be found. isarchived BOOLEAN True if the group is no longer active. chaturl VARCHAR(1000) The URL to the group's AFCS chat room. 13