There are three deliverables in this assignment:
1. a zipped VisualStudio project that contains the WPF-based application that must be
submitted to the assignment folder, accompanied by
2. a completed test report in PDF, which must also be submitted to the assignment folder.
3. The Visual Studio project and any precursor console application projects must be available in
your group’s GitHub repository.
The starting point for developing the application
A standard OO model for the system (some scenarios, all class diagrams and some sequence diagrams)
will be released after the Assignment 1 due date, along with details of the database schema. You may
then use your group members’ joint experience of developing their own OO models to determine the
rest of your design. You may also deviate from the standard design as you see fit. This will give
different development teams some freedom in their implementation choices.
OO Model versus WPF
In the OO model each view is a separate class, which in WPF corresponds to defining a UserControl
for each major view. Because this may complicate some of the event handling code, it is acceptable
in the assignment to place separate views directly within the main window. Note, however, that the
HD level of the Use of WPF assessment criterion requires that at least one user control be defined,
and that defining your own controls will actually make each individual source file easier to manage.
Because the final application requires knowledge of the C# language, how to communicate with a
database using C# (and LINQ) and how to design and construct GUIs using WPF, and because these
topics are to be covered over a period of some weeks, we recommend that you take a prototyping
approach to the development of this application. This will allow you and your team to make useful
progress on parts of the system even before you have obtained the skills required to implement the
whole system. (Note that this will likely entail some manual copying of source files between projects
as you migrate from a console application to a WPF application.) We suggest the following
implementation stages (you may of course adopt a different development path if you find it suits your
Application type & functionality Notes
1 8–9 Console application with entity
(data) classes, partially-implemented
control classes and at least one
database adapter class.
One or more driver classes
containing Main() that can test
features such as filtering of the staff
or unit lists.
1. May have a GUI, but this should
be no more than necessary to
functionality (should be able to
throw this GUI away later).
2. Database adapter will need to
return artificial data.
2 9–10 As above but using live data, which
will substantially ease the burden on
you to create artificial test data.
Draft test cases that are complete in
all details apart from test methods
(which will likely still be high-level
until the GUI is built).
(1) as above
3 11–13 WPF application with custom
controls for different views. Control
classes updated to know about GUI
components and event handlers
Test cases completed and applied to
Transition will be easiest by creating
a new WPF Application project and
importing the pre-existing class files