Software engineering

You are developing ‘Geometry is fun’: an educational software system designed as a Geometry supporting teaching tool for secondary school students. The system should support teaching, assessment, and preparation. The Teaching component should be able to display lessons on 2D Geometry shapes, such as rectangles, triangles, circles, etc. Each lesson should include details about the definition of each shape, its graphical representation, together with explanations and examples for calculating the length and the area of each shape. The Assessment component should provide a set of quizzes. The quizzes are of two types: a) associated with a particular lesson and only including questions on the topic of that lesson, and b) revision quizzes, including questions on the topics of all the lessons. The Preparation component should provide random questions on the topics of all lessons taught so far. Each Lesson should be associated with a preparation module. For example, the preparation module for lesson 5 should contain a set of questions on the topics of lessons 1 to 5. Teachers should be allowed to manage (i.e. create, update, remove) lessons, quizzes, and preparation modules. They should be able to get reports on a) the number of students who attempted each lesson or preparation module, and b) the student’s results for the quizzes. Students should be allowed to view lessons, take quizzes, and use preparation modules. They should be able to keep track of their progress on the results of quizzes, and lessons and preparation module attempts. Students should be able to resume viewing a lesson or going through a preparation module. Administrators should be able to manage teachers’ and students’ accounts, i.e. create and remove accounts, set permissions to manage lessons, quizzes, and preparation modules. All users need to authenticate in order to use the system, and they should all be able to change their passwords at any time. The system will be used in secondary schools. A class has minimum 50 students who should all be able to use the system at the same time. Question 1: Project Management [15p] a) Create a project plan for the development of this system using a Gantt chart according to the waterfall development model. Question 2: Requirements [20p] a) Specify all the requirements of the system described in the scenario above. For each requirement, specify the type of requirement and a strategy to be used for validating that the requirements has been met. [10p] b) Prioritize the non-functional requirements identified considering the context of use of the system. [10p] Question 3: Design [25p] a) Draw a use case diagram for the system, including all the use cases and the actors identified in the scenario. [7p] b) Draw sequence diagrams for two of the use cases identified. [8p] c) Draw an architectural model for the system based on an architectural pattern. [10p] Question 4: Testing [20p] a) Using partitioning testing, provide all the possible test cases for the following methods: [10p] a. displayLesson(integer lessonId) b. calculateScore(integer studentId, Quiz quizCompleted) b) Describe the process you would use for running an empirical usability evaluation of the system. [10p] Question 5: Critical Analysis [20p] a) How would you ensure that the system can be easily redesigned to fit further education level teaching? [10p] b) Compare and contract the development process of this system as a mobile app versus a desktop application. [10p] Claudia Iacob, March 26, 2017