Reference no: EM132297419
Assignment: Vector Design Tool
Overview
Our company makes use of several pieces of hardware called plotters. These are devices for drawing vector-based graphics on various pieces of physical material from an input file, like a simplified version of PostScript. The challenge here is that our plotters make use of a proprietary design language called VEC which is not used by any other hardware or software on the market. This makes it difficult for our designers to create designs to be drawn on the plotters for two reasons:
1. Our designers have to create new VEC files for the plotters by editing text files and entering in coordinates. This makes design a slow, laborious process, involving first sketching out the design on graph paper, then writing out the coordinates of each vertex, then typing out the file.
2. Because no software supports this proprietary format, our designers can only properly test their designs by using the plotting hardware. This is time-consuming as there are more designers than plotters and we need to be making better use of our resources.
The task we have for you is to create a piece of Java software (from scratch) allowing for the preview of and editing of VEC files for the plotters. The idea is that this will allow designers to create their designs using a mouse in a WYSIWYG (what you see is what you get) environment instead of messing around with graph paper and editing text files. Furthermore, the software must also be able to load our existing VEC files, view them and edit their contents (e.g. to touch up or add to an existing design.)
The design for this program is left in your hands. You can look at programs intended for similar tasks to get an idea of how the UI should be structured, button placement etc. Please note that we care a great deal about the usability of this software as the software will be used by designers who are not necessarily computer experts. We want you to create for them a piece of software that is user friendly and intuitive, similar to tools like MS Paint.
What you are required to submit
• Your software project, in .zip form, containing:
o Your project source code.
o The hidden .git directory that holds the entire commit history of your project, which we will be using to verify appropriate software development lifecycle processes were followed. As noted before, the IntelliJ ‘Export to Zip File' menu option does not include the .git directory, so use another tool (like Send To Compressed (zipped) folder) and make sure the created .zip file contains that directory. Turn on ‘show hidden files' if necessary.
o The JavaDoc-generated documentation for your project.
o The unit tests for your project.
Your marker will take your .zip file, extract it into a directory, then open it in IntelliJ and expect it to basically run as-is. The marker will go to limited effort to get your software working if it does not run out of the box, so it is in your best interests to make sure that things work as-is.
• A report (in .docx or .pdf format), containing at minimum the following:
o A statement of completeness, describing what functionality you managed to implement - both the basic functionality and any applicable additional functionality (note that you must implement 1 item of additional functionality for each person in you beyond the first.)
o A statement of contribution, describing who is in you and what you contributed to the project - report writing, code, creation of unit tests etc.
o A statement describing how you made use of Agile software development processes. If you used test-driven development, describe this here. Otherwise, describe other relevant processes (e.g. iterative design-code-test stages).
o Documentation of your software architecture, describing all the classes that make up your project and how they interact with the other classes to bring your project together.
o Documentation of how you made use of advanced object oriented programming principles in the creation of this software. Have a section for each of:
• Abstraction
• Encapsulation
• Inheritance
• Polymorphism
o Documentation of how to use your software, with associated screenshots showcasing all the items of functionality.
Attachment:- Assignment Specification.rar