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 team better):
Use of SVN source control
You are required to use Subversion (SVN) source control for this project. We will create repositories for groups periodically based on the memberships shown on MyLO and notify you so you can check the list of teams with extant repositories. Commit information will be used to adjust your individual grade for this assignment.
We recommend that your repository (hence, your working directory) be a folder that contains one or more Visual Studio projects related to the assignment, one of which will be your final WPF-based application. In this way you can use the repository to manage any early prototype console application projects as well, and we can see that team members have committed changes to those. If you need assistance with this please ask.
OO Packages and C# Namespaces
As C# applications have a top-level namespace, which was not part of the OO Design, we recommend that each package in the OO Design becomes a nested namespace within your application’s top-level namespace (which should be RAP). Note that the namespace and project name do not have to be the same, even though Visual Studio will initially make them the same.
The School Database (aka RAP Database)
The case study MySQL database is available via the following settings:
Database: kit206 User Id: kit206 Password: kit206
Data Source: alacritas.cis.utas.edu.au
You can also browse the data via phpMyAdmin (append that to the end of the server name). As the database is shared it will not appear in your own list of databases on alacritas if you log in under your own user name. An EER Diagram for the database plus some details on enumerated value columns accompanies this document.
The database is currently live and contains fictitious data. The data are consistent in that foreign key relationships are all valid, although initially there will not be much information in the database. More entries, or more realistic entries, may be added later in semester, but this is not guaranteed.
The Testing Report
Concurrently with development of the application you will create a test plan containing four test cases to verify the following subset of requirements in the RAP RTM:
• SWC 1
Each test case will be based on the Test Report Template, which is available on MyLO. Each test case that is based on a use case should include at least two methods by which the requirement will be tested. NTH features of use cases should also be tested and so will provide additional methods, even if they were not implemented; the quality of the test case will be assessed, not the one line outcome of whether it passes or not. The test cases for the SWC will likely need only one, brief method in order to be tested.
Ensure that all instructional entries (Repeat the following box…, <Extract the text…, Repeat Method and Outcome…) and unused method–outcome rows are removed from your submitted test plan. The document should include a title and your team name on the first page; the first test case can start immediately below that.
When the application is complete, apply the test plan to it and record the outcome for each method. Remember that if the outcome is ‘fail’ then an explanation of when (which step) or how must also be recorded.
Sources of information for compiling the testing plan
Follow the procedures described in Module 5 Use case-Based Testing to derive the test cases for the indicated SWC and SW entries. The RTM will be your primary resource for identifying the criteria for each test case. The original requirements document may also provide some useful information. The structured scenarios you prepared during Assignment 1, in conjunction with the specific application being tested, will provide the basic structure of the testing methods in each test case, since they describe the user’s actions in each use case.