Unformatted Attachment Preview
XYZ company consists of a number of people, including nine employees and the owner (Craig).
All people share some common attributes, name, age, title and salary. The nine employees
include two managers (John and Mary), two accountants (Jane and Joe), and five blacksmiths
(Jack, Katie, Amy, Lin, and Greg). Employees who have the same job title begins with an
identical start-up salary. The pay changes over time according to their individual performances.
The start-up salary is $50,000 for manager, $45,000 for accountant, and $35,000 for blacksmith.
The owner can send a text message to multiple employees at a time. He can also delegate this
duty to one of the managers when he is out of town. A manager can evaluate the performance
of a blacksmith at a time and gives a Likert scale from 1 to 5. When a manager is out of town,
s/he can delegate the evaluation duty to another manager. An accountant can update the salary
of an employee at a time. An accountant delegates such a duty only to the other accountant
when out of town. Employees other than accountants cannot update salary. A blacksmith can
perform an assigned task object with an ID, due date, and description as the attributes. A
blacksmith can delegate the duty to a blacksmith, a manager or even an accountant when out of
town. A person can do only one extra delegated work besides his own work.
Provide a UML class diagram for the system design. (5 pts). All attributes must be private and
the classes must include Company, Employee, Owner, Manager, Accountant, Blacksmith, and
Task. Methods must include send, evaluate, update, and perform, and may have arguments.
Feel free to add interfaces, abstract classes and methods, but no more classes. Please model
the relationships, multiplicity, and visibility. Try to reduce the unnecessary links and achieve
good software reusability.
Implement C# code to test the following scenarios. (5 pts) Craig sends a message “Good Job”
to employees John, Jane and Jack through arguments. Greg not only performs his own task t1
but also the delegated task t2 by Amy. In other words, calling Greg’s perform method will have
both tasks prompted. Accountant Jane updates Greg’s salary with an increase of $1000 and
does the delegated task from Lin. Let John and Mary evaluate Jack and Katie, respectively.
Next, let John delegate his duty to Mary because he receives an urgent notice to go out of town.
Finally, show Mary’s “evaluate” method give the Likert scales for Jack and Katie as 4 and 5.
This is what I have so far, it may not be perfect please check before implementing