Graphical Interpreter created using WinForms with C# and an external library.
Find a file
2025-12-10 12:01:24 +00:00
BOOSEexamplePrograms Clean up 2025-12-08 16:29:34 +00:00
doc Clean up 2025-12-08 16:29:34 +00:00
main Clean up 2025-12-08 16:29:34 +00:00
test Clean up 2025-12-08 16:29:34 +00:00
.gitignore Added .vs inside ASE Assignment to .gitignore 2024-10-22 12:14:49 +01:00
BOOSE.dll Clean up 2025-12-08 16:29:34 +00:00
README.md Update README.md 2025-12-10 12:01:24 +00:00

BOOSE Interpreter

Graphical Interpreter created using WinForms with C# and an external library.
The external library contains an interpreter with restrictions in place for various parts.
Objective is to replace as much of the library as posssible, removing the limitations while doing so.

Checkpoint

1 Version Control (1) 5 marks

DONE
At least two documented commits to provided on GitHub Classroom BEFORE 12pm 7th October.
At least 5 documented commits.
Readme.md file filled in correctly.

2 Unit Tests for basic drawing commands above (1) 5 marks

DONE
Unit Test for moveto command (variables storing pen position are correct)
Unit Test for drawTo command (variables storing pen position are correct)
Unit Test for a multiline program.

3 XML Comments/documentation produced (1) 5 marks*

PART DONE
Fully documented with XML comments and Documentation web site produced 

4 Exception Handling (1) 5 marks*

DONE

5 Library (DLL) installed and working with reasonable user interface (2) 10 marks

DONE
Form interface with program window, output window and run button
BOOSE DLL library installed 
call about method and display returned information in output/debug window
you can use System.Diagnostics to output to the debug window

6 Basic drawing commands of the library are implemented (2) 10 marks

DONE
Moveto, circle, rect, pencolour, write.
Unrestricted drawing programs can be run (1unrestrictedDrawing.boose)

Final Submission

1 Further Version Control (1) 5 marks

DONE
You must continue to use VC to a professional standard with frequent and clear commits
Your Readme.md must be up to date

2 Use of Interfaces (1) 5 marks

Interfaces to be used for all classes where appropriate

3 Further Unit Testing (1) 5 marks

DONE
Tests for full program all of the facilities completed in 5,6 and 7 below
It is up to you how design your tests (i.e. one test per facility or one test testing many but they must be clearly documented with XML comments)

4 Design Patterns (1) 5 marks

Use of factory Design Pattern for command creation
Demonstrate the use of another design pattern of your choice
(for 5,6 and 7 you can click the links to see the example BOOSE programs that must be run, these are in your Portfolio. You must run the unrestricted programs and replace the image already there with an 	image of your BOOSE Interpreter running the BOOSE programs. You may show further programs in your portfolio.)

5 Replaced variables (2)

DONE
Int	4 marks
Real	4 marks
Array	5 marks

6 Replaced if, while, for (2)

DONE
While 	5 marks
For	6 marks
If else	6 marks

7 Replaced Methods (2) 5 marks

8 Additional (web version, text-based version, extension to BOOSE itself, etc, discuss with your tutor) (2) 10 marks