Professional Documents
Culture Documents
Module Code & Title CE00003-2-PPSP Cohort HF11B1SE Date of Submission 28th May 2012 Instructor Ms.Nadeera Ahangama
Submitted in partial fulfillment for the degree of Bachelor of Science (Hons) in Computing
ACKNOWLEDGEMENTS
Firstly we would like to thank our lecturer Ms.Nadeera Ahangama for all the help and guidance given while doing this assignment. Also there are many individuals who have helped us in numerous ways directly and indirectly so that we were able to complete this assignment. APIIT Lanka for providing us with resources and the Tech Team at APIIT Lanka for their assistance at required times. And last but not least our friends, parents and the well-wishers without whose moral support and encouragement, we would not have been able to do a good job. Finally, if there are any shortcomings in this project, then we request to excuse us for all those and accept this documentation. Ahamed Nishadh Deshan Ilangakoon Dilshan Zuhdi
WORKLOAD MATRIX
AHAMED Initiation Introduction Selection of Methodology Schedule Planning Project Planning Control Feasibility Study Cost Estimation Risk Management Requirements Analysis Requirement Analysis Problem Background Proposed Solution Logical Design Process Modeling Data Modeling Data Dictionary Design Principles and Concepts Architectural Design Physical Design Interactive Screen Design Report Design Build Programming Environment Development Test Testing Implementation Overall Documentation (Layout) TOTAL 100% 50% 50% 25% 25% 25% 25% 100% 100% 100% 100% DESHAN DILSHAN
100% 100%
50%
40% 50%
40% 50%
30% 25%
30% 25%
80%
10%
10%
34%
33%
33%
ii
TABLE OF CONTENTS
1.0 - INTRODUCTION ............................................................................................... 1 2.0 PROBLEM BACKGROUND OF CURRENT SYSTEM .................................. 2 3.0 OVERVIEW OF THE PROPOSED SYSTEM................................................... 4 4.0 PROJECT MANAGEMENT .............................................................................. 5 4.1 SCHEDULE PLANNING .......................................................................... 5 4.2 COST ESTIMATION ................................................................................. 6 4.2.1 TECHNIQUES USED IN COST ESTIMATION ............................... 6 4.2.2 CONSTRUCTIVE COST MODEL (COCOMO) ................................. 7 4.2.3 OBJECT POINTS CALCULATION ................................................... 8 4.3 CONFIGURATION MANAGEMENT .................................................... 11 4.4 CHANGE MANAGEMENT .................................................................... 12 4.5 RISK MANAGEMENT ........................................................................... 13 5.0 SELECTION OF METHODOLOGY ............................................................... 15 5.1 SPIRAL METHODOLOGY .................................................................... 15 5.1.1 ADVANTAGES OF SPIRAL METHODOLOGY ........................... 16 5.1.2 DISADVANTAGES OF SPIRAL METHODOLOGY ..................... 16 5.2 PROTOTYPING METHODOLOGY ...................................................... 16 5.2.1 ADVANTAGES OF PROTOTYPING METHODOLOGY ............. 17 5.2.2 DISADVANTAGES OF PROTOTYPING METHODOLOGY ....... 17 5.3 JOINT APPLICATION DEVELOPMENT (JAD) .................................. 17
iii
5.4 DEFINITION OF JAD ............................................................................. 18 5.4.1 ADVANTAGES OF JAD .................................................................. 18 5.4.2 DISADVANTAGES OF JAD ........................................................... 18 5.5 WATERFALL METHODOLOGY .......................................................... 18 5.5.1 ADVANTAGES OF WATERFALL METHODOLOGY ................. 19 5.5.2 DISADVANTAGES OF WATERFALL METHODOLOGY .......... 19 5.6 SELECTED DEVELOPMENT METHODOLOGY ................................ 20 6.0 REQUIREMENT ANALYSIS .......................................................................... 21 6.1 NONFUNCTIONAL REQUIREMENTS ................................................ 21 6.2 SYSTEM REQUIREMENT SPECIFICATIONS .................................... 21 6.2.1 USER REQUIREMENTS .................................................................. 21 6.2.2 SYSTEM REQUIREMENTS ...................................................... 22
6.0 DATA FLOW DIAGRAMS ............................................................................. 24 6.1 CONTEXT DIAGRAM............................................................................ 24 6.2 LEVEL 0 ................................................................................................... 25 6.3 LEVEL 1 OF PROCESS 1 ....................................................................... 26 6.4 LEVEL 1 OF PROCESS 2 ....................................................................... 27 6.5 LEVEL 1 OF PROCESS 3 ....................................................................... 28 7.0 DATA DICTIONARY ...................................................................................... 29 7.1 DATA STORES ....................................................................................... 29 7.2 DATA FLOWS ......................................................................................... 32
iv
7.3 EXTERNAL ENTITIES ........................................................................... 40 7.4 PROCESSES ............................................................................................ 41 8.0 - ENTITY RELATIONSHIP DIAGRAM ........................................................... 45 9.0 ENTITY LIFE HISTORY ................................................................................. 46 9.1 PROBLEM LOG ...................................................................................... 46 9.2 EMPLOYEE DETAILS ........................................................................... 47 9.3 CALL RECORDS .................................................................................... 48 9.4 SOFTWARE TABLE ............................................................................... 49 9.5 HARDWARE DETAILS .......................................................................... 50 9.6 SPECIALIST TABLE .............................................................................. 51 10.0 DESIGN PRINCIPALS AND CONCEPTS ................................................... 52 10.1 WHAT DESIGNING PRINCIPLE MEANS?........................................ 52 10.2 DESIGN CONCEPTS ............................................................................ 52 10.2.1 ABSTRACTION .............................................................................. 52 10.2.2 REFINEMENT ................................................................................ 53 10.2.3 MODULARITY ............................................................................... 53 10.2.4 INFORMATION HIDING .............................................................. 54 10.2.5 DESIGN AND REUSE OF PATTERNS ........................................ 54 11.0 ARCHITECTURAL DESIGN ........................................................................ 55 11.1 WHAT IS ARCHITECTURAL DESIGN? ............................................ 55 11.2 SYSTEM LOGICAL ARCHITECTURE ............................................... 55
11.3 HIERARCHY CHART .......................................................................... 56 12.0 SCREEN DESIGNS ........................................................................................ 58 12.1 ADD NEW CALL .................................................................................. 58 12.2 ADD NEW CALL .................................................................................. 59 12.3 ADD NEW HARDWARE ..................................................................... 60 12.4 ADD NEW OPERATOR ....................................................................... 61 12.5 ADD NEW SOFTWARE ....................................................................... 62 12.6 - ADD NEW SPECIALIST ....................................................................... 63 12.7 ADD SOLUTION ................................................................................... 64 12.8 EDIT PROBLEM SOLUTION .............................................................. 65 12.9 LOGIN .................................................................................................... 66 12.10 MAIN MENU ....................................................................................... 67 11.0 REPORT DESIGNS ........................................................................................ 68 11.1 PROBLEM REPORT ............................................................................. 68 11.2 SPECIALIST PROBLEMS SUMMARY .............................................. 69 11.3 UNSOLVED PROBLEMS REPORT .................................................... 70 11.4 OPERATOR PROBLEMS SUMMARY REPORT ............................... 71 12.0 DEVELOPMENT ENVIRONMENT ............................................................. 72 12.1 LANGUAGE OF PROGRAMMING ..................................................... 72 12.2 PROGRAMMING TOOLS .................................................................... 72 12. 3 DATABASE .......................................................................................... 72
vi
13.0 TESTING ........................................................................................................ 73 13.1 QUALITY METRIC .............................................................................. 73 13.2 TEST LOG.............................................................................................. 78 13.2.1 LOGIN FORM ................................................................................. 78 13.2.2 MAIN MENU FORM ...................................................................... 79 13.2.3 NEW CALL FORM ......................................................................... 80 13.2.4 NEW CALL DETAILS FORM ....................................................... 81 13.2.5 ADD SOLUTION FORM ................................................................ 82 13.2.6 EDIT PROBLEM SOLUTION FORM ........................................... 83 13.2.7 - ADD NEW SOFTWARE FORM ..................................................... 84 13.2.8 - ADD NEW HARDWARE FORM ................................................... 85 13.2.9 ADD NEW OPERATOR FORM .................................................... 86 13.2.10 ADD NEW OPERATOR FORM .................................................. 87 13.0 BIBLIOGRAPHY ........................................................................................... 88
vii
1.0 - INTRODUCTION
In this assignment we have been given the task of proposing and prototyping a system for an Internal IT Helpdesk for Ceylon Telecom (Pvt) Ltd. The system is an office automation system and is a small part of the larger system of Ceylon Telecom (Pvt) Ltd. Ceylon Telecom (Pvt) Ltd. uses a vast IT network and infrastructure within its company. To assist with any problems relating to the IT network employees within the company may call the Help Desk and log in a complaint. On receiving this complaint the help desk operator will attempt to handle the problem personally by referring existing information, if this fails he will refer the problem over to a specialist who will then attend to the problem personally. The help desk will operate for problems within the company only. In this assignment of ours, we would be prototyping the system we are about to develop and in this documentation you can read about the various different aspects of the system that would help Ceylon Telecom (Pvt) Ltd take a decision on whether to proceed with developing the system or not. The system would be mainly used by the internal staff of the helpdesk department and security is essential part of the system since a potential loophole in the system can act as a backdoor entry into the larger system of the company.
the damage is permanent. This will add to additional costs to the company when it tries to rectify its errors.
These different types of costs, when calculated and put together will give a rough picture on how much the project will cost in total and if it is feasible for the company and the client to undertake such a project. For these different types of costs, there are different techniques used to calculate. They are as follows. Algorithmic Cost Modeling A model based on historical cost information that releases some software metric to the project cost is used. An estimate is made of that metric and the model predicts the effort required. Expert judgment Several experts on the proposed software development techniques and the application domain are consulted. Each of them estimate the project cost. These estimates are compared and discussed. The estimation process iterates until an agreed estimate is reached. Estimation by analogy This technique is applicable when other projects in the same application domain have been completed. The cost of a new project is estimated by analogy with these completed projects.
Parkinsons Law The law states that work expands to fill the time available. The cost is determined by available resources rather that by objective assessment.
Pricing to win The software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort depends on the customers budget and not the software functionality.
When looking at the above said techniques of cost estimations, it can be seen that the algorithmic cost modeling technique is far easier to use to calculate the cost rather than using any other techniques. This is because; algorithmic cost modeling technique uses mathematical formulas which can give out static output that can be used to measure. The general form of Algorithmic Cost Modeling is as follows:
The above formula can be described as said below. A = Constant Factor (Depends on local practice) Size = Code Size (Function or Object Points) B = Exponent Value (Lies between 1 and 1.5) M = Multiplier (process, product & development attributes such as requirement dependability, experience of development team)
For the project that we have been assigned to undertake the COCOMO II model has been selected. This is the best option as we used Visual Basic.net language to program our system which is a high level programming language.
Module Report 2
Screen
is valid. If the login details are valid, system will allow the Module user to log in to the system. When a new call is made, information such as CallerID, Report Screen 2
ID of helpdesk operator and other vital information will be Module 10 saved in the Call Log for future references. The caller name will be checked against a register of all personnel to retrieve the caller's ID, job title, and department. The equipment will also be checked against a register of equipment to find the equipment type and make. Report Screen 2
The software will be checked to see if it is licensed software. The caller will give his/her problem to the help desk operator, at the same time, the system will provide a reference number to the caller for further enquiries about the same problem. According to the problem details, help desk operator will give an appropriate problem type for it. At the same time
8
Module Report -
Screen
Module 10
the problem details will be saved in the Problem Log table. According to the problem type the system will check for solutions with the similar problems from the Solutions of previous problems and will send a notification whether there is a solution for the problem or not. If there a similar solution for the problem, the system will provide the problem solution to the operator who will pass it on to the caller. If the problem cannot be solved immediately the helpdesk operator will direct the problem to a specialist in order to get the solution. Once an unsolved problem is received, help desk operator will select an appropriate specialist to solve the problem.
Report
Screen
Module Report -
Screen
The specialist will be selected by considering their specialized fields and the current workload they have. Once the specialist solves the problem, the problem solution will be provided to the caller, and at the same
Module -
time the resolved details will be saved in the solution table Report along with the problem number, date and time. Monthly and yearly the company administrative will get a report of all calls. And they will also get a report of turnaround time for a job completion as well, so that it will be easy to the company administrative when making decisions. Screen
Module Report 5
TOTAL
90
In the above equation, A = 2.94 Size = (90 * 28)/1000 where 172 is the number of object point and 28 is
the object point constant for VB.Net. B = 1.1 M = PERS*RCPX*RUSE*PDIF*PREX*FCIL*SCED = 2*1*1*2*1*2*1 =8 By substituting the above values to the equation, Effort = 2.94 * [(90*28)/1000]1.1 * 8 = 65.19 We can assume that the Average Cost per One Person Month is 50,000/Therefore, Software Cost = Effort Estimate * Average Cost per One Person Month = 65.19 * 50,000 = 3,259,500 /= (http://www.qsm.com, n.d.)
10
11
CM Database used to Record Configuration Information A configuration database is used to maintain the information of the all information relating to various aspects of the system in order to cater to the various questions regarding the information system. The database will contain information like the current version of the system, platform and what components of the system will change when a certain action is performed.
12
organization not being cooperative with the developers. Inadequate or incompatible High Tolerable
hardware and/or software at the end user consoles. Skilled staff is not available at the High client organization to work on the system to gain full efficiency of the system. Staff tasked with developing the Low system fall sick in large numbers. Misunderstandings between team Low members. Inefficient code being done by Moderate developers System hardware or/and software Moderate gets corrupted and becomes Serious Catastrophic Serious Serious Tolerable
unusable. Proper system requirements are not Very High provided by the client. The client keeps changing the Very High requirements at different stages which will hinder the development process in the given timeline. The time allocated to complete a Very High task goes over the estimated time taken to complete it. Serious Serious Catastrophic
Serious
13
budget. Expired or outdated tools being Very High used for development can cause inability to make use of new features available in tools. Tolerable
14
15
(Thompson, 2008)
16
17
18
Its easy to implement because its a linear model. Minimal amount of resources are required to implement this model. End of every stage, documentation is produced. After every major stage of software coding testing is done to check the correct running of the code.
Small changes or errors that arise in the completed software may cause a lot of problems.
Often, the client is not very clear of what he exactly wants from the software. Any changes that he mentions in between may cause a lot of confusion.
19
20
4. Direct call to a specialist if needed. 5. Store information of all system records offline so that information will not be lost.
system will pull up information of the caller from the Caller_Details database and overwrite the existing information with new information. 3. Problem Details 3.1. Identify the problem by using a drop down search feature that is available in the Problem_Details form which will get information from the Problem_Details table. 3.2. Update records in the Problem_Details form if and when new information is provided to the user of the system. 4. Solution Details 4.1.If caller problem cannot be solved immediately allocate a Specialist for the task by searching for a suitable specialist in the Specialist database and assigning the specialist to the task by entering the Specialist ID in the Work_Order database. 4.2.When specialist is required to attend a problem search specialist in the specialist database using the keywords of the problem to identify a specialist who is allocated for a certain region. If more than one specialist is found, check the specialists workload in the Work_Order database and allocate the work to the specialist with the least amount of tasks allocated to him. 5. Backup 5.1. Data in all databases will be copied and duplicated exactly in a separate location regularly to ensure no data will be lost if original data is lost or corrupted.
23
24
6.2 LEVEL 0
25
26
27
28
Name Description
Caller Record This data store will be used purely for recording the details of the call. The call time, duration and the maker of the call will be recorded in this data store. This record is needed as each time a person calls the help desk the system is expected to record the details of each and every call. Caller ID and Problem Number N/A Caller Record= CallerID+ CallerName+ CallDate+ CallTime+ EmpID+ CallType+ CallerRecStatus
Name Description
Computer Hardware and Software Records. This data store will take note of the faulty equipment and/or
29
the software that is appearing to malfunction. This record will be highly useful at later dates to know if the machine been reported has had any previous records of malfunctions. Equipment Details N/A Computer Hardware and Software Records= HWType+ HWSerialNumber+ HWName+ HWDescription+ HWRecStatus + SWName+ SWDescription+ SWStatus+ SWRecStatus
Name Description
Problem Log The problem log is another vital part of the system. This log will maintain records of all complaints that the help desk receives and if the problem has been solved. This is vital information as if a problem has a recurring nature then the help desk operator will be able to provide the caller with the information on how to solve the problem directly without having to assign a specialist for the task. Problem Details Problem Details Updated Problem Details Problem Solution Details Problem Type Problem Solution Problem Log= ProbID+ ProbDescription+ ProbType+ ProdStatus+ ProbSolution+ SWID+ SplID+ HWID+ ProbRecStatus
30
Name Description
Specialist Details This database contains the information of the specialist that the company has at its disposal to attend to any new and immediately irresolvable problems. The system will use the details in the database to allocate new problems to specialist depending on who has the lowest workload. Updated Specialist Work Log Updated Specialist Work Log Specialist Details Specialist Details= SplID+ SplName+ SplTel+ SplDept+ SplSpecialities+ SplEmail+ SplRecStatus+
31
Name Description
Employee ID Carries the Employee ID to the database so that the details of the employee matching the ID can be extracted from the database. 1.1 Search Employee Details Process Employee Records Data Store Employee ID= EmpID
Employee Details Returns the details of the employee searched to the process so it can be displayed on the system. Employee Records Data Store 1.1 Search Employee Details Process Employee Details = EmpID+ EmpName+ EmpDept+ EmpJob+ EmpEmail
Name Description
records of the call and the equipment can be saved with the details of the employee. 1.1 Search Employee Details Process 1.2 Record Call Details Employee ID= EmpID
Problem Number The process will provide the caller with a problem number that is associated with the problem that he has called regarding. 1.2 Record Call Details Process Caller External Entity Problem Number= ProbID
Caller Details and Problem Number This flow will take the call details such as time of call and the duration to be written into the Call Record data store. 1.2 Record Call Details Process Caller Record Data store Caller Details and Problem Number= CallerID+ ProbID+ CallerName+ OperatorID+ CallDate+ CallTime+ EmpID+ CallType+ CallRecStatus
Equipment Details Takes the details of the equipment or software that is causing a problem and writes it to the database. 1.2 Record Call Details Process Computer Hardware and Software Records Data Store Equipment Details= HWType+ HWSerialNumber+ HWName+ HWDescription+
33
Name Description
Problem Details Carries the details of problem key words to the database so that the database can be searched and all matching problems be displayed. 2.1 Search Problem Record Process Problem Log Data store Problem Details= ProbType
Problem Details Takes the details of the new problem so that they can be written into the Problem Log data store. 2.2 Record Problem Details Process Problem Log Data Store Problem Details= ProbID+ ProbDescription+ ProbType+ ProdStatus+ ProbSolution+ SWID+ SplID+ HWID+ ProbRecStatus
Name Description
New Problem Details Provides the system with new information regarding an existing problem. This information will be given written into the system adding to the existing information. Caller External Entity 2.2 Record Problem Details Process New Problem Details= ProbID+ ProbDescription+ ProbType+
34
Updated Problem Details Sends the information required to be written to the system database. 2.2 Record Problem Details Process Problem Log Data Store Updated Problem Details= ProbID+ ProbDescription+ ProbType+
Problem Type Provides the process with a list of problem types to select from in order to select a specialist. Problem Log Data Store 3.1 Select Problem Type Process Problem Type= ProbType
Selected Problem Type This is the problem type that the operator of the system has selected from the list that is available. Operator External Entity 3.1 Select Problem Type Process Selected Problem Type= ProbType
Problem Type This is the problem type that the operator of the system has selected from the list that is available. 3.1 Select Problem Type Process 3.2 Search and Display Solution Process Selected Problem Type= ProbType
Name Description
Problem Solution The information that is being sent here are the solutions, if available, regarding the problem type that the operator has
35
selected. Problem Log Data Store 3.2 Search and Display Solution Process Problem Solution= ProbID+ ProbSolution
Problem Solution Provide the caller with the solution for the problem selected if it is available in the system. 3.2 Search and Display Solution Process Caller External Entity Problem Solution= ProbID+ ProbSolution
Update Specialist Work Log Sends the new work load details to the system so that it can update the specialist work log. 5 Problem Solution Management Process Specialist Details Data Store Update Specialist Work Log= SplID+ SplWorkLoad
Name Description
Solved Log Details This is the information regarding how to solve the problem at hand that the specialist has come up with, to be used in the event that the problem reoccurs. Specialist External Entity 5 Problem Solution Management Process Solved Log Detail= ProbID+ ProbSolution
Problem Solution Details This flow carries the information to the database to be written into the problem log database. 5 Problem Solution Management Process Problem Log Data Store
36
Data Structure
Name Description
Specialist Details Provides the process with information of the specialist available for a particular problem type so that the process can allocate a specialist. Specialist Details Data Store 4 Allocate Specialist Process Specialist Details= SplID+ SplName+ SplDpt+ SplSpecialities+ SplWorkLoad
Name Description
Problem Details Provides the specialist selected for a particular problem with the details of the problem so that the specialist will know the details of the problem. 4 Allocate Specialist Process Specialist External Entity Problem Details= ProbID+ ProbDescription+ ProbType+ ProdStatus+ ProbSolution+ SWID+ SplID+ HWID+ ProbRecStatus
Updated Specialist Work Log Updates the specialists work log to include the current task that is being handled by the specialist. 4 Allocate Specialist Process Specialist Details Data Store Update Specialist Work Log= SplID+
37
SplWorkLoad
Name Description
Problem Details Provides the specialist allocation process with information regarding the problem so that the process is able to select the correct specialist for the task. 3 Classifying New Problem Process 4 Allocate Specialist Process Problem Details= ProbID+ ProbDescription+ ProbType
Problem Details Provides the problem details supplied by the caller to help identify the type of problem at hand. 2 Record New Problem Process 3 Classifying New Problem Process Problem Details= ProbID+ ProbDescription+ ProbType+ ProdStatus+ ProbSolution+ SWID+ SplID+ HWID+ ProbRecStatus
Problem Details Provides the problem details supplied by the caller so that it can be recorded in the system. 1 New Call Process 2 Record New Problem Process Problem Details= ProbID+ ProbDescription+ ProbType+ ProdStatus+ ProbSolution+ SWID+
38
39
Name Description
Operator Though through the operator all the call details and will be recorded, the main input to the system will when the operator selects the problem type where searching for a solution or a suitable specialist to handle the problem at hand. Data N/A Data Selected Problem Type
Name Description
Specialist The specialist will be called on when the problem presented contains no available solutions in the database. Once a problem has been handled the specialist will update the system with the information on how the problem was solved. Data Problem Details Data Solved Log Details
40
7.4 PROCESSES
Name Description 1.1 Search Employee details This process will be used to identify and extract the callers details from the system database using the caller ID. This information once extracted will be sent to the Record Call Details Process. Employee ID and Equipment Details Employee Details Employee ID Employee ID BEGIN READ Employee ID READ Equipment Details GET Employee ID list from Employee Records Database LOOP UNTIL Employee ID NOT EQUALS Null IF Employee ID EQUALS Employee ID from Database GET Employee Details DISPLAY Employee Details PUT Employee ID to 1.2 Record Call Details Process ELSE DISPLAY Error Message END IF END LOOP END
Name Description Input Data Flows Output Data Flows Process Description
1.2 Record Call Details This process will write to the database the details of the call and the details of the faulty equipment to the system records. Employee ID Caller Details and Problem Number Equipment Details Problem Number BEGIN GET Employee ID from 1.1 Search Employee Details Process WRITE Caller Details and problem Number to Caller Record Database
41
WRITE Equipment Details to Computer Hardware and Software Records Database. DISPLAY Problem Number PUT Problem Details to 2.2 Record Problem Details Process PUT Problem Details to 2.1 Search Problem Records Process END
Name Description
2.1 Search Problem Records This process is used to identify if a problem is existing in the system or not. If the problem is available then new information will be written in to the existing problem or if it is unavailable then a new problem log will be created. However this process is only tasked with identifying if a problem exists or not, and not with writing of information. N/A Problem Details
BEGIN GET Problem Details from 1.2 Record Call Details Process READ Problem Type from Problem Log Database RUN 2.2 Record Problem Details Process END
Name Description
2.2 Record Problem Details This process will be used to write to the system a new problem details or update an existing problem with new information. New Problem Details Problem Details Updated Problem Details BEGIN GET Problem Type from 2.1 Search Problem Records Process IF Problem Type EQUALS TRUE UPDATE Problem Log with New Problem Details ELSE
42
Name Description Input Data Flows Output Data Flows Process Description
3.1 Select Problem Type Process This process will be used to present the help desk operator with the types of problems that are available in the system. Select Problem Type Process Problem Type N/A BEGIN GET Problem Type from Problem Log database DISPLAY All Problem Type READ Selected Problem Type from Operator PUT Problem Type to 3.2 Search and Display Solution Process END
Name Description
3.2 Search and Display Solution Process This process will take the information from the problem log and display the solution to the caller and inform then on how to solve the problem. Problem Solution Problem Type Problem Solution BEGIN GET Problem Type from Select Problem Type Process GET Problem Type from Database IF Problem Type from Database EQUAL Problem Type from Operator GET Problem Solution DISPLAY Problem Solution ELSE RUN 4 Allocate Specialist Process END IF END
43
Name Description
4.0 Allocate Specialist Process This process will look for a specialist who fits the problem type and who has currently the lowest tasks at hand and assign him to the problem at hand. Problem Details Specialist Details Problem Details Updated Specialist Work Log BEGIN GET Problem Details from 3 Classifying New Problem Process GET Specialist list from Specialist Details Database IF Specialist Type EQUALS Problem Type SELECT Specialist CALCULATE Lowest work Load of SELECTED Specialist DISPLAY Problem Details to SELECTED Specialist UPDATE Specialist Work Log ELSE SELECT General Specialist DISPLAY Problem Details to SELECTED Specialist UPDATE Specialist Work Log END IF END
Name Description
5 Problem Solution Management Process This task will gather the information from the specialist regarding the problem that has been solved and the solution will be written into the Problem Log database for future reference. The process will also update the Specialist Details database to reflect the completion of the task. Solved Log Details
BEGIN READ Solved Log Details WRITE Solution to Problem Log database UPDATE Specialist Work Log END
44
45
46
47
48
49
50
51
10.2.1 ABSTRACTION
Abstraction allows one to concentrate on a problem at some level of generalization without regard to irrelevant low level details. In high level abstraction a result is stated in broad terms using problem environment of the language. And in lower level abstraction a more procedural orientation is taken. There are three forms of abstractions. They are
52
Data Abstraction- A named set of data that defines a data object. Procedural Abstraction- A named sequence of instructions that has a specific and limited function. Control Abstraction- Implies a program control mechanism without specifying internal details.
10.2.2 REFINEMENT
One or more instructions of the program are decomposed into more detailed instructions and are called refinement. Its also known as top down Stepwise refinement strategy. The basic architecture is developed iteratively and the step wise hierarchy is developed. And it forces the designer to develop low level details to design decisions at each stage while the design progresses.
10.2.3 MODULARITY
In Modularity software is divided in into uniquely named and addressable components called modules. And by this a complex problem is broken down to many manageable pieces or modules. Cognitive psychologists have proved that when humans dealing with complexity they can only manage with five to nine chunks of information at a time. So when designing the design of the system the strategy must undergo with the above information. And there are some objectives of Modularity Modular Decomposability- It decomposes a problem into sub problems by a systematic mechanism. Modular Composability- It assembles into a new system by reuse of existing components. Modular Understandability- If the module can be understood as a standalone unit, if it can be understood then it is easier to understand and change.
53
Modular Continuity- Individual modules results in changes by small changes to the system requirements rather than system wide changes then the impact of the effects is reduced.
Modular Protection- If an error is found in the module then those errors are localized and must not spread to other modules.
54
55
From the above diagram the system divides into 4 sub modules. They are : 1. Call Recording 2. Problem Searching 3. Specialist Allocation 4. Solution Recording By dividing the Level 0 DFD diagram as above, the data flows that do not flow among other processes can be seen and those flows are independent and by this the system can be divided into subsystems. This helps the designer while designing the system. After identifying the sub systems the next step will be hierarchy chart it shows the logical architecture of the system.
Specialist Allocation
Problem Search
Allocate Specialis t
Rectify Solution
Problem log
Call Recording
56
New caller
Caller details
Technical fault
Problem Searching
Diagnose
Record Problem
New Problem
Update Problem
Solution Recording
Update Solution
Prepare Reports
57
This is the interface for adding a new call where firstly the call type, i.e. new call or return call, is selected. If the selected call type is new call, an employee ID is entered and the submit button is then clicked after which the user is redirected to the new call details UI. If the selected call type is return call, the call ID textbox gets enabled after which the employee ID as well as the call ID is entered. The submit button is then clicked and the user is directed to the new call details UI.
58
This is the interface for adding the new call details where the problem ID, operator ID, employee ID and call date/time is auto generated. The problem type is then entered and the problem status, i.e. pending or solved, is selected. If the problem status is pending, a description of the problem is given and the specialist ID, hardware ID and software ID are searched for by clicking on each of the search buttons beside it. This opens another form where the specialist, hardware and software IDs are noted and typed into the box. If the problem status selected is solved, the problem solution text box gets enabled and a solution is searched by clicking the search solution button. Upon completion of this form, the save button is clicked after which a message box saying Problem Saved appears. The clear button clears all the text fields.
59
This is the interface for adding a new hardware where the hardware ID is auto generated. The name, type, serial number and a description of the hardware is then entered into the respective textboxes and the save button is clicked. The clear button clears all the text fields.
60
This is the interface for adding a new operator where the operator ID is auto generated. The name, user name and password are then entered into the respective textboxes and the save button is clicked. The clear button clears all the text fields.
61
This is the interface for adding a new software where the software ID is auto generated. The name and description of the software is then entered into the respective textboxes and the save button is clicked. The clear button clears all the text fields.
62
This is the interface for adding a new specialist where the specialist ID is auto generated. The name, telephone and email address is then entered into the respective textboxes. The department, speciality 1 and speciality 2 are selected from the drop down lists and then, the save button is clicked. The clear button clears all the text fields.
63
This is the interface for adding a new solution where the problem ID is entered and the submit is then clicked after which the form for editing the problem opens.
64
This is the interface for editing a problem solution where the problem ID, specialist ID, hardware ID and software ID are auto generated. The problem type is then entered and the problem status, i.e. solved or pending, is selected. If the problem status is solved, a problem description and problem solution is entered. If the problem status is pending, only a problem description is given. Upon completion of this form, the save button is clicked after which a message box saying Problem Updated appears. The clear button clears all the text fields.
65
12.9 LOGIN
This is the interface for the login form which lets the user gain access into the system by entering a user name and password. When the submit button is clicked, a message box appears with the message Login Success. If the clear button is clicked, the text fields get cleared.
66
This is the interface of the main menu which appears once the user has successfully logged into the system. It consists of buttons which, when clicked directs the user to the required form. The exit button will shut down the entire system.
67
68
69
70
71
14. 3 DATABASE
Since it is an obvious fact that a system of this magnitude needs to be linked with a server to store and retrieve data from, we decided to use the Microsoft SQL Server 2008 for this purpose. The integration between MS SQL Server and MS Visual Studio 2010 is very close; it would be easy to work with this database technology. Also the security concerns were looked into when the decision was made.
72
15.0 TESTING
15.1 QUALITY METRIC
The quality metric for a system is used to measure software systems quantitatively and qualitatively. Most often this hard to be done on software system but now, using the quality metric measures it is possible to ascertain a proper value on a software system by examining individual components of the quality metric of a system. (Anon., 2010) Fan in/ Fan out: This is a measure of the number of functions that will be calling in on other functions. The larger the number of functions that are called by one function the more the complexity of the system will arise. As a general principal of practice software designers prefer to keep the fan in to a maximum of seven at the very most. When developing the system for Ceylon Telecom (Pvt) Ltd. great care was taken to keep the number of function calls made my one function to the only the most essential. (Borysowich, 2007) Length of Code This metric is used to ascertain the quality of a program by evaluating the length of code that is used to develop the system. The greater and the more complex the code the more complex and more prone to error the system becomes. However code length will have to be lengthy if the solution is complex. Yet this still poses a problem where systems are more likely to fail. In the development of this project yet again great care was taken to maintain the simplicity and the size of the code.
73
Cohesion Cohesion refers to the oneness or the way in which a single class or component works to achieve a single goal. If a single class has several functions all trying to achieve a common goal then the class can be said to be cohesive. On the other hand if a class has several functions striving to achieve different and unrelated objectives then the system can be said to be non-cohesive. In the case a class or component is said to be noncohesive then it is better to divide the class or component into smaller separate parts to perform their task and achieve their goals separately. Therefore if a system has a high cohesion then it is said to be better than if it does not. (Loh & Sai Peck Lee, 2009) The current system that is being developed great precaution has been taken to avoid such situation where a single components attempts to achieve more than one objective. Also that as a whole the system works to achieve a single objective.
Coupling Coupling refers to how each module or component has been connected with one another and how they interact with one another. How complex the system is can be derived from how complex the connections are. The general rule of thumb is that the more complex and higher coupling will be more prone to errors and failures. (Vanderfeesten et al., n.d.) Several of the connections in the system being developed are of slightly high coupling however most of the coupling has been kept at a minimum.
Cyclomatic complexity Cyclomatic Complexity is related to the number of decision logic that the software will contain. This measure is used for two main purposes and thus makes it a vital aspect of the quality metric measures. The first aspect
74
that this measure is used for is to ascertain how many tests should be carried out on the developed software. The other major purpose of this test is to manage the software and to keep it reliable and manageable and provide control to a system. (Watson & McCabe, 1996) Maintain the control of the system being developed was a challenge as the system tends to go out of scope and out of proportion if not properly managed. Great care was taken to minimize this from happening and to a great extent this has been managed. Depth of Conditional Nesting This metric is charged with observing the depth to which the nesting of IF conditions proceed. The more nested if condition there are within a single if condition the greater the chance of error and the more likely the programmer will miss a vital part of the nested condition. To reduce this occurring great care has been taken to reduce the number of nested conditions by replacing them where possible with switch cases to minimize complexity and the possibility of errors occurring within the system. Fog Index The fog index is used to focus on the readability of the code that has been written for the system. One of the greatest problems faced after the initial development of the system is that any programmer who comes on afterwards to work on maintenance of the system will be unable to clearly read and understand the program. Generally it is defined that the higher the fog index the less readable the system becomes. (Buse & Weimer, 2008) The code for the system being developed was continuously checked to ensure readability. This was achieved through using simple
Also proper indentation of code was used so that in future reference to the code it will be easy to locate segments of the code. Source Lines of Code This refers to number of lines of code that are written in the system. Source lines of code are generally measured by two different styles and are used to predict the effort and the productivity or cost of a system. The two styles used are called physical and logical lines of code. The physical lines of code count the lines of text in a program, while logical lines of code attempt to measure the number of statements. This is much harder as identifying the end of statements varies from programing language to language. (Anon., n.d.) To ensure simplicity and minimize error due to over complexity of the system great care has gone to ensure that the system lines of code are kept to minimal and unwanted or waste lines of code are removed. Number of Procedure Parameters This, as clearly stated in the title of the metric is used to observer the parameters passed around from function to function. The metric watches to see how complex and how lengthy the parameters are. This is because the longer and more complicated the parameters tend to become the more likely the system is to run into errors during compilation and run time. To avoid this great care was taken in ensuring that the system being built kept the number of parameters at only what was essential and to keep the parameters being passed simple. Function Point Analysis Function point analysis is rapidly becoming a highly favored metric of choice among software engineers. The main reason behind this being that function point analysis allows for a broader range of measure. It allows the
76
engineers to proceed with tasks like estimation, measuring quality and gathering the requirements need for a proper functioning system. The key to this analysis is that function point looks at the system from a user perspective and assess if the system is meeting the requirements of the user. This is vital for the success of any system by gauging the productivity of the system. (Heller , n.d.) (Longstreet , n.d.) In application to the system being developed for Ceylon Telecom major effort was utilized to ensure that the system will meet the final expectations of the user and meet the users many functional requirements.
77
Test Description Press the Submit button with no values in the Username and Password fields. Enter correct password and username and press the Submit button. Enter incorrect Username or password and press the Submit button. Press the Clear button.
Expected Value Display error message Please Enter Username/Password. Display Login success, close Login form and open frmMainMenu form. Display Error message Login Failed. Clear all data in the Username and Password fields.
002
003
004
78
Expected Value
008
009
010
Close frmMainMenu form and open the frmNewCall form. Press the Add Solution button. Close frmMainMenu form and open the fmAddSolution form. Press the Add New Software Close frmMainMenu form and button. open the frmAddNewSoftware form. Press the Add New Hardware Close frmMainMenu form and button. open the frmAddNewHardware form. Press the Add New Operator Close frmMainMenu form and button. open the frmAddNewSpecialist form. Press the EXIT button. Close the application.
79
Test Description Press the drop down icon in Call Type field. Select call type as Return Call option in the dropdown field. Select Return Call, enter Employee ID and Call ID and press Submit button.
Expected Value Display New Call and Return Call. Enable Employee ID field.
014
015 016
Open frmCallDetails and Load call details from CallRecords Database where CallID equals call ID given in the Call ID field. Select Return Call, enter Open frmCallDetails and close Employee ID and Call ID and press frmNewCall form. Submit button. Enter invalid Call ID Display error message Invalid Call ID. Enter invalid Employee Display error message Invalid Employee ID.
80
Test Description
Expected Value
018
019
020
021
If Call type in frmNewCall equals Load call details from Return Call on form load. CallRecords Database where CallID equals call ID given in the Call ID field. If Call type in frmNewCall equals Load form and fill Problem ID New Call on form load. with auto generated value. Load Operator ID automatically from login details. Load Employee ID from value entered in frmNewCall. Load Date and time from system date and time. Press the Search Solution Open form where list of available solutions are displayed. Press the Search Specialist Open form where list of available specialists are displayed. Press the Search Hardware Open form where list of available hardware are displayed.
81
Press the Search Software Press SAVE button with all fields filled. Press SAVE button without filling all details. Enter incorrect Specialist ID in Specialist ID field. Enter incorrect Hardware ID in the Hardware ID field. Enter incorrect software ID in the Software ID field. Select Problem status type as Solved Press CLEAR button.
Open form where list of available software are displayed. Save records to ProblemLog table. Display error message Enter all Required Details. Display error message Invalid Specialist ID. Display error message Invalid Hardware ID. Display Error message Invalid Software ID. Enable txtProbSol text box to allow solution to be entered. Clear all enabled data fields.
Test Description
Expected Value
031
Enter correct Problem ID and press Load all details from the Submit button. ProblemLog table where problem ID in text box equals ProbID in ProblemLog table. Open frmEditSolution form and close current form. Enter incorrect Problem ID and Display error message Invalid press the Submit button. Problem ID.
82
Expected Value
033 034
Load all problem details from ProblemLog table where Problem ID equal ProbID in the ProblemLog table. Select Solved problem status Enable txtProbSol text box. combo box. Press SAVE button with all fields Update records to ProblemLog filled. table where Problem ID in the text box equals to ProbID in the table. Press SAVE button without filling Display error message Enter all all details. Required Details. Enter incorrect Specialist ID in Display error message Invalid Specialist ID field. Specialist ID. Enter incorrect Hardware ID in the Display error message Invalid Hardware ID field. Hardware ID. Enter incorrect software ID in the Display Error message Invalid Software ID field. Software ID. Press CLEAR button. Clear all enabled data fields.
83
Expected Value
Auto generate software ID and display in the txtSWID. ID generated should be one greater than the number last recorded in the system. Press the SAVE button with Save record into Software correct data entered. table. Press the Save button with empty Display error message Enter all fields. Required Details. Press the Clear button. Clear all the enabled fields.
84
Expected Value
Auto generate software ID and display in the txtHWID. ID generated should be one greater than the number last recorded in the system. Press the SAVE button with Save record into Hardware correct data entered. table. Press the Save button with empty Display error message Enter all fields. Required Details. Press the Clear button. Clear all the enabled fields.
85
Expected Value
Auto generate software ID and display in the txtOPID. ID generated should be one greater than the number last recorded in the system. Press the SAVE button with Save record into Hardware correct data entered. table. Press the Save button with empty Display error message Enter all fields. Required Details. Press the Clear button. Clear all the enabled fields.
86
Expected Value Auto generate software ID and display in the txtSPID. ID generated should be one greater than the number last recorded in the system. Save record into Hardware table. Display error message Enter all Required Details. Clear all the enabled fields. Display list of all available departments. Display list of all specialties in the system. Display list of all specialties in the system.
Press the SAVE button with correct data entered. Press the Save button with empty fields. Press the Clear button. Press the Department dropdown box. Press the Specialty 1 dropdown box. Press the Specialty 2 dropdown box.
87
16.0 BIBLIOGRAPHY
Alam, S.N., 2012. Waterfall Model Advantages and Disadvantages. [Online] Available at: http://www.buzzle.com/articles/waterfall-model-advantages-anddisadvantages.html [Accessed 13 May 2012]. Anon., 2002. Configuration Management Standards. [Online] Available at: http://www.snuffybear.com/ucmcentral_standards.htm [Accessed 21 May 2012]. Anon., 2010. Software Quality Metrics. [Online] Available at: http://it.toolbox.com/wiki/index.php/Software_Quality_Metrics [Accessed 24 May 2012]. Anon., n.d. Project Code Meter. [Online] Available at: http://www.projectcodemeter.com/cost_estimation/help/GL_sloc.htm [Accessed 23 May 2012]. Borysowich, C., 2007. Design Principles: Fan-In vs Fan-Out. [Online] Available at: http://it.toolbox.com/blogs/enterprise-solutions/design-principles-fanin-vsfanout-16088 [Accessed 23 may 2012]. Buse, R. & Weimer, W., 2008. Slide Share. [Online] Available at: http://www.slideshare.net/arrestedcomputing/a-metric-for-code-readability [Accessed 23 May 2012]. Heller , , n.d. An Introduction to Function Point Analysis. [Online] Available at: http://www.qpmg.com/fp-intro.htm [Accessed 24 May 2012]. http://www.freetutes.com, n.d. Prototyping Software Life Cycle Model. [Online] Available at: http://www.freetutes.com/systemanalysis/sa2-prototypingmodel.html [Accessed 13 May 2012]. http://www.qsm.com, n.d. Function Point Languages Table. [Online] Available at: http://www.qsm.com/resources/function-point-languages-table [Accessed 20 May 2012]. IT Acumens Discussion Zone, 2008. Advantages and Disadvantages of Spiral Model. [Online] Available at: http://discuss.itacumens.com/index.php?topic=33422.0 [Accessed 13 May 2012]. Loh, C.H. & Sai Peck Lee, 2009. Towards Cohesion-based Metrics as Early Quality Indicators of. [Online] Available at: http://www.ipcsit.com/vol1/57S032.pdf [Accessed 23 May 2012 ]. Longstreet , , n.d. Fundamentals of FPA. [Online] Available at: http://www.softwaremetrics.com/fpafund.htm [Accessed 24 May 2012].
88
Margaret Rouse, 2007. waterfall model. [Online] Available at: http://searchsoftwarequality.techtarget.com/definition/waterfall-model [Accessed 13 May 2012]. Thompson, B., 2008. Boehms Spiral Revisited. [Online] Available at: http://leansoftwareengineering.com/2008/05/05/boehms-spiral-revisited/ [Accessed 13 May 2012]. University of Technology, n.d. Design Concepts and Principles. [Online] Available at: http://www.itswtech.org/Lec/Rand(SoftwareEng)/Software%20Engineering%20 %20%20%209.pdf [Accessed 15 May 2012]. Vanderfeesten, I. et al., n.d. Quality Metrics for Business Process Models. [Online] Available at: http://www.google.lk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CG AQFjAD&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload %3Fdoi%3D10.1.1.74.6133%26rep%3Drep1%26type%3Dpdf&ei=utfAT8jfKcL PrQeJ1a3MCQ&usg=AFQjCNEn4RbUvEfGkUV4h5FwZFXylcOaaA&sig2= [Accessed 23 May 2012]. Watson, A.H. & McCabe, T.J., 1996. Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric. [Online] Available at: http://hissa.nist.gov/HHRFdata/Artifacts/ITLdoc/235/chapter2.htm [Accessed 23 May 2012 ]. www.itu.edu.tr, n.d. Chapter 13 - Design Concepts and Principles. [Online] Available at: http://web.itu.edu.tr/~gokmen/SE-lecture-6.pdf [Accessed 15 May 2012].
89