Question
IssueTracking System (ITS) Description An Issue Tracking System (ITS) isa computer software application that manages and maintains lists ofissues, as needed by departments of an
IssueTracking System (ITS) Description An Issue Tracking System (ITS) isa computer software application that manages and maintains lists ofissues, as needed by departments of an organization to help acustomer support center to create, update, and resolve reportedcustomer issues/problems. A support ticket should include vitalinformation for the account involved and the issue encountered. Thesystems also contains a knowledge base containing information oneach customer, specialists who tackle the issues, resolutions tocommon problems, and other such data. The system should bepassword-protected. A ticket element, within an issue trackingsystem, is a running report on a particular problem, its status,and other relevant data. They are commonly created in a help deskor call center environment and almost always have a unique ticketnumber which is used to allow the user or help staff to quicklylocate, add to or communicate the status of the user's issue orrequest. The manager of department decides the specialists whoshould handle a ticket. Each ticket many generate several messagesbetween the customer and the specialist handling the ticket. Thesystem should store all these messages for future reference. TheITS should provide a login screen to allow three types of uses toaccess the system: a customer, an specialist and a manger. Onsuccessful login, the customer is offered a menu to allow him/herto perform the following actions related to him but not the othercustomers (of course): (1) Create a ticket (2) Display tickets (3)Update ticket status (4) Close a ticket (5) Reply to a message (6)Logout For an specialist, the ITS offers him/her with the followingactions? list under his control: (1) Display tickets (2) Updateticket status (3) Close a ticket (4) Reply to a message (5) Createa problem category (6) Modify a ticket's problem category (7)Logout For a manger, the list of actions is: (1) Display tickets(2) Update ticket status (3) Close a ticket (4) Assign a ticket toan specialist (5) Reply to a message (6) Display most problematiccategory (7) Display highly rated specialists (8) Display opentickets (9) Logout 2 Requirements This is a team-project to developthe required system. You are required to develop the ITS describedabove. The system should be written in Java and must be able tohelp system users to perform the above-mentioned actions. Thesystem should be able to permanently save all the data aboutcustomers? details, their user account, and tickets. The systemshould maintain a list of common problem categories and therelevant departments within the organization, and specialists whoare capable of handling those problem categories. The system shouldprovide the users with a graphical user interface (GUI) forperforming all the actions. You are required to demonstrateutilization of OOP concepts such as composition, inheritance andpolymorphism. Concepts of information hiding, readability andreusability are of paramount importance. For a quick-start, you areoffered the following class diagram that represents the businessclasses. However, classes related to the GUI part of theapplication are not given. They are to be designed by you, andshould be kept in a separate package(s). All the classes given inthe class diagram should be properly documented using Javadocutility. This should include classes, constructors, methods, theirparameters and their returns-values. Class Diagram for the ITSproject (a larger version is on the last page)
App() < > App personsFile: File departmentsFile: File app getPersons():ArrayList getDepartments():ArrayList addPerson(Person):void addDepartment(Department):void savePersons():void saveDepartments():void loadDepartments():void loadPersons():void getPerson(String): Person getDepartment(int): Department getMenu(Person):ArrayList -departments 0..* a deptno: int a name: String phone: String a manager: Manager < < >> Department model Department(int, String, String, Manager) getDeptno():int > setDeptno(int):void getName(): String > setName(String):void >getPhone(): String setPhone(String):void getManager():Manager > setManager(Manager):void ticketNo: int a description: String timestamp: Date < > Ticket model status: String rating: int specialist: Specialist Ticket(String, ProblemCategory, Customer) > getDescription(): String setDescription(String):void getProblemCategory():ProblemCategory setProblemCategory(ProblemCategory):void >getStatus(): String > setStatus (String):void >getCategories():ArrayList getTicketNo():int getTimestamp():Date > getOwner():Customer >getSpecialist():Specialist setSpecialist(Specialist):void >getRating():int setRating (int):void getMessages(): ArrayList -department 0..1 -department 0..1 -ticket 0..1 -tickets -messages -owner 0..1 -categories 0..* id: int text: String a timestamp: Date -problemCategory 0..1 < > Message model getId(): int getTimestamp():Date getReceipient():Person toString(): String Message(String, Person, Person, Ticket) getText(): String >getSender():Person getTicket(): Ticket < > C Customer model createTicket():void >getTicket(int):Ticket removeTicket(int):void composeMessage(Ticket):void rate Resolution (Ticket,int):void addTicket(Ticket):void findTicket(int):Ticket > delete Ticket(int):void address: String Customer(String, String, User Account, String) >getAddress(): String >setAddress(String):void getTickets():ArrayList updateTicketStatus (int):void displayTickets():void < > ProblemCategory model categoryNo: int title: String a username: String a password: String setCategoryNo(int):void < > CUserAccount model UserAccount(String, String) createUser(String, String): UserAccount getUsername(): String logout(): UserAccount getTitle(): String O setTitle(String):void getDepartment():Department > setDepartment Department):void login():UserAccount isValidatePassword (String):boolean isValidUsername(String):boolean getUser(String, String): UserAccount EisUsernameAvailable(String):boolean ProblemCategory(int, String, Department) getCategoryNo():int -pategories 0..* -userAcount Q..1 -persons 0..* -receipient 0..1 -sender 0..1 < >> Person model name: String email: String Person(String, String, UserAccount) getName(): String setName(String):void >getEmail():String setEmail(String):void getUserAcount():UserAccount > setUserAcount(UserAccount):void reply ToMessage(Message):void addTicket(Ticket):void findTicket(int): Ticket delete Ticket(int):void update TicketStatus(int):void display Tickets():void < >>> Specialist model tickets: ArrayList Specialist(String, String, User Account, Department) getDepartment():Department > setDepartment(Department):void >getCategories():ArrayList > getTickets():ArrayList > addProblemCategory(ProblemCategory):void findProblemCategory(int): ProblemCategory deleteProblemCategory(ProblemCategory):void > addTicket(Ticket):void > findTicket(int): Ticket > delete Ticket(int):void updateTicketStatus(int):void > display Tickets():void > modifyProblemmCategoryForATicket(int):void < >> Manager model assignmentDate: Date Manager(String, String, User Account, Department, Date) getAssignmentDate():Date >setAssignmentDate(Date):void assign(Specialist, Ticket):void getSpecialistAverageRating (Specialist):double
Step by Step Solution
3.35 Rating (155 Votes )
There are 3 Steps involved in it
Step: 1
The system seems to be designed to manage and maintain lists of issues as needed by departments in a...Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started