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