11.07.2015 Views

Software Reuse In Final Year Projects: A Code of Practice Contents

Software Reuse In Final Year Projects: A Code of Practice Contents

Software Reuse In Final Year Projects: A Code of Practice Contents

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The code generation can also go in the other direction (from abstract to concrete). For example, there aretools to generate C++ code from data flow diagrams. This type <strong>of</strong> automated s<strong>of</strong>tware engineering is good,provided the role <strong>of</strong> the tool is properly acknowledged.3.5 A Simple Guideline: No <strong>Reuse</strong> Without TestFrom the examples above, it seems that you need to be very careful about acknowledging any reuse <strong>of</strong> code.There is a simple guideline to ensure that you never forget the acknowledgement, avoiding the risk <strong>of</strong> beingaccused <strong>of</strong> deliberate deception when the plagiarism is a result <strong>of</strong> incompetency:Explicitly acknowledge the use <strong>of</strong> someone else’s code - no matter how small- by testing it againstyour requirements.<strong>In</strong> the examples that follow, in the next section, we do not explicitly state how the reused artefacts shouldbe tested in order to show that they do what they are supposed to do. <strong>In</strong> the case that a student does notproperly test the s<strong>of</strong>tware that they are reusing, this student should be advised that the reuse is unacceptable.The following guideline 14 is suggested:• If you don’t know how to test it then don’t reuse it.• If you don’t know what to test it against then don’t reuse it.• If you know what to test and how to test it, then reuse it only after the tests are successfully completed.Supervisors should advise students that it is the students who are responsible for the behaviour <strong>of</strong> the artefactsthat they reuse: if their system fails due to a defect in another person’s s<strong>of</strong>tware then this is the student’sresponsibility! Of course, reuse <strong>of</strong> good quality s<strong>of</strong>tware (like that found in library classes) does not require asmuch testing as reuse <strong>of</strong> some piece <strong>of</strong> code found on the web, for example.4 Acceptable Forms <strong>of</strong> <strong>S<strong>of</strong>tware</strong> <strong>Reuse</strong>We should note that it is usually a policy <strong>of</strong> a University that 15 :“Examiners, tutors and markers are required to report instances <strong>of</strong> suspected plagiarism . . . ”Thus, it is the responsibility <strong>of</strong> the student to ensure that their code is above suspicion. <strong>In</strong> this section weidentify useful strategies for reuse that would leave an examiner in no doubt about what has been re-used andwhat has been the original contribution <strong>of</strong> the student.4.1 Composition/AggregationConsider a problem where the chosen solution (in Java) requires two <strong>In</strong>tArray components. Typically, in highlevel languages, such <strong>In</strong>tArray behaviour can be reused without having to edit the original file in which thecode was written. <strong>In</strong> Java, the import keyword is used to reuse a package <strong>of</strong> classes (specified as a directory in14 We use the word ‘test’ to represent some sort <strong>of</strong> validation or verification, and we use the word ‘it’ to represent any s<strong>of</strong>twareartefact.15 NUIM Calendar 2004, page 78.9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!