Many IT companies faces problems in allocating the problems at the sites to the engineers, which results in missing problem before dead-line date given by contracted companies. Currently the allocation of the engineers to the problem sites is done manually, which normally takes long time and sometimes creates confusion for the allocator in allocating the call.
The Call Allocation System allows allocator to allocate the problem automatically to the engineers and sends the notification to the engineers about their calls. Automation results of the problem results in more accurate allocation of the problem and less time consumed for the allocator. Once the problem site is fixed the engineers can close the call using the website or call the help desk at the head office. Engineers can also orders a part through website needed at site to fix problem.
ASP: Active Server Page
CAS: Call Allocation System
CASE: Computer-Aided Software engineering
CSS: Cascading Style sheet
DBMS: Database Management System
DSDM: Dynamic System Development Method
ETA: Estimated Time of Arrival
GUI: Graphical User Interface
HTML: Hyper Text Mark-up Language
HTTP: Hyper Text Transfer Protocol
IIS: Internet Information Services
IT: Information Technology
JSP: Java Server Page
ODBC Open Database Connectivity
OOP Object Oriented Programming
ORDBMS Object Relational Database Management System
PDA: Personal Digital Assistant
PHP: PHP: Hypertext Pre-processor
RAD: Rapid Application Development
SDLC: Software Development Life Cycle
SLA: Service Level Agreement
SQL: Structured Query Language
UML: Unified Modelling Language
The COMSO is computer hardware and IT services company. The company has it's headquarter at Bracknell, which cover south part of England. The company has gained many contracts with other companies regarding IT services. At Present company has 40 field engineers which fix problems at the sites with a team of 4 engineers in one county. These problems are allocated by the team of allocators at the head office which then notifies the engineers about problem sites.
When a call is logged in the head office by the problem site, the allocator manually allocates the call to the engineer and sends a notification to the engineers about the problem site. The allocated field engineer visit sites to analyse the problems and orders the part if needed. The engineer reports the problem to help desk and give their real-time timings at the site along with their journey time and closes the call. The real time here means that engineers should give their correct timings of fixing problems instead of false timings. Allocator then reallocates the call to same or another engineer to serve the problem, while part will be delivered at the site. Problem is reallocated to different engineer if the current engineer can not fix the problem. If the problem is not fixed at site before deadline then penalty will be applied on the COMSO according to the contract with other companies.
1.1 Need improvement
The company needs some improvement in its software so as it should allocate the problems to engineers automatically. The automation of allocation is done in the system itself. Firstly, the problems logged in at the head office will be sorted according to the priority of the problems. Then these problems will be allocated to the engineers with high priority first then less priority. Engineer attributes such as location, experience and training are compared with the problems at the problem sites. The closest match engineer with the problems will be allocated to the problem site. All engineers will be allocated same amount of problems.
The web application is needed for the company so that engineers might know about their problem site schedule before hand and they can make journey according to it. Engineer can also view map of location of the problem sites. Ordering a part and closing the call can also be done in web application. Company latest news and meeting announcements are displayed in the web application as well. The company keeps the record for real times of engineers to solve the problem and a weekly copy is send to the manager. The other forms of notification will be email, message at PDA, SMS or calling individually.
The aim of the project is to create a system that will maintain highest Client Service Standards for COMSO Company by understanding calls from the problem sites, notifying engineers and ordering parts through automated Call Allocation System (CAS).
The Objectives of the project are as follows:
Analyse the current system of Comso Company which identifies their problems.
Conduct interviews and questionnaires with the engineers who are using similar system, to find out how efficient their system works.
Research and choose the most appropriate programming language, technology and methodology in order to allocate calls efficiently.
Produce a Graphical User Interface (GUI) and Database Design for the web application and System.
Implement system with software which will automate process of allocation of the calls to engineer and a web application for the engineers to view calls schedule, ordering parts and closing call.
Establish a test plan, develop test data and execute the tests on the system, logging the result.
Evaluate the system according to test results, by aims and objectives and chosen methodology.
Conduct the feedback session for further improvement for the system with Comso engineers.
1.4 Project Scheduling
Aim and Objectives
Chapter 2 Background Research
Background Research plays a vital role in the project. The chapter explores the background research carried out in order to select the most appropriate working methods, programming language and technology for the completion of the project. Interviews and questionnaires will be conducted with the engineers working on similar systems. At the end of this chapter conclusions are drawn based on chosen methodology, programming language and technology.
Chapter 3 System Analysis
In this chapter an analysis on the existing working systems is to be done. Problems related with them are reviewed. Conclusion will be drawn from interviews and questionnaires conducted with the engineers working on similar systems. System requirements will be gathered and will be presented in a structured manor. Evaluation of the system analysis will be done at the end of the chapter.
Chapter 4 System Design
This chapter will contain all the necessary preparation that will be required in order to make the implementation phase of this development as easy and efficient as possible. System design will include both Database Design and User Interface Design. Database design will be generated and presented. User interface design for both web application and software should be easy to use, cover all interface standard, these will be mentioned and User Interface design are created in it. There should be link between all three i.e. web application, software and database.
Chapter 5 System Implementation
The chapter will produce the documented system into a working system. Actual coding is implemented in the system. The chapter will cover explanations of the build systems, identifying the building process and its final functionality and appearance. A Graphical User Interface (GUI) design for the software and web application will be implemented. Software will be developed so that it will automate the call allocation to the engineers and notification of calls to engineers will be done. The automation will be a smart process. The software will pick up all key points from the call and then matches with the engineer's information. The engineers with the closest match will be allocated. Web Application will also to be implemented so that engineers can view their calls schedule, order parts and close their calls. System implementation will cover all the functional and non-functional requirements of the System.
Chapter 6 System Testing
In order to ensure that all aspects of the system's implementation have been successful, system testing is necessary. Numbers of different types of testing will be done to ensure that system is fully functional. The chapter will detail all the test plans and test data will be created in order to check the efficiency and working of the system. The tests are then executed on the system in order to find any errors or problems with the system.
Chapter 7 Evaluation
Evaluation is an analysis of the success of the final solution. Appropriate evaluation criteria will be outlined in this chapter, in order to produce a thorough evaluation of the system. The categories of evaluation might be as follows:
Evaluation against project aim and objectives.
Evaluation against other existing systems.
Evaluation against the functional and non-functional requirements.
Evaluation against the testing.
Chapter 8 Conclusion and Possible Enhancement
The chapter will summarise the whole project. Future scope for this system will be described. Possible improvement or enhancement needed for project will also be described.
2.1 Technology Review
The Technology Review is based on information that relates to the project. Different types of books, articles and web sites have been researched.
2.1.1 Server-Side Technology
Many technology and languages can be used to implement websites and web-based applications. For the application to be developed for this project, technology should be decided whether it should be server-side or client-side technology. Major difference between both is that server-side technology take place on the server while client-side technologies are carried out on the client computer in the browser itself.
Liu suggest that for creation of dynamic web sites, server-side technologies are most appropriate as it carries out more complex functions such as accessing databases. [Liu, 2006] Due to this fact of more supporting for dynamic applications and ability to carry out complex functions, server-side technology will be used in this project. Some of the scripting languages are discussed below:
PHP is hypertext pre-processor, scripting language which is embedded with HTML for producing dynamic and interactive web pages. The appearance of the Web Page can be implemented with HTML and CSS. Parse engine at server reads the PHP code and only relevant HTML code is sent to the browser. This means that client can not see any PHP code hence increases security and also they don't need any special software installed on their systems to handle codes.
Zandstra states that "PHP shows solid performance with other server scripting languages such as ASP, Perl and JAVA servlets, in benchmarks tests." [Zandstra, 2004] It has been used by many large corporations such as Yahoo, Facebook, YouTube and many more. PHP is also easy to understand as compared to other complex scripting languages. [Valade, 2004]
ASP stands for Active Server Pages. ASP is one of the leading choices for Web Developers for building dynamic websites because of its flexible scripting via several languages [Ruvalcaba 2004]. ASP is an open source and runs inside the internet information services (IIS).
In security point of view ASP code can not be viewed from the browser hence becomes main advantage. It is only compatible with Microsoft products, unless third party add-ons are installed. ASP primarily supports two scripting languages: JScript and VBScript.
Java Server Pages are freely available Java-based technology. Like ASP, JSP is also an open source. JSP supports only Java code, not a new scripting language. JSP is an alternative to ASP and also performs better than ASP on certain criteria [Mahmoud 2001]. The disadvantage of JSP is incompatibility with XML and does not have any compiler checker which makes JSP prone to errors. JSP is supported by various application servers such as BEA's WebLogic and IBM WebSphere.
2.1.2 Database Technology
Goldberg and Deitel states that "A database management system DBMS provides mechanisms for storing and organising data in a manner that is consistent with the database's format." [Deitel and Goldberg, 2004] Relation database management system is the most useful method to store and handle data. Many companies offer comprehensive commercial grade storage for many years used by large corporations such as Microsoft and IBM. Even though these solutions are extremely robust and well tested, they are only feasible for projects with large budgets hence can not be used in this project. Some of the others database options are as follow:
MySQL is cross platform, open source and multi-user SQL relational database server. Due to its wide compatibility and frequent use with PHP and visual basic, MySQL has become natural choice for choosing as database technology. Many industries such as Yahoo and Google adopt MySQL to handle their database. [MySQLAB, 2010]
Valade states some advantages; "SQL is fast, easy to use, inexpensive, customisable, support large database, secure and can run on many operating systems" [Valade 1999]. MySQL can run on most of operating systems, such as Windows, Mac OS and even UNIX. MySQLsupports both transaction and non transaction data, it also allows rollback of transactions in case of errors.
Microsoft access is an easy to use database technology that allows users to create databases and tables quickly. Usage of Microsoft access in large businesses is less because of its limited database size of 2GB only but it is widely used for small businesses. It allows users to retrieve data from other external databases and spreadsheets via its ODBC capabilities [Dragan 2005].
Oracle is an object-relational database management system (ORDBMS). Oracle supports the index-organised tables hence performance of tables are increased. Oracle has better user management and security for larger enterprises. Oracle makes the most sense where huge volumes of complex data are used.
2.1.3 Programming Languages
C++, general purpose programming language, supports data abstraction, object oriented programming (OOP) and generic programming [Stroustrup 2009]. Generic programming along with OOP simplifies the reuse of code and provides the technique to abstract general concepts. It provide tools for doing common tasks such as sorting data or merging lists [Prata 2001]
C# is a modern object oriented programming language developed by Microsoft based on C++. The Advantages of C# are similar to Java; C# provides functionality such as automatic garbage collection, exception handling, type-safe design, flexibility, reliability and security [Drayton 2003]. It supports component-based programming where software design can be disintegrate to software components in the form of self-contained and self-described packages of functionality.
VB is an event driven programming Language that works along with the .Net framework. VB has a simple structure and easy to use. Programming in VB involves arranging the components on a form using drag and drop tools. The main disadvantage of VB is that it runs on only windows operating system [Vick 2004].
2.1.4 Web-Server Technologies
For every page requested by the users, web-based application needs the use of a web server to respond to user requests. For example, when a user enters a web address into a browser, it is web server that searches and displays result on the browser [Deitel and Goldberg, 2004]. Web server plays a vital role in creating web applications; hence the project will need a web server. Some of the web servers are discussed below:
Internet Information Services is developed by Microsoft. Hence it is compatible with other Microsoft products and technologies. Clyman state that "IIS is hard to beat when it comes to price, performance and features". [Clyman, 2002]
Previous versions of IIS lacks in security which lead IIS vulnerable. Due to this more than 359,000 computers running IIS were affected by computer worm called code red worm within 14 hrs [Moore and Shannon, 2008]. Security measures have been enhanced in newer versions of IIS. Also it has been claimed that newer version of IIS is easy to use and install [Yuen and Lau, 2003]. In April, 2011, a web servers survey was done which shows IIS host around 18.83% of all active websites on internet, that have been declined by 0.52% as compared to earlier survey in March, 2011 [Netcraft, 2011].
Apache HTTP Server is developed by Apache Software Foundation. It is an open source which supports several operating systems such as Windows, Linux and programming languages such as PHP, Python, and Perl [Apache Software Foundation, 2011]. Apache is highly popular because of its functionality and performance. Although Standard Apache does not include SSL (Secure Sockets Layer) but it is available via third party add-ons.
In April, 2011, a web servers survey was done which shows Apache holds a top position and host around 61.13% of all active websites on internet, that have been increased by 0.82% as compared to earlier survey in March, 2011 [Netcraft, 2011].
Methodology varies with different projects; it may be appropriate to one project but may not be suitable for another project. Software development software is defined by the Office of Information Services in USA as a "framework that is used to structure, plan, and control the process of developing an information system." (Hughes, B. 2004) Software Development Life Cycle (SDLC) is a cycle for whole of software development process. The US Department of Justice identifies SDLC to fulfil objectives such as reduced risks of project failure, identification of technical and management issues. [United Stated Department of Justice, 2003]
For the project to be success, effective methodology should be chosen and should stick to it for whole project. The Standish CHAOS made a survey on numerous projects in 2009 and concluded in their report that only 32% of projects were a success, 44% of projects were challenged and 24% of projects were failed. Challenged represents delayed, over budget or did not deliver the expected level of functionality. [Dominguez, 2009] These negative statistics depicts poor project management.
Main reasons for many projects leads to failure is that effective methodology is not chosen and project is not stick to the methodology till end. To avoid the software development element of this project becoming a part of these negative figures, effective methodology will be chosen and stick to it throughout the project. Some of the software development methodologies are as following:
Rapid Applications Development (RAD)
RAD focuses on development of application within short timeframes, reflecting the needs and in support of rapidly changing business [Fitzgerald 2003]. Iterative approach is used by RAD and consists of four phases; requirements planning, user design, implementation and testing. It uses time-boxing techniques to speedup development.C:\Users\Singh\Desktop\rad.gif
Re-visiting and re-working stages is vital part of RAD to develop a high quality system. Multiple iterations of same features and new function can be [Spiralabs, 2011]
added to improve system. RAD uses prototypes in development process. Disadvantages are also related RAD methodology; firstly documentation is not very detailed while carrying out iterations as its main purpose is to develop software and not documentation. Secondly, it is hard to predict duration of the iteration process for each element. Hence it is difficult to generate a clear project schedule.
Dynamic System Development Method (DSDM) [mizu,2010]C:\Users\Singh\Desktop\dsdm_logo.png
DSDM inherits techniques from both incremental and iteration methods. Once the iterations are completed for particular element, it then moves to the next feature.
There are three major elements in DSDM; Pre-project, project lifecycle and post-product. The project lifecycle stage contains some common techniques that other methodologies also incorporate such as feasibility study, design and implementation. (Stapleton, J. 2003) DSDM includes a list of principles at its centre which govern the way the methodology is used. Examples include that testing is integrated throughout the life cycle and active user involvement is imperative. The main disadvantage of this type of methodology is that it requires significantly more of user interaction, which is unlikely to be able to achieve this level of commitment from busy students as they will be the end users of the system.
Ambles state that "Agile Modelling is a practical-based methodology for effective modelling and documentation of system" [Ambler 2002]. Agile Modelling is a set of guidelines to be taken into consideration when undergoing a development instead of actual development. The documentation in agile is less and to the point. The main disadvantage of agile methodology is that it lacks focus on designing and documentation hence the project can easily is distracted if customer requirements are not cleared.
2.2 Conclusion on chosen Technology
2.2 Requirements Gathering Technique
Fact finding techniques used by analysts to capture and investigate user requirements are collectively known to as SQIRO and are described in the following section:
Sampling refers to the collection of sample or completed documents during the course of interviews or observation sessions. It also describes how documentation is involved in the process can be used to understand the working of system.
COMSO weekly report on problems is showed by engineers in the interview stage. Engineer explained the fields in the problem report. But due to security reasons he has not given the weekly report to me. This will be helpful in actual implementing the system.
Questionnaire provides an effective way of gathering information and data from several people. However it is very efficient technique but to gathers the information we needed, questionnaire can be difficult to form. Kendall states that questionnaire "allow analysts to study attitudes, beliefs, behaviour and characteristics of several key people in the organisation who may be affected by the current and proposed systems" [Kendall and Kendall, 2002] Once questionnaire is completed data and information gathered can be analysed and collated.
Questionnaires are designed for the engineers to gather and analyse information. The main purpose of it is to get an idea of what engineers wanted in the new system. It consists of multiple choices, open and close end questions. The information gathered from the questionnaire is discussed further in section
Sample of questionnaire is in Appendix
Interviewing is one of the most widely used 'fact finding techniques'. It involves a face to face meeting between an analyst and interviewee, which enables the analyst to capture more detailed information about the system. A set of fixed questions are created for interviews or the interview can be done to cover a certain part of the project. The only disadvantage of interview technique is that it is more time consuming and costly for the interviewee.
Interview transcript can be seen in appendix
Face to face interview was conducted with one of the engineer working in central London area and answered all my queries about current system. Interview transcript is build and describes all the information related to the system. Personal information and greetings are not shown in transcripts. Working of the current system and problems related with the current system were established through the interview with engineer. The information assembled from the interview with engineer is discussed further in section
In Research technique, background of the company is researched and overall knowledge of current system is gained. It is mostly used when the analyst has a limited understanding about the company. Company reports, existing systems documentation and policies are used to gain knowledge and understanding about the company background. Main disadvantage is that it doesn't help in defining the problems related with the system.
As interview with COMSO engineer has been done which provided data and information about the working of the current system therefore research technique is not needed for analyst in the project.
Observation is the last technique which enables clarification of knowledge gained. It involves observing people carrying out their normal day to day routine work. It helps to determine the flow of information and in depth experience of working system. Using this technique some of new information can be gained which was not captured during the interview stage. Likely drawback of this technique is that some people alter their working practices because they know that they are being watched.
The whole process of allocating the problems to engineers and engineers responding back were observed. One of extra observation made which the engineer has not told me that sometimes the engineer after finishing the problems give the fake timings to close the call. Fake timing means the engineer does not give the correct times to complete the problems instead they make up times. Hence useful information is gathered by combining the interview and observation stage together
Systems Analysis is essential as it is used to analyse the current system in detail to determine the requirements of the new system (Bennett et al) . This phase must be completed before comme3wncing onto the first iteration stage. This chapter will include a feasibility study to determine whether it is feasible to carry out the project given the available resources, followed by a discussion on the data gathering techniques that could be used to collect the data for analysis purposes. Furthermore, a detailed examination of the current user practices will fully utilise the requirements gathering techniques to help establish the exact needs of the proposed system.
3.2 Why do Systems fail?
A number of projects fail at the analysis stage of software development and it is important to look at these causes of failures so that the analyst can learn from these mistakes. One of the common problems that occur is the lack of resources such as time and money. This results in the objectives and requirements not being defined fully. This is usually applicable in large scale projects and so it is not as relevant when building a small scale project for a relatively small company by a single analyst.
Another common problem is the lack of user involvement which results in a lack of communication between the analyst and user, thus an inaccurate definition of business needs of the user can occur. The analyst must ensure that the user is involved at the beginning and ending of each stage (as is possible during the Prototyping methodology). Communication must be frequent to ensure that requirements are accurate and are met. A further problem that can occur is the lack of training which means that the
user will be unable to use the system properly. This can be resolved by the analyst by providing training as well as a user guide with a troubleshooting section.
3.3 Questionnaire Results
Questionnaire were given to the engineers working in COMSO and similar company. The questionnaire was based on the interview done with the engineer. The main puspose of questionnaire is to get an idea about what engineers think about current system and changes they want in the new system.
Questionnaire Sample can be seen in Appendix.
Following are the results from the engineers questionnaire.
The bar graph depicts that most of the engineers, 7 out of 10 think that there is problem with the current system while 2 out of 10 thinks, the current manual system is fine. Engineers have specified the reasons that sometimes call are allocated to them to which they are not trained, mostly missed SLA (according to which engineers have to complete the call before SLA.), calls not updated, time consuming closing of calls.
The above question was asked to find out how far engineer has to drive in a day to fix problems. It is clear that most engineers have to travel around 70-100 miles in a day. While 3 out of 10 have to travel 100+ miles in a day. It seems that the company sends engineers to other county to fix a problem. Instead they should send the engineer who is nearer to the problem site. This leads to the problem in the current system which can be rectify in the new system.
The pie chart represents how many engineers have been allocated to a problem for which they are not trained. Around ¾ of the engineers says yes they have been allocated to a problem to which they are not trained to. This is another problem of wrong allocation by current system
The pie chart depicts that most of engineers use phone services to order part and to close problems. While others use PDA and SMS but no one uses online services. From interview with engineer it came to know that company doesn't have any online service. All engineers have laptops with internet connection, with help of which they fix problems at problems site. So it will be easy to order part or to close problem through online service rather than calling them on phone. Even sometimes they have to wait for the help desk to get free. So new system will have online services for engineers to order parts and close problems.
The questions below were asked to the engineer that what rating they want to give to the current system. 1 is the excellent and 5 is bad. Most of engineers give 3 as rating says it an average but 3 out of 10 says it is near to bad and give rating 4. From this result it shows that engineers want a new system which can allocate the call more accurately.
After the questionnaire ha s been done the data and information are collated. Results show that most of the engineers found the current system inappropriate due to wrong allocation done by the resource allocator, who allocates the problem and they prefer to have a new system which will allocate the problem more efficiently.
3.4 Current System
The SQIRO technique was used in background research chapter for researching the current system. Overall result of using technique was very useful in understanding the working of the current system and gathering of information about the current system.
Through interview (in appendix) the actual working of the current system was known properly. The company at present have 40 field engineers who cover the problems at problem sites. Each engineer has been allocated an area by their manager. The site which has IT problems is known as CALL by company. The COMSO Company has contract with other companies (clients) for which they fix IT problems. The contract is known as SLA (Service Level Agreement) in terms of company. SLA is different for all the companies and it has fixed period of time before which the engineers has to complete the call. If engineers don't finish the call before the time period than SLA is missed and company will be charged penalty.
The client logs the call for problem site in the resource allocator office. The allocator saves the call in the system and takes all necessary details from the client. Then allocator manually allocates the problem to the engineer how is available and nearest to the site. A notification is then send to the engineers about there calls. Same process is done for all the calls when logged in by the clients.
The engineers receives calls on its PDA (which is device used by company to notify engineers about calls). Then allocated field engineer visit problem site to analyse and investigate the problems and fixes the problems. If part is needed at the problem site then engineer has to phone the resource allocator for ordering part as currently there is no facility to order the part from PDA or any other device. Problems at site are reported and to close the call engineer gives their journey timings to the site and their arrival and departure timings from the site. Closing of call is mainly done on phone as it is the easy process rather than using PDA to close the call which is more complex. Resource allocator reallocates the call to same or another engineer if the problem is not completed and the part will be delivered at the site. Call is reallocated to different engineer if the current engineer is not available. The call and part orders reports are generated for the manager.
Using the System Modelling technique, Appendix D includes activity diagrams (to show transition between activities).
3.5 Problems with the current system
The current system has the following drawbacks has been evaluated from the interviews and questionnaire with the engineer:-
As allocation of call is done manually to the engineers by resource allocator hence it is a time consuming and lengthy process. The resource allocator has to look for each engineer's attributes to match with the call. Nearest match will be allocated to the call.
While undertaking allocation manually sometimes errors can be generated by the resource allocator, which results in inappropriate allocation and waste of company resource. Errors can be
Allocation of call to engineers who is not trained to perform the call.
Engineers have to go miles to complete the call in other area.
Two or more engineers are down on same street.
Two engineers have been allocated the same call.
User interface of the current system is complex and hard to use. Special training is needed to use the system and how to allocate the call to engineers.
There is no facility to order a part for problem site through PDA or any other device. Engineers have to phone the resource allocator to order part and sometimes the resource allocators are busy with other engineers so the engineer has to wait till resource allocator is free.
Due to inappropriate allocation, various SLA are missed by the engineers. For every SLA missed, the COMSO has to give a heavy penalty to other company and also COMSO reputation also going downfall.
There is no online facility for engineers to view their calls for day, order parts for problem site or close calls.
Sometimes calls are not updated on PDA, this leads to problem for the engineers as they have no idea which calls they got on them, where it is located and what is the call priority.
As there are no trackers in the engineer's cars hence some of the engineers make up the timings for completing call while closing the call. They don't give there real times of completing the call.
No order tracking system is available in the current system. So engineers have no idea when the part will arrive at the site. They have to wait outside the problem site for the part to arrive, which leads to waste of resource and engineers time.
3.6 Requirement analysis
The requirements for the new system have been captured by using SQIRO technique and can be seen below in Table 3.6. Requirements have been categorised as 'Priority' (A) and 'Less priority (B). Classification of requirements can be advantageous afterwards in the project as they can help to decide which requirements are of higher priority and which are not thus can be left out [Yeates and Tony, 2004].
Two actors i.e. system user and engineers were founded in the system. Table 3.6. shows the list of the functional requirements needed in the new system and website application for engineers. Non-function requirements "describe aspects of the system that are concerned with how well it provides the functional requirements" [Bennett, McRobb and Farmer, 2002]. Non functions requirements are more related with the quality of the system.
Function Requirements for system user
Ability to login authorized users into the system
Ability to add new calls
Ability to view all calls
Ability to sort calls
Ability to edit and delete calls
Ability to allocate the calls automatically
Ability to order parts for call
Ability to modify the part orders
Ability to close the existing call
Ability to generate calls and orders reports
Ability to view orders
Ability to track orders
Ability to send notification about call to engineers
Ability to auto logoff the system
Ability to reallocate the call to engineer
Functional requirements for engineer
Ability to login authorized user into website
Ability to view calls for current day
Ability to view maps for the call location
Ability to close a call
Ability to order new parts
Ability to view latest news about company
Ability to sort the calls
The system must include ease of navigation throughout.
The system must use secure login to prevent unauthorized users to gain access.
The system should have high performance for searching the database and for allocation of calls.
The system must be user-friendly and intuitive
The system should be easy and cheap to be maintained.
The system should have consistency in its procedures.
After gathering and collating the user requirements for proposed system gained from the system analysis chapter, this chapter will focus on the designing part of the proposed system.
Modelling is the main part of all the activities in the system that results in deployment of excellent software. For this project UML modelling is chosen as a modelling technique used to build software. "UML is appropriate for systems ranging from enterprise information to distributed web-based and even to hard real system." [Grady, James and Ivar, 1999] UML uses various views which depict the functionality of the system. The main reasons for choosing UML as a modelling technique are as follow:
UML Language is easy to use and easy to understand, which uses simple notations.
UML Language is the centre of system which describes all the aspects used in the system.
Each element used in UML has been defined with clear understanding; hence the system can not be misunderstood.
UML language is suitable for both small projects as well as large projects.
UML has been serving the object-oriented community for more than 15 years. Hence it is one of the experienced modelling language.
For UML language to interpret, ARGOUML software is used to make Class diagram, Use Cases, Sequence Diagram and UML diagram. It is active open source software which offers working tools to draw all UML activities. The main feature of ARGOUML is that it fully supports all the object oriented techniques and diagrams are easy to draw and easy to understand. It also has facility to generate codes and reverse engineering. From these features of ARGOUML I decided to use this software to draw all UML diagrams.
The database used in the CAS (Call Allocation System) and website are same. Both the system has access to same database. Through the system analysis and user requirements, the class diagram is made which can be seen in appendix. This will be helpful for designer in deciding which data will be stored in the database and best way it can be organised. Also in bearing in mind the system inputs, outputs and requirements and the best way it can be organised.
Admin (admin_user, admin_pass, firstname, lastname, admin_telno)
Primary key amin_user
Allocation (allocate_no, call_no, enggid, allocate_date, allocate_time)
Primary key allocate_no
Foreign key call_no references Problem(call_no)
Foreign key enggID references Engineer(enggID)
Closeproblem (close_no, allocate_no, problem_status, engg_note, reachsite, leftsite,
stjourney, endjourney, problem_time, problem_date)
Primary key close_no
Foreign key allocate_no references Allocation(allocate_no)
Contract (contractID, company_name, startdate, expdate, callpriority, overcharges)
Primary key contractID
Engineer (enggID, enggpass, firstname, lastname, engtel, address1, address2,
currlocation, training, available, sys_engg, nw_engg)
Primary key enggID
Problem (call_no, admin_user, contractID, call_desc, location, location_telno, call_date,
Primary Key call_no
Foreign Key admin_user references Admin (admin_user)
Foreign Key contracted references Contract(contractID)
Part (partID, allocate_no, part_name, part_desc, quantity, order_status, order_date,
Primary Key partID
Foreign Key allocate_no references Allocation(allocate_no)
New problem/call added
Added into allocation table
Failed to complete
View engineer table
Send notification to engineer
ID not valid
<<builds>> <<link>> <<builds>>
CloseCall:submit <<link>> <<submit>> <<link>>
Interview with Harry
Jashan: I got many questions in my mind regarding allocation of problems to engineers.
Jashan: How far you have to go to fix problems.
Harry: Whole UK is divided into regions and I work in Central-London. We are expected to cover 25 miles radius. Sometimes we do go outside our areas if the other region is busy or if someone has called in sick to cover calls.
Jashan: Do you have deadline to fix problems?
Harry: We have to do every effort to fix and close call. Every customer has individual agreement, and we call it SLA service level agreement some have 4 hr, some 8 hr, 12 hr and some end of next working day. We have to close calls within SLA when the call is logged otherwise every SLA we miss customer impose financial penalty on the company, so we are constantly engage with our desk and customer to resolve call. Sometime we even have to go beyond our shift to carry on resolving issues depending on impact on customers business.
Jashan: Do you like the type of allocation done by resource allocators?
Harry: No we have poor allocation as sometime allocators do not look at problems, there address and post code they just allocate to anybody, by doing this sometime they allocate two engineers in same area and sometime same road. Which is a waste of resource they could have used other engineer on some other call because of this we miss lot of SLA,s and problems are not covered in time
Jashan: Are you being trained for the calls allocated to you?
Harry: We are multi-skilled engineers we are trained and accredited on majority of our contracts. The reason behind this is that if another problem comes in the same area where the last job was completed engineer should be able to cover that problem resource controller doesn't have to find another eng. Biggest benefit for doing this is there is less time wasted
Jashan: How you get notified about calls for the day?
Harry: Every engineer has been allocated a PDA. In the morning engineer logs on to his PDA and download all his call he then goes through every single call and accepts them, Once he accepts and check SLA he en routes that call, and try to complete within time
Jashan: How do you order parts?
Harry: Once a call is looged it first goes to our first line support they will check and put recommendation eng will go there and diagnose if parts needed he will call support from site and order parts. Support will put part no and the call is passed back to allocators they will oredr parts to site or ask eng to collect from parts store, eng will use recommended parts and resolve the call
Jashan: How do you close calls?
Harry: We are provided with a PDA. We normally close call on them. But sometime we close call with our dedicated call closure desk for number of reasons i.e working in data centre where we are not allowed to use any phones or PDA, we are in a bad reception or our PDA not working.
Jashan: What changes would you like to have in new system?
Harry: To make this system more efficient the allocation process of the problem should be allocated automatically depending on different criteria. We should install vehicle trackers in engineers cars so the allocator have information about engineers, so they can use resource more effectively they will provide more accurate estimated time of arrival (ETA) to customers. We should find out ways where when we order parts we should be able to track them, that way customer is provided with a estimated time of arrival (ETA) and resources would be utilized better. With our current system sometime parts don't turn up and engineers are normally waiting onsite for parts
Jashan: Do you like to have allocation to be done automatically by the system for engineers?
Harry: I think that's next step it would be better if we have automatic system in place that way resource controller would be spared bit of time, in that time they scan chase parts, update customers, update engineers.