a. You are developing a browser-based training system to help people
prepare for a Java certification exam. The planned system has the following functionality:
• A user can request a quiz from the system.
• The system picks a set of questions from its database and composes them together to make a quiz.
• The system rates the user's answers and gives hints if the user requests it.
• In addition to users, we also have tutors who provide questions and hints. And also examiners who must certify questions to make sure they are not too trivial, and they make sense.
Create a high-level use case diagram to model this system. Work out some of your use cases. Since we don't have real stakeholders here, you are free to fill in the details you think are sensible for this example. Try to make use of extend and include relationships in your diagram.
b. You have been given the following additional requirements for taking an online quiz using this system:
• Quizzes are made up of multiple-choice questions.
• Each quiz consists of 10 questions
• The user can specify different difficulty levels
• There is a time limit in which to complete the quiz
• The user can skip questions if they so wish
Based on this, write a use-case description for taking a quiz. Your use-case description should include the names of the actors using the use case, any necessary pre and postconditions, and the main flow of the use-case.
Write another short use-case description for 'providing a hint' to the user (based on the same format), which extends this use-case.
c. One of the problems of having a user closely involved with a software development team is that they "go native." That is, they adopt the outlook of the development team and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid this problem, and discuss the advantages and disadvantages of each approach.
d. Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects.
■ a messaging system on a mobile (cell) phone or tablet
■ a printer for a personal computer
■ a personal music system
■ a bank account
■ a library catalogue