Top Banner

of 52

Dynamic Data Deployment System with a MIS

Oct 09, 2015

Download

Documents

This project dissertation has been written to fulfill the requirements of the individual project.
The aim of the project is to develop a dynamic data deployment system that would allow an entity to publish information either within an intranet system or on the Internet via a website wish customizable content layouts thereby providing full control of the information that is being published.
Comprehensive analysis and design was carried out, and the final system was developed using an open source platform consisting of PHP and mySQL for the server-side programming together with HTML, CSS and JavaScript for the front-end.
The end result has been the development and implementation of a comprehensive system that satisfied both the requirements of the client as well as the requirements of the final year Project of this Degree program me.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

COVENTRY UNIVERSITY

FACULTY OF ENGINEERING & COMPUTING

Bachelor of ENGINEERING (Hons) in COmputer networking and communications technology

A303EC FINAL PROJECT REPORT

Dynamic Data Deployment System with a MIS

STUDENT NAME: Geeshapathi PereraSTUDENT ID NUMBER: XSUPERVISOR: x

Acknowledgement

There were many that contributed to complete this project in a variety of ways. Their guidance and encouragement helped me to successfully complete this project.First, I would like to thank my supervisor for guiding and helping me throughout the project and for giving the maximum support to find solutions to my many problems.I would like to give my special thanks to my loving family for their support and encouragement, and to all my friends who encouraged me to complete this.

Abstract

This project dissertation has been written to fulfill the requirements of the individual project.The aim of the project is to develop a dynamic data deployment system that would allow an entity to publish information either within an intranet system or on the Internet via a website wish customizable content layouts thereby providing full control of the information that is being published.Comprehensive analysis and design was carried out, and the final system was developed using an open source platform consisting of PHP and mySQL for the server-side programming together with HTML, CSS and JavaScript for the front-end.The end result has been the development and implementation of a comprehensive system that satisfied both the requirements of the client as well as the requirements of the final year Project of this Degree programme.

Executive Summary

The project was initiated with a detailed review of the customer requirements, thereby leading to the development of a system specification report together with a feasibility report for the implementation aspects.Fact gathering was carried out primarily by using Interviews and Observations, and these findings were then analysed in order to elicit the functional requirements and prepare the requirements specification. These requirements were then converted into system designs using modeling tools which were eventually developed into working modules by using PHP.

Table of ContentsAcknowledgementiiAbstractiiiExecutive SummaryivList of FiguresixList of Acronymsxii1Chapter 01 Introduction11.1Project Overview11.2Aims and Objectives11.3Deliverables of this project21.4Document Structure21.5Similar Systems32Chapter 2 - Background42.1Introduction42.2What is a Dynamic Data Deployment System?42.3Components of the Dynamic Data Deployment System42.4Development Process42.5Off the Shelf (OTS) or Custom Development?52.6Objectives for the development of this project52.7Timeframe52.8Project Management53Chapter 3 Analysis and Design73.1Overview of the System73.2SSADM73.3Suitability of SSADM for this project83.4Fact Finding93.4.1Interviewing93.4.2Research103.5Drawbacks in Existing Manual Process113.6High end requirements of the management113.7Feasibility Study11Operational Feasibility11Technical Feasibility11Schedule Feasibility12Economic Feasibility12Legal Feasibility123.8System Design123.8.1Context Diagram123.9Level 1 DFD13Process symbol13Data flow symbol -13Data store symbol14External entity symbol143.10Entity Relationship Diagram (ERD)153.11Entity Life History (ELH)163.12Functional Requirements163.13Non Functional Requirements183.14Users of the System193.15User Interfaces203.16Acceptance Criteria204Chapter 4 The Database205Chapter 5 Interfaces235.1What is Human Computer Interfacing / Interaction235.2Goals of HCI245.3Key points in developing the HCI255.4HCI Design Strategy255.5Interface Examples266Chapter 6 Implementation296.1The environment296.2Hardware Requirements306.3Software Requirements306.4Security Implementation316.5Code Implementation317Chapter 7 Testing317.1Overview327.2Testing Types337.2.1Unit Testing337.2.2Integration Testing347.2.3System Testing35Black box36White box Testing367.3What is a test case?368Chapter 8 Conclusion388.1Results of the Project388.2Objectives Vs Achievements388.3Lessons Learnt & Critical Appraisal399References4010Appendix A Database Samples4111Appendix B User Documentation41

