Web based automated Help Desk: 4+1 Views By Jason Raffi and John Sung 1 List of Diagrams Figure 1 : Highlevel Usecase Diagram ....................................................................... 4 Figure 2 : Employee’s High Level State Diagram ...................................................... 5 Figure 4 : Employee’s Email Sequence Diagram ....................................................... 6 Figure 5 : Employee’s Worst Case Email Sequence Diagram ................................... 7 Figure 6 : Mentor State Diagram ................................................................................ 7 Figure 7 : Employee Web Search State Diagram ....................................................... 8 Figure 8 : Employee’s Worst Case Phone Diagram ................................................... 8 Figure 3 : Emergency Phone Sequence Diagram ....................................................... 9 Figure 9 : Database Class Diagram ........................................................................... 10 Figure 10 : Webpage Class Diagram ........................................................................ 11 Figure 11 : Chat Server Class Diagram .................................................................... 11 Figure 12 : Chat Client Class Diagram ..................................................................... 12 Figure 13 : DatabaseEngine Class Diagram ............................................................. 12 Figure 14 : Chat Server Activity Diagram ................................................................ 13 Figure 15 : Chat Client Process View ....................................................................... 14 Figure 16 : Database Engine Activity Diagram ........................................................ 15 Figure 17 : Overall Schedule .................................................................................... 16 Figure 18 : Mentor Phase Class Diagram ................................................................. 16 Figure 19 : Reference Card Class Diagram .............................................................. 17 Figure 20 : FAQ Database Class Diagram ................................................................ 17 Figure 21 : Email Phase Class Diagram ................................................................... 18 Figure 22 : Phone Phase Class Diagram ................................................................... 18 Figure 23 : Chat Class Diagram ................................................................................ 19 Figure 24 : Chat SubSystem Component Diagram ................................................... 19 Figure 25 : System Deployment Diagram ................................................................ 20 2 Introduction Background The leading technology consultant company, COM 3205 Inc., was asked to propose a new system that would convert the existing Help Desk System to a more efficient, web based automated Help Desk. The senior consultants, Jason Raffi and John Sung, have met with the company in question and drafted a document to propose several possible solutions to their requirements of the new web based Help Desk. This document contains the 4+1 view of software that goes along with the document that was submitted earlier. These views should give a more detailed view of how the whole project should look like. The views will be given with multiple UML diagrams. 4+1 View Model of Software Architecture This model of software architecture was developed my Rational Software Corp. It attempts to communicate the different issues that any software engineer has to consider when developing a software system. Logical View - the object model of the design Process View - the concurrency and synchronization aspects of the design Physical View - the mapping of the software onto the hardware and reflects it's distributed aspects. Development View - that static organization of the software in it's development environment. Scenarios - the use cases that illustrate how the actors will use the system. 3 Scenarios Figure 1 : Highlevel Usecase Diagram ? Mentoring Reference Card Update Employee Mentor E-mail Search FAQ DB Phone Browse FAQ DB Help Desk Chatting FAQ DB Update Other Employees 4 Figure 2 : Employee’s High Level State Diagram Email Help Desk Start User Problem Check Reference Cards Check Web DB Ask Mentor [Emergency] Phone Help Desk Solved 5 Figure 3 : Employee’s Email Sequence Diagram User Has Problem Tech Gets Email Search DB Email Tech Search DB Return Data Email Solution 6 Figure 4 : Employee’s Worst Case Email Sequence Diagram User Has Problem Tech Gets Email Tech Calls User Phone Correspondence Email Tech Cannot Help via Email Contact User User Relays Problems Solution Figure 5 : Mentor State Diagram Mentor Does Not Know Answer [Mentor Has Time] Mentor Searches DB [Mentor is Busy] Start No Solution. Employee Search DB Ask Mentor Mentor Knows Answer 7 Mentor Has Solution Figure 6 : Employee Web Search State Diagram Start Browse Reference Cards Log In [Cancel] Browse DB [Cancel] [Valid User] [Search DB] [Search] [Browse Cards] [Browse DB] [Invalid Search] [View Reference Cards] Enter Search Parameters HTML Interface [Search DB] [Invalid Search] Enter Search Parameters [Cancel] [Cancel] Retrieve [New Search] Display Log off [New Search] [Cancel] Search DB [Valid Search] [Cancel] Display Update Metrics Figure 7 : Employee’s Worst Case Phone Diagram User Problem Tech Takes Call Research Problem Search DB Update FAQ User Calls Check DB No Solution Update FAQ Return Solution 8 Figure 8 : Emergency Phone Sequence Diagram User Has Problem Tech Gets Call Search Database User Calls Check Database Found Solution Give Solution To User 9 Logical View Figure 9 : Database Class Diagram 1 IssueStat Category 1 SoftwareName ProblemType Count,Start,End 1 1 FAQIssue 0..* Question 0..1 1 1 History 1 1..* 1 Solution close() 1..* PhoneHistoryItem 0..* 1..* HistoryItem Time Owner 1 0..* Employee ChatHistoryItem 1 1 HelpDeskPersonnel Name Id Mentor 1..7 10 RefDocument 1 1 dateClosed 1 Ref. Card 0..* GenericIssue 1 isClosed 1 EmailHistoryItem 0..* 1..* 1 Figure 10 : Webpage Class Diagram LogI n 1 StartChat 1..* 1..* Category 1 1 1 1 MainPage 1 1 1..* GenericIssue 1 1 0..* 0..1 0..* SearchResults 0..* ContactInfo 1 Ref. Card 1..* 1 1 OpenIssue Browse 0..* FAQIssue 1..* Figure 11 : Chat Server Class Diagram ChatServer 1 1 ChatServerThread 1 ChatLogThread 1 1 ChatLogBuffer 1 ChatSocket 1 1 1 ServerConnetionPool 1 1 SocketNumber Hostname close() 1 getConnection(), broadcast() 1 1..* ServerConnection 0..* ChatHistoryItem 1 broadcast() 1 1 ServerSendThread 1 1 ServerReceiveThread broadcast() 11 Figure 12 : Chat Client Class Diagram MainWindow 1 1 ChatClient exit() 1 1 1 1 ClientConnectionThread 1 DisplayTextArea 1 ChatSocket 1 SocketNumber 1 Hostname close() 1 displayMsg() 1 ClientReceiveThread 1 ClientSendThread 1 SendTextArea broadcast() Figure 13 : DatabaseEngine Class Diagram DatabaseEngine 1 1 DBEngineThread 1 1 DBEngineSocket 1 1 DBConnetionPool SocketNumber Hostname close() 1 getConnection(), serveDB() 1 1..* DBConnectionThread DBRoot serveDB() 1 RefCardDBThread serveDB() PhoneDBThread ProblemDBThread FAQDBThread MentorDBThread ChatLogDBThread serveDB() serveDB() serveDB() serveDB() serveDB() 12 Process View Overall System Architecture Figure 14 : Chat Server Activity Diagram Receive Connection [Server Shutdown] [Client Connection] Server Shutdown Get a Server Connection Send Message Wait for Broadcast Message Wait for User Message Connection Closed Return Server Connection 13 Broadcast Message Figure 15 : Chat Client Process View Start GUI exit Get New Client Connection Update Text Display Wait for Broadcast Message Wait for User Message 14 Broadcast Message Figure 16 : Database Engine Activity Diagram Receive DB Request [Server Shutdown] [Request] Get a DB Connection Thread Server Shutdown Service DB Request Return DB Connection Thread 15 Development View Figure 17 : Overall Schedule Figure 18 : Mentor Phase Class Diagram DatabaseEngine MentorDB Component DatabaseEngine 1 1 DBEngineThread 1 Database Components 1 DBEngineSocket 1 1 DBConnetionPool Employee Name Id SocketNumber Hostname close() 1 getConnection(), serveDB() Mentor 1..7 DBRoot 1 1 1..* DBConnectionThread serveDB() MentorDBThread serveDB() 16 1 Figure 19 : Reference Card Class Diagram ReferenceCard html Component Ref. Card DatabaseEngine ReferenceCard Component MainPage DBConnectionThread DBRoot serveDB() ReferenceCard DB Component RefCardDBThread Ref. Card RefDocument : Word serveDB() Figure 20 : FAQ Database Class Diagram DatabaseEngine/html FAQDB Component 1..* Browse 1..* Database Components 1..* Category 1 1 MainPage 1 1..* GenericIssue 1 1 ContactInfo 1 Ref. Card 0..* 0..1 0..* SearchResults 0..* 1..* 17 0..* FAQIssue Figure 21 : Email Phase Class Diagram DatabaseEngine ProblemDB Component html Component DBConnectionThread LogI n 1 DBRoot serveDB() 1 MainPage OpenIssue 1 ProblemDBThread 1 serveDB() Figure 22 : Phone Phase Class Diagram DatabaseEngine PhoneDB Component DBConnectionThread DBRoot serveDB() PhoneDB Component PhoneHistoryItem HistoryItem PhoneDBThread Time serveDB() 18 Figure 23 : Chat Class Diagram DatabaseEngine ChatDB Component Chat Database Component DBConnectionThread DBRoot serveDB() HistoryItem Time ChatLogDBThread ChatHistoryItem serveDB() Figure 24 : Chat SubSystem Component Diagram DatabaseEngine ChatDB Component <<sockets>> ChatServer <<tcp/ip> > ChatClient 19 Physical View Figure 25 : System Deployment Diagram TCP/IP USER SERVER Windows PC HTML Interface Email DB Logic Telephone FAQ DB Reference Cards Email Server Phone Line Email Tracking DB HELP OPERATOR Reference Card Storage Switch Board Help Staff 1..N 20