List of Figures

Figure 1 - Context Level DFD12Figure 2 - DFD Process Symbol13Figure 3 - DFD Data Flow Symbol13Figure 4 - DFD Data Store Symbol14Figure 5 - DFD External Entity Symbol14Figure 6 - Level 1 DFD for Front End14Figure 7 - ERD Diagram15Figure 8 - ELH16Figure 9 Front end of the system20Figure 10 - Database view21Figure 11 Table 221Figure 12 - Table 321Figure 13 Table 421Figure 14 Table 522Figure 15 Table 622Figure 16 Table 722Figure 17 - Login Screen26Figure 18 - Main Interface26Figure 19 Available Users26Figure 20 User details27Figure 21 - Data maintenance screen27Figure 22 - More Detailed Data Maintenance Screen27Figure 23 - Sample Report28Figure 24 - The testing process32Figure 25 - Unit test types34Figure 26 - Integration testing35Figure 27 - Testing Process35

List of Acronyms

SSADMStructured Systems Analysis and Design MethodologyDFDData Flow DiagramOTSOff the ShelfERDEntity Relationship ModelELHEntity Life HistoryCBISComputer Based Information SystemHCIHuman Computer InteractionDynamic Data Deployment System with a MIS

ii

Chapter 01 Introduction Project Overview

This is a dynamic data deployment system with a MIS. Once you decide on the type of content (news events, calendaring events, etc), you can decide on the record structures and table structures for the database. Then the design of the RDB can be done and then implemented and tested. There will be other data as well such as what you would keep for tracking user locations, user authentication, user preferences, user profiling, audit logs, etc. This is the back-end part.The front-end part is the web application. You should first do requirements analysis to determine the functional and non-functional requirements. For example, the functional requirements will include user account management including maintaining the preferences (as given by the user), profiles (as determined by the system), audit reporting, identification & authentication, access permission management, etc. Other functionalities will include dynamic content presentation based on user identity, location of access, time-of-day, and any other parameter used for creating the dynamic content layout schemes.Aims and ObjectivesThe objectives for undertaking this project were varied, but they can be summarized as follows: To identify the appropriate implementation technologies. To produce a requirements specification. To analyze and design a suitable system. To implement a system covering the core functions of the system. To evaluate the suitability of modules for designing the system. To evaluate the suitability of structured methods for designing the system.

Deliverables of this projectThe end deliverables that are the outcome of this project are as follows: Requirements specification Functional specification Data model Database design Completed System and User guide Document StructureChapter 1 of the dissertation serves as an introduction to the project. The balance of this dissertation has been arranged according to the following structure Chapter 2 Background Provides background information for the development of this project Chapter 3 Analysis and Design Provides an overview of the system together with various results of the analysis as well as the design Chapter 4 Interfaces Provides samples of the interfaces that were used along with the reasons for doing do, from a theoretical to practical mapping Chapter 5 Implementation Explains the implementation environment both in software and hardware and provides information about how the implementation was carried out Chapter 6 Testing Provides information about the need for testing, how testing was carried out, and sample test cases Chapter 7 Conclusion Provides information about the end result and status of the project along with an analysis of future work along with a critical appraisal Appendix Supplementary information generated as a result of proceeding with the chosen methodology.Similar Systems

As the requirement is to develop a dynamic data deployment system, there are many working examples available online which can be used to develop an understanding of the features that must be present in such a system.

However, compared with a traditional social networking websites, this System would be better adapted for a corporate environment.

Systems that were studied as part of this exercise include:

1. Facebook.com2. Hi5.com3. Myspace.com

Chapter 2 - Background Introduction

This chapter focuses on the background information about the technologies and concepts that are behind this project.

What is a Dynamic Data Deployment System?

Add more content here.

Components of the Dynamic Data Deployment System

Add more content here.

Development ProcessDevelopment of a Web Based Information System is a time consuming process as it has to evolve with the evolution of the organization for which it was developed.Developing an automated system from scratch can be done using the steps outlined below: Step 1: Requirements analysis Step 2: Sub-system selection Step 3: Prototype development Step 4: GUI development Step 5: Integration and system testThis design process begins by gathering user requirements and building a general model of the System. An analysis is then done of how the new system will integrate into the current business practices. The new system design is then divided into modules, which are developed separately.A prototype of the system is produced in the early stages of development to give stakeholders a feel of what the final system will be like. The fourth step of the process involves developing the GUI for the front-end of the system. The final step in the development process is the testing of the various modules and components of the system and the integration of the system into the business environment.

Off the Shelf (OTS) or Custom Development?

One major decision that had to be taken was as to whether a complete custom development would be done, or whether an existing product can be customized, or whether an Off The Shelf (OTS) application could be used. The final decision was to develop the system from scratch due to the unique requirements that existed within the organization. Objectives for the development of this projectThe objectives of developing this system are two fold:1. Satisfy the requirements for the final year project by developing and submitting a project that meets the requirements of the academic board.2. Develop a web based Dynamic Data Deployment System that provides the following:a. Allow the user to manage the content layout via the back-end, including an MIS component.b. The front-end web module for displaying content. TimeframeA total of 6 months has been allocated to complete the project, implement it, and provide the necessary implementation support to the organization.This dissertation is being written to document the process that was followed in the implementation of this project. Project ManagementProject management is very important for the success of the software project. The main goal of the software project management is to work efficiently to a successful completion of the project. The following two categories are main items in project management.

Project planning and schedulingProject monitoring and reviewsTo develop this project, project supervisors are the most important support resources. They help in acting as project management consultants and advisers.The project plan should be produced at the start of the project and viewed as a working document. Scheduling is an important activity. In order to schedule a project following identification is helpful. The tasks needed to complete the project. Dependency among different tasks. The tasks to be ordered in a logical sequence. Tactics for managing the time. Decide which tasks can take place in parallel. To schedule meetings with supervisors as early as possible.This involves allocating the time required to complete the separated sub activities. Schedules were reviewed with progress of project. Each phase defined has to be accomplished according to a time or date scheduled. Discussions were made with the management for the approval of the schedule.

Chapter 3 Analysis and Design Overview of the SystemThis web based system is to allow the user to dynamically generate a content layout dependant on the type of information that is being presented. Front-end and back-end components should be developed as part of the work. This chapter highlights the requirements of the said system and how the features will be implemented. SSADMSSADM uses three viewpoints when analyzing and developing systems. This gives the developers a clear understanding of the business requirements and help to remove errors. These viewpoints are based on FunctionsEventsDataFunctions represent the users view of the processing that takes place in response to an event. This is shown using data flow modeling these could be as simple as the process of registering on the system as a customer.Events can be anything that has an effect on the business system, such as a receipt of a document. This views user entity and event modeling through entity life histories in this case, an event can be the requesting of an item by placing a confirmed order for it.Data is the raw material of any processing system and represented by the logical data model in this case, the details about categories, sub categories, products, customers, etcThe lifecycle model that was used for this project is represented as:

Waterfall design model- (extracted from http://students.mimuw.edu.pl/SR/prace-mgr/jawaharlal) Suitability of SSADM for this projectSSADM was selected due to the ease with which it could be used in this project. Additionally: It is widely used and understood (even though it is considered to be an outdated methodology from todays viewpoint, it is still widely used for small scale systems). It is mature and stable (requirements are relatively stable). It is used for data centric projects especially. It is well adapted to project management, and has a large degree of technology independence. It consists of Post implementation feedback (hence the dual direction of the arrows in the above diagram).

Fact FindingThere are five main fact finding techniques that are used by analysts to investigate requirements:

1. Background Reading a. Documents that belong to the organization can be read and researched to obtain an idea about the requirements of the organisation2. Interviewinga. Interviewing is probably the most widely used fact finding technique; it is also the one that requires the most skill and sensitivity key people should be identified, and they should be interviewed in a tactful manner.3. Observationa. Watching people carrying out their work in a natural setting can provide the analyst with a better understanding of the job than interviews.4. Document sampling a. The analyst can collect copies of documents and forms during the course of interviews and observation. These will then be used to determine the information that is used by people in their work, and the inputs to and outputs from processes can be identified.5. Questionnaires a. Questionnaires are a research instrument that can be applied to fact finding in system development projects. They consist of a series of written questions, where the designer limits the range of replies by giving them a choice of options so as to enable easier understanding and analysis of the results

The primary mechanism that was used in this project was to use interviews and background-reading.

InterviewingAn interview is a planned meeting during which the analyst obtains the information from another person. Normally this consists of several steps as follows. Determine the people to interview Establish objectives for the interview Develop the interviews questions. Preparation for the interview Schedule the interview Conducting the interview Documentation of the interview Evaluation of the interview

Below are the some of the questions that were asked at the interview What type of information do you deal with? How many publishes do you handle within a specific period? Do you wish to highlight any specific types of messages? Are there any time restrictions for information that is published?

Interviews were carried out by scheduling them at convenient times for the people concerned. The Author first interviewed the head of the organization as it is considered to be the right place to start, and it also shows the other employees about the top management commitment.

Interviews were then scheduled with the balance employees to identify the requirements that were expected from the new system. It was critical that the author had an understanding of the critical problems that they were facing in the existing manual system, so as to overcome these in the new system.

Research

Research has been done as another fact-finding technique. This mainly helps to get the theoretical knowledge when developing the system. Similar systems were looked at, and this was a considerably easier action to do than most others due to the choice of systems available online that employ dynamic information management.

Drawbacks in Existing Manual Process

Add more content here this would be dependent on whoever used manual publishing of information. High end requirements of the management

The main requirement is to provide easy deployment of information via a web-based interface. The system should allow the management to make decisions more efficiently as all information could be looked at in a summarized manner.

Feasibility StudyA Feasibility study was done before developing the system. The primary areas on which the author had to focus on were as follows:Operational Feasibility Whether the project can be put into action or operation. This includes considering motivational, logistical and acceptance considerations. (Such as resistance by users and other ethical considerations). As an example, there needs to be a person who will monitor the system so that objectionable content is removed.Technical Feasibility Whether hardware, software and other system components can be acquired or developed to solve the problems. For this system following technical requirements are needed.

Hardware1. As this is a web based system, we require a hosting platform. It was decided to outsource this requirement and to use the web hosting facilities of a shared host. 2. If the demand on the website increases, the client can opt to have an inhouse hosting solution, thereby providing added capacity and security.

Software1. Development language is PHP 52. The database system that was used was mySQL3. Additional tools were used for designing the graphics and animations.Schedule Feasibility Whether the project can be completed in a reasonable amount of time. For the purpose of this project, it was decided that the six month time scale was easily achievable.Economic Feasibility Whether the project is financially viable. Whether the predicted benefits offset the costs and time needed to obtain them. As this project is being developed as part of the requirements for satisfying the final year project, the costs of the system are considerably less for the client.Legal Feasibility whether there are laws and regulations that may prevent or limit the system development project. As this system does not seem to break or contravene any rules, there does not seem to be any legal obstacles for proceeding.Based on these aspects, it was decided to go ahead with the development of the system as a custom development.

System Design Context DiagramDuring requirements modeling many techniques have been used to gather facts about the system and how the various people, departments, data and process fit together to support business operations. A context diagram is drawn to show the entire system as a single process surrounded by the external entities. In other words, it is a top-level view of an information system that shows the system boundaries and the scope. The major inputs and outputs are represented as data flows.xFigure 1 - Context Level DFD

Level 1 DFD DFDs have been used as the preferred modeling tool as it suits the requirement of this system. The notations that are used for the DFD are as follows:Process symbol-A process receives input data and produces output that has a different content, form, or both. A Process can be simple or very complex. But processing details are not shown in DFD. The symbol for a process is a rectangle and the name of the process appears inside the rectangle as shown below

Figure 2 - DFD Process Symbol

Data flow symbol - A data flow is a path for data to move from one part of the information system to another. A data flow represents one or more data items. The symbol for a data flow is a line with a single arrowhead and the name of it appears above, below or alongside the line as shown below

Figure 3 - DFD Data Flow Symbol

Data store symbol-A data store, or a data repository, is used in a DFD to represent a situation in which the system must retain data. The symbol for a data store is a flat rectangle that is open on the right side and closed on the left side

Figure 4 - DFD Data Store SymbolExternal entity symbol-An external entity is a person, departments, outside organization, or other information systems that provides data to the system or receives output from the system. The symbol for an external entity is an oval as shown below

Figure 5 - DFD External Entity SymbolxFigure 6 - Level 1 DFD for Front End

Entity Relationship Diagram (ERD)In software engineering, an entity-relationship model (ERM) is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion. Diagrams created by this process are called entity-relationship diagrams, ER diagrams, or ERDs. (Wikipedia - ERD)ER analysis uses three important abstractions to describe data as follows Entities - Which are distinct things in the enterprise. Relationships - Which are meaningful interactions between the objects. Attributes - Which are the properties of the entities and relationships.xFigure 7 - ERD Diagram

Entity Life History (ELH) An Entity Life History diagram is used to show the sequencing, iteration or timing of an entity. For example take a supporter of a charity for example. A supporter is an Entity within a charity and therefore real world events cans happen to this supporter such as change of address (Database Services)xFigure 8 - ELH

Functional RequirementsFunctional requirements describe in some detail what the system needs to do. The main requirements of the system are divided depending on the two following user logins.System will allow to perform the following functions.Users1. Should be able to create a login for the system.2. Can see basic website without having to login.3. Users should be able to view complete pages.4. Users should be able to view additional details.5. Users should be able to upload content and establish parameters regarding the dynamic deployment6. Should be able to make requests for resolution by AdministratorsManager loginThis user has all the authority to handle the addition and modification of data within the system.1. User should be able to add / edit / delete categories2. User should be able to add / edit / delete sub categories3. User should be able to add / edit / delete pages into sub categories4. User should be able to see page details5. User should be able to fulfill requests placed by normal users6. User should be able to obtain detailed reports7. User should be able to see pending publications.8. User should be able to see completed publications.9. User should be able to approve / reject requests for creation of accounts10. User should be able to categorise users into the relevant groups for special features

Non Functional RequirementsIn systems engineering and requirements engineering, a non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. This should be contrasted with functional requirements that define specific behavior or functions. (Wikipedia - Non Functional Requirements)According to (Cunningham & Cunningham, Inc) Non Functional Requirements have also been called the 'ilities' because they are most simply expressed like this: usability reliability interoperability scalability securityThere are others as well, which can be regarded as: Time to market Cost SpeedFrom a system point of view, the following requirements can be identified:Capacity - Function or database components are designed from the ground up for the volume of data, number of users, and the frequency of access or updates. The system should support for thousands of orders. Speed - When placing orders via the system, the customer should not perceive any delays in the processUsability - Interfaces will need to be easy to use without any formal training; there should be possibility to enter the data with less number of keystrokes. Most users will be new customers who are accessing the website for the first time. The interface should therefore be very simple to useAvailability - The availability of the system should be high. As the hosting is outsourced to a professional in this field, this should not be a major concernAccess - There are some restrictions for certain types of users. All information in the system should not be accessible to those that are only fulfilling orders. Managers on the other hand should have access to all areas.Technical constraints and requirements as most commercial hosting organizations are using open source technologies this means that PHP mysql is the popular platform for hosting these types of systems. This will also help to ensure that operating costs are kept to a minimum.Design constraints - This should include design standards, training materials, operating instructions.Project constraints - There are mainly two factors concerned with project constraints. They are time and cost which are already discussed in the feasibility study.Transitional requirements - As there is no existing computer based system at this organization, this is not a major consideration. The new system can be implemented with ease.Security and back-up - It is an essential requirement to protect the data from unauthorized accessing. In addition it is important to build in system for backing up and storing the system and its data for use in an event of system failure or data corruption. The hosting platform that is being used has automated backup capabilities allowing the critical data to be backed up and offloaded automatically, thereby easing the process.

Users of the System

The main types of users of this system will be1. Customers2. Non customers who simply browse the front-end information3. Data entry operators4. Managers

The system should therefore cater to the requirements of all of these types of users, some of whom are technically capable, whilst others may be considered simply as beginners or novice users.

User Interfaces

The interfaces should be designed in a simplistic manner to enable fast and easy use of the system. Further details of this are highlighted in the following chapter.A sampling of the user interface is given here:xFigure 9 Front end of the system Acceptance Criteria

The basic requirements for acceptance of this system can be outlined as:1. All functional requirements should be incorporated.2. System should be installed using the existing infrastructure, meaning that it should be hosted online.3. User training should be conducted.4. Customers of the organization should be able to complete a sample transaction via the system.5. Customer should sign a document confirming that the system has been implemented as expected.

Chapter 4 The Database

The database is the main store that is used for the purpose of storing, retrieving, and managing the data that is used within this system.MySQL DBMS has been used for the deployment of the database, which is an open source solution that pairs well with the implementation language that was used for the development of this system, which is namely PHP.The definition of a database is a structured collection of records or data that is stored in a computer system. In order for a database to be truly functional, it must not only store large amounts of records well, but be accessed easily. In addition, new information and changes should also be fairly easy to input. In order to have a highly efficient database system, you need to incorporate a program that manages the queries and information stored on the system. This is usually referred to as DBMS or a Database Management System. Besides these features, all databases that are created should be built with high data integrity and the ability to recover data if hardware fails. (TopBits.com)The model of the database can be presented as followsxFigure 10 - Database viewA sample representation of the data tables within the database is as follows:xFigure 11 Table 2

xFigure 12 - Table 3

xFigure 13 Table 4

xFigure 14 Table 5

xFigure 15 Table 6

xFigure 16 Table 7

Chapter 5 Interfaces

What is Human Computer Interfacing / InteractionHuman-Computer Interface Design seeks to discover the most efficient way to design understandable electronic messages. Research in this area is voluminous; a complete branch of computer science is devoted to this topic, with recommendations for the proper design of menus, icons, forms, as well as data display and entry screensAccording to Schneiderman you should use the Eight Golden Rules of interface design:1. Strive for consistencya. Consistent sequences of actions should be required in similar situationsb. Identical terminology should be used in prompts, menus, and help screensc. Consistent color, layout, capitalization, fonts, and so on should be employed throughout.

2. Enable frequent users to use shortcutsa. To increase the pace of interaction use abbreviations, special keys, hidden commands, and macros

3. Offer informative feedbacka. For every user action, the system should respond in some way (in web design, this can be accomplished by DHTML - for example, a button will make a clicking sound or change color when clicked to show the user something has happened)

4. Design dialogs to yield closurea. Sequences of actions should be organized into groups with a beginning, middle, and end. The informative feedback at the completion of a group of actions shows the user their activity has completed successfully

5. Offer error prevention and simple error handlinga. Design the form so that users cannot make a serious error; for example, prefer menu selection to form fill-in and do not allow alphabetic characters in numeric entry fieldsb. If users make an error, instructions should be written to detect the error and offer simple, constructive, and specific instructions for recoveryc. Segment long forms and send sections separately so that the user is not penalized by having to fill the form in again - but make sure you inform the user that multiple sections are coming up

6. Permit easy reversal of actions7. Support internal locus of controla. Experienced users want to be in charge. Surprising system actions, tedious sequences of data entries, inability or difficulty in obtaining necessary information, and inability to produce the action desired all build anxiety and dissatisfaction

8. Reduce short-term memory loada. A famous study suggests that humans can store only 7 (plus or minus 2) pieces of information in their short term memory. You can reduce short term memory load by designing screens where options are clearly visible, or using pull-down menus and icons

Goals of HCI

According to , A basic goal of HCI is to improve interaction between user and computers, by making computers more user-friendly and easier to use. More broadly, HCI is also concerned with : Methodologies and processes for designing interfaces (i.e., given a task and a class of users, design the best possible interface within given constraints, optimizing for a desired property such as learnability or efficiency of use) Methods for implementing interfaces (e.g. software toolkits and libraries; efficient algorithms) Techniques for evaluating and comparing interfaces Developing new interfaces and interaction techniques Developing descriptive and predictive models and theories of interaction

Key points in developing the HCI The HCI development and prototyping was done in parallel to the development of the other modules. Therefore, any changes made to these models can also be introduced into the interface. The HCI design should be portable to suit multiple user platforms. The HCI of a system should be made independent of the other components of the system. This helps to minimize unnecessary complications that may arise. Sometimes, it is recommended that CASE tools are used to design the HCI. The reason for that is the interface designed for a system will often have to be modified during the development or prototyping of a system.

HCI Design Strategy

Given below are the steps that need to be followed to design an effective interface for a system The designer should identify what each user will do with the system, and should design it in such a way that the tasks can be accomplished quickly and easily. Users should be classified according to their skills levels and their positions within an organization. Tasks should be completed by a sequence of commands if needed. The system and user will have to interact with each other in order to accomplish the tasks. The information of the system should be presented to the user in a way that is easy to understand. A prototype can be built to implement the interface design features so that they can be tested with the participation of users where the potential problems can be avoidedIn this specific instance, prototype interfaces were developed and shown to the customer in order to obtain feedback which was then incorporated into the designs. This enabled the development of a high quality interface that satisfied the requirements of all those concerned.

Interface Examples

The entry into the administration system is via the login screenxFigure 17 - Login Screen

The main interface is developed via a combination of HTML, CSS, graphics, and PHPxFigure 18 - Main Interface

Pages that are used to administer the system have been developed with icons to enable easy navigationxFigure 19 Available UsersClicking on the magnifying glass icon reveals the detailed information about that specific accountxFigure 20 User detailsData maintenance screens have been developed to enable quick entryInterfaces that are used for updating and managing information within the system have simple field descriptions to enable easy operation.xFigure 21 - Data maintenance screen

xFigure 22 - More Detailed Data Maintenance Screen

Reports have also been designed to be simple to read and understand by the users and the management as well.xFigure 23 - Sample Report

Chapter 6 Implementation

In the previous Chapter the development of User Interfaces and their functionalities were described. In this Chapter the Implementation of other components of the System will be describedThe purpose is to successfully produce a product, deliver the software to its end users and test a functional system that fulfils the business and design requirements and to implement the interfaces between the new system. This covers the implementation of the suggested design using programming language and database management system. Translating the design in to program code, is relatively a straightforward process.It covers a wide range of activities including: Converting the design into program code. Testing the program code. Developing Database. Packaging the software. Distributing the software. Providing help and assistance to users. Producing a complete document. Providing a fully tested system.The environmentImplementation architecture of the system has been divided into five main categories. Implementation of Development environment Implementation of Database Security implementation Code implementation Documentation

Hardware RequirementsThe basic requirements for the implementation of this system can be given as:1. A web server that can handle the data volumes that would be created by the customers. A commercial hosting service is being used for this purpose.2. Clients need to have a basic configuration which is a Pentium III or similar configuration with high color graphics and an internet connection. No special components are required. Software RequirementsThe following development requirements were chosen for this project due to the requirements stated below.1. PHP Platform neutral implementation language that is very popular on the web. Compatible with a majority of web servers and also has native support for the mySQL database server.2. MySQL 5 Database Server Chosen due to not requiring licensing, and being compatible with the chosen development platform and the hosting platform.3. Any compatible browser This project has been developed to be compatible with any major browser including Microsoft Internet Explorer and Mozilla FireFoxCare has been taken to ensure compatibility with systems that would be used by potential customers around the world.

Security Implementation

The system has been developed with user logins for controlling access to different areas of the system. A certain amount of data encryption is also used.In addition, the server security is ensured by the hosting partner thereby alleviating some of the work from the company point of view.All information regarding client accounts is verified before the customer is given the option of completing a transaction.

Code Implementation

All code was implemented using either Notepad or Adobe DreamWeaver. Auto generated code was not used. Standard naming conventions were used and the code was implemented via structured coding methodologies.The following code is highlighted as a representative sample.

Chapter 7 Testing

There's no other industry where shoddy products are sold to a public that expects regular problems, and where consumers are the ones who have to learn how to fix them. If an automobile manufacturer has a problem with a car and issues a recall notice, it's a rare occurrence and a big deal and you can take you car in and get it fixed for free. Computers are the only mass-market consumer item that pushes this burden onto the consumer, requiring him to have a high level of technical sophistication just to survive. Bruce Schneier - OverviewTesting is a process aimed at finding defects that demonstrates the lack of quality and difference between the specifications and the developed system establishes confidence in the product offers advice regarding the quality and risks.

Figure 24 - The testing process(Extracted from www.siritech.com)There should be a test plan to meet the success of the working system for the customer. Test plan should carry out as step by step process as follows. At first - list the things that need to test with objectives Decide what test data need to setup in order to test all the relevant conditions. Produce a script/steps to carry out Define the expected results Document the actual resultsMain objective of test plan is to guide in the testing process, highlight the resources, find the time requirements for testing and, to explain the nature and extent of each test that is carried out. The technical effort required during testing depends on many factors such as: The number of logical paths Number of computation Nature of input data Robustness of algorithms

Due to complexity in the internal structure and the logic of the program, White box testing was used with black box testing.It should also be noted that the overall purpose of testing is to deliver the system that meets all user requirements. The System has been tested in the users environment and also usability of the system was considered during testing. This required the system to be hosted on a web server and being accessed from remote locations via the web.

Testing TypesThere are several types of testing that are conducted during the life of this project. This is essential for the purpose of producing a well performing system Unit TestingIn computer programming, unit testing is procedures used to validate the individual units of source code are working properly. A unit is the smallest testable part of an application. Unit testing falls within the scope of white box testing

Figure 25 - Unit test types(Extracted from IBM.com) Integration TestingOne of the most significant aspects of a software development project is the integration strategy. Integration may be performed all at once, top-down, bottom-up, critical piece first, or by first integrating functional subsystems and then integrating the subsystems in separate phases using any of the basic strategies. In general, the larger the project, the more important the integration strategy.National Institute of Standards and TechnologyThis is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing and precedes system testing.Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates and delivers as its output the integrated system for ready for the system testing

Figure 26 - Integration testing(Extracted from nist.org) System TestingSystem testing is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic

Figure 27 - Testing ProcessBlack box testing takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, usually functional. The test designer selects valid and invalid input and determines the correct output.White box Testing uses an internal perspective of the system to design test cases based on internal structure. It requires programming skills to identify all paths through the software. The tester chooses test case inputs to exercise paths through the code and determines the appropriate outputsThe following types of performance tests have been carried out in the system. Time testing To evaluate the requirements dealing with time, to find out the time to perform a function by the user. Quality test To evaluate system reliability, maintainability and availability. Environmental test To look at the systems ability to work at the installation site. Recovery test To evaluate the system response to the loss of data, power, devices or services. Documentation test To ensure required documentation are written. Human factor test To investigate requirements dealing with the user interfaces to the system.The final level of testing is the acceptance testing that is carried out by the end users of the system to ensure that all required features have been incorporated into the system. What is a test case?

Test case is a set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.

A sample of a test case format is given belowTest Case NoTest CaseExpected ResultActual ResultTest Status

1

2

3

4

5

Chapter 8 Conclusion

How the System is evaluated from the Clients perspective and the developers perspective are discussed in this chapter. Ideally, the best persons to do this are the designer and the author of the system. Whereas the developer knows exactly what has been done in the lifetime of the project and what has been avoided, the users should ideally be interviewed to obtain their views. However, this is out of the scope of this project and hence the feedback of only the Author is included. Results of the Project

The major goals and objectives were achieved by the system, and the system has been implemented in the real environment to make its function. Users are getting familiar to the system as user manual and training was provided. Ultimately, the project can be termed as a success, due to the fact that the system has already started to generate additional users / customers for the company. Objectives Vs Achievements

In general the total project happened to be an own work. Specifically the requirement analysis, system design and implementation had been the main area of the work. It gives the opportunity to learn a great deal of information about the business area and helped to obtain hands-on experience of developing a business solution by making use of the available resources and technologies. There had been enough difficulties of performing activities and achieving targets in relation to the time scale and the budget.Most objectives were implemented without great difficulty, although there were certain areas where underestimation had been done. These were generally overcome with planning and perseverance.

Lessons Learnt & Critical Appraisal

There were several lessons that were learnt, and a basic understanding of them is as follows:1. X2. X3. xUltimately, the project can be termed as a success as all areas have been addressed, and the theory that was learnt during the course work was successfully incorporated into real life via the practical development of this Information System.

References

Wikipedia, Entity-relationship model,http://en.wikipedia.org/wiki/Entity-relationship_modelDatabase Services, Corporate Website, http://www.databaseservice.co.uk/elh.phpWikipedia, Non Functional Requirements,http://en.wikipedia.org/wiki/Non-functional_requirementTopBits, What is a Database,http://www.topbits.com/what-is-a-database.htmlUniversity of Washington Faculty Pages, Shneiderman's Eight Golden Rules of Interface Design", http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.htmlNationmaster, Human computer interaction, http://www.statemaster.com/encyclopedia/Human-computer-interactionNational Institute of Standards and Technology, Integration testing, http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235Strategic Management and Business Policy Ninth Edition, Thomas L. Wheelen et al, Pearson Education, 2006Information Systems Management in Practice Sixth Edition, Barbara McNurlin & Ralph Sprague, Pearson Education, 2004

Appendix A Database Samples

Details of the database structures were presented in the main chapters. This area provides a sampling of the data that is stored within the system

Appendix B User Documentation

The objective of preparing the user documentation is to enable the user to perform the operations that are required for the effective operation of the system. Given below is a representation of the type of documentation that was provided to the end user, as the entire manual is too large to include here